Inhaltsverzeichnis:
- Schritt 1: Materialien
- Schritt 2: Verbindungen
- Schritt 3: 3D-Druck
- Schritt 4: Code
- Schritt 5: Datenbank
- Schritt 6: Mit WLAN verbinden
- Schritt 7: Alles zusammenfügen
- Schritt 8: Starten Sie es
Video: AirPi - Luftqualitätssensor - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
Haben Sie sich jemals gefragt, warum Sie Kopfschmerzen bekommen? Und wenn dies auf eine schlechte Luftqualität zurückzuführen ist? Mit diesem Gerät können Sie überprüfen, ob dies der Fall ist. Dieses Gerät misst den CO2-Wert, TVOC-Wert, Temperatur und Luftfeuchtigkeit. Sie können die Luftqualität live auf dem LCD-Display sehen und erkennen, wenn es gefährlich wird. Auf diese Weise können Sie Ihre Fenster rechtzeitig öffnen.
Wenn Sie die IP-Adresse eingeben, die beim Starten des Geräts in Ihrem Browser angezeigt wird, wird die Website geöffnet. Sie können viele Informationen über das Raumklima zusammen mit Diagrammen der letzten Minuten / Stunden sehen. Es gibt auch eine Live-Anzeige und einige Informationen und Tipps auf dem Dashboard.
Dieses Projekt wurde von einem Studenten von Howest Kortrijk, NMCT (New Media and Communication Technology) erstellt.
Schritt 1: Materialien
Dies ist alles, was ich gekauft habe, um dieses Projekt zu erstellen. Dies ist ein relativ billiges Projekt, abhängig von den Kosten des 3D-Drucks. Wenn Sie es in der Schule ausdrucken können, kann dies sehr günstig sein. Ansonsten hängt es davon ab, wo Sie es drucken und auf welchem Material Sie es drucken. Sie werden feststellen, dass ich viel in großen Mengen gekauft habe, einfach weil es schwierig ist, einzelne Widerstände oder LEDs zu finden und das macht es noch billiger. Wenn Sie Zeit haben, können Sie die meisten Artikel auf aliexpress.com bestellen, die Lieferung kann eine Weile dauern, aber auf diese Weise können Sie Ihre Ausgaben begrenzen.
Ohne den Druck habe ich für dieses Projekt 81,80 € ausgegeben.
Dies sind die Materialien, die Sie benötigen:
Schaltkreis:
- Raspberry Pi 3
- SD-Karte 8 GB (mindestens)
- CCS811 Luftqualitätssensor
- DHT22 Temperatur- und Feuchtigkeitssensor
- Potentiometer (Kontrast-LCD)
- LCD 16x2
- Überbrückungsdrähte von Buchse zu Buchse
- Grüne und rote LED
- Widerstände (2x470 Ohm und 1 4700 Ohm)
Fall:
- 3D-Druck
- Schrauben
- 2 Komponenten Kleber (oder anderer Heißkleber)
- Gewindeschneidwerkzeug
Nur von Ihnen verwenden eine Leiterplatte:
- Lötkolben
- Flussmittel (macht es einfacher)
- Zinn
- Experimentierplatine 2x4cm
Schritt 2: Verbindungen
Schließen Sie die Drähte wie oben an. Sie können einen Stromkreis in der Fritzing-Datei sehen. Es ist keine sehr komplizierte Schaltung, aber wenn Sie sie so klein wie möglich machen möchten, möchten Sie auf jeden Fall eine Experimentierplatine bekommen. Die Verdrahtung wäre die gleiche, außer dass GND und Vin mit der Platine verbunden werden. Die Sensoren werden über weibliche Jumperdrähte oder Stecker mit Löten verbunden. Vergessen Sie nicht, den Widerstand am DHT22-Sensor anzulöten.
Ich empfehle auch kurze Kabel zu verwenden, 10cm sollten reichen. Sonst wäre die Box noch mehr mit Kabel gefüllt. Sie brauchen nicht sehr lange, da die Größe des Drucks so klein wie möglich gehalten wird.
Schritt 3: 3D-Druck
Der erste Gedanke, der mir in den Sinn kam, als ich über einen Fall nachdachte, war ein 3D-Druck. Da hatte mein Vater noch einige andere Sachen ausgedruckt und er hat sie selbst entworfen. Gemeinsam haben wir dieses Design entworfen und jeden Aspekt gelehrt. Es sollte gut genug gekühlt sein, alles lässt sich verschrauben und wenn nicht, kann es eingeschoben werden.
Wir haben sogar jede Komponente gezeichnet, um zu überprüfen, ob alles passt. Die Datei ist für alle verfügbar und wir würden uns über Feedback freuen. Wir waren mit dem Ergebnis sehr zufrieden.
Schritt 4: Code
Den Code für dieses Projekt finden Sie auf Github. Wenn Sie andere Pins verwendet haben (zum Beispiel einen anderen GPIO-Pin für die LEDs, müssen Sie diese Variablen anpassen. Es werden zwei Python-Skripte ausgeführt, web.py für die Website und sensor.py, um die Sensoren auszulesen und zu aktualisieren Wir werden die Klasse LCD von lcd.py importieren.
Mit einem konfigurierten Himbeer-Pi können Sie loslegen. Zuerst müssen Sie alle Pakete aktualisieren und aktualisieren:
sudo apt-get update && sudo apt-get upgrade
Danach müssen Sie die folgenden Pakete installieren:
sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3
Erstellen Sie nun eine virtuelle Umgebung:
me@my-rpi:~ $ python3 -m pip install --upgrade pip setuptools wheel virtualenv
me@my-rpi:~ $ mkdir project1 && cd project1 me@my-rpi:~/project1 $ python3 -m venv --system-site-packages env me@my-rpi:~/project1 $ source env/bin/ enable (env)me@my-rpi:~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib
Da dies erledigt ist, können Sie den Code von meinem GitHub in Ihre virtuelle Umgebung klonen. Dies kann auf mehrere Arten erfolgen.
Im Verzeichnis conf finden Sie vier Dateien, die Sie ggf. anpassen müssen. Sie müssen auf jeden Fall den Benutzer und das Heimatverzeichnis in jeder Datei ändern. Die uWSGI-Ini sollte in Ordnung sein, solange Sie meinen Code nicht geändert haben, stellen Sie sicher, dass Sie den Benutzer und virtualenv ändern, falls erforderlich.
Da der CCS811-Sensor absichtlich für das Arduino verwendet wurde, kann dieser nicht mit der Geschwindigkeit des Himbeer-Pi über den i2c-Bus kommunizieren. Sie müssen die Geschwindigkeit in der Konfigurationsdatei auf eine Baudrate von 10000 (ich habe 9600 verwendet) reduzieren.
Sie müssen auch die Bibliothek des Adafruit-Sensors besorgen. Ich könnte das hier erklären, aber es gibt einen perfekten Adafruit-Leitfaden, der das alles sehr gut erklärt.
Da wir möchten, dass die Python-Skripte automatisch ausgeführt werden, wenn die Himbeere verbunden ist, müssen Sie die Dienste verwenden. Sie sollten in Ordnung sein, wenn Sie meinen Code behalten. Alles, was Sie tun müssen, damit sie ausgeführt werden, ist sie zu aktivieren. Bevor Sie das tun, gibt es noch eine letzte Sache.
Da wir einen nginx-Webserver verwenden, müssen wir die Standardeinstellung deaktivieren und durch unsere eigene Konfiguration ersetzen. Dazu sollten diese Schritte befolgt werden:
- conf/nginx nach *sites-available* kopieren
- Entfernen Sie den Link zur Standardkonfiguration
- Fügen Sie einen Link zur neuen Konfiguration hinzu
- Starten Sie nginx neu, um die Änderungen zu speichern
me@my-rpi:~/project1 $ sudo cp conf/project1-*.service /etc/systemd/system/
me@my-rpi:~/project1 $ sudo systemctl daemon-reload me@my-rpi:~/project1 $ sudo systemctl start project1-* me@my-rpi:~/project1 $ sudo systemctl status project1-*
Nginx und MySQL sollten immer laufen. Sie starten zusammen mit dem Himbeer-Pi. Das Webscript und Sensorscript noch nicht.
Dazu müssen Sie diese beiden Dienste noch mit diesen Befehlen aktivieren:
sudo systemctl enable project1-flask.service
sudo systemctl enable project1-sensor.service
Schritt 5: Datenbank
Meine Datenbank besteht aus drei Tabellen. Der Benutzer hat keine Beziehung zu anderen Tabellen. Dies wird nur verwendet, um sich anzumelden und den Zugriff auf die Website zu gewähren. Beim Einschalten des Gerätes werden der CO2-Wert und der TVOC-Wert alle 50 Sekunden in die Datenbank geschrieben. Die Temperatur und Luftfeuchtigkeit alle 5 Minuten. So bekommen wir einen klaren Überblick über die Vergangenheit.
Die SQL-Datei ist hier zu finden, aber um die Datenbank auf dem Himbeer-Pi zu erhalten, sollten Sie diese Schritte ausführen:
Nach der Installation der Pakete im vorherigen Schritt sollte mariadb/mysql sofort laufen. Sie können dies mit dieser Zeile überprüfen:
me@my-rpi:~ $ sudo systemctl status mysql
Um die Datenbank und Benutzer zu erstellen, können Sie einfach die SQL-Skripte im Code von GitHub ausführen. Wenn Sie dies richtig gemacht haben, sollten Sie Ihre Tabellen mit diesem Befehl sehen:
me@my-rpi:~ $ echo 'Tabellen anzeigen;' | mysql project1 -t -u project1-admin -p
Jetzt sind wir fertig, Sie können dies ohne das Gehäuse testen, um sicherzustellen, dass alles funktioniert. Sofern Sie nicht mit WLAN verbunden sind, müssen Sie es mit einem Ethernet-Kabel verbinden und manuell ausführen.
Schritt 6: Mit WLAN verbinden
Öffnen Sie die wpa-supplicant-Konfigurationsdatei in nano (ist nicht wirklich wichtig, stellen Sie nur sicher, dass Sie mit dem Texteditor arbeiten können).
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Gehen Sie zum Ende der Datei und fügen Sie Folgendes hinzu (ersetzen Sie den ssid-Namen und den Passwortnamen durch Ihren):
Netzwerk={
ssid="ssid-name" psk="password-name" }
Um ein verschlüsseltes Passwort zu erstellen, können Sie wpa_passphrase verwenden und es einfach in die psk wpa_supplicant.conf kopieren, um die Sicherheit zu erhöhen.
wpa_passphrase "ssid-name" "password-name"
Wenn Sie möchten, dass es sich automatisch mit diesem Wi-Fi-Netzwerk verbindet und es andere in der Konfigurationsdatei gibt, stellen Sie sicher, dass Sie die Priorität auf eine höhere Stufe ändern, indem Sie diese Zeile zum Netzwerk in der Konfigurationsdatei hinzufügen:
Priorität=2
Vergessen Sie nicht, die Schnittstelle neu zu konfigurieren mit:
wpa_cli -i wlan0 neu konfigurieren
Jetzt sind Sie fertig und mit einem WLAN-Netzwerk verbunden.
Schritt 7: Alles zusammenfügen
Da alles verkabelt und verlötet ist, kommen wir zum Gehäuse. Dies wurde so konzipiert, dass Sie das Gehäuse ohne lose Kabel öffnen können. Das bedeutet, dass alles am unteren Teil befestigt ist. Das erste, was zu tun ist, ist eine kleine Anpassung an die Himbeere. Es hat an jeder Ecke Löcher, aber diese sind nicht so groß, wie sie sein sollten. Der Durchmesser sollte ausreichen, um eine 3mm Schraube hinein zu passen. Wir mussten die Löcher polieren, damit sie etwas breiter wurden.
Das zweite, was zu tun ist, ist ein Schraubengewinde in jedes Loch zu schneiden. Das mag hart klingen, ist aber mit den richtigen Werkzeugen leicht zu bewerkstelligen. Ich würde empfehlen, dies in einem örtlichen Baumarkt zu tun, fragen Sie einfach nach einem Gewindeschneidwerkzeug. Da mein Vater Goldschmied ist, hatte er die Werkzeuge, um dies bei der Arbeit zu tun. Ich könnte eine neue stl-Datei hochladen, damit diese später gedruckt wird, aber dies würde einen sehr genauen Drucker benötigen.
Der dritte Schritt besteht darin, den Pi auf das Unterteil zu schrauben. Sie benötigen 4 7 mm lange Schrauben mit einem Durchmesser von 3 mm. Danach können Sie die PCD-Platine in den dafür vorgesehenen Platz oben im Unterteil einschieben. Der Sensor CCS811 kann an der dafür vorgesehenen Stelle an der linken Seite eingeschoben und der DHT11 an der rechten Platte befestigt werden. Beide sind isoliert und ausreichend belüftet, aber hinterher merkten wir, dass es drinnen immer noch heiß wurde. Dazu später mehr.
Dann müssen Sie die LEDs an ihrer Röhre befestigen. Wir haben dies mit 2-Komponentenkleber gemacht, aber Sie können es tun, wie Sie möchten. Achten Sie darauf, dass sie dort kleben.
Jetzt können Sie das LCD-Display anbringen, Sie benötigen Schrauben mit dem gleichen Durchmesser wie die vorherigen, aber etwas länger. Meine waren 1cm. Sind die vier Schrauben eingeschraubt, bleibt nur noch eins zu tun. Befestigen Sie das Oberteil. Alles was Sie brauchen sind vier Schrauben mit dem gleichen Durchmesser und diese sind 2cm lang. Jetzt sollte alles an seinem Platz sein und Sie können es starten.
Schritt 8: Starten Sie es
Der Startvorgang dieses Projekts ist sehr einfach:
- Schließen Sie das Netzkabel an der linken Seite des Gehäuses an. Es ist nicht sehr sichtbar, aber man kann durch die Lüftungsschlitze sehen. Wenn Sie es einmal haben, ist dies kein Problem mehr.
- Geben Sie ihm etwas Zeit zum Starten.
- Die IP-Adresse wird zehn Sekunden lang auf dem Display angezeigt. Sie müssen lediglich sicherstellen, dass Sie mit demselben Netzwerk verbunden sind und die IP-Adresse in die Adressleiste Ihres Browsers eingeben.
- Sie befinden sich jetzt auf der Website. Sie haben noch kein Konto, also erstellen Sie ein Konto.
- Wenn Sie registriert sind, melden Sie sich an.
- Fertig! Sie können alle Daten auf der Webseite sehen und das LCD-Display zeigt die aktuelle Luftqualität an.
Da die Wärme steigt, haben wir die Sensoren an der Unterseite des Gehäuses angebracht. Auf diese Weise würde die Temperatur keinen großen Einfluss auf die registrierten Werte haben. Stellen Sie das Gerät also für optimale Messungen auf oder hängen Sie es einfach an die Wand.