- Απαιτούμενα στοιχεία
- Διασύνδεση MLX90614 με Raspberry Pi
- Pi Camera Interfacing με Raspberry Pi
- Ρύθμιση SMTP Email με Raspberry Pi
- Κωδικός Python για Pi για ανάγνωση θερμοκρασίας από MLX90614 και αποστολή email με εικόνα
- Μέτρηση θερμοκρασίας και αποστολή ειδοποίησης αλληλογραφίας με PI
Από το ξέσπασμα της κορώνας, έχει γίνει πολύ δύσκολο να εντοπιστούν εκείνοι που έχουν προσβληθεί από τον ιό ή όχι. Για την επίλυση αυτού του ζητήματος, οι συσκευές θερμοκρασίας χρησιμοποιούνται συχνά για τη μέτρηση της θερμοκρασίας του σώματος. Αυτές οι συσκευές διαθέτουν αισθητήρες θερμοκρασίας IR χωρίς επαφή, οι οποίοι μπορούν να μετρήσουν τη θερμοκρασία του σώματος χωρίς φυσική επαφή.
Υπάρχουν πολλά όπλα θερμοκρασίας διαθέσιμα στην αγορά, αλλά κανένα από αυτά δεν δίνει καμία ειδοποίηση ή ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου σε ανώτερες αρχές να προβούν στις κατάλληλες ενέργειες όταν η θερμοκρασία υπερβαίνει ένα συγκεκριμένο όριο. Σε αυτό το έργο, θα συνδέσουμε έναν αισθητήρα θερμοκρασίας υπερύθρων και θα στείλουμε τις ειδοποιήσεις μέσω email με την εικόνα του ατόμου εάν η θερμοκρασία κάποιου συγκεκριμένου ατόμου υπερβαίνει την καθορισμένη τιμή.
Στον σημερινό κόσμο, το Διαδίκτυο των πραγμάτων φέρνει επανάσταση στη ζωή μας αναπτύσσοντας έναν αριθμό συστημάτων τα οποία μπορούν να παρακολουθούνται και να ελέγχονται από απόσταση. Σε αυτό το έργο, θα αξιοποιήσουμε τη δύναμη του IoT και θα κατασκευάσουμε μια συσκευή παρακολούθησης θερμοκρασίας με ειδοποιήσεις μέσω email χρησιμοποιώντας Raspberry Pi, MLX90614 και PiCamera.
Προηγουμένως είχαμε κατασκευάσει και άλλα παρόμοια θερμόμετρα για τη μέτρηση της θερμοκρασίας του σώματος, μπορείτε να τα βρείτε εδώ.
- Ψηφιακό θερμόμετρο με βάση το Arduino χρησιμοποιώντας MAX30205
- Έλεγχος θερμοκρασίας σώματος χωρίς επαφή χρησιμοποιώντας RFID και Arduino με MLX90614
- Πιστόλι υπερύθρων χωρίς επαφή χρησιμοποιώντας Arduino
- Θερμόμετρο ανάρτησης σε τοίχο με χρήση Arduino
- Έξυπνο θερμόμετρο χρησιμοποιώντας το Arduino με εφαρμογή Android
Απαιτούμενα στοιχεία
Εδώ χρησιμοποιούμε το Raspberry Pi 3 Raspbian OS. Όλες οι βασικές απαιτήσεις υλικού και λογισμικού συζητήθηκαν προηγουμένως, μπορείτε να το αναζητήσετε στο Raspberry Pi Εισαγωγή και στο Raspberry PI LED Blinking για να ξεκινήσετε, εκτός από αυτό που χρειαζόμαστε:
- Raspberry Pi 3 (οποιαδήποτε έκδοση θα ήταν μια χαρά).
- Pi κάμερα.
- MLX90614 - Αισθητήρας θερμοκρασίας IR.
- Σύνδεση καλωδίων.
- Ψωμί.
- Τροφοδοσία (5V, 2A / 3A)
Αυτό το έργο είναι απλό εάν χωρίσουμε το έργο σε τμήματα.
- Κατανόηση & διασύνδεση MLX90614 με Raspberry pi.
- Ξεκινώντας με το Pi Camera.
- Ρύθμιση SMTP Email με Raspberry pi.
- Ανάπτυξη και κατανόηση του τελικού κώδικα.
Raspberry Pi: Το Raspberry Pi είναι ένας υπολογιστής μεγέθους πιστωτικής κάρτας που σχεδιάστηκε για εκπαιδευτικούς σκοπούς. Λόγω της τιμής του και των εκπληκτικών προδιαγραφών του, όπως το ενσωματωμένο wifi, το Bluetooth και η προγραμματιζόμενη κεφαλίδα GPIO και ο αριθμός των πιθανών επιλογών για τη δημιουργία μιας εφαρμογής, εγκρίθηκε από προγραμματιστές και χόμπι ηλεκτρονικών. Μπορείτε να το αναζητήσετε στο Raspberry Pi Εισαγωγή και στο Raspberry PI LED Blinking για να ξεκινήσετε με τη διαδικασία εκκίνησης.
MLX90614 IR Temperature Sensor: Υπάρχουν πολλοί αισθητήρες διαθέσιμοι στην αγορά που μπορούν να μας δώσουν θερμοκρασία και υγρασία. Αυτό που κάνει αυτόν τον αισθητήρα διαφορετικό από όλους τους άλλους αισθητήρες είναι ότι μπορεί να μας δώσει θερμοκρασία αντικειμένου και άλλοι αισθητήρες να δίνουν θερμοκρασία περιβάλλοντος. Έχουμε χρησιμοποιήσει εκτενώς τον αισθητήρα DHT11 και το LM35 για πολλές εφαρμογές όπου πρέπει να μετρηθεί η ατμοσφαιρική υγρασία ή η θερμοκρασία.
Αλλά εδώ για να φτιάξουμε ένα όπλο θερμοκρασίας που δεν χρειάζεται φυσική επαφή και να μπορεί να μετρήσει τη θερμοκρασία του αντικειμένου αντί της θερμοκρασίας περιβάλλοντος, χρησιμοποιούμε IRX90614 με βάση το IR. Για να μάθετε περισσότερα σχετικά με τα κυκλώματα αισθητήρων υπερύθρων και υπερύθρων, ακολουθήστε τον σύνδεσμο.
Ο αισθητήρας MLX90614 κατασκευάζεται από ενσωματωμένα συστήματα Melexis Microelectronics, λειτουργεί σύμφωνα με την αρχή του αισθητήρα θερμοπυλών InfraRed για τη μέτρηση της θερμοκρασίας. Αυτοί οι αισθητήρες αποτελούνται από δύο μονάδες ενσωματωμένες εσωτερικά για απόδοση της θερμοκρασίας. Η πρώτη μονάδα είναι η μονάδα ανίχνευσης που διαθέτει ανιχνευτή υπερύθρων που ακολουθείται από τη δεύτερη μονάδα που εκτελεί τον υπολογισμό των δεδομένων με επεξεργασία ψηφιακού σήματος (DSP). Αυτός ο αισθητήρας λειτουργεί σύμφωνα με τον νόμο Stefan-Boltzmann που εξηγεί την ισχύ που ακτινοβολεί ένα μαύρο σώμα ως προς τη θερμοκρασία του. Με απλούς όρους, οποιοδήποτε αντικείμενο εκπέμπει ενέργεια υπερύθρων και η ένταση αυτού θα είναι ευθέως ανάλογη με τη θερμοκρασία αυτού του αντικειμένου. Ο αισθητήρας MLX90614 μετατρέπει την υπολογιστική τιμή σε ADC 17 bitκαι αυτό είναι προσβάσιμο χρησιμοποιώντας το πρωτόκολλο επικοινωνίας I2C. Αυτοί οι αισθητήρες μετρούν τη θερμοκρασία περιβάλλοντος καθώς και τη θερμοκρασία αντικειμένου με βαθμονόμηση ανάλυσης 0,02 ° C. Για να μάθετε περισσότερα σχετικά με τις δυνατότητες του αισθητήρα MLX90614, ανατρέξτε στο φύλλο δεδομένων MLX90614.
Χαρακτηριστικά MLX90614:
- Τάση λειτουργίας: 3,6V έως 5V
- Εύρος θερμοκρασίας περιβάλλοντος: -40 ° C έως 125 ° C
- Εύρος θερμοκρασίας αντικειμένου: -70 ° C έως -382.2 ° C
- Ανάλυση / Βαθμονόμηση: 0,02 ° C
- 17-bit ADC.
- Επικοινωνία I2C.
Διασύνδεση MLX90614 με Raspberry Pi
Πρώτον, θα κατεβάσουμε τη βιβλιοθήκη και τα πακέτα που απαιτούνται για την επιτυχή διασύνδεση του MLX90614.
Βήμα 1: Ενεργοποίηση του I2C από τη ρύθμιση Raspberry Pi.
Πληκτρολογήστε sudo raspi-config και μετά μεταβείτε στις επιλογές διασύνδεσης.
Μεταβείτε στην επιλογή I2C και ενεργοποιήστε την.
Βήμα 2: Κάντε λήψη του πακέτου / βιβλιοθήκης του MLX90614 μεταβαίνοντας στη διεύθυνση https://pypi.org/project/PyMLX90614/#files και, στη συνέχεια, κάντε δεξί κλικ και αντιγράψτε τη διεύθυνση συνδέσμου.
Μεταβείτε στο τερματικό RPI και πληκτρολογήστε wget και επικολλήστε τον σύνδεσμο που αντιγράφηκε όπως παρακάτω.
Wget
Θα δείτε τη βιβλιοθήκη στο όνομα του αρχείου zip «PyMLX90614-0.0.3.tar.gz» . στη συνέχεια εξαγάγετε το φάκελο με την επέκταση του ονόματος αρχείου tar -xf ή χρησιμοποιήστε την παρακάτω εντολή για να κάνετε το ίδιο.
tar -xf PyMLX90614-0.0.3.tar.gz
Τότε πρέπει να εγκαταστήσουμε ορισμένα απαιτούμενα πακέτα χρησιμοποιώντας τις παρακάτω εντολές.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-εργαλεία
Στη συνέχεια, μεταβείτε στον εξαγόμενο φάκελο χρησιμοποιώντας το cd PyMLX90614-0.0.3 / και εκτελέστε την εντολή.
sudo python setup.py εγκατάσταση
Μόλις ολοκληρώσετε τα βήματα, απλώς συνδέστε τον αισθητήρα MLX90614 με το Raspberry pi χρησιμοποιώντας το κύκλωμα που δίνεται παρακάτω. Το παρακάτω κύκλωμα Raspberry Pi MLX90614 σχεδιάστηκε με χρήση fritzing.
Εάν οι συνδέσεις και η εγκατάσταση έχουν γίνει σωστά, μπορούμε να ελέγξουμε εάν λαμβάνουμε την τιμή διεύθυνσης αισθητήρα στο δίαυλο I2C χρησιμοποιώντας την εντολή i2cdetect -y 1 .
Εάν όλα λειτουργούν όπως αναμενόταν, μπορούμε να δούμε την παρακάτω έξοδο στο τερματικό μας.
Το 0x5A αντιπροσωπεύει τη διεύθυνση του αισθητήρα όπως αναφέρεται στο φύλλο δεδομένων. Το απόσπασμα φύλλου δεδομένων που δείχνει το ίδιο δίνεται παρακάτω.
Τώρα, θα τρέξουμε ένα νέο όνομα αρχείου mlxread.py και θα γράψουμε ένα δείγμα προγράμματος για να ελέγξουμε τα δεδομένα από τον αισθητήρα. Ο κωδικός για το ίδιο δίνεται παρακάτω.
από smbus2 import SMBus από mlx90614 import MLX90614 bus = SMBus (1) sensor = MLX90614 (bus, address = 0x5A) print "Ambient Temperature:", sensor.get_ambient () print "Object Temperature:", sensor.get_object_1 () bus. Κλείσε()
Μόλις δημιουργηθεί το αρχείο, θα το εκτελέσουμε με την επέκταση python python mlxread.py. Η έξοδος που έλαβα φαίνεται παρακάτω. Έτρεξα το πρόγραμμα πολλές φορές για να ελέγξω αν οι τιμές αλλάζουν καθώς μετακινώ το χέρι μου πάνω από αυτό.
Ωχ, έχουμε διασυνδέσει με επιτυχία το MLX90614 με το Raspberry Pi, όπως μπορείτε να επιβεβαιώσετε από την παραπάνω εικόνα.
Pi Camera Interfacing με Raspberry Pi
Βήμα 1: Ενεργοποίηση της κάμερας από τη ρύθμιση Raspberry Pi.
Πληκτρολογήστε sudo raspi-config και μετά μεταβείτε στις επιλογές διασύνδεσης.
Μεταβείτε στην Κάμερα και ενεργοποιήστε την κάμερα.
Τώρα, συνδέστε τη μονάδα κάμερας όπως φαίνεται παρακάτω.
Βήμα 2: Για να ελέγξουμε εάν η κάμερα είναι σωστά συνδεδεμένη, παίρνουμε μια δοκιμαστική εικόνα και την αποθηκεύουμε στην επιφάνεια εργασίας μας (χρησιμοποιούμε την πλήρη έκδοση του GUI Raspbian OS)
raspistill -o Desktop / image.jpg
Αυτό θα επιτρέψει στην κάμερά σας να κάνει κλικ σε μια εικόνα με την εικόνα ονόματος και να την αποθηκεύσει στην επιφάνεια εργασίας σας.
Ρύθμιση SMTP Email με Raspberry Pi
Σε αυτήν την ενότητα, θα κατανοήσουμε πώς μπορούμε να ρυθμίσουμε τον λογαριασμό GMAIL να στέλνει μηνύματα ειδοποίησης μόλις η θερμοκρασία υπερβεί την προκαθορισμένη τιμή.
Το SMTP είναι ένα απλό πρωτόκολλο μεταφοράς αλληλογραφίας το οποίο είναι ένα πρωτόκολλο επιπέδου εφαρμογής που είναι υπεύθυνο για την υπηρεσία email που χρησιμοποιεί TCP / IP. Παρέχει τη δυνατότητα αποστολής και λήψης μηνυμάτων e-mail και διαχειρίζεται η Ομάδα Μηχανικής Διαδικτύου (IETF).
Αυτό το σεμινάριο λειτουργεί μόνο με λογαριασμούς GMAIL και για την αποφυγή τυχόν σφαλμάτων, συνιστάται εάν χρησιμοποιείτε έναν νέο λογαριασμό Gmail.
Από προεπιλογή, η Google δεν επιτρέπει στους χρήστες να στέλνουν email χρησιμοποιώντας το σενάριο python. Για να γίνει αυτό, πρέπει να ενεργοποιήσουμε ορισμένες λιγότερο ασφαλείς εφαρμογές, μεταβαίνοντας στις ρυθμίσεις λογαριασμού.
Βήμα 1: Μεταβείτε στη δεξιά γωνία και κάντε κλικ στην επιλογή Διαχείριση λογαριασμού Google.
Βήμα 2: Κάντε κλικ στο Ασφάλεια και μετακινηθείτε προς τα κάτω στο "Λιγότερη ασφαλής πρόσβαση στην εφαρμογή".
Βήμα 3: Ενεργοποιήστε την λιγότερο ασφαλή εφαρμογή.
Βήμα 4: Επαναλάβετε και με το άλλο αναγνωριστικό email για να στείλετε / λάβετε το email από το σενάριο python.
Βήμα 5: Λήψη των απαιτούμενων πακέτων.
sudo apt-get install ssmtp sudo apt-get install mailutils
Εάν αντιμετωπίζετε σφάλμα κατά την εκτέλεση της εντολής με αντιγραφή-επικόλληση, πληκτρολογήστε με μη αυτόματο τρόπο.
Βήμα 6: Αφού ολοκληρωθεί η εγκατάσταση όλων των βιβλιοθηκών, πρέπει να κάνουμε αλλαγές στο αρχείο ssmtp.conf όπου πρέπει να εισαγάγουμε τα στοιχεία email του αποστολέα.
Μεταβείτε στο sudo nano /etc/ssmtp/ssmtp.conf
Κάντε κύλιση προς τα κάτω και επικολλήστε το, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = ΝΑΙ UseTLS = ΝΑΙ
Έχω μοιραστεί επίσης ένα στιγμιότυπο οθόνης των τερματικών μου για αναφορά σας.
Μόλις χρησιμοποίησα ένα breadboard για να κάνω τη σύνδεσή μου, η ρύθμιση του υλικού μου μοιάζει με τη δική του όταν συνδέονται το MLX90614 και η κάμερα.
Κωδικός Python για Pi για ανάγνωση θερμοκρασίας από MLX90614 και αποστολή email με εικόνα
Το πρόγραμμα python κάνει όλες τις απαραίτητες λειτουργίες για να διαβάσει τα δεδομένα του αισθητήρα, να τα συγκρίνει με την τιμή κατωφλίου, να εξουσιοδοτήσει το email και, στη συνέχεια, να στείλει το email με τη συνημμένη εικόνα. Αρχικά, θα χρειαζόμαστε βιβλιοθήκες, αποστολή και δήλωση email παραλήπτη. Το email μπορεί να σταλεί μέσω smtplib, αλλά θέλουμε απλώς να οργανωθεί το email με θέμα, σώμα και άλλο συνημμένο, αυτό γίνεται με τη βοήθεια των επεκτάσεων αλληλογραφίας πολλαπλών χρήσεων (MIME). Ο πλήρης κωδικός βρίσκεται στο κάτω μέρος αυτής της σελίδας.
εισαγωγή RPi.GPIO ως gpio εισαγωγή picamera εισαγωγή χρόνος εισαγωγής smtplib από email.MIMEMultipart εισαγωγή MIMEMultipart από email.MIMEText εισαγωγή MIMEText από email.MIMEBase εισαγωγή MIMEBase από email import encoders από email.mime.image import MIMEImage από smbus2 import SMBus από mlx90614 import
Μετά από αυτό, ορίζουμε τη διεύθυνση email του αποστολέα, τη διεύθυνση email του παραλήπτη, το θέμα του email, το σώμα και το μήνυμα συνημμένου.
fromaddr = "[email protected]" # αλλάξτε τη διεύθυνση email ανάλογα toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "Η τιμή θερμοκρασίας υπερβαίνει την ειδοποίηση" body = "Παρακαλούμε βρείτε το συνημμένο εικόνα"
Στη συνέχεια, δημιουργούμε μια λειτουργία χρησιμοποιώντας την οποία μπορούμε να στείλουμε ένα E-mail.
def sendMail (data): mail.attach (MIMEText (body, 'plain')) print data dat = '% s.jpg'% data print dat attachment = open (dat, 'rb') image = MIMEImage (attachment.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 ()
Στη συνέχεια, δημιουργούμε μια λειτουργία για την καταγραφή της εικόνας που αποστέλλεται μέσω email και αποθηκεύει επίσης την εικόνα με δεδομένα και χρόνο.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) δεδομένα εκτύπωσης camera.capture ('% s. jpg '% data) camera.stop_preview () time.sleep (1) sendMail (δεδομένα)
Στη συνέχεια, κάνουμε ορισμένες ρυθμίσεις με το PiCamera.
κάμερα = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
Και επιτέλους, έχουμε έναν (1) βρόχο που θα τρέχει απεριόριστα. Θα διαβάσει τα δεδομένα από τον αισθητήρα θερμοκρασίας MLX90614 και εάν η θερμοκρασία υπερβεί την καθορισμένη τιμή, τότε η capture_image () συνάρτηση καλείται η οποία στη συνέχεια καλεί το sendmail (στοιχεία) συνάρτηση για να στείλετε την λήψη εικόνας μέσω του ηλεκτρονικού ταχυδρομείου.
Μέτρηση θερμοκρασίας και αποστολή ειδοποίησης αλληλογραφίας με PI
Όταν το υλικό και το λογισμικό είναι έτοιμα, απλώς εκτελέστε τον κωδικό python (δώστε παρακάτω) στο pi σας. Θα εκτυπώσει την τιμή της θερμοκρασίας που διαβάζεται από τον αισθητήρα όπως φαίνεται παρακάτω.
Εάν η θερμοκρασία του αντικειμένου υπερβεί τη θερμοκρασία κατωφλίου, τότε το πρόγραμμα python θα τραβήξει μια εικόνα από την κάμερα, θα το αποθηκεύσει στο βατόμουρο pi και θα το μοιραστεί επίσης μέσω E-mail. Ένα δείγμα E-mail που αποστέλλεται από το βατόμουρο Pi εμφανίζεται παρακάτω.
Η πλήρης εργασία του έργου μπορεί επίσης να βρεθεί στο παρακάτω βίντεο. Ελπίζω να σας άρεσε το άρθρο, αν έχετε απορίες παρακαλώ αφήστε τα στα παρακάτω σχόλια ή μπορείτε επίσης να χρησιμοποιήσετε τα φόρουμ μας για να δημοσιεύσετε τις ερωτήσεις σας και να επικοινωνήσετε με την κοινότητα.