Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Himbeer-Pi
- Schritt 2: Sensoren
- Schritt 3: Raspberry Pi-Setup
- Schritt 4: Anfangsstatuskonto
- Schritt 5: DHT22-Lösung
- Schritt 6: DSB18B20-Lösung
- Schritt 7: BME280-Lösung
- Schritt 8: Sense HAT
- Schritt 9: Passen Sie Ihr Initial State Dashboard an
Video: So bauen Sie einen Raspberry Pi-Temperaturmonitor – wikiHow
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Temperatur und Luftfeuchtigkeit sind wichtige Datenpunkte in der heutigen Industriewelt. Die Überwachung von Umgebungsdaten für Serverräume, gewerbliche Tiefkühltruhen und Produktionslinien ist notwendig, um einen reibungslosen Ablauf zu gewährleisten. Es gibt viele Lösungen, von einfach bis komplex, und es kann überwältigend erscheinen, was Ihr Unternehmen braucht und wo Sie anfangen sollen.
Wir werden durchgehen, wie Sie die Temperatur mit einem Raspberry Pi und verschiedenen Temperatursensoren überwachen, die Sie verwenden können. Dies ist ein guter Anfang, da diese Lösungen kostengünstig und einfach durchzuführen sind und Ihnen eine Grundlage für andere Umgebungsüberwachungen bieten.
Lieferungen
- Raspberry Pi (3, 4 oder Zero WH)
- Temperatursensor (DHT2, DSB18B20, BME280 oder Sense HAT)
- 6" 40-Pin IDE-Stecker auf Buchse Verlängerungskabel (Sense HAT-Lösung)
- 10K-Widerstand, Steckbrett, 40-Pin-Breakout-Platine + Flachbandkabel, Drähte (für DSB18B20-Lösung)
Schritt 1: Himbeer-Pi
Ein Raspberry Pi ist ein kostengünstiger Einplatinencomputer, mit dem Sie einen Temperatursensor anschließen und die Daten an eine Datenvisualisierungssoftware streamen können. Raspberry Pi begann als Lernwerkzeug und hat sich zu einem industriellen Arbeitsplatzwerkzeug entwickelt. Die Benutzerfreundlichkeit und die Möglichkeit, mit Python, der am schnellsten wachsenden Programmiersprache, zu programmieren, haben sie zu einer Lösung gemacht.
Sie möchten einen Raspberry Pi mit integriertem WLAN, bei dem es sich um ein beliebiges Modell 3, 4 und null W/Wh handelt. Zwischen diesen können Sie je nach Preis und Funktionen wählen. Der Zero W/WH ist der günstigste, aber wenn Sie mehr Funktionalität benötigen, können Sie zwischen 3 und 4 wählen. Aufgrund von Einschränkungen durch die Raspberry Pi Foundation können Sie nur einen Zero W/WH gleichzeitig kaufen. Egal für welchen Pi Sie sich entscheiden, stellen Sie sicher, dass Sie ein Ladegerät kaufen, da Sie so den Pi und eine SD-Karte mit Raspbian mit Strom versorgen, um die Installation des Betriebssystems so einfach wie möglich zu machen.
Es gibt andere Einplatinencomputer, die auch funktionieren können, aber das ist für eine andere Zeit und einen anderen Artikel.
Schritt 2: Sensoren
Es gibt drei Sensoren, die wir empfehlen, da sie kostengünstig sind, einfach anzuschließen sind und genaue Messwerte liefern. DSB18B20, DHT22 und Raspberry Pi Sense HAT.
DHT22 - Dieser Temperatur- und Feuchtigkeitssensor hat eine Temperaturgenauigkeit von +/- 0,5 C und einen Feuchtigkeitsbereich von 0 bis 100 Prozent. Es ist einfach mit dem Raspberry Pi zu verdrahten und benötigt keine Pull-Up-Widerstände.
DSB18B20 - Dieser Temperatursensor hat einen digitalen Ausgang, der gut mit dem Raspberry Pi funktioniert. Es hat drei Drähte und benötigt ein Steckbrett und einen Widerstand für die Verbindung.
BME280 - Dieser Sensor misst Temperatur, Feuchtigkeit und Luftdruck. Es kann sowohl in SPI als auch in I2C verwendet werden.
Sense HAT – Dies ist ein Add-On-Board für Raspberry Pi mit LEDs, Sensoren und einem winzigen Joystick. Es wird direkt mit dem GPIO auf dem Raspberry Pi verbunden, aber mit einem Flachbandkabel erhalten Sie genauere Temperaturmessungen.
Schritt 3: Raspberry Pi-Setup
Wenn Sie Ihren Raspberry Pi zum ersten Mal einrichten, müssen Sie das Raspbian-Betriebssystem installieren und Ihren Pi mit WLAN verbinden. Dies erfordert einen Monitor und eine Tastatur, um eine Verbindung zum Pi herzustellen. Sobald Sie es eingerichtet und mit dem WLAN verbunden haben, ist Ihr Pi einsatzbereit.
Schritt 4: Anfangsstatuskonto
Sie müssen Ihre Daten irgendwohin senden, um ein historisches Protokoll zu führen und den Echtzeit-Datenstrom anzuzeigen, damit wir den Initial State verwenden. Gehen Sie zu https://iot.app.initialstate.com und erstellen Sie ein neues Konto oder melden Sie sich bei Ihrem bestehenden Konto an.
Als nächstes müssen wir das Initial State Python-Modul auf Ihrem Pi installieren. Führen Sie an einer Eingabeaufforderung (vergessen Sie nicht, zuerst eine SSH-Verbindung zu Ihrem Pi herzustellen) den folgenden Befehl aus:
$ cd /home/pi/
$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash
Nachdem Sie den curl-Befehl in der Eingabeaufforderung eingegeben haben, sehen Sie etwas Ähnliches wie die folgende Ausgabe auf dem Bildschirm:
pi@raspberrypi ~
$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash Passwort: Beginnen mit ISStreamer Python Einfache Installation! Die Installation kann ein paar Minuten dauern, trinken Sie einen Kaffee:) Aber vergessen Sie nicht, wiederzukommen, ich werde später Fragen haben! Gefunden easy_install: setuptools 1.1.6 Gefunden pip: pip 1.5.6 aus /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip Hauptversion: 1 pip Nebenversion: 5 ISStreamer gefunden, aktualisiert… Anforderung bereits aktuell: ISStreamer in /Library/Python/2.7/site-packages Aufräumen… Möchten Sie automatisch ein Beispielskript erhalten? [y/N] Wo möchten Sie das Beispiel speichern? [default:./is_example.py] Bitte wählen Sie aus, welche Initial State App Sie verwenden: 1. app.initialstate.com 2. [NEU!] iot.app.initialstate.com Geben Sie Auswahl 1 oder 2 ein: Geben Sie iot.app ein.initialstate.com-Benutzername: Geben Sie das iot.app.initialstate.com-Passwort ein:
Wenn Sie aufgefordert werden, automatisch ein Beispielskript abzurufen, geben Sie y ein. Dadurch wird ein Testskript erstellt, das wir ausführen können, um sicherzustellen, dass wir Daten in den Initial State streamen können. Die nächste Eingabeaufforderung fragt, wo Sie die Beispieldatei speichern möchten. Sie können entweder einen benutzerdefinierten lokalen Pfad eingeben oder die Eingabetaste drücken, um den Standardspeicherort zu akzeptieren. Schließlich werden Sie gefragt, welche Initial State App Sie verwenden. Wenn Sie kürzlich ein Konto erstellt haben, wählen Sie Option 2 und geben Sie Ihren Benutzernamen und Ihr Passwort ein. Danach ist die Installation abgeschlossen.
Schauen wir uns das erstellte Beispielskript an.
$ nano is_example.py
In Zeile 15 sehen Sie eine Zeile, die mit streamer = Streamer(bucket_ …) beginnt. Diese Zeile erstellt einen neuen Daten-Bucket namens „Python Stream Example“und ist mit Ihrem Konto verknüpft. Diese Zuordnung erfolgt aufgrund des access_key=“…“Parameter in derselben Zeile. Diese lange Reihe von Buchstaben und Zahlen ist Ihr Zugangsschlüssel für das Initial State-Konto. Wenn Sie in Ihrem Webbrowser zu Ihrem Initial State-Konto gehen, klicken Sie oben rechts auf Ihren Benutzernamen und dann auf "Meine Einstellungen"., finden Sie denselben Zugangsschlüssel hier unter „Streaming-Zugangsschlüssel“.
Jedes Mal, wenn Sie einen Datenstrom erstellen, leitet dieser Zugriffsschlüssel diesen Datenstrom an Ihr Konto weiter (geben Sie Ihren Schlüssel also nicht an Dritte weiter).
Führen Sie das Testskript aus, um sicherzustellen, dass wir einen Datenstrom zu Ihrem Initial State-Konto erstellen können. Führen Sie Folgendes aus:
$ python is_example.py
Gehen Sie in Ihrem Webbrowser zu Ihrem Initial State-Konto zurück. Ein neuer Daten-Bucket namens „Python Stream Example“sollte links in Ihrem Log-Regal angezeigt werden (möglicherweise müssen Sie die Seite aktualisieren). Klicken Sie auf diesen Bucket und dann auf das Waves-Symbol, um die Testdaten anzuzeigen
Wenn Sie Python 3 verwenden, können Sie das Initial State Streamer Module installieren, das Sie mit dem folgenden Befehl installieren können:
pip3 ISStreamer installieren
Jetzt können wir den Temperatursensor mit dem Pi einrichten, um die Temperatur an ein Dashboard zu übertragen.
Schritt 5: DHT22-Lösung
Der DHT22 hat drei Pins - 5V, Gnd und Daten. Am DHT22 sollte eine Pin-Beschriftung für die Stromversorgung vorhanden sein (z. B. „+“oder „5V“). Verbinden Sie diese mit Pin 2 (der obere rechte Pin, 5V) des Pi. Der Gnd-Pin wird mit „-“oder „Gnd“oder etwas Ähnlichem beschriftet. Verbinden Sie dies mit Pin 6 Gnd (zwei Pins unter dem 5V-Pin) auf dem Pi. Der verbleibende Pin am DHT22 ist der Daten-Pin und wird mit „out“oder „s“oder „data“beschriftet. Verbinden Sie dies mit einem der GPIO-Pins auf dem Pi wie GPIO4 (Pin 7). Sobald dies verkabelt ist, schalten Sie Ihren Pi ein.
Installieren Sie das Adafruit DHT Python-Modul an einer Eingabeaufforderung, um das Lesen der DHT22-Sensordaten ganz einfach zu machen:
$ sudo pip install Adafruit_DHT
Nachdem unser Betriebssystem zusammen mit unseren beiden Python-Modulen zum Lesen von Sensordaten und zum Senden von Daten an den Initial State installiert ist, können wir unser Python-Skript schreiben. Das folgende Skript erstellt/angehängt an einen Anfangszustandsdaten-Bucket, liest die DHT22-Sensordaten und sendet diese Daten an ein Echtzeit-Dashboard. Sie müssen lediglich die Zeilen 6–11 ändern.
Adafruit_DHT importieren
from ISStreamer. Streamer import Streamer import time# --------- Benutzereinstellungen --------- SENSOR_LOCATION_NAME = "Office" BUCKET_NAME = ":partly_sunny: Room Temperatures" BUCKET_KEY = "rt0129" ACCESS_KEY = "PLATZIEREN SIE IHREN ANFANGSSTATE-ZUGRIFFSSCHLÜSSEL HIER" MINUTES_BETWEEN_READS = 10METRIC_UNITS = Falsch # --------------------------------- streamer = Streamer(bucket_name=BUCKET_NAME, Bucket_key=BUCKET_KEY, access_key=ACCESS_KEY) während True: Luftfeuchtigkeit, temp_c = Adafruit_DHT.read_retry(Adafruit_DHT. DHT22, 4) if METRIC_UNITS: streamer.log(SENSOR_LOCATION_NAME + "Temperatur_c).temp: temp_f = format(temp_c * 9.0 / 5.0 + 32.0, ".2f") streamer.log(SENSOR_LOCATION_NAME + " Temperature(F)", temp_f) Luftfeuchtigkeit = format(humidity, ".2f") streamer.log(SENSOR_LOCATION_NAME + " Feuchtigkeit(%)", Feuchtigkeit) streamer.flush() time.sleep(60*MINUTES_BETWEEN_READS)
- Zeile 6 - Dieser Wert sollte für jeden Knoten/Temperatursensor eindeutig sein. Dies kann der Raumname Ihres Sensorknotens, der physische Standort, die eindeutige Kennung oder was auch immer sein. Stellen Sie nur sicher, dass es für jeden Knoten eindeutig ist, um sicherzustellen, dass die Daten von diesem Knoten in einen eigenen Datenstrom in Ihrem Dashboard gehen.
- Zeile 7 - Dies ist der Name des Daten-Buckets. Dies kann jederzeit im Initial State UI geändert werden.
- Zeile 8 - Dies ist Ihr Bucket-Schlüssel. Es muss für jeden Knoten, der im selben Dashboard angezeigt werden soll, derselbe Bucket-Schlüssel sein.
- Zeile 9 - Dies ist Ihr Zugangsschlüssel für das Initial State-Konto. Kopieren Sie diesen Schlüssel aus Ihrem Initial State-Konto und fügen Sie ihn ein.
- Zeile 10 - Dies ist die Zeit zwischen den Sensorauslesungen. Entsprechend ändern.
- Zeile 11 - In Zeile 11 können Sie metrische oder imperiale Einheiten angeben.
Nachdem Sie die Zeilen 6–11 in Ihrem Python-Skript auf Ihrem Pi festgelegt haben, speichern und beenden Sie den Texteditor. Führen Sie das Skript mit dem folgenden Befehl aus:
$ python tempsensor.py
Jetzt haben Sie die Möglichkeit, Daten an ein Dashboard für den Anfangszustand zu senden. Im letzten Abschnitt dieses Artikels erfahren Sie, wie Sie Ihr Dashboard anpassen.
Schritt 6: DSB18B20-Lösung
Das Flachbandkabel wird an die GPIO-Pins des Pi angeschlossen. Der DS18B20 hat drei Drähte. Das rote Kabel wird an 3,3 V angeschlossen. Das blau/schwarze Kabel ist mit Masse verbunden. Das gelbe Kabel wird mit einem Pull-Up-Widerstand / Pin 4 verbunden. Sobald dieser verdrahtet ist, schalten Sie Ihren Pi ein.
Die neueste Version von Raspbian (Kernel 3.18) erfordert eine Ergänzung Ihrer Datei /boot/config.txt, damit der Pi mit dem DS18B20 kommunizieren kann. Führen Sie Folgendes aus, um diese Datei zu bearbeiten:
$ sudo nano /boot/config.txt
Wenn die folgende Zeile nicht bereits in dieser Datei vorhanden ist (wenn ja, befindet sie sich wahrscheinlich am Ende der Datei), fügen Sie sie hinzu und speichern Sie die Datei.
dtoverlay=w1-gpio, gpiopin=4
Starten Sie Ihren Pi neu, damit die Änderungen wirksam werden.
$ sudo Neustart
Um die Temperatursensor-Leseschnittstelle zu starten, müssen wir zwei Befehle ausführen. Gehen Sie zu einer Eingabeaufforderung auf Ihrem Pi oder SSH in Ihren Pi. Geben Sie die folgenden Befehle ein:
$ sudo modprobe w1-gpio$ sudo modprobe w1-therm
Die Ausgabe Ihres Temperatursensors wird nun in eine Datei auf Ihrem Pi geschrieben. Um diese Datei zu finden:
$ cd /sys/bus/w1/Geräte
In diesem Verzeichnis wird es ein Unterverzeichnis geben, das mit „28-“beginnt. Was nach dem „28-“kommt, ist die Seriennummer Ihres Sensors. cd in dieses Verzeichnis. In diesem Verzeichnis enthält eine Datei namens w1_slave die Ausgabe Ihres Sensors. Verwenden Sie nano, um den Inhalt der Datei anzuzeigen. Sobald Sie die Datei eingegeben haben, sieht sie ungefähr so aus:
a2 01 4b 46 7f ff 0e 10 d8: crc=d8 JAa2 01 4b 46 7f ff 0e 10 d8 t=26125
Die Zahl nach „t=“ist die gewünschte Zahl. Dies ist die Temperatur in 1/1000 Grad Celsius (im obigen Beispiel beträgt die Temperatur 26,125 °C). Wir brauchen nur ein einfaches Programm, das diese Datei liest und diese Zahl analysiert. Dazu kommen wir in einer Sekunde.
Jetzt ist alles bereit, damit wir mit dem Streaming von Daten beginnen können. Um den Texteditor zu öffnen, geben Sie Folgendes in die Eingabeaufforderung ein:
$ nano temperature.py
Kopieren Sie den folgenden Code und fügen Sie ihn in den Texteditor ein.
Importieren von OS
import glob import time from ISStreamer. Streamer import Streamerstreamer = Streamer(bucket_name="Temperature Stream", Bucket_key="piot_temp_stream031815", access_key="PUT_YOUR_ACCESS_KEY_HERE") os.system('modprobe w1-gpio') os.system('modprobe w1 -therm') base_dir = '/sys/bus/w1/devices/' device_folder = glob.glob(base_dir + '28*')[0] device_file = device_folder + '/w1_slave' def read_temp_raw(): f = open(device_file, 'r') lines = f.readlines() f.close() return lines def read_temp(): lines = read_temp_raw() while lines[0].strip()[-3:] != 'YES': time.sleep(0.2) lines = read_temp_raw() equals_pos = lines[1].find('t=') if equals_pos != -1: temp_string = lines[1][equals_pos+2:] temp_c = float(temp_string) / 1000.0 return temp_c während True: temp_c = read_temp() temp_f = temp_c * 9.0 / 5.0 + 32.0 streamer.log("temperature (C)", temp_c) streamer.log("temperature (F)", temp_f) time.sleep (.5)
Sie müssen Ihren Initial State Access Key in Zeile 6 anstelle von PUT_YOUR_ACCESS_KEY_HERE einfügen (kopieren Sie den Streaming-Schlüssel aus "Mein Konto" in Ihre Zwischenablage und fügen Sie ihn in den Code in nano in Ihrem Terminal ein).
Zeile 6 erstellt einen Bucket namens "Temperature Stream" in Ihrem Initial State-Konto (vorausgesetzt, Sie haben Ihren access_key in derselben Zeile korrekt angegeben). Die Zeilen 8 bis 30 dieses Skripts verbinden sich einfach mit dem DS18B20-Sensor, um seine Temperatur aus der zuvor besprochenen w1_slave-Datei zu lesen. Die Funktion read_temp_raw() in Zeile 15 liest die rohe w1_slave-Datei. Die Funktion read_temp() in Zeile 21 analysiert die Temperatur aus dieser Datei. Zeile 34 ruft diese Funktionen auf, um die aktuelle Temperatur zu erhalten. Zeile 35 wandelt die Temperatur von Celsius in Fahrenheit um. Die Zeilen 35 und 36 übertragen die Temperatur auf Ihr Initial State-Konto. Zeile 37 pausiert das Skript für 0,5 Sekunden und legt fest, wie oft der Temperatursensor gelesen und gestreamt wird.
Wir sind bereit, mit dem Streamen zu beginnen. Führen Sie den folgenden Befehl aus:
$ sudo python temperature.py
Kehren Sie in Ihrem Webbrowser zu Ihrem Initial State-Konto zurück und suchen Sie nach einem neuen Daten-Bucket namens Temperature Stream. Sie sollten das Live-Streaming der Temperaturdaten sehen. Variieren Sie die Temperatur des Sensors, indem Sie ihn in der Hand halten oder in ein Glas Eis legen.
Jetzt haben Sie die Möglichkeit, Daten an ein Dashboard für den Anfangszustand zu senden. Im letzten Abschnitt dieses Artikels erfahren Sie, wie Sie Ihr Dashboard anpassen.
Schritt 7: BME280-Lösung
Sie benötigen Folgendes, um diese Lösung zu erstellen:
-BME280 Druck-, Temperatur- und Feuchtigkeitssensor
Dieser Sensor wird mit Pins geliefert, die Sie am Sensor anlöten müssen. Ich empfehle, ein Steckbrett mit den Stiften mit der langen Seite nach unten in das Steckbrett zu verwenden, um das Löten zu erleichtern. Sobald Sie dies abgeschlossen haben, müssen wir den Sensor mit dem Pi verdrahten.
Verbinden Sie den VIN-Pin des Sensors mit 3,3 V Pin 1 des Pi. Verbinden Sie den GND-Pin am Sensor mit dem Massepin 6 am Pi. Verbinden Sie den SCK-Pin des Sensors mit dem SCL-Pin 5 des Pi. Verbinden Sie den SDI-Pin des Sensors mit dem SDA-Pin 3 des Pi. Sie müssen Python 3 für diese Lösung verwenden und das Initial State Streamer-Modul mit der pip3-Installationsmethode installieren.
Sie müssen auch einige Adafruit Python-Bibliotheken installieren.
pip3 installiere adafruit-blinkapip3 installiere pureio pip3 installiere spidev pip3 installiere adafruit-GPIO pip3 installiere adafruit-circuitpython-bme280
Um den Sensor zu verwenden, müssen wir I2C auf dem Pi aktivieren.
sudo raspi-config
Dies öffnet das Raspberry Pi Software Configuration Tool. Gehen Sie zu Option 5 Schnittstellenoptionen. Von hier aus gehen Sie zu I2C. Sie werden gefragt, ob Sie I2C aktivieren möchten, wählen Sie Ja und Fertig stellen. Jetzt haben Sie I2C aktiviert, um mit dem Sensor zu kommunizieren.
Wir können dies testen, indem wir Folgendes ausführen:
sudo i2cdetect -y 1
Dadurch wird überprüft, ob Ihr Pi den Sensor sieht. So wie es verbunden ist, sollte der Sensor unter Adresse 77 angezeigt werden. Wenn Sie den Sensor nicht erkennen, starten Sie Ihren Pi neu, aktivieren Sie die I2C-Schnittstellenoption auf Ihrem Pi erneut und versuchen Sie es erneut. Sobald Ihr Sensor erkannt wurde, ist es Zeit um unseren Hauptcode auszuführen, der Daten an den Initial State sendet. Erstellt eine Datei namens bme280sensor.py mit dem nano-Befehl. Kopieren Sie den Code aus dem Kern und fügen Sie ihn in den Texteditor ein. Sie müssen die Zeilen 12-19 ändern.
Importzeit
import board import busio import adafruit_bme280 from ISStreamer. Streamer import Streamer # Erstellen Sie ein Bibliotheksobjekt mit unserem Bus I2C porti2c = busio. I2C(board. SCL, board. SDA) bme280 = adafruit_bme280. Adafruit_BME280_I2C(i2c) # ------- -- Benutzereinstellungen --------- SENSOR_LOCATION_NAME = "Büro" BUCKET_NAME = ":partly_sunny: Raumtemperatur" BUCKET_KEY = "temp1" ACCESS_KEY = "IHR ZUGANGSSCHLÜSSEL HIER" # ändern Sie dies entsprechend dem Druck des Standorts (hPa) auf Meereshöhe bme280.sea_level_pressure = 1013,25 MINUTEN_BETWEEN_READS = 10 METRIC_UNITS = False # --------------------------------- # ODER Erstellen Sie ein Bibliotheksobjekt mit unserem Bus-SPI-Port #spi = busio. SPI(board. SCK, board. MOSI, board. MISO) #bme_cs = digitalio. DigitalInOut(board. D10) #bme280 = adafruit_bme280. Adafruit_BME280_SPI(spi, bme_cs) streamer = Streamer(bucket_name=BUCKET_NAME, Bucket_key=BUCKET_KEY, access_key=ACCESS_KEY) während True: Luftfeuchtigkeit = format(bme280.humidity, ".1f") pressure = format(bme280.pressure, ".1f") temp_c = bme280.temperatu re if METRIC_UNITS: streamer.log(SENSOR_LOCATION_NAME + "Temperature(C)", temp_c) else: temp_f = format(temp_c * 9.0 / 5.0 + 32.0, ".1f") streamer.log(SENSOR_LOCATION_NAME + " Temperature(F)", temp_f) streamer.log(SENSOR_LOCATION_NAME + "Feuchte(%)", Feuchtigkeit) streamer.log(SENSOR_LOCATION_NAME + "Druck(hPA)", Druck) streamer.flush() time.sleep(60*MINUTES_BETWEEN_READS)
- Zeile 12 – Dieser Wert sollte für jeden Knoten/Temperatursensor eindeutig sein. Dies kann der Raumname Ihres Sensorknotens, der physische Standort, die eindeutige Kennung oder was auch immer sein. Stellen Sie nur sicher, dass es für jeden Knoten eindeutig ist, um sicherzustellen, dass die Daten von diesem Knoten in einen eigenen Datenstrom in Ihrem Dashboard gehen.
- Zeile 13 – Dies ist der Name des Daten-Buckets. Dies kann jederzeit im Initial State UI geändert werden.
- Zeile 14 – Dies ist Ihr Eimerschlüssel. Es muss für jeden Knoten, der im selben Dashboard angezeigt werden soll, derselbe Bucket-Schlüssel sein.
- Zeile 15 – Dies ist Ihr Zugangsschlüssel für das Initial State-Konto. Kopieren Sie diesen Schlüssel und fügen Sie ihn aus Ihrem Initial State-Konto ein.
- Zeile 17- Dies ist der Druck (hPa) Ihres Standorts auf Meereshöhe. Sie finden diese Informationen auf den meisten Wetter-Websites.
- Zeile 18 - Dies ist die Zeit zwischen den Sensorauslesungen. Entsprechend ändern. Zeile 19- Hier können Sie metrische oder imperiale Einheiten angeben.
Nachdem Sie die Zeilen 12–19 in Ihrem Python-Skript auf Ihrem Pi Zero WH festgelegt haben, speichern und beenden Sie den Texteditor. Führen Sie das Skript mit dem folgenden Befehl aus:
$ python3 bme280sensor.py
Jetzt haben Sie die Möglichkeit, Daten an ein Dashboard für den Anfangszustand zu senden. Im letzten Abschnitt dieses Artikels erfahren Sie, wie Sie Ihr Dashboard anpassen.
Schritt 8: Sense HAT
Der erste Schritt bei der Verwendung des Sense HAT besteht darin, ihn physisch auf Ihrem Pi zu installieren. Schließen Sie bei ausgeschaltetem Pi den HAT wie im Bild gezeigt an.
Wenn Sie sich entscheiden, die oben gezeigte Lösung zu verwenden, werden Sie möglicherweise feststellen, dass die Temperaturwerte Ihres Sense HAT etwas hoch sind - das liegt daran, dass sie es sind. Der Schuldige ist die Wärme, die von der CPU des Pi erzeugt wird, die die Luft um den Sense HAT erwärmt, wenn er auf dem Pi sitzt. Um den Temperatursensor nützlich zu machen, müssen wir entweder den HAT vom Pi entfernen oder versuchen, den Temperatursensormesswert zu kalibrieren. Eine gute Lösung, um den Sensor vom Pi wegzubekommen, ist ein Kabel, das den Sense HAT vom Pi baumeln lässt. Ein 6 , 40-poliges IDE-Stecker-auf-Buchse-Verlängerungskabelkabel reicht aus.
Sobald Sie sich für die beiden Optionen entschieden haben, schalten Sie Ihren Pi ein. Wir müssen die Python-Bibliothek installieren, um das Lesen der Sensorwerte aus dem Sense-HAT zu erleichtern. Zunächst müssen Sie sicherstellen, dass Ihre Raspbian-Version auf dem neuesten Stand ist:
$ sudo apt-get update
Installieren Sie als Nächstes die Sense HAT Python-Bibliothek:
$ sudo apt-get install sense-hat
Starten Sie Ihren Pi neu. Wir sind bereit, den Sense HAT zu testen, indem wir Sensordaten daraus lesen und diese Daten an den Initial State senden.
Erstellen Sie eine Datei namens sensehat und öffnen Sie sie im Texteditor, indem Sie Folgendes in die Eingabeaufforderung eingeben:
$ nano sensehat.py
Kopieren Sie den folgenden Code und fügen Sie ihn in den Texteditor ein.
from sense_hat import SenseHat
import time import sys from ISStreamer. Streamer import Streamer # --------- Benutzereinstellungen --------- BUCKET_NAME = "Office Weather" BUCKET_KEY = "sensehat" ACCESS_KEY = "Your_Access_Key" SENSOR_LOCATION_NAME = " Büro" MINUTES_BETWEEN_SENSEHAT_READS = 0.1 # --------------------------------- streamer = Streamer(bucket_name=BUCKET_NAME, Bucket_key=BUCKET_KEY, access_key=ACCESS_KEY) sense = SenseHat() während True: # Lesen der Sensoren temp_c = sense.get_temperature() Humidity = sense.get_humidity() pressure_mb = sense.get_pressure() # Formatieren der Daten temp_f = temp_c * 9.0 / 5.0 + 32,0 temp_f = float("{0:.2f}".format(temp_f)) Feuchte = float("{0:.2f}".format(humidity)) pressure_in = 0.03937008*(pressure_mb) pressure_in = float("{ 0:.2f}".format(pressure_in)) # Drucken und streamen print SENSOR_LOCATION_NAME + " Temperature(F): " + str(temp_f) print SENSOR_LOCATION_NAME + " Humidity(%): " + str(humidity) print SENSOR_LOCATION_NAME + " Druck(IN): " + str(Druck_in) streamer.log(":sonnig: " + SEN SOR_LOCATION_NAME + " Temperatur(F)", temp_f) streamer.log(":sweat_drops: " + SENSOR_LOCATION_NAME + " Feuchtigkeit(%)", Feuchtigkeit) streamer.log(:cloud: " + SENSOR_LOCATION_NAME + "Druck(IN)", pressure_in) streamer.flush() time.sleep(60*MINUTES_BETWEEN_SENSEHAT_READS)
Beachten Sie in der ersten Zeile, dass wir die SenseHat-Bibliothek in das Skript importieren. Bevor Sie dieses Skript ausführen, müssen wir unsere Benutzerparameter einrichten.
# --------- Benutzereinstellungen ---------
BUCKET_NAME = "Bürowetter"BUCKET_KEY = "sensehat"ACCESS_KEY = "Your_Access_Key"SENSOR_LOCATION_NAME = "Büro"MINUTES_BETWEEN_SENSEHAT_READS = 0.1# ---------------------------------- --------
Insbesondere müssen Sie ACCESS_KEY auf Ihren Zugangsschlüssel für das Konto für den Anfangsstatus setzen. Sie können BUCKET_NAME und SENSOR_LOCATION_NAME in den tatsächlichen Sensorstandort ändern. Speichern und beenden Sie den Texteditor.
Führen Sie an einer Eingabeaufforderung auf Ihrem Pi das Skript aus:
$ sudo python sensehat.py
Jetzt haben Sie die Möglichkeit, Daten an ein Dashboard für den Anfangszustand zu senden. Im letzten Abschnitt dieses Artikels erfahren Sie, wie Sie Ihr Dashboard anpassen.
Schritt 9: Passen Sie Ihr Initial State Dashboard an
Gehen Sie zu Ihrem Initial State-Konto und sehen Sie sich Ihre Daten an. Sie können mit der rechten Maustaste auf eine Kachel klicken, um den Diagrammtyp zu ändern, und auf Kacheln bearbeiten klicken, um die Größe der Kacheln zu ändern und sie zu verschieben. Ich würde empfehlen, das Thermometer für die Temperatur und den Flüssigkeitsstand für die Luftfeuchtigkeit zu verwenden. Sie können Liniendiagramme für Temperatur und Luftfeuchtigkeit erstellen, um Veränderungen im Laufe der Zeit zu sehen. Sie können Ihrem Dashboard auch ein Hintergrundbild hinzufügen.
Sie können Trigger-Warnungen einstellen, damit Sie eine SMS oder E-Mail erhalten, wenn die Temperatur unter oder über einen bestimmten Schwellenwert fällt. Gehen Sie zu Ihrem Daten-Bucket und klicken Sie auf Einstellungen. Gehen Sie von dort auf die Registerkarte Trigger. Geben Sie den Stream-Schlüssel, den Sie überwachen möchten, den Operator, den Sie verwenden möchten, und den Schwellenwert ein. Klicken Sie auf das Pluszeichen, um den Trigger hinzuzufügen. Geben Sie dann Ihre E-Mail-Adresse oder Telefonnummer ein, um die Benachrichtigung zu erhalten, und klicken Sie auf das Pluszeichen. Wenn Sie alle Ihre Trigger eingestellt haben, klicken Sie unten auf die Schaltfläche Fertig.
Nachdem Sie nun einen Temperaturmonitor mit einem Temperatursensor und einem Raspberry Pi erstellt haben, können Sie darüber nachdenken, welche anderen Umgebungsdaten Sie als nächstes überwachen können.
Empfohlen:
So bauen Sie einen Sitzzeit-Tracker – wikiHow
So bauen Sie einen Sitzzeit-Tracker: In diesem Projekt wird der Zio Qwiic-Ultraschall-Abstandssensor verwendet, um eine Person zu erkennen und zu verfolgen. Das Gerät wird strategisch auf einem Bildschirm / Monitor platziert, der der sitzenden Person vor ihrem Computer zugewandt ist. Das Projekt wird tr
So bauen Sie einen Gaming- oder Basiscomputer (alle Komponenten) – wikiHow
So bauen Sie einen Gaming- oder Basiscomputer (alle Komponenten): Sie möchten also wissen, wie man einen Computer baut? In diesen Instructables werde ich Ihnen beibringen, wie man einen einfachen Desktop-Computer baut. Hier sind die benötigten Teile: PC-Gehäuse Motherboard (Stellen Sie sicher, dass es PGA ist, wenn AMD und LGA, wenn Intel) CPU-Kühler Gehäuselüfter Pow
So bauen Sie einen She-Shed – wikiHow
So bauen Sie einen She-Shed: Hey Kiwiis! Heute zeige ich dir, wie man eine süße She-Shed macht! Es ist eigentlich sehr komplex… lol tut mir leid, ich konnte nicht anders, als an deinem Bein zu ziehen. Aber eigentlich ist es ganz einfach
So bauen Sie einen N64 TASBot – wikiHow
Wie man einen N64 TASBot baut: Ich möchte mit zwei Shoutouts und einer Beschreibung für einen TASBot beginnen. Der erste Shoutout geht an Arduino, wenn sie ihre Firma nicht gegründet hätten, wäre dieses Tutorial nicht hier. Der zweite Shoutout geht an SM64Vidz, für seine erstaunliche
So erhalten Sie Musik von fast jeder (Haha) Website (solange Sie sie hören können, können Sie sie bekommen Okay, wenn sie in Flash eingebettet ist, können Sie es möglicherweise nicht) BEARBEITET!!!!! Hinzugefügte Informationen: 4 Schritte
So erhalten Sie Musik von fast jeder (Haha) Website (solange Sie sie hören können, können Sie sie bekommen … Okay, wenn sie in Flash eingebettet ist, können Sie es möglicherweise nicht) BEARBEITET!!!!! Zusätzliche Informationen: Wenn Sie jemals auf eine Website gehen und ein Lied abspielen, das Sie mögen und es wollen, dann ist hier das anweisbare für Sie, nicht meine Schuld, wenn Sie etwas durcheinander bringen (nur so wird es passieren, wenn Sie ohne Grund anfangen, Dinge zu löschen) ) Ich konnte Musik für