- Erforderliche Komponenten
- Schnittstelle zwischen MLX90614 und Raspberry Pi
- Pi-Kamera-Schnittstelle mit Raspberry Pi
- Einrichten von SMTP-E-Mails mit Raspberry Pi
- Python-Code für Pi zum Lesen der Temperatur von MLX90614 und zum Senden einer E-Mail mit Bild
- Messen der Temperatur und Senden eines Mail-Alarms mit PI
Seit dem Ausbruch der Korona ist es sehr schwierig geworden, diejenigen zu identifizieren, die vom Virus betroffen sind oder nicht. Um dieses Problem zu lösen, werden häufig Temperaturgeräte zur Messung der Körpertemperatur verwendet. Diese Geräte verfügen über berührungslose IR-Temperatursensoren, mit denen die Körpertemperatur ohne physischen Kontakt gemessen werden kann.
Es gibt viele Temperaturpistolen auf dem Markt, aber keine von ihnen gibt eine Warnung oder E-Mail-Benachrichtigung an höhere Behörden, um geeignete Maßnahmen zu ergreifen, wenn die Temperatur einen bestimmten Grenzwert überschreitet. In diesem Projekt werden wir einen IR-Temperatursensor anschließen und die E-Mail-Benachrichtigungen mit dem Bild der Person senden, wenn die Temperatur einer bestimmten Person den eingestellten Wert überschreitet.
In der heutigen Welt revolutioniert das Internet der Dinge unser Leben, indem es eine Reihe von Systemen entwickelt, die fernüberwacht und gesteuert werden können. In diesem Projekt werden wir die Leistung des IoT nutzen und ein Temperaturüberwachungsgerät mit E-Mail-Benachrichtigungen unter Verwendung von Raspberry Pi, MLX90614 und PiCamera erstellen.
Zuvor haben wir auch andere ähnliche Thermometer für die Messung der Körpertemperatur gebaut. Sie finden sie hier.
- Digitales Thermometer auf Arduino-Basis mit MAX30205
- Kontaktloses Körpertemperatur-Screening mit RFID und Arduino mit MLX90614
- Berührungslose Infrarot-Thermometerpistole mit Arduino
- Berührungsloses Wandthermometer mit Arduino
- Smart Thermometer mit Arduino mit Android-Anwendung
Erforderliche Komponenten
Hier verwenden wir Raspberry Pi 3 Raspbian 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 3 (jede Version wäre in Ordnung).
- Pi Kamera.
- MLX90614 - IR-Temperatursensor.
- Kabel anschließen.
- Steckbrett.
- Stromversorgung (5V, 2A / 3A)
Dieses Projekt ist einfach, wenn wir das Projekt in Teile teilen.
- MLX90614 mit Raspberry pi verstehen und verbinden.
- Erste Schritte mit Pi Camera.
- Einrichten von SMTP-E-Mails mit Raspberry pi.
- Endgültige Codeentwicklung und -verständnis.
Raspberry Pi: Raspberry Pi ist ein Computer in Kreditkartengröße, der für Bildungszwecke entwickelt wurde. Aufgrund des Preises und der erstaunlichen Spezifikationen wie integriertem WLAN, Bluetooth und programmierbarem GPIO-Header sowie der Anzahl der möglichen Optionen zum Erstellen einer Anwendung wurde es von Entwicklern und Elektronik-Hobbyisten übernommen. Sie können es in der Einführung zu Raspberry Pi und zum Blinken der Raspberry PI-LED nachschlagen, um mit dem Startvorgang zu beginnen.
MLX90614 IR-Temperatursensor: Es gibt viele Sensoren auf dem Markt, die uns Temperatur und Luftfeuchtigkeit liefern können. Was diesen Sensor von allen anderen Sensoren unterscheidet, ist, dass er uns die Objekttemperatur und andere Sensoren die Umgebungstemperatur anzeigen kann. Wir haben DHT11 Sensor und LM35 ausgiebig für viele Anwendungen verwendet, bei denen Luftfeuchtigkeit oder Temperatur gemessen werden müssen.
Für die Herstellung einer Temperaturpistole, die keinen physischen Kontakt benötigt und die Objekttemperatur anstelle der Umgebungstemperatur messen kann, verwenden wir den IR-basierten MLX90614. Um mehr über Infrarot- und IR-Sensorschaltungen zu erfahren, folgen Sie dem Link.
Der Sensor MLX90614 wird von Melexis Microelectronics Integrated Systems hergestellt und arbeitet nach dem Prinzip des Infrarot-Thermopile-Sensors zur Temperaturmessung. Diese Sensoren bestehen aus zwei Einheiten, die intern eingebettet sind, um die Temperaturausgabe zu erhalten. Die erste Einheit ist die Erfassungseinheit mit einem Infrarotdetektor, gefolgt von der zweiten Einheit, die die Berechnung der Daten mit digitaler Signalverarbeitung (DSP) durchführt. Dieser Sensor arbeitet nach dem Stefan-Boltzmann-Gesetz, das die von einem schwarzen Körper abgestrahlte Leistung anhand seiner Temperatur erklärt. In einfachen Worten, jedes Objekt sendet IR-Energie aus und deren Intensität ist direkt proportional zur Temperatur dieses Objekts. Der Sensor MLX90614 wandelt den Rechenwert in einen 17-Bit-ADC umund darauf kann über das I2C-Kommunikationsprotokoll zugegriffen werden. Diese Sensoren messen sowohl die Umgebungstemperatur als auch die Objekttemperatur mit einer Auflösungskalibrierung von 0,02 ° C. Weitere Informationen zu den Funktionen des MLX90614-Sensors finden Sie im Datenblatt MLX90614.
Eigenschaften von MLX90614:
- Betriebsspannung: 3,6 V bis 5 V.
- Umgebungstemperaturbereich: -40 ° C bis 125 ° C.
- Objekttemperaturbereich: -70 ° C bis -382,2 ° C.
- Auflösung / Kalibrierung: 0,02 ° C.
- 17-Bit-ADC.
- I2C-Kommunikation.
Schnittstelle zwischen MLX90614 und Raspberry Pi
Zunächst laden wir die Bibliothek und die Pakete herunter, die für eine erfolgreiche Schnittstelle zum MLX90614 erforderlich sind.
Schritt 1: Aktivieren des I2C über die Raspberry Pi-Einstellung.
Geben Sie sudo Raspi-config und dann gehen Sie zu Schnittstellenoptionen.
Gehen Sie zur I2C-Option und aktivieren Sie sie.
Schritt 2: Laden Sie das Paket / die Bibliothek von MLX90614 unter https://pypi.org/project/PyMLX90614/#files herunter, klicken Sie mit der rechten Maustaste und kopieren Sie die Linkadresse.
Gehen Sie zum RPI-Terminal und geben Sie wget ein und fügen Sie den wie unten kopierten Link ein.
Wget
Die Bibliothek wird unter dem Namen der Zip-Datei 'PyMLX90614-0.0.3.tar.gz' heruntergeladen . Extrahieren Sie dann den Ordner mit der Erweiterung des Dateinamens tar -xf oder verwenden Sie den folgenden Befehl, um dasselbe zu tun.
tar -xf PyMLX90614-0.0.3.tar.gz
Dann müssen wir einige erforderliche Pakete mit den folgenden Befehlen installieren.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
Gehen Sie dann mit cd PyMLX90614-0.0.3 / zum extrahierten Ordner und führen Sie den Befehl aus.
sudo python setup.py installieren
Wenn Sie die folgenden Schritte ausgeführt haben, verbinden Sie den MLX90614-Sensor einfach über die unten angegebene Schaltung mit Raspberry pi. Die folgende Raspberry Pi MLX90614-Schaltung wurde unter Verwendung von Fritzing entworfen.
Wenn die Verbindungen und die Installation ordnungsgemäß durchgeführt wurden, können wir mit dem Befehl i2cdetect -y 1 überprüfen, ob wir den Sensoradresswert auf dem I2C-Bus erhalten .
Wenn alles wie erwartet funktioniert, können wir die folgende Ausgabe auf unserem Terminal sehen.
0x5A repräsentiert die Adresse des Sensors, wie im Datenblatt angegeben. Das Datenblatt-Snippet, das dasselbe zeigt, ist unten angegeben.
Jetzt führen wir einen neuen Dateinamen mlxread.py aus und schreiben ein Beispielprogramm, um die Daten vom Sensor zu überprüfen. Der Code dafür ist unten angegeben.
aus smbus2 SMBus importieren aus mlx90614 MLX90614 importieren bus = SMBus (1) sensor = MLX90614 (Bus, Adresse = 0x5A) print "Umgebungstemperatur:", sensor.get_ambient () print "Objekttemperatur:", sensor.get_object_1 () bus. schließen()
Sobald die Datei erstellt wurde, führen wir sie mit der Python-Erweiterung python mlxread.py aus. Die Ausgabe, die ich erhalten habe, ist unten gezeigt. Ich habe das Programm mehrmals ausgeführt, um zu überprüfen, ob sich die Werte ändern, wenn ich meine Hand darüber bewege.
Woah, wir haben MLX90614 erfolgreich mit unserem Raspberry Pi verbunden, wie Sie anhand des obigen Bildes bestätigen können.
Pi-Kamera-Schnittstelle mit Raspberry Pi
Schritt 1: Aktivieren der Kamera über die Raspberry Pi-Einstellung.
Geben Sie sudo Raspi-config und dann gehen Sie zu Schnittstellenoptionen.
Gehen Sie zu Kamera und aktivieren Sie die Kamera.
Schließen Sie nun das Kameramodul wie unten gezeigt an.
Schritt 2: Um zu überprüfen, ob die Kamera richtig angeschlossen ist, nehmen wir ein Testbild auf und speichern es auf unserem Desktop (wir verwenden die Vollversion von Raspbian OS).
raspistill -o Desktop / image.jpg
Dadurch kann Ihre Kamera auf ein Bild mit dem Namensbild klicken und dieses auf Ihrem Desktop speichern.
Einrichten von SMTP-E-Mails mit Raspberry Pi
In diesem Abschnitt erfahren Sie, wie Sie unser GMAIL-Konto so einstellen können, dass Warnmeldungen gesendet werden, sobald die Temperatur den vordefinierten Sollwert überschreitet.
SMTP ist ein Simple Mail Transfer Protocol, ein Protokoll auf Anwendungsebene, das für den E-Mail-Dienst unter Verwendung von TCP / IP verantwortlich ist. Es bietet die Möglichkeit zum Senden und Empfangen von E-Mail-Nachrichten und wird von der Internet Engineering Task Force (IETF) verwaltet.
Dieses Tutorial funktioniert nur mit GMAIL-Konten. Um mögliche Fehler zu vermeiden, wird empfohlen, ein neues Google Mail-Konto zu verwenden.
Standardmäßig erlaubt Google Nutzern nicht, E-Mails mit Python-Skripten zu senden. Damit dies funktioniert, müssen wir einige weniger sichere Apps aktivieren, indem wir die Kontoeinstellungen aufrufen.
Schritt 1: Gehen Sie in die rechte Ecke und klicken Sie auf Mein Google-Konto verwalten.
Schritt 2: Klicken Sie auf Sicherheit und scrollen Sie nach unten zu "Weniger sicherer App-Zugriff".
Schritt 3: Aktivieren Sie die weniger sichere App.
Schritt 4: Wiederholen Sie diesen Vorgang auch mit der anderen E-Mail-ID, um die E-Mail vom Python-Skript zu senden / empfangen.
Schritt 5: Laden Sie die erforderlichen Pakete herunter.
sudo apt-get install ssmtp sudo apt-get install mailutils
Wenn beim Ausführen des Befehls durch Kopieren und Einfügen eine Fehlermeldung angezeigt wird, geben Sie ihn manuell ein.
Schritt 6: Nachdem die Installation aller Bibliotheken abgeschlossen ist, müssen wir Änderungen in der Datei ssmtp.conf vornehmen, in die wir die E-Mail-Details des Absenders eingeben müssen
Gehen Sie zu sudo nano /etc/ssmtp/ssmtp.conf
Scrollen Sie bis zum Ende und fügen Sie dies ein.
mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = YES UseTLS = YES
Ich habe auch einen Screenshot meiner Terminals als Referenz freigegeben.
Ich habe gerade ein Steckbrett verwendet, um meine Verbindung herzustellen. Meine Hardware-Konfiguration sieht wie seine aus, wenn der MLX90614 und die Kamera verbunden sind.
Python-Code für Pi zum Lesen der Temperatur von MLX90614 und zum Senden einer E-Mail mit Bild
Das Python-Programm führt alle erforderlichen Vorgänge aus, um die Sensordaten zu lesen, mit dem Schwellenwert zu vergleichen, die E-Mail zu autorisieren und die E-Mail dann mit dem angehängten Bild zu senden. Zunächst benötigen wir eine E-Mail-Erklärung für Bibliotheken, Absender und Empfänger. E-Mails können per smtplib gesendet werden. Wir möchten jedoch nur, dass die E-Mails mit einem Betreff, einem Text und einem anderen Anhang organisiert werden. Dies erfolgt mithilfe von MIME (Multipurpose Internet Mail Extensions). Den vollständigen Code finden Sie unten auf dieser Seite.
RPi.GPIO als GPIO importieren Picamera importieren Importzeit importieren smtplib aus E-Mail importieren.MIMEMultipart MIMEMultipart aus E-Mail importieren.MIMEText MIMEText aus E-Mail importieren.MIMEBase MIMEBase aus E-Mail importieren Encoder aus E-Mail importieren
Danach definieren wir die Absender-E-Mail-Adresse, die Empfänger-E-Mail-Adresse, den Betreff der E-Mail, den Text und die Anhangsnachricht.
fromaddr = "[email protected]" # Ändern Sie die E-Mail-Adresse entsprechend toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "Temperaturwert überschreitet Alarm" body = "Bitte finden Sie den Anhang Bild"
Anschließend erstellen wir eine Funktion, mit der wir eine E-Mail senden können.
def sendMail (Daten): mail.attach (MIMEText (body, 'plain')) Druckdaten dat = '% s.jpg'% Daten Druckdaten Anhang = open (dat, 'rb') image = MIMEImage (Anhang.read ()) attachment.close () mail.attach (image) server = smtplib.SMTP ('smtp.gmail.com', 587) server.starttls () server.login (fromaddr, "test12345 @") text = mail. as_string () server.sendmail (fromaddr, toaddr, text) server.quit ()
Anschließend erstellen wir eine Funktion zum Erfassen des per E-Mail gesendeten Bilds und speichern das Bild mit Daten und Zeit.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) Daten drucken camera.capture ('% s. jpg '% data) camera.stop_preview () time.sleep (1) sendMail (data)
Dann nehmen wir einige Einstellungen mit PiCamera vor.
camera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
Und endlich haben wir eine while (1) -Schleife, die unendlich läuft. Es liest die Daten vom Temperatursensor MLX90614 und wenn die Temperatur den eingestellten Wert überschreitet, wird die Funktion capture_image () aufgerufen, die dann die Funktion sendMail (data) aufruft , um die Bilderfassung per E-Mail zu senden.
Messen der Temperatur und Senden eines Mail-Alarms mit PI
Wenn die Hardware und Software fertig sind, führen Sie einfach den Python-Code (siehe unten) auf Ihrem Pi aus. Der vom Sensor abgelesene Temperaturwert wird wie unten gezeigt gedruckt.
Wenn die Objekttemperatur die Schwellentemperatur überschreitet, nimmt unser Python-Programm ein Bild von der Kamera auf, speichert es auf Himbeer-Pi und teilt es auch per E-Mail. Eine Beispiel-E-Mail von Himbeer-Pi wird unten gezeigt.
Die vollständige Arbeitsweise des Projekts finden Sie auch in dem unten verlinkten Video. Ich hoffe, Ihnen hat der Artikel gefallen. Wenn Sie Fragen haben, hinterlassen Sie diese bitte in den Kommentaren unten. Sie können auch unsere Foren verwenden, um Ihre Fragen zu posten und mit der Community in Kontakt zu treten.