Inhaltsverzeichnis:

Raspberry Pi Raumklima-Überwachungs- und -Steuerungssystem - Gunook
Raspberry Pi Raumklima-Überwachungs- und -Steuerungssystem - Gunook
Anonim
Raspberry Pi Raumklima-Überwachungs- und -Steuerungssystem
Raspberry Pi Raumklima-Überwachungs- und -Steuerungssystem
Raspberry Pi Raumklima-Überwachungs- und -Steuerungssystem
Raspberry Pi Raumklima-Überwachungs- und -Steuerungssystem

Die Menschen wollen es sich in ihrem Haus bequem machen. Da das Klima in unserer Gegend vielleicht nicht zu uns passt, verwenden wir viele Geräte, um ein gesundes Raumklima zu erhalten: Heizung, Luftkühler, Luftbefeuchter, Luftentfeuchter, Luftreiniger usw. Heutzutage sind einige Geräte mit automatischer Modus, um die Umgebung wahrzunehmen und sich selbst zu kontrollieren. Jedoch:

  • Viele von ihnen sind überteuert / das Geld nicht wert.
  • Ihre Stromkreise sind leichter zu unterbrechen und schwerer zu ersetzen als herkömmliche mechanische Teile
  • Die Geräte müssen über die App des Herstellers verwaltet werden. Es ist üblich, ein paar intelligente Geräte in Ihrem Haus zu haben und jedes von ihnen hat seine eigene App. Ihre Lösung besteht darin, die App in Plattformen wie Alexa, Google Assistant und IFTTT zu integrieren, sodass wir eine "zentralisierte" Steuerung haben
  • Am wichtigsten ist, dass die Hersteller unsere Daten haben und Google/Amazon/IFTTT/etc unsere Daten. Wir nicht. Privatsphäre ist Ihnen vielleicht egal, aber manchmal möchten wir vielleicht alle das Feuchtigkeitsmuster Ihres Schlafzimmers betrachten, um zu entscheiden, wann wir die Fenster öffnen sollen.

In diesem Tutorial baue ich einen Prototyp eines relativ kostengünstigen Raspberry Pi-basierten Indoor Climate Controllers. Das RPi kommuniziert mit der Peripherie über SPI/I2C/USB-Schnittstellen:

  • Ein atmosphärischer Sensor wird verwendet, um Temperatur, Feuchtigkeit und Luftdruck zu erfassen.
  • Ein hochpräziser Luftqualitätssensor liefert atmosphärische Feinstaubdaten (PM2,5 und PM10), die zur Berechnung des Luftqualitätsindex (AQI) verwendet werden.

Der Controller verarbeitet erfasste Daten und löst Geräteaktionen aus, indem er Anfragen an den IFTTT Webhook-Automatisierungsdienst sendet, der unterstützte WiFi Smart Plugs steuert.

Der Prototyp ist so aufgebaut, dass man problemlos weitere Sensoren, Geräte und Automatisierungsdienste hinzufügen kann.

Schritt 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Die empfohlene Hardware, um dies zu bauen:

  1. Ein Raspberry Pi (beliebige Version) mit WiFi. Ich baue dies mit RPi B+. RPi ZeroW würde gut funktionieren und ~15$ kosten
  2. Ein BME280-Sensor für Temperatur, Luftfeuchtigkeit, Luftdruck ~5$
  3. Ein Nova SDS011 Hochpräzisionslaser PM2.5 / PM10 Sensormodul zur Luftqualitätserkennung ~25$
  4. Ein LED/LCD-Display. Ich habe den SSD1305 2,23-Zoll-OLED-Bildschirm verwendet ~15$
  5. Einige WiFi/ZigBee/Z-Wave Smart Sockets. 10-20$ pro Stück
  6. Luftreiniger, Luftbefeuchter, Entfeuchter, Heizung, Kühler usw. mit mechanischen Schaltern. Zum Beispiel habe ich einen billigen Luftreiniger verwendet, um dieses Tutorial zu erstellen

Die oben genannten Gesamtkosten betragen <100 $, viel weniger als beispielsweise ein intelligenter Luftreiniger, der leicht 200 $ kosten könnte.

Schritt 2: Verdrahten des Raspbery Pi

Verkabelung des Raspberry Pi
Verkabelung des Raspberry Pi

Der Schaltplan zeigt, wie das RPi mit dem BME280-Sensor über die I2C-Schnittstelle und dem OLED-Display HAT über die SPI-Schnittstelle verdrahtet wird.

Der Waveshare OLED HAT könnte auf dem GPIO angebracht werden, aber Sie benötigen einen GPIO-Splitter, um ihn mit anderen Peripheriegeräten zu teilen. Es könnte für die Verwendung von I2C konfiguriert werden, indem die Widerstände auf der Rückseite gelötet werden.

Weitere Informationen zum SSD1305 OLED HAT finden Sie hier.

Sowohl I2C- als auch SPI-Schnittstellen müssen in RPi aktiviert werden mit:

sudo raspi-config

Der Nova SDS011 Staubsensor wird über einen USB-Port (mit einem Seriell-USB-Adapter) an RPi angeschlossen.

Schritt 3: Sammeln von Daten von den Sensoren

Die atmosphärischen Daten, die recht einfach aussehen, werden vom BME280-Sensor aus dem Python-Skript gesammelt.

21-Nov-20 19:19:25 - INFO - kompensiertes_lesen(id=6e2e8de5-6bc2-4929-82ab-0c0e3ef6f2d2, Zeitstempel=2020-11-21 19:19:25.604317, Temp=20.956 °C, Druck=1019.08 hPa, Luftfeuchtigkeit=49.23 % rH)

Die Daten des Staubsensors benötigen etwas mehr Verarbeitung. Das Sensormodul saugt einige Luftproben an, um Feinstaub zu erkennen, daher sollte es eine Weile (30 Sekunden) laufen, um zuverlässige Ergebnisse zu erhalten. Aus meiner Beobachtung betrachte ich nur den Durchschnitt der letzten 3 Stichproben. Der Prozess ist in diesem Skript verfügbar.

21-Nov-20 19:21:07 - DEBUG - 0. PM2.5: 2.8, PM10: 5.9

21-Nov-20 19:21:09 - DEBUG - 1. PM2.5: 2.9, PM10: 6.0 21.-Nov-20 19:21:11 - DEBUG - 2. PM2.5: 2.9, PM10: 6.0 21- 20. Nov. 19:21:13 - DEBUG - 3. PM2.5: 2.9, PM10: 6.3 21.-Nov. 19:21:15 - DEBUG - 4. PM2.5: 3.0, PM10: 6.2 21.-Nov. 20 19:21:17 - DEBUG - 5. PM2.5: 2.9, PM10: 6.4 21. Nov. 20 19:21:19 - DEBUG - 6. PM2.5: 3.0, PM10: 6.6 21. Nov. 20 19:21:21 - DEBUG - 7. PM2.5: 3.0, PM10: 6.8 21. Nov. 20 19:21:23 - DEBUG - 8. PM2.5: 3.1, PM10: 7.0 21. Nov. 20 19:21:25 - DEBUG - 9. PM2.5: 3.2, PM10: 7.0 21. Nov. 20 19:21:28 - DEBUG - 10. PM2.5: 3.2, PM10: 7.1 21. Nov. 20 19:21:30 - DEBUG - 11. PM2.5: 3.2, PM10: 6.9 21. Nov. 20 19:21:32 - DEBUG - 12. PM2.5: 3.3, PM10: 7.0 21. Nov. 20 19:21:34 - DEBUG - 13. PM2.5: 3.3, PM10: 7.1 21. Nov. 20 19:21:36 - DEBUG - 14. PM2.5: 3.3, PM10: 7.1

Der Staubsensor liefert nur den PM2.5- und PM10-Index. Um den AQI zu berechnen, benötigen wir das Python-Aqi-Modul:

aqi_index = aqi.to_aqi([(aqi. POLLUTANT_PM25, dust_data[0]), (aqi. POLLUTANT_PM10, dust_data[1])])

Datenerfassung, Anzeige und Gerätesteuerung werden gleichzeitig und asynchron ausgeführt. Die Daten werden in einer lokalen Datenbank gespeichert. Wir müssen sie nicht häufig ausführen, wenn sich die Umgebung nicht zu schnell ändert. Für mich reichen 15 min Pausenzeit. Darüber hinaus sammelt das Staubsensormodul im Inneren Staub an, sodass wir es nicht überbeanspruchen sollten, um die Reinigungsaufgabe zu vermeiden.

Schritt 4: Einrichten des Hausautomatisierungsdienstes

Einrichten des Heimautomatisierungsdienstes
Einrichten des Heimautomatisierungsdienstes
Einrichten des Heimautomatisierungsdienstes
Einrichten des Heimautomatisierungsdienstes

Es gibt viele Home-Automation-Plattformen auf dem Markt und sollten die Plattform installieren, die von der Smart-Steckdose unterstützt wird, die Sie haben. Wenn es Ihnen um den Datenschutz geht, sollten Sie Ihr eigenes System einrichten. Ansonsten können Sie die gängigen Plattformen verwenden, die von den meisten WiFi-Smart-Sockets unterstützt werden: Google Assistant, Alexa oder IFTTT. Versuchen Sie, die Socket-Plattform mit einer API für die Interaktion auszuwählen (Webhook ist für diesen Zweck perfekt)

Ich verwende IFTTT in diesem Tutorial, weil es auch für Neulinge sehr einfach zu bedienen ist. Aber seien Sie sich bewusst, dass: 1. es viele intelligente Sockets gibt, die IFTTT nicht unterstützen, und 2. Während ich dies schreibe, können Sie mit IFTTT nur 3 Applets (Automatisierungsaufgaben) kostenlos erstellen, was nur für 1. reicht Gerät.

Dies sind die Schritte:

1. Erstellen Sie zwei Applets in IFTTT zum Ein- und Ausschalten der Appliance mit dem Webhook-Dienst. Die Einzelheiten finden Sie hier.

2. Kopieren Sie den API-Schlüssel und kopieren Sie ihn in das Python-Skript. Ich würde vorschlagen, es aus Sicherheitsgründen in einer separaten Datei aufzubewahren.

3. Definieren Sie die Steuerlogik/Parameter im Hauptskript.

Schritt 5: Ergebnisse

Ergebnisse
Ergebnisse
Ergebnisse
Ergebnisse
Ergebnisse
Ergebnisse
Ergebnisse
Ergebnisse

OK, jetzt testen wir das System.

Das OLED-Display zeigt die aktuelle Temperatur, Luftfeuchtigkeit und den berechneten Luftqualitätsindex (AQI) an. Es zeigt auch den minimalen und maximalen Wert der letzten 12 Stunden an.

Die Zeitreihendaten des AQI in wenigen Tagen zeigen etwas Interessantes. Bemerken Sie die Anstiege des AQI-Musters? Es passierte zweimal am Tag, der kleine Höhepunkt gegen 12:00 Uhr und der hohe Höhepunkt gegen 19:00 Uhr. Nun, Sie haben es erraten, das war, als wir beim Kochen viel Feinstaub verteilten. Es ist interessant zu sehen, wie sich unsere tägliche Aktivität auf das Raumklima auswirkt.

Außerdem dauerte der letzte Anstieg der Zahl viel kürzer als die vorherigen. Dann fügen wir den Luftreiniger in das System ein. Der RPi-Klimaregler sendet die Anforderung PURIFIER_ON, wenn AQI>50 und PURIFIER_OFF, wenn AQI<20. Sie können den IFTTT-Webhook-Trigger zu diesem Zeitpunkt sehen.

Schritt 6: Fazit

Das ist es!

Die gesammelten Daten können auch zur Steuerung von Lufterhitzern, Kühlern, (Ent-)Luftbefeuchtern usw. verwendet werden. Sie müssen nur mehr smarte Steckdosen kaufen und jedes Altgerät wird „smart“.

Wenn Sie viele Geräte steuern möchten, müssen Sie sich eventuell genau überlegen, welchen Hausautomationsdienst Sie nutzen möchten. Ich würde dringend empfehlen, eine Open-Source-Heimautomatisierungsplattform einzurichten, aber wenn es zu kompliziert ist, gibt es einfachere Lösungen wie Google Assistant und IFTTT Webhook oder die Verwendung von Zigbee Smart Sockets.

Die vollständige Implementierung dieses Prototyps finden Sie im Github-Repository:

github.com/vuva/IndoorClimateControl

Spaß haben !!!

Empfohlen: