Spisu treści:
- Krok 1: Sprzęt
- Krok 2: Okablowanie Raspbery Pi
- Krok 3: Zbieranie danych z czujników
- Krok 4: Konfiguracja usługi automatyki domowej
- Krok 5: Wyniki
- Krok 6: Wniosek
Wideo: System monitorowania i kontroli klimatu w pomieszczeniach Raspberry Pi: 6 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:26
Ludzie chcą czuć się komfortowo w swoim domu. Ponieważ klimat w naszej okolicy może nam nie odpowiadać, używamy wielu urządzeń do utrzymania zdrowego środowiska wewnętrznego: grzejnika, chłodnicy powietrza, nawilżacza, osuszacza, oczyszczacza itp. W dzisiejszych czasach często można spotkać niektóre urządzenia wyposażone w auto- tryb wyczuwania otoczenia i kontrolowania siebie. Jednakże:
- Wiele z nich jest zawyżonych / nie wartych swojej ceny.
- Ich obwody elektryczne są łatwiejsze do zerwania i trudniejsze do wymiany niż konwencjonalne części mechaniczne
- Urządzenia muszą być zarządzane przez aplikację producenta. Często w domu jest kilka inteligentnych urządzeń, a każde z nich ma swoją własną aplikację. Ich rozwiązaniem jest integracja aplikacji z platformami takimi jak Alexa, Google Assistant i IFTTT, dzięki czemu mamy „scentralizowany” kontroler
- Co najważniejsze, producenci mają nasze dane, a Google/Amazon/IFTTT/itp. nasze dane. My nie. Możesz nie dbać o prywatność, ale czasami wszyscy możemy chcieć przyjrzeć się rozkładowi wilgotności w Twojej sypialni, na przykład, aby zdecydować, o której godzinie otworzyć okna.
W tym samouczku zbuduję prototyp stosunkowo niedrogiego kontrolera klimatu wewnętrznego opartego na Raspberry Pi. RPi komunikuje się z urządzeniami peryferyjnymi poprzez interfejsy SPI/I2C/USB:
- Czujnik atmosferyczny służy do pomiaru temperatury, wilgotności i ciśnienia powietrza.
- Precyzyjny czujnik jakości powietrza dostarcza dane dotyczące cząstek stałych (PM2,5 i PM10) wykorzystywane do obliczania wskaźnika jakości powietrza (AQI)
Kontroler przetwarza pozyskane dane i uruchamia działania urządzenia, wysyłając żądania do usługi automatyzacji IFTTT Webhook, która kontroluje obsługiwane wtyczki WiFi Smart.
Prototyp jest zbudowany w taki sposób, aby można było łatwo dodawać kolejne czujniki, urządzenia i usługi automatyki.
Krok 1: Sprzęt
Zalecany sprzęt do zbudowania tego:
- Raspberry Pi (dowolna wersja) z WiFi. Buduję to za pomocą RPi B+. RPi ZeroW poradzi sobie dobrze i kosztuje ~15 $
- Czujnik BME280 do pomiaru temperatury, wilgotności, ciśnienia powietrza ~5$
- Moduł czujnika wykrywania jakości powietrza Nova SDS011 High Precision Laser PM2.5 / PM10
- Wyświetlacz LED/LCD. Użyłem ekranu OLED SSD1305 2,23 cala ~15$
- Niektóre inteligentne gniazda WiFi/ZigBee/Z-Wave. 10-20 $ każdy
- Oczyszczacz powietrza, nawilżacz, osuszacz, nagrzewnica, chłodnica itp. z wyłącznikami mechanicznymi. Na przykład użyłem taniego oczyszczacza powietrza do wykonania tego samouczka
Powyższy całkowity koszt to <100$, czyli znacznie mniej niż np. inteligentny oczyszczacz, który mógłby kosztować 200$.
Krok 2: Okablowanie Raspbery Pi
Schemat obwodu pokazuje, jak połączyć RPi z czujnikiem BME280 za pomocą interfejsu I2C i wyświetlacza OLED HAT za pomocą interfejsu SPI.
Waveshare OLED HAT może być przymocowany na górze GPIO, ale potrzebujesz rozdzielacza GPIO, aby udostępnić go innym urządzeniom peryferyjnym. Można go skonfigurować do korzystania z I2C, lutując rezystory z tyłu.
Więcej informacji na temat SSD1305 OLED HAT można znaleźć tutaj.
Zarówno interfejsy I2C, jak i SPI muszą być włączone w RPi z:
sudo raspi-config
Czujnik pyłu Nova SDS011 jest podłączony do RPi przez port USB (za pomocą adaptera Serial-USB).
Krok 3: Zbieranie danych z czujników
Dane atmosferyczne, które wyglądają dość prosto, są zbierane z czujnika BME280 ze skryptu Pythona.
21-lis-20 19:19:25 - INFO - odczyt_kompensowany(id=6e2e8de5-6bc2-4929-82ab-0c0e3ef6f2d2, znacznik czasu=2020-11-21 19:19:25.604317, temp=20,956 °C, ciśnienie=1019,08 hPa, wilgotność=49,23 % rH)
Dane czujnika kurzu wymagają nieco więcej przetwarzania. Moduł czujnika zasysa niektóre próbki powietrza w celu wykrycia cząstek stałych, więc powinien działać przez chwilę (30 sekund), aby uzyskać wiarygodne wyniki. Z moich obserwacji rozważam tylko średnią z ostatnich 3 próbek. Proces jest dostępny w tym skrypcie.
21.11.20 19:21:07 - DEBUGOWANIE - 0. PM2.5: 2.8, PM10: 5.9
21.11.20 19:21:09 - DEBUGOWANIE - 1. PM2.5: 2.9, PM10: 6.0 21.11.20 19:21:11 - DEBUGOWANIE - 2. PM2.5: 2.9, PM10: 6.0 21- 20 listopada 19:21:13 - DEBUGOWANIE - 3. PM2.5: 2.9, PM10: 6.3 21-listopad-20 19:21:15 - DEBUGOWANIE - 4. PM2.5: 3.0, PM10: 6.2 21-listo- 20 19:21:17 - DEBUGOWANIE - 5. PM2.5: 2.9, PM10: 6.4 21.11.20 19:21:19 - DEBUGOWANIE - 6. PM2.5: 3.0, PM10: 6.6 21.11.20 19:21:21 - DEBUGOWANIE - 7. PM2.5: 3.0, PM10: 6.8 21-lis-20 19:21:23 - DEBUGOWANIE - 8. PM2.5: 3.1, PM10: 7.0 21.11.20 19:21:25 - DEBUGOWANIE - 9. PM2.5: 3.2, PM10: 7.0 21-lis-20 19:21:28 - DEBUGOWANIE - 10. PM2.5: 3.2, PM10: 7.1 21-lis-20 19:21:30 - DEBUGOWANIE - 11. PM2.5: 3.2, PM10: 6.9 21-lis-20 19:21:32 - DEBUGOWANIE - 12. PM2.5: 3.3, PM10: 7.0 21-lis-20 19:21:34 - DEBUGOWANIE - 13. PM2.5: 3.3, PM10: 7.1 21.11.20 19:21:36 - DEBUGOWANIE - 14. PM2.5: 3.3, PM10: 7.1
Czujnik kurzu dostarcza tylko indeks PM2,5 i PM10. Do obliczenia AQI potrzebujemy modułu python-aqi:
aqi_index = aqi.to_aqi([(aqi. POLLUTANT_PM25, dust_data[0]), (aqi. POLLUTANT_PM10, dust_data[1])])
Zbieranie, wyświetlanie i sterowanie urządzeniami są wykonywane jednocześnie i asynchronicznie. Dane zapisywane są w lokalnej bazie danych. Nie musimy ich często uruchamiać, jeśli środowisko nie zmienia się zbyt szybko. Dla mnie wystarczy 15 minut przerwy. Ponadto moduł czujnika kurzu gromadzi kurz wewnątrz, więc nie należy go nadużywać, aby uniknąć zadania czyszczenia.
Krok 4: Konfiguracja usługi automatyki domowej
Istnieje wiele platform automatyki domowej i należy zainstalować platformę obsługiwaną przez inteligentne gniazdo, które posiadasz. Jeśli martwisz się o prywatność, powinieneś założyć własny system. W przeciwnym razie możesz skorzystać z popularnych platform obsługiwanych przez większość inteligentnych gniazd WiFi: Google Assistant, Alexa lub IFTTT. Spróbuj wybrać platformę gniazd z interfejsem API do interakcji (Webhook jest do tego idealny)
Używam IFTTT w tym samouczku, ponieważ jest bardzo łatwy w użyciu nawet dla początkujących. Ale pamiętaj, że: 1. istnieje wiele inteligentnych gniazdek, które nie obsługują IFTTT, oraz 2. W chwili, gdy to piszę, IFTTT pozwala na utworzenie tylko 3 apletów (zadań automatyzacji) za darmo, co wystarcza tylko na 1 urządzenie.
Oto kroki:
1. Utwórz dwa aplety w IFTTT do włączania i wyłączania urządzenia za pomocą usługi Webhook. Szczegóły znajdziesz tutaj.
2. Skopiuj klucz API i skopiuj go do skryptu Pythona. Ze względów bezpieczeństwa sugeruję przechowywanie go w osobnym pliku.
3. Zdefiniuj logikę/parametry sterowania w skrypcie głównym.
Krok 5: Wyniki
OK, teraz testujemy system.
Wyświetlacz OLED pokazuje aktualną temperaturę, wilgotność i obliczony wskaźnik jakości powietrza (AQI). Wyświetla również minimalną i maksymalną wartość z ostatnich 12 godzin.
Dane szeregów czasowych AQI za kilka dni pokazują coś interesującego. Zauważasz skoki we wzorze AQI? Zdarzało się to dwa razy dziennie, mały szczyt około 12:00, a wysoki około 19:00. Cóż, zgadliście, to było wtedy, gdy gotowaliśmy, rozprowadzając wokół siebie dużo cząstek stałych. Ciekawie jest zobaczyć, jak nasza codzienna aktywność wpływa na środowisko wewnętrzne.
Również ostatni wzrost liczby trwał znacznie krócej niż poprzednie. wtedy dodamy do systemu oczyszczacz powietrza. Sterownik klimatu RPi wysyła żądanie PURIFIER_ON, gdy AQI>50 i PURIFIER_OFF, gdy AQI<20. Możesz wtedy zobaczyć wyzwalacz IFTTT Webhook.
Krok 6: Wniosek
Otóż to!
Zgromadzone dane można również wykorzystać do sterowania nagrzewnicami powietrza, chłodnicami, (de)nawilżaczami itp. Wystarczy dokupić więcej inteligentnych gniazdek, a każde stare urządzenie stanie się „inteligentne”.
Jeśli chcesz sterować wieloma urządzeniami, być może będziesz musiał dokładnie rozważyć, z której usługi automatyki domowej chcesz skorzystać. Gorąco sugerowałbym utworzenie platformy automatyki domowej typu open source, ale jeśli jest to zbyt skomplikowane, istnieją prostsze rozwiązania, takie jak Google Assistant i IFTTT Webhook lub użycie inteligentnych gniazd Zigbee.
Pełną implementację tego prototypu można znaleźć w repozytorium Github:
github.com/vuva/IndoorClimateControl
Baw się dobrze !!!
Zalecana:
Miernik jakości powietrza w pomieszczeniach: 5 kroków (ze zdjęciami)
Miernik jakości powietrza w pomieszczeniu: Prosty projekt sprawdzania jakości powietrza w twoim domu. Ponieważ ostatnio często pracujemy w domu, dobrym pomysłem może być monitorowanie jakości powietrza i przypominanie sobie, kiedy nadszedł czas, aby otworzyć okno i zaczerpnij świeżego powietrza?
System monitorowania i kontroli wilgotności gleby oparty na IoT za pomocą NodeMCU: 6 kroków
System monitorowania i kontroli wilgotności gleby oparty na IoT przy użyciu NodeMCU: W tym samouczku zaimplementujemy system monitorowania i kontroli wilgotności gleby oparty na IoT przy użyciu modułu WiFi ESP8266, tj. NodeMCU. Moduł przekaźnika INR – Amazon (130/- INR
Oparty na Raspberry Pi system monitorowania klimatu w pomieszczeniach: 6 kroków
Oparty na Raspberry Pi system monitorowania klimatu w pomieszczeniach: Przeczytaj ten blog i zbuduj własny system, aby otrzymywać powiadomienia, gdy w pomieszczeniu jest zbyt sucho lub wilgotno. Czym jest system monitorowania klimatu w pomieszczeniach i dlaczego go potrzebujemy? Systemy monitorowania klimatu w pomieszczeniach szybko rzucić okiem na kluczowe warunki klimatyczne
Hydroponiczny system monitorowania i kontroli szklarni: 5 kroków (ze zdjęciami)
Hydroponiczny system monitorowania i kontroli szklarni: W tej instrukcji pokażę, jak zbudować hydroponiczny system monitorowania i kontroli szklarni. Pokażę wybrane komponenty, schemat elektryczny budowy obwodu oraz szkic Arduino użyty do zaprogramowania Seeeda
Prosty system monitorowania i kontroli zmętnienia mikroalg: 4 kroki
Prosty system monitorowania i kontroli zmętnienia dla mikroalg: powiedzmy, że jesteś znudzony próbkowaniem wody w celu pomiaru zmętnienia, ogólnego określenia wskazującego na wszelkie małe, zawieszone cząstki w wodzie, które zmniejszają natężenie światła przy rosnącej drodze światła lub wyższej cząstce koncentracja lub jedno i drugie