Spisu treści:

System monitorowania i kontroli klimatu w pomieszczeniach Raspberry Pi: 6 kroków
System monitorowania i kontroli klimatu w pomieszczeniach Raspberry Pi: 6 kroków

Wideo: System monitorowania i kontroli klimatu w pomieszczeniach Raspberry Pi: 6 kroków

Wideo: System monitorowania i kontroli klimatu w pomieszczeniach Raspberry Pi: 6 kroków
Wideo: PADŁ i NIE WSTAJE 💀 DOMOTICZ MONIT Tutorial 2024, Listopad
Anonim
System monitorowania i kontroli klimatu w pomieszczeniach Raspberry Pi
System monitorowania i kontroli klimatu w pomieszczeniach Raspberry Pi
System monitorowania i kontroli klimatu w pomieszczeniach Raspberry Pi
System monitorowania i kontroli klimatu w pomieszczeniach Raspberry Pi

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

Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy

Zalecany sprzęt do zbudowania tego:

  1. Raspberry Pi (dowolna wersja) z WiFi. Buduję to za pomocą RPi B+. RPi ZeroW poradzi sobie dobrze i kosztuje ~15 $
  2. Czujnik BME280 do pomiaru temperatury, wilgotności, ciśnienia powietrza ~5$
  3. Moduł czujnika wykrywania jakości powietrza Nova SDS011 High Precision Laser PM2.5 / PM10
  4. Wyświetlacz LED/LCD. Użyłem ekranu OLED SSD1305 2,23 cala ~15$
  5. Niektóre inteligentne gniazda WiFi/ZigBee/Z-Wave. 10-20 $ każdy
  6. 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

Okablowanie Raspbery Pi
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

Konfigurowanie usługi automatyki domowej
Konfigurowanie usługi automatyki domowej
Konfigurowanie usługi automatyki domowej
Konfigurowanie 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

Wyniki
Wyniki
Wyniki
Wyniki
Wyniki
Wyniki
Wyniki
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: