Szklarnia w internecie rzeczy (IOT) – część 6.

Łączenie w całość – automatyka i komunikacja między urządzeniami.
Jak zawsze przypominam o poprzednich częściach, jeśli ktoś jeszcze nie czytał – tutaj.
Sezon, w którym zwykle ja obciążony jestem natłokiem pracy, jest też dla szklarni najbardziej wymagającym okresem. Zaniedbania wynikające z braku czasu mogłyby skończyć się uśmierceniem roślinek, a trochę nie o to chodzi.
W przedostatnim odcinku szklarni nadeszła pora na zmontowanie całości. Niech nasze urządzenia, jak przystało na IOT, zaczną się ze sobą dogadywać i pracują bez zbędnej ingerencji.
Odwołując się do schematu z pierwszej części, dotarliśmy do etapu, w którym brakuje już tylko jednego elementu – Raspberry Pi. Na taki miniaturowy komputer szklarnia nie musi mieć wyłączności. Może on obsługiwać wiele rzeczy w naszym domu w formie równoległych funkcjonalności. Taka centralizacja pozwali nam dodatkowo na łatwą wymianę informacji między funkcjonalnościami i sprawne nimi zarządzanie.
Aby zapewnić przepływ danych, tak zwaną komunikację M2M, czyli maszyna do maszyny, prowadzić będziemy po sieci Wi-Fi przy zastosowaniu modułu ESP zgodnie z protokołem MQTT. Raspberry będzie mogło przekazywać rozkazy, a szklarnia na te rozkazy odpowiadać (w tym przypadku – odsyłać pomiary). Wszystko technicznie wyglądać będzie podobnie jak w projekcie lampki. Pamiętajcie, aby dodać skrypty związane z subskrypcją do autostartu według przykładu. 
Najnowsze wersje wsadów do Arduino i ESP, skypty dla Raspberry oraz pliki opisowe znajdziecie na repozytoriumtutaj. W komentarzach zamieszczone są wszelkie niezbędne informacje, jak dokonać zindywidualizowanej konfiguracji.
Co do pomiarów przychodzących ze szklarni, aby dokonać sprawnej analizy, najlepiej przechowywać je w bazie danych. W ten sposób możemy łatwo ocenić, czy utrzymujemy dobre warunki w szklarni (temperaturę, wilgotność etc.) i czy poziom wody w zbiorniku nie jest alarmująco niski. Jednym z rozwiązań, z którego można skorzystać, i który my zastosujemy, jest najpopularniejszy typ, czyli relacyjna baza danych z użyciem MySQL jako systemem zarządzania. W praktyce wyglądać to będzie trochę jak tabelka w excelu, którą dodatkowo możemy odpytywać przy zastosowaniu odpowiednich poleceń. Odpowiednimi polecaniami możemy ją także edytować. Polecam przyswojenie języka zapytań nie tylko w tym aspekcie, przydaje się on wyjątkowo często. Można to zrobić za darmo np. tutaj.
Utworzona baza danych może znajdować się na naszym Raspberry albo na zewnętrznym serwerze. Jako że posiadam stronę na serwisie zenbox, mogę tam trzymać swoją bazę danych. Dzięki wspomnianym zapytaniom, łatwo wyświetlimy dane na stronie przy użyciu np. PHP, a na komputerze – prostych skryptów pythona. Dodatkowym uproszczenie, o ile znamy C#, jest jeszcze skorzystanie z frameworku, takiego jak entity – pozwala to trochę zapomnieć o składni zapytań.
Wracając do przechowywania danych, należy zastanowić się, czy zależy nam na poglądzie tylko lokalnie w domy czy jednak ważny jest dla nas dostęp do oceny warunków w naszej szklarni z każdego innego miejsca z dostępem do sieci. W tym drugim przypadku szczególnego znaczenia nabierają serwery. To samo dotyczy sterowania – wystarczy nam lokalna możliwość manipulacji czy jednak warto dać sobie furtkę i do MQTT użyć takich serwisów jak np. cloudMQTT? Można tu też skorzystać z rozwiązań dynamicznego DNS lub wykupić publiczne IP. Sam zewnętrzne sterowanie zaczynam doceniać jeszcze dobitniej, kiedy próbuję wszystko obsłużyć przy pomocy mojego asystenta Google Home.
Ok, mamy już dane, mamy sterowanie. Należy przemyśleć strategię działania, aby utrzymać pożądane parametry. Jak podlewać, jak wietrzyć, jak dogrzewać? Trzeba, najczęściej drogą prób i błędów, poznać inercję układu – jak zmienia się w czasie dany parametr od wysterowania, np. wilgotność gleby na pewno będzie się zwiększała przez chwilę po podlaniu, zanim woda spenetruje glebę.

Na Raspberry możemy wybrać też częstotliwość pomiarów, ja korzystam ze zwykłej opcji cron. Dane odczytuję co godzinę i przy zastosowaniu jeszcze kilku innych zasad podejmuję działanie, które wysyłam do szklarni lub jako informację dla siebie.
W takim projekcie, szczególnie w pierwszej fazie działania, polecam zostawić sobie dwa równoległe sposoby działania – automatyczny oraz sterowanie ręczne. 
W kolejnej części opiszę jeszcze pewne możliwości, jakie daje Raspberry – jakie dodatkowe dane możemy zebrać z sieci i jak wpasować je w schematy logiki działania.

To już prawie koniec. Zbliżamy się do podsumowania prac związanych ze szklarnią i omówienia ewentualnych pomysłów na jej rozwój. Jeśli macie uwagi, pytania, piszcie śmiało (:

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *