- Erforderliche Komponenten:
- E-Mail-Setup in Raspberry Pi zum Senden von Alert-Mails:
- Kolben-Setup in Raspberry Pi:
- HTML-Code für die Webseite:
- Smart Container mit Raspberry Pi und Gewichtssensor
- Schaltungserklärung:
- Arbeitserklärung:
Vielleicht haben Sie schon von Smart Refrigerator gehört, der automatisch Lebensmittel bestellen kann, denen der Kühlschrank ausgeht. Dies ist so inspirierend, dass wir hier einen Raspberry Pi Smart Container mit Wägezelle und HX711-Gewichtssensor bauen. Dieser Smart Container kann Sie über seinen Status informieren, z. B. ob er voll oder leer ist, indem er eine E-Mail an Ihre E-Mail-ID sendet. Wir können das Gewicht des Containers auch in Echtzeit mithilfe eines Webbrowsers überwachen. Dies macht es zu einem IoT-Projekt, bei dem Sie Ihren Container von überall über das Internet überwachen können. Hier wird das Gewicht des Containers alle 5 Sekunden im Webbrowser aktualisiert, diese Dauer kann einfach in der HTML-Codedatei geändert werden. Wir haben den Schwellenwert für das Gewicht von 300 Gramm festgelegt, um die E-Mail darüber zu senden. “ Container ist voll “, kann dieses Limit auch geändert werden. Überprüfen Sie das Video am Ende dieses Tutorials.
Wenn Sie nicht mit Wägezelle und HX711-Modul vertraut sind, lesen Sie unsere vorherigen Projekte. Raspberry Pi-basierte Gewichtsmessung Automatische Gate- und Arduino-Gewichtsmessung mit Wägezelle und HX711-Modul.
Erforderliche Komponenten:
Hier verwenden wir Raspberry Pi 3 Raspbian Jessie OS. Alle grundlegenden Hardware- und Softwareanforderungen wurden bereits erläutert. Sie können sie in der Einführung zu Raspberry Pi und zum Blinken der Raspberry PI-LED nachschlagen, um loszulegen.
- Raspberry Pi (jedes Modell sollte funktionieren)
- Wägezelle
- HX711 Wägezellenverstärkermodul
- 16x2 LCD
- Stromquelle oder Powerbank
- Kabel anschließen
- Steckbrett
- Mutternschrauben, Rahmen und Basis
Hier haben wir einen Holzfuß mit der Wägezelle zur Stabilisierung mit Hilfe von Schrauben und Muttern angebracht, wie unten gezeigt. Erfahren Sie hier mehr über Wägezelle und HX711 Gewichtssensormodul.
E-Mail-Setup in Raspberry Pi zum Senden von Alert-Mails:
Zum Senden der E-Mails von Raspberry Pi, die den Status Container (Voll oder leer) enthalten, müssen wir eine Software installieren. Hier verwenden wir ssmtp , eine einfache und gute Lösung zum Senden von E-Mails über die Befehlszeile oder über Python Script. Wir müssen zwei Bibliotheken installieren, um E-Mails über SMTP zu senden:
Sudo apt-get install ssmtp sudo apt-get install mailutils
Nach der Installation der Bibliotheken muss der Benutzer die Datei ssmtp.conf öffnen und diese Konfigurationsdatei wie in der Abbildung unten gezeigt bearbeiten und dann die Datei speichern. Um die Datei zu speichern und zu beenden, drücken Sie 'STRG + x', dann 'y' und dann die Eingabetaste.
sudo nano /etc/ssmtp/ssmtp.conf
root = YourEmailAddress mailhub = smtp.gmail.com: 587 hostname = raspberrypi AuthUser = YourEmailAddress AuthPass = YourEmailPassword FromLineOverride = YES UseSTARTTLS = YES UseTLS = YES
Wir können es auch testen, indem wir eine Test-Mail senden, indem wir den folgenden Befehl eingeben. Sie erhalten die Mail an die angegebene E-Mail-Adresse, wenn alles einwandfrei funktioniert:
echo "Hallo saddam" - mail -s "Testen…" [email protected]
Unten finden Sie eine Momentaufnahme der Warnmeldungen, die wir während unserer Tests erhalten haben.
Kolben-Setup in Raspberry Pi:
Hier haben wir einen Webserver erstellt, mit dem der Gewichtswert des Containers mithilfe von Flask in einem Webbrowser von Raspberry Pi an das Netzwerk gesendet werden kann. Mit Flask können wir unsere Python-Skripte über eine Webseite ausführen und Daten von Raspberry Pi an den Webbrowser senden und empfangen und umgekehrt. Flask ist ein Mikroframework für Python. Dieses Tool basiert auf Unicode und verfügt über einen integrierten Entwicklungsserver und Debugger, integrierte Unterstützung für Komponententests, Unterstützung für sichere Cookies und ist einfach zu bedienen. Diese Dinge machen es für den Bastler nützlich .
Installieren Sie ein Kolbenunterstützungspaket mit dem folgenden Befehl im Raspberry Pi:
$ pip install Flask
Dann können wir die Flasche verwenden, indem wir sie einfach in unser Programm importieren, so wie wir folgende Flaschenpakete für dieses Projekt importiert haben:
aus flask importieren flask, render_template, request, jsonify
Weitere Informationen zur Programmierung mit Flask finden Sie hier. Überprüfen Sie auch unser vorheriges Projekt, in dem wir Flask verwendet haben, um die Nachricht von der Webseite an Raspberry Pi zu senden.
HTML-Code für die Webseite:
Wir haben auch eine Webseite in HTML-Sprache erstellt, um das Gewicht und die Warnmeldung im Webbrowser anzuzeigen. Wir haben ein kleines jQuery-Skript verwendet, um die Seite (durch Aufrufen von / show_weight) alle 5 Sekunden zu laden, damit wir den Gewichtungswert in Echtzeit erhalten können. Unten finden Sie den HTML-Code für die Webseite einschließlich der jQuery:
Circuit Digest
Smart Container mit Raspberry Pi und Gewichtssensor
Gewicht des Behälters: 302 Gramm
(Aktualisierung alle 5 Sekunden)Aufmerksam!!!
Container ist voll
E-Mail gesendet.
Der Benutzer muss den oben angegebenen HTML-Code in einen Texteditor (Editor) kopieren und einfügen und die Datei mit der Erweiterung.HTML (web.html) speichern. Dann setzen Sie diese HTML - Datei in dem / templates Ordner in Bezug auf Ihre Python - Skript Lage. Das bedeutet, dass Sie einen Ordner mit dem Namen templates erstellen müssen , in dem Sie Ihre Python-Code-Datei für diesen Raspberry Pi Smart-Container abgelegt und dann die Datei web.html in diesen Vorlagenordner gestellt haben . Dieser Schritt ist wichtig, sonst funktioniert unser Projekt nicht. Sie können die Datei web.html direkt öffnen, indem Sie darauf doppelklicken, um die Ausgabe von HTML-Code zu erhalten. Die Webseite wird wie unten gezeigt angezeigt. Überprüfen Sie den gesamten Vorgang in Demonstrationsvideo Am Ende. Nachdem wir mit der Programmierung fertig sind, können wir einfach den Python-Code in Raspberry Pi ausführen und die IP_Adresse_des_Pi: 5010 im Webbrowser öffnen (wie
Die Webseite zeigt auch eine ALERT-Meldung an, wenn das Gewicht des Behälters 300 Gramm überschreitet (siehe unten):
Sie können die IP-Adresse Ihres Raspberry Pi mit dem Befehl ifconfig überprüfen:
ifconfig
Schaltungserklärung:
Die Verbindungen für diesen IoT Smart Container sind einfach und im Folgenden schematisch dargestellt. Die 16x2 LCD-Pins RS, EN, d4, d5, d6 und d7 sind mit den GPIO-Pins 18, 23, 24, 25, 8 und 7 des Raspberry Pi verbunden, und die DT- und SCK-Pins des HX711-Moduls sind direkt mit dem GPIO des Raspberry Pi verbunden Pin 27 und 17. Wägezellenverbindungen mit dem HX711-Modul wurden bereits früher erläutert und sind auch im folgenden Schaltplan dargestellt.
Arbeitserklärung:
Die Arbeit mit diesem Smart Container ist einfach. In diesem Projekt haben wir Raspberry Pi 3 verwendet, um den gesamten Prozess zu steuern. Die Wägezelle erfasst das Gewicht des Behälters und versorgt das Lastverstärkermodul HX711 mit einer elektrischen Analogspannung. HX711 ist ein 24-Bit-ADC, der die Wägezellenausgabe verstärkt und in digitale Form umwandelt. Dieser verstärkte Wert wird dann dem Raspberry Pi zugeführt. Jetzt berechnet Raspberry Pi die Ausgabe von HX711 und wandelt diese in den Gewichtswert um.
Anschließend wird dieser Gewichtswert mit dem vordefinierten Schwellenwert (300 Gramm) unter Verwendung von Raspberry Pi und Python-Code verglichen. Wenn das Gewicht des Containers 300 g überschreitet, sendet Raspberry Pi eine E-Mail mit dem Hinweis "Smart Container Alert…. Container Full". Und wenn das Gewicht unter 300 g bleibt, sendet Raspberry Pi eine E-Mail mit der Aufschrift „Smart Container Alert…. Container is Empty“.
Das Gewicht kann auch mit einem Webbrowser überwacht werden. Sie müssen lediglich Ihre Raspberry Pi-IP-Adresse mit Port 5010 wie http://192.168.1.100:5010 öffnen (IP-Adresse durch Ihre Adresse ersetzen). Hier haben wir Flask verwendet, um die Daten von Raspberry Pi über das Netzwerk an eine Webseite zu senden. Diese Seite wird automatisch alle 5 Sekunden aktualisiert und wir erhalten aktualisierte Daten. Dazu haben wir jQuery wie zuvor erläutert verwendet.
Ein optionales 16x2-LCD wurde ebenfalls verwendet, um die Gewichts- und Statusmeldungen anzuzeigen.
Der vollständige Python-Code ist unten angegeben, wo wir Funktionen zum Ansteuern von LCD-Bildschirmen, zum Lesen des Gewichtswerts aus der Wägezelle, zum Anzeigen von Daten auf Webseiten usw. geschrieben haben. Sie können diese leicht verstehen oder wenn Sie Anfänger sind, lesen Sie unsere vorherigen Raspberry Pi-Tutorials.