Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Przygotuj środowisko Arduino dla ESP8266
- Krok 2: Uwzględnij wymagane biblioteki
- Krok 3: Dostosuj standardowy przykładowy szkic
- Krok 4: Prześlij interfejs sieciowy
- Krok 5: Dodaj czujnik BME680
- Krok 6: Dodaj czujnik PMS5003
- Krok 7: Dodawanie niektórych funkcji sieciowych
- Krok 8: Dodawanie rejestrowania
- Krok 9: Działania
- Krok 10: Zdjęcia i pliki konfiguracyjne
Wideo: Zbuduj wewnętrzny czujnik jakości powietrza IoT Bez chmury: 10 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
Jakość powietrza w pomieszczeniach lub na zewnątrz zależy od wielu źródeł zanieczyszczeń, a także od pogody.
To urządzenie rejestruje niektóre typowe i niektóre z najciekawszych parametrów za pomocą 2 chipów czujników.
- Temperatura
- Wilgotność
- Nacisk
- Gaz organiczny
- Mikrocząstki
Zastosowane tutaj czujniki to BME680 do pomiaru temperatury, wilgotności, ciśnienia i gazów organicznych oraz PMS5003 do pomiaru gęstości mikrocząstek.
Korzystając z biblioteki HomeDing, łatwo jest zbudować urządzenie, które jest podłączone tylko do Twojej sieci domowej i jest dostępne i może być kontrolowane przez dowolną przeglądarkę w sieci. Zawiera szereg elementów, które umożliwiają korzystanie z najpopularniejszych chipów czujników, urządzeń i innych usług.
Zapewnia również kompletne rozwiązanie do hostowania strony internetowej wewnątrz urządzenia zamiast korzystania z rozwiązania opartego na chmurze do wyświetlania danych z czujnika i interakcji z urządzeniem.
Kieszonkowe dzieci
Wszystko, czego potrzebujesz do zbudowania tego projektu, to płyta oparta na ESP8266, taka jak płyta nodemcu i zestaw czujników do pomiaru jakości powietrza. Biblioteka HomeDing używana w tym projekcie obsługuje niektóre z popularnych chipów czujników temperatury, wilgotności, ciśnienia i jakości. Tutaj zastosowano układ BMP680.
- Wtyczka USB i kabel micro-usb do zasilania.
- 1 płyta nodemcu z procesorem ESP8266.
- 1 tabliczka zaciskowa czujnika BME680.
- 1 laserowy czujnik cząstek powietrza PM2.5 typu PMS5003
Wymiana czujnika BME680 na czujnik DHT22 jest łatwa, ponieważ są one również obsługiwane m.in. przez bibliotekę.
Krok 1: Przygotuj środowisko Arduino dla ESP8266
- Zainstaluj najnowszą wersję Arduino IDE (obecnie wersja 1.8.2).
- Użyj Board Manager, aby zainstalować obsługę esp8266. Szczegółową instrukcję można znaleźć tutaj:
- Skonfiguruj opcje płyty dla NodeMCU 1.0 z 1MByte SPIFFS File System, jak pokazano na zrzucie ekranu
Krok 2: Uwzględnij wymagane biblioteki
Biblioteka HomeDing opiera się na kilku popularnych dodatkowych bibliotekach do pracy czujników i wyświetlaczy.
Po zainstalowaniu biblioteki HomeDing zobaczysz wyskakujące okienko z wymaganymi bibliotekami, które można zainstalować automatycznie, jak pokazano na rysunku, i łatwo je wszystkie zainstalować.
Czasami (z nieznanych przyczyn) instalacja bibliotek kończy się niepowodzeniem, więc wszystkie wymagane biblioteki należy zainstalować ręcznie.
Więcej szczegółów na temat wymaganych bibliotek można znaleźć na stronie dokumentacji pod adresem
Oto lista aktualnie wymaganych bibliotek:
- Adafruit NeoPixel
- LiquidCrystal_PCF8574.h
- Sterownik Oled ESP8266 i ESP32 do wyświetlacza SSD1306
- RotaryEncoder
- Biblioteka czujników DHT dla ESPx
- OneWire
Laserowy czujnik cząstek powietrza PMS5003 komunikuje się za pomocą sygnału linii szeregowej o szybkości 9600 bodów. Ten sygnał jest przechwytywany przy użyciu biblioteki SoftwareSerial dołączonej do instalacji narzędzi ESP8266. Upewnij się, że starsza wersja nie jest zainstalowana jako biblioteka.
Krok 3: Dostosuj standardowy przykładowy szkic
Przykład standardowy zawiera już niektóre z bardziej powszechnych czujników jako elementy, więc wymagana będzie tylko pewna konfiguracja.
Dotyczy to czujnika BME680 obsługiwanego przez element BME680.
Czujnik PMS5003 jest mniej powszechny i wymaga aktywacji poprzez włączenie elementu PMS do oprogramowania układowego. Odbywa się to poprzez zdefiniowanie #define HOMEDING_INCLUDE_PMS w sekcji rejestru elementów szkicu
#define HOMEDING_INCLUDE_BME680#define HOMEDING_INCLUDE_PMS
Dla uproszczenia dodawania nowego urządzenia do sieci możesz dodać SSID i hasło swojego domowego WiFi w pliku secrets.h obok pliku szkicu standard.ino. Ale możesz również użyć wbudowanego Menedżera WiFi, aby dodać urządzenie do sieci bez tej zakodowanej konfiguracji.
Teraz wszystko, co dotyczy implementacji szkicu, jest zrobione i można skompilować i wgrać oprogramowanie.
Krok 4: Prześlij interfejs sieciowy
Standardowy przykład zawiera folder danych, który zawiera wszystkie pliki dla internetowego interfejsu użytkownika.
Przed przesłaniem tych plików możesz dodać pliki env.json i config.json, które znajdziesz w tym artykule, ponieważ ułatwi to zadanie.
Zawartość tych plików sprawia, że urządzenie IoT jest wyjątkowe i zachowuje się jak czujnik jakości powietrza. Jest to szczegółowo wyjaśnione w tej historii.
Użyj narzędzia do przesyłania plików ESP8266 i prześlij wszystkie pliki. Potrzebuje ponownego uruchomienia, aby aktywować konfigurację.
Krok 5: Dodaj czujnik BME680
Czujnik BME680 komunikuje się z płytą za pomocą magistrali I2C.
Ponieważ jest to prawdopodobnie współdzielone z innymi rozszerzeniami, takimi jak inne czujniki lub wyświetlacze, jest konfigurowane na poziomie urządzenia w env.json wraz z nazwą sieciową urządzenia. Oto wyodrębniona próbka ustawień urządzenia i I2C:
"urządzenie": {
"0": { "name": "airding", "description": "Czujnik jakości powietrza", … "i2c-scl": "D2", "i2c-sda": "D1" } }
Na płytce stykowej widać przewody połączeniowe do czujnika: 3,3V=czerwony, GND=czarny, SCL=żółty, SDA=niebieski
Konfiguracja dla BME680 może być użyta w config.json:
"bme680": {
"bd": { "address": "0x77", "readtime": "10s" } }
Akcje dodamy później.
Aby przetestować konfigurację, po prostu użyj przeglądarki i otwórz https://airding/board.htm, a zobaczysz rzeczywiste wartości wyświetlanego czujnika i będą one aktualizowane co około 10 sekund:
Krok 6: Dodaj czujnik PMS5003
Nie dostałem czujnika ze złączem przyjaznym dla płytki stykowej, więc musiałem odciąć jedno ze złączy na kablu, użyć mojej lutownicy, aby bezpośrednio przymocować ją do płytki nodemcu. Widać to jeszcze na ostatnich zdjęciach.
Zasilanie dla tego czujnika musi być pobierane z Vin, który jest normalnie zasilany przez magistralę USB. GND jest takie samo, ale dostępne również obok pinu Vin.
Dane z czujnika przesyłane są w standardowym formacie szeregowym 9600 bodów, dlatego należy skonfigurować piny rx i tx oraz czas odczytu:
"po południu": {
"pm25": { "description": "czujnik cząstek pm25", "pinrx": "D6", "pintx": "D5", "readtime": "10s" } }
Akcje dodamy później.
Aby ponownie przetestować konfigurację, uruchom ponownie urządzenie i użyj przeglądarki i otwórz https://airding/board.htm, a zobaczysz rzeczywistą wartość pm35 wyświetlanego czujnika i będą one aktualizowane co około 10 sekund, ale ta wartość jest zwykle nie zmienia się często.
Możesz uzyskać wyższe wartości, umieszczając światło świecy obok czujnika, ponieważ świeca wytwarza większość tych cząstek.
Teraz możesz umieścić wszystko w ładnej obudowie, ponieważ wszystkie inne konfiguracje, a nawet aktualizacje oprogramowania można wykonać zdalnie.
Krok 7: Dodawanie niektórych funkcji sieciowych
Poniższy fragment konfiguracji w env.json jest włączony
- aktualizacja oprogramowania bezprzewodowo
- umożliwia wykrywanie sieci przy użyciu protokołu sieciowego SSDP i pobiera aktualny czas z serwera ntp.
{
… "ota": { "0": { "port": 8266, "passwd": "123", "description": "Nasłuchuj 'over the air' aktualizacji OTA" } }, "ssdp": { "0 ": { "Producent": "twoje imię" } }, "ntptime": { "0": { "readtime": "36h", "zone": 2 } } }
Powinieneś dostosować strefę czasową do swojej lokalizacji. Jeśli masz wątpliwości, możesz skorzystać ze strony internetowej https://www.timeanddate.com/, aby uzyskać przesunięcie z UTC/GMT. „2” jest odpowiednie dla czasu letniego w Niemczech.
Możesz również zmienić hasło ota po przeczytaniu instrukcji dotyczących trybu zapisu w dokumentacji na
Po restarcie możesz znaleźć urządzenie powietrzne w sieci, a po otrzymaniu odpowiedzi z serwera ntp dostępny jest czas lokalny.
Krok 8: Dodawanie rejestrowania
Tylko rzeczywiste wartości mogą nie być wystarczające, więc można użyć więcej elementów.
W przypadku tej historii element dziennika i element NPTTime są używane do rejestrowania historii wartości czujników w pliku dziennika, a karta internetowego interfejsu użytkownika tego elementu może wyświetlić ją w postaci wykresu.
Poniższa konfiguracja tworzy 2 elementy logarytmiczne dla gazu i cząstek:
{
"log": { "pm": { "description": "Dziennik pm25", "filename": "/pmlog.txt", "filesize": "10000" }, "aq": { "description": " Dziennik jakości gazu", "filename": "/aqlog.txt", "filesize": "10000" } } }
Krok 9: Działania
Teraz musimy przenieść rzeczywiste wartości do elementów dziennika za pomocą akcji. Akcje wykorzystują notację URL do przekazania kay i wartości do elementu docelowego. Wiele elementów obsługuje emitowanie akcji w określonych zdarzeniach, takich jak przechwytywanie nowej wartości czujnika.
Akcje są konfigurowane na elemencie, który emituje akcje Wymagane są 2 wpisy:
- Zdarzenie pms/p25 onvalue wysyła rzeczywistą wartość do elementu log/pm za pomocą akcji value.
- Zdarzenie bme680/bd ongas wysyła aktualną wartość do elementu log/pm za pomocą akcji value.
{
"pms": { "pm25": { … "onvalue": "log/pm?value=$v" } }, "bme680": { "bd": { … "ongas": "log/aq?value= $v" } } }
Teraz wszystkie elementy są skonfigurowane.
Krok 10: Zdjęcia i pliki konfiguracyjne
Oto kilka zdjęć mojego ostatniego czujnika jakości powietrza IoT.
Pliki konfiguracyjne do pobrania muszą zostać zmienione na *.json (bez.txt) przed przesłaniem.
Linki i referencje
- Repozytorium kodu źródłowego HomeDing:
- Dokumentacja:
- Przykład standardowy:
- Element BME680:
- Element PMS:
- Element dziennika:
- Element NtpTime:
Zalecana:
Czujnik jakości powietrza AEROBOT V1.0: 6 kroków (ze zdjęciami)
Czujnik jakości powietrza AEROBOT V1.0: Ta instrukcja dotyczy stworzenia niedrogiego i bardzo dokładnego czujnika jakości powietrza o nazwie AEROBOT. Ten projekt pokazuje temperaturę, wilgotność względną, gęstość pyłu PM 2,5 oraz alarmuje o jakości powietrza w otoczeniu. Wykorzystuje czujnik DHT11
Czujnik jakości powietrza za pomocą Arduino: 4 kroki
Czujnik jakości powietrza za pomocą Arduino: W tym poście dowiemy się, jak zbudować prosty, ale użyteczny czujnik jakości powietrza. Użyjemy czujnika SGP30 wraz z Piksey Pico, chociaż szkic będzie działał z prawie każdą płytą kompatybilną z Arduino. Powyższy film prowadzi Cię przez t
Niedrogi monitor jakości powietrza IoT oparty na RaspberryPi 4: 15 kroków (ze zdjęciami)
Niedrogi monitor jakości powietrza IoT oparty na RaspberryPi 4: Santiago, Chile podczas zimowej katastrofy środowiskowej ma przywilej życia w jednym z najpiękniejszych krajów na świecie, ale niestety to nie tylko róże. Chile w okresie zimowym bardzo cierpi z powodu zanieczyszczenia powietrza, mai
Czujnik jakości powietrza DIY + obudowa z nadrukiem 3D: 6 kroków
Zrób to sam czujnik jakości powietrza + obudowa z nadrukiem 3D: ten przewodnik zawiera wszystkie informacje potrzebne do stworzenia bardzo wydajnego, kieszonkowego czujnika
AirPi - czujnik jakości powietrza: 8 kroków
AirPi - Czujnik jakości powietrza: Czy kiedykolwiek zastanawiałeś się, dlaczego boli Cię głowa? A jeśli to z powodu złej jakości powietrza? Za pomocą tego urządzenia możesz sprawdzić, czy tak jest. To urządzenie mierzy wartość CO2, wartość TVOC, temperaturę i wilgotność. Możesz zobaczyć powietrze q