Projekt: Platforma IoT do monitoringu warunków środowiskowych
| RealizacjeDostępne na rynku rozwiązania Internet of Things są coraz bardziej przystępne cenowo i mogą być z powodzeniem wykorzystane w naszym domu, aby poprawić komfort życia jego mieszkańców. Dzięki uprzejmości firmy Molex postanowiliśmy wykonać uniwersalną platformę IoT zbierającą informacje z podłączonych czujników i za pomocą protokołu MQTT poprzez WI-FI transmitującą na serwer zbudowany w oparciu o płytkę Raspberry.
Dane zapisywane są w bazie danych influxDB https://www.influxdata.com/, prezentacja graficzna przy pomocy platformy Grafana https://grafana.com/ Nad wszystkim czuwa oprogramowanie Openhab https://www.openhab.org/ odpowiedzialne za zbieranie danych jak i możliwość sterowania naszym modułem IoT. Płytkę od podstaw zaprojektowano za pomocą oprogramowanie EAGLE https://www.element14.com/community/docs/DOC-69900/l/autodesk-eagle-pcb-design-software z wykorzystaniem złączy firmy Molex.
Większość bibliotek elementów jest dostępna w Internecie, natomiast element board-to-board o nr 104250-0820 musieliśmy stworzyć sami. Jako jednostkę główną wykorzystano układ ESP8266 zapewniającą łączność WIFI oraz zapewniający komunikację z czujnikami poprzez magistralę I²C oraz RS232 TTL. Program mikrokontrolera stworzono w oprogramowaniu Arduino z wykorzystaniem dostępnych bibilotek.
Przygotowanie serwera IoT na RaspberryPi 3 krok po kroku
Serwer zbudowano w oparciu o platformę raspberry pi 3, konkretnie:
- Raspberry Pi 3 http://pl.farnell.com/raspberry-pi/2773729/raspberry-pi-3-model-b/dp/2842228.
- wyświetlacz LCD 7" http://pl.farnell.com/raspberry-pi/raspberrypi-display/raspberry-pi-7inch-touchscreen/dp/2473872.
- obudowa http://pl.farnell.com/multicomp/cbrpp-ts-blk-wht/raspberry-pi-touchscreen-enclosure/dp/2494691.
- karta pamięci z zainstalowanym oprogramowaniem http://pl.farnell.com/integral/rapb-msdh16gph-8010i/16gb-microsd-w-adapter-ras-pi/dp/2851370.
- zasilacz 2,5A 5V http://pl.farnell.com/raspberry-pi/t5875dv/psu-raspberry-pi-5v-2-5a-multi/dp/2520785.
Rozpoczynamy od zainstalowania Raspbiana na karcie pamięci. Pobieramy obraz ze strony https://www.raspberrypi.org/downloads/ i instalujemy na karcie pamięci przy pomocy programu, np. Win32 Disk Imager https://sourceforge.net/projects/win32diskimager/
Po uruchomieniu Raspberry Pi instalacja systemu przebiega bez naszej ingerencji. Przy pierwszym uruchomieniu musimy podłączyć naszą płytkę przewodem sieciowym do Internetu aby skrypty pobrały aktualne paczki niezbędne do poprawnej pracy urządzenia. Po uruchomieniu włączamy aplikację openhabian-config i doinstalowujemy LogViewer, OpenHab Generator, Mosquitto, InfluxDB+Grafana. Robimy upgrade openHab do wersji 2.2, zmieniamy domyślne hasło. Po ponownym uruchomieniu musimy zainstalować interfejs graficzny - w tym celu posługujemy się instrukcją dostępną na stronie: https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=133691
Po instalacji uruchamiamy przeglądarkę, w której wpisujemy adres http://localhost:8080
Wybieramy pakiet "Standard" i już za chwilę cieszymy się zainstalowanym pakietem openHab. Do pełni szczęścia potrzebujemy jeszcze skonfigurować serwer MQTT - mosquitto https://docs.openhab.org/addons/bindings/mqtt1/readme.html do współpracy z openHab oraz influxDB i Grafanę - do wizualizacji naszych pomiarów. Możemy postąpić według instrukcji dostępnej na stronie: https://community.openhab.org/t/influxdb-grafana-persistence-and-graphing/13761
Po poprawnej konfiguracji na głównej stronie pod adresem http://localhost:8080 powinien wyglądać następująco:
Kolejnym etapem jest konfiguracja openHABa, a konkretnie plików: items oraz sitemap. Musimy stworzyć konfigurację elementów, które będą wyświetlane - tutaj odsyłam do dokumentacji openHab. Przykładowe pliki items oraz sitemap możemy stworzyć przy pomocy aplikacji Home Builder - w kilku krokach jesteśmy w stanie wygenerować potrzebne pliki lub stworzyć je "ręcznie".
Przykładowy plik items:
Przykładowy plik sitemap:
Po skonfigurowaniu openHaba nasz projekt powinien wyglądać jak poniżej:
Projekt płytki IoT
Płyta główna składa się z pięciu gniazd rozszerzeń do podłączenia różnych czujników. Do połączenia czujników wykorzystano złącza firmy Molex z serii Hybrid Power w ilości 10 szt. Łączność z płytką mikrokontrolera z płytą główną oraz zworki włączające sygnały I²C SCL i SDA zapewniono poprzez złącza Header. Komunikację z czujnikiem cząstek stałych PM zapewniono poprzez złącze płytka-przewód z serii PicoBlade. Przesyłanie danych z czujnika CO2 odbywa się z wykorzystaniem złącz Header Seria C-Grid III. Zasilanie płyty odbywa się przez gniazdo micro USB.
Wykorzystane elementy:
- Adafruit Feather HUZZAH ESP8266 http://pl.farnell.com/adafruit/2821/adafruit-feather-huzzah-esp8266/dp/2816288
- złącze Molex Header
- złącze Molex Picoblade
- złącze Molex Hybrid Power
- złącze Molex Header Seria C-Grid III
- złącze Molex microUSB
- czujnik ciśnienia DPS310
- czujnik temperatury i wilgotności HDC1080
- czujnik magnetyczny MAG3110
- czujnik natężenia oświetlenia OPT3001
- czujnik temperatury TMP75
Schemat płyty głównej
Projekt płytki
Czujnik ciśnienia DPS310 - pomiar ciśnienia w zastosowaniach zewnętrznych jako stacji pogody do przewidywania warunków atmosferycznych, przy zastosowaniu wewnętrznym do kontroli poprawności pracy wentylacji mechanicznej.
Schemat modułu czujnika ciśnienia DPS310
Projekt płytki modułu czujnika ciśnienia:
Czujnik wilgotności i temperatury HDC1080 - Pomiar wilgotności względnej oraz temperatury z rozdzielczością 14bitów do wykorzystania przy monitorowaniu środowiska i sterowaniu ogrzewaniem, klimatyzacją oraz wentylacją.
Schemat modułu czujnika wilgotności HDC1080:
Projekt płytki modułu czujnika wilgotności HDC1080:
Czujnik magnetyczny Mag3110 - w tym projekcie bardziej jako ciekawostka, element dokonuje pomiarów pola magnetycznego ziemi i elementów nas otaczających. Do zastosowań w systemach nawigacji i śledzenia lub po prostu jako elektroniczny kompas.
Schemat modułu czujnika magnetycznego MAG3110:
Projekt płytki czujnika magnetycznego:
Czujnik natężenia oświetlenia OPT3001 - pomiar natężenia światła otoczenia o charakterystyce zbliżonej do czułości ludzkiego oka. Do wykorzystania przy sterowaniu natężeniem oświetlenia w zależności od warunków zewnętrznych i wewnętrznych - zachmurzenie czy słoneczny dzień.
Schemat czujnika natężenia oświetlenia OPT3001:
Projekt płytki czujnika natężenia oświetlenia OPT3001:
Czujnik temperatury TMP75 - pomiar temperatury środowiska, do wykorzystania przy sterowaniu ogrzewaniem, wentylacją czy klimatyzacją. Pomocny również przy kontrolowaniu np. rolet zewnętrznych w celu eliminacji przegrzewania pomieszczenia latem czy pozyskiwania darmowego ciepła z promieni słonecznych zimą.
Schemat modułu temperatury TMP75:
Projekt płytki czujnika temperatury TMP75:
Czujnik stężenia CO2 T6313 - pomiar stężenia dwutlenku węgla w pomieszczeniach, krytyczny element instalacji wentylacji mechanicznej, dodawany jako opcja jednak powinien być wymogiem. Poprawna wentylacja i świeże powietrze pozbawione dwutlenku węgla to bardzo ważny element dla naszego dobrego samopoczucia, wydajności jak i komfortowego wypoczynku. Na podstawie pomiarów system może automatycznie zwiększać lub zmniejszać natężenie wentylacji w pomieszczeniu czy domu.
Czujnik stężenia pyłów stałych PM2,5 i PM10 - kontrola jakości atmosfery wewnątrz pomieszczenia czy budynku, kontrola filtrów wentylacji mechanicznej.
Przy wykorzystaniu powyższych czujników możemy zaprogramować reguły, które po przekroczeniu pewnych wartości granicznych będą powodowały konkretne działania w naszym dokmu, np. zasłonięcie rolet zewnętrznych przy dużym nasłonecznieniu i wzroście temperatury wewnętrznej powyżej wartości granicznej, złożenie markiz zewnętrznych przy gwałtownym spadku ciśnienia z uwagi na ryzyko wystąpienia burzy, włączenie rekuperatora na wyższy bieg przy stwierdzeniu wzrostu stężenia dwutlenku węgla i wzroście temperatury otoczenia itp. System może wysyłać powiadomienia z dołączonymi wykresami czy wartościami z czujników na email, co można wykorzystać również do raportowania czy kontroli obiektów wrażliwych na warunki środowiskowe, np. serwerowni.
Im więcej mamy takich danych zbieramy tym więcej działań możemy zautomatyzować w naszym domu. Technologia poprawiająca jakość życia jest na wyciągnięcie ręki, nie bójmy się z niej skorzystać!
Farnall element14