Überwachungstemperatur in Himbeer -PI

Überwachungstemperatur in Himbeer -PI

Video Playerhttps: // LinuxHint.com/wp-content/uploads/2020/10/2020-09-29-20-47-25.MP400: 0000: 0000: 40 UNUS UP/DOWN -Pfeiltasten, um das Volumen zu erhöhen oder zu verringern.
Überwachungstemperaturen können bei vielen Ihrer Himbeer -PI -Projekte eine Voraussetzung sein. In Raspberry Pi ist es relativ einfach zu tun, und die für dieses Projekt erforderlichen Komponenten sind nicht zu kostspielig.Dieser Artikel zeigt, wie Sie das digitale Thermometermodul DS18B20 verwenden, um die Temperatur mithilfe von Raspberry Pi zu überwachen. Der Artikel zeigt auch, wie Sie eine Web -App erstellen, um die Temperatur anzuzeigen.

Dinge, die Sie brauchen:

Um die Beispiele in diesem Artikel auszuprobieren, benötigen Sie Folgendes:

  1. Ein Raspberry PI-Single-Board-Computer
  2. Ein Leistungsadapter für das Raspberry PI -Gerät
  3. Eine microSD -Karte mit dem installierten Himbeer -Pi -Betriebssystem
  4. Netzwerkkonnektivität auf dem Raspberry PI -Gerät
  5. Ein Brotbrett
  6. 3 PCs weiblich zu weiblich zu weiblicher Verbindungsdrähte
  7. Einige männliche Verbindungsdrähte
  8. Ein 10k Widerstand
  9. Ein DS18B20 Digital Thermometermodul

DS18B20 Digital Thermometer Pinouts

Wenn Sie das digitale DS18B20 -Thermometer wie im Bild unten gezeigt halten, ist der erste Stift gemahlen (GND), Der zweite Stift wird sein DATEN, und der dritte Stift wird sein VCC.

Schaltplan

Das Schaltungsdiagramm des Temperaturmonitors ist im Bild unten dargestellt.

Hier das Pin2/5V des Raspberry PI -Geräts sollten an die angeschlossen werden Pin3/VCC des digitalen Thermometermoduls.

Der Pin7/gpio4 des Raspberry PI -Geräts sollten an die angeschlossen werden Pin2/Daten des digitalen Thermometermoduls.

Der Pin9/GND des Raspberry PI -Geräts sollten an die angeschlossen werden Pin1/GND des digitalen Thermometermoduls.

A 10kΩ Widerstand sollte zwischeneinander verbunden sein Pin2 Und Pin3 des digitalen Thermometermoduls.

Sie sollten Ihren Himbeer -Pi wie im Bild unten gezeigt halten. Dann wird der obere linksfeste Pin sein Pin1. Der Pin direkt neben Pin1 wird sein Pin2. Wenn Sie dann eine Reihe vorwärts bewegen, ist die linke eine Pin3 und der richtige wird sein Pin4, usw.

Sobald Sie alle Komponenten mit Ihrem Raspberry PI -Gerät angeschlossen haben, sollte es ungefähr so ​​aussehen:

Schauen Sie sich genauer an, wie ich die Komponenten auf das Brotbrett platziert habe.

Sobald Sie alle Komponenten an Ihr Raspberry PI -Gerät angeschlossen haben, setzen Sie das Raspberry PI -Gerät mit. Stellen Sie dann über VNC oder SSH eine Verbindung zu Ihrem Raspberry PI -Gerät her.

Lesetemperaturdaten aus DS18B20 Digital Thermometer

Das DS18B20-Thermometermodul verwendet das 1-Wire-Kommunikationsprotokoll, um Daten an den Raspberry Pi zu senden. Standardmäßig ist die 1-Wire-Schnittstelle nicht aktiviert. Sie können die Schnittstelle aus dem Raspberry PI -Konfigurationstool einfach aktivieren.

Um die 1-Draht-Schnittstelle zu aktivieren, laufen Sie aus Raspi-Config mit dem folgenden Befehl:

$ sudo raspi-config

Wählen Schnittstellenoptionen und drücke .

Wählen 1-Wire und drücke .

Wählen und drücke .

Drücken Sie .

Aus dem verlassen Raspi-Config Dienstprogramm, Presse .

Damit die Änderungen wirksam werden sollen, starten Sie Ihren Raspberry PI wie folgt neu:

$ sudo Neustart

Um zu überprüfen, ob die W1_GPIO Und w1_therm Kernelmodule werden geladen, führen Sie den folgenden Befehl aus:

$ sudo lsmod | Grep W1

Wenn aus irgendeinem Grund die w1_therm Das Modul ist nicht geladen, dann können Sie es mit dem folgenden Befehl manuell laden:

$ sudo modprobe w1_therm

Sobald Sie aktiviert haben 1-Wire-Kommunikation und lud die w1_therm Modul, ein neues Gerät (28-00000BA693E9, in meinem Fall) sollte in der aufgeführt sein /sys/bus/w1/devices Verzeichnis, wie Sie im Screenshot unten sehen können.

$ ls/sys/bus/w1/devices/

Navigieren Sie wie folgt zum neuen Verzeichnis:

$ cd/sys/bus/w1/devices/28-00000ba693e9

Sie sollten a finden Temperatur Datei im Verzeichnis, wie Sie im Screenshot unten sehen können.

$ ls -lh

Der Temperatur Datei ist eine einfache Textdatei. Sie können die Temperaturdaten mit dem lesen Katze Befehl wie folgt:

$ Katzentemperatur

Wie Sie sehen können, werden die Temperaturdaten auf der Konsole gedruckt. Hier, 30375 bedeutet 30.375 ° C.

Sie können eine Programmiersprache wie Python oder Knoten verwenden.JS, um diese Temperaturdaten zu analysieren und in Ihrer App zu verwenden. Ich werde Ihnen zeigen, wie das im nächsten Abschnitt dieses Artikels geht.

Um die Temperaturdaten mithilfe einer Programmiersprache zu analysieren, benötigen Sie den absoluten Pfad zur Temperatur Datei. Sie können dies mit dem finden Readlink Befehl wie folgt:

$ readlink -f Temperatur

Erstellen Sie eine Web -App, um Temperaturdaten anzuzeigen:

In diesem Abschnitt erfahren Sie, wie Sie die Temperaturdaten aus dem DS18B20 -Thermometermodul analysieren und in einer Web -App anzeigen.

In diesem Beispiel erstelle ich eine API, die die Temperaturdaten aus dem DS18B20 -Thermometermodul analysiert, auf das aus der API zugegriffen werden kann. Ich erstelle auch eine Web -App, die die Temperaturdaten von der API abholt und sie gut anzeigt. Ich werde den Knoten verwenden.JS -Programmiersprache dazu. Die Codes werden in meinem GitHub-Repository Shovon8/DS18B20-RaspberryPi-API hochgeladen. Möglicherweise möchten Sie es überprüfen, wenn Sie Schwierigkeiten haben, Codes aus diesem Artikel zu kopieren und zu veröffentlichen.

Knoten.JS ist standardmäßig nicht auf Raspberry Pi OS installiert. Es ist jedoch im offiziellen Paket -Repository von Raspberry Pi OS erhältlich. Sie können den Knoten problemlos installieren.JS aus dem Raspberry Pi OS -Paket -Repository.

Aktualisieren Sie zunächst den APT -Paket -Repository -Cache mit dem folgenden Befehl:

$ sudo APT Update

Als nächstes installieren Sie den Knoten.JS und NPM mit dem folgenden Befehl:

$ sudo apt installieren nodejs npm

Um die Installation zu bestätigen, drücken Sie Y und dann drücken Sie .

Der APT -Paket -Manager lädt alle erforderlichen Pakete herunter und installiert. Es kann eine Weile dauern, bis es fertig ist.

An diesem Punkt Knoten.JS und NPM sollten installiert werden.

Einmal Knoten.JS und NPM sind installiert, prüfen Sie, ob die Knoten Und NPM Befehle sind wie folgt verfügbar:

$ node --version
$ npm -Verssion

Aktualisieren Sie NPM mit dem folgenden Befehl:

$ sudo npm install --global npm

NPM sollte verbessert werden.

Wie Sie sehen können, wurde NPM aus Version 5 aktualisiert.8.0 bis Version 6.14.8.

$ node --version
$ npm -Verssion

Nun dieser Knoten.JS und NPM werden installiert, erstellen Sie das neue Projektverzeichnis ~/ds18b20, folgendermaßen:

$ mkdir -v ~/ds18b20

Navigieren zum ~/ds18b20 Verzeichnis wie folgt:

$ cd ~/ds18b20

Erstellen Sie das leere Paket.JSON Datei mit dem folgenden Befehl:

$ npm init -y

Installiere das Äußern.JS Bibliothek für das Projekt mit dem folgenden Befehl:

$ npm install -Save Express

Der Express.Die JS -Bibliothek sollte jetzt installiert werden.

Erstellen Sie die neue Datei Server.JS Im Projektverzeichnis wie folgt:

$ nano Server.JS

Geben Sie die folgenden Codes -Zeilen in die Server.JS Datei.

Sei Express = Request ('Express');
Sei fs = erfordern ('fs');
let server = express ();
const port = 8080;
const webroot = './öffentlich';
Server.Get ('/', ausdrücken.statische (Webroot));
Server.get ('/temperatur', (req, res) =>
Sei tempDatapath = '/sys/bus/w1/devices/28-00000ba693e9/Temperatur';
Seittemperatur = fs.ReadFilesync (tempDatapath, codieren: 'utf8', Flag: 'r') / 1000;
res.JSON (Temperatur, REGNESTART: -55, RAGEREND: 125);
);
Server.Hören Sie (Port, () =>
Konsole.log ('Server auf Port $ port');
);

Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und Um den Server zu speichern.JS -Datei.

Hier importiert Zeile 1 äußern, und Zeile 2 importiert die fs Modul.

Zeile 4 initialisiert Express.

Zeile 6 und 7 definieren die HAFEN Und Webroot Konstante Variablen. Die API und der Webserver werden ausgeführt HAFEN (welches ist 8080, in diesem Artikel) und der Webserver wird statische Inhalte von der bedienen Webroot (Welches ist das öffentlich/ Verzeichnis im Projektverzeichnis in diesem Artikel).

Zeile 9 wird verwendet, um Express so zu konfigurieren Webroot.

Zeilen 11-15 Definieren Sie den API-Endpunkt /Temperatur, mit dem verwendet wird, um die Temperaturdaten in das JSON -Format zu bringen.

In Zeile 12 die Tempdatapath Variable hält den absoluten Weg zur Temperatur Datei des digitalen Thermometermoduls DS18B20, der in einem früheren Abschnitt dieses Artikels angezeigt wird.

In Zeile 13 werden die Temperaturdaten aus dem gelesen Temperatur Datei mit dem Knoten.JS FS -Modul, und die Temperaturdaten werden in der gespeichert Temperatur Variable.

In Zeile 14 werden die Temperaturdaten im JSON -Format gedruckt. Das digitale Thermometermodul DS18B20 kann zwischen den Temperaturen -55 ° C bis 125 ° C messen. Ich habe das in der JSON -Ausgabe mit dem hinzugefügt REGNESTART Und RAGEREND Eigenschaften.

Schließlich führt Zeile 17-19 die API und den Webserver aus HAFEN (welches ist 8080, In diesem Artikel).

Ein ... kreieren öffentlich/ Verzeichnis im Projektverzeichnis wie folgt:

$ mkdir -v öffentlich

Leiten Sie die Server.JS Programm mit dem folgenden Befehl:

$ Node Server.JS

Der Server sollte auf dem Port ausgeführt werden 8080.

Sie können auf die Temperaturdaten des DS18B20 -Thermometermoduls aus dem zugreifen /Temperatur Endpunkt der API.

Um zu testen, ob Sie die Temperaturdaten von der API abrufen können, laufen Sie Locken, folgendermaßen:

$ curl -s http: // localhost: 8080/Temperatur | JSON_PP

Wie Sie sehen können, werden die Temperaturdaten im JSON -Format auf der Konsole gedruckt. Die API funktioniert also.

Drücken Sie + C um den Server zu stoppen.

Jetzt erstelle ich eine Webseite, auf der der API -Server für die Temperaturdaten anfordert und auf der Seite gut angezeigt wird. Die Temperaturdaten werden alle 5 Sekunden aktualisiert.

Erstelle eine neue Index.html Datei in der öffentlich/ Verzeichnis des Projekts wie folgt:

$ nano public/Index.html

Geben Sie die folgenden Codes -Zeilen in die Index.html Datei.




Temperaturmonitor







00.00 ° C


Temperaturaktualisierungen in alle 5 Sekunden



Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und um die zu retten Index.html Datei.

Die HTML -Datei Index.html ist leicht zu verstehen. Es ist das Format, in dem die Temperaturdaten in der Web -App angezeigt werden.

Hier werden Zeilen 53-55 verwendet, um eine Fortschrittsleiste anzuzeigen, und die Zeilen 57-60 werden verwendet, um die Temperatur anzuzeigen.

Zeilen 5-49 werden verwendet, um das Web-App mit CSS (Cascading Style Sheet) gut zu dekorieren.

Zeilen 62-109 werden verwendet, um die Web-App-Funktional zu machen. Die JavaScript -Codes werden verwendet, um die Fortschrittsleiste zu animieren, die Temperaturdaten aus der API abzurufen und die Informationen anzuzeigen.

Zeile 63 läuft die hauptsächlich Funktion Sobald die Web -App im Browser geladen ist.

Der hauptsächlich Funktion ist sehr lang. Es erstreckt sich von Zeile 65 bis Zeile 108. In der Hauptfunktion haben wir einige andere Funktionen, wie z Getemperature, Updatetemperatur, Aktualisierungsfortschritt, App, Und Start.

Der Aktualisierungsfortschritt Die Funktion in den Zeilen 83-86 nimmt den Prozentsatz des Fortschritts als Eingabe auf und aktualisiert die Fortschrittsleiste.

Der Updatetemperatur Die Funktion in den Zeilen 77-81 nimmt die Temperaturdaten als Eingabe an und aktualisiert die Web-App mit den Temperaturdaten.

Der Getemperature Funktion in den Zeilen 66-75 stellt eine Anfrage an die /Temperatur Endpunkt der API und erhält die Temperaturdaten. Sobald die Daten empfangen wurden, ruft sie die auf Updatetemperatur Funktionieren mit den Daten. Der Updatetemperatur Funktion aktualisiert dann die Web -App mit den neuen Temperaturdaten.

Der App Die Funktion animiert in den Zeilen 88-99 die Fortschrittsleiste und fordert alle 5 Sekunden die Temperaturdaten aus der API an.

Der Start Die Funktion startet in den Zeilen 101-104 die Web-App.

Öffne das Paket.JSON Datei mit dem Nano -Texteditor wie folgt:

$ nano paket.JSON

Ändern hauptsächlich Zu Server.JS und fügen Sie das neue Skript hinzu Aufschlag im Skripte Abschnitt, wie im Screenshot unten markiert.

Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und um die zu retten Paket.JSON Datei.

Führen Sie die Web -App und die API mit dem folgenden Befehl aus:

$ npm run serve service

Der Server sollte auf Port 8080 ausgeführt werden.

Öffnen Sie nun einen Webbrowser auf Ihrem Raspberry PI -Gerät und besuchen Sie http: // localhost: 8080. Die Temperaturdaten aus dem digitalen Thermometermodul DS18B20 sollten in Ihrem Webbrowser angezeigt werden, wie Sie im Screenshot unten sehen können.

Die Temperaturdaten sollten alle 5 Sekunden aktualisiert werden.

Wie Sie sehen können, ändert sich die Temperatur alle 5 Sekunden.

Wenn Sie von einem anderen Computer in Ihrem Netzwerk auf die Web -App zugreifen möchten, müssen Sie die IP -Adresse Ihres Raspberry PI -Geräts kennenlernen.

Sie finden die IP -Adresse Ihres Raspberry PI -Geräts mit dem folgenden Befehl:

$ hostname -i

Wie Sie sehen können, beträgt die IP -Adresse meines Raspberry PI -Geräts 192.168.0.107. Dies wird für Sie anders sein. Stellen Sie also sicher, dass Sie die IP -Adresse von nun an ersetzen.

Sobald Sie die IP -Adresse Ihres Raspberry PI -Geräts kennen, sollten Sie mit einem Webbrowser auf die Web -App von jedem Computer in Ihrem Netzwerk zugreifen können. Besuchen Sie einfach http: // 192.168.0.107: 8080, und die Web -App sollte die Temperaturdaten aus dem digitalen Thermometermodul DS18B20 anzeigen.

Abschluss

In diesem Artikel haben Sie gelernt, wie man das digitale Thermometermodul DS18B20 in Raspberry PI verwendet. Sie haben auch gelernt, wie man einen Knoten erstellt.JS -API zur Anzeige der Temperaturdaten in einer Web -App, die auf die Temperaturdaten der API zugreift und sie anzeigt. Dieser Artikel sollte Ihnen dabei helfen.