- Componenti richiesti
- Interfacciamento di MLX90614 con Raspberry Pi
- Interfaccia fotocamera Pi con Raspberry Pi
- Configurazione dell'e-mail SMTP con Raspberry Pi
- Codice Python per Pi per leggere la temperatura da MLX90614 e inviare e-mail con immagine
- Misurazione della temperatura e invio di avvisi di posta con PI
Dallo scoppio della corona, è diventato molto difficile identificare coloro che sono colpiti dal virus o meno. Per risolvere questo problema, i dispositivi di temperatura vengono spesso utilizzati per misurare la temperatura corporea. Questi dispositivi dispongono di sensori di temperatura IR senza contatto che possono misurare la temperatura corporea senza alcun contatto fisico.
Ci sono molte pistole termiche disponibili sul mercato, ma nessuna di esse fornisce alcun avviso o notifica e-mail alle autorità superiori per intraprendere azioni appropriate quando la temperatura supera un determinato limite. In questo progetto, interfacciamo un sensore di temperatura IR e invieremo gli avvisi e-mail con l'immagine della persona se la temperatura di una persona in particolare supera il valore impostato.
Nel mondo di oggi, l'Internet of Things sta rivoluzionando la nostra vita sviluppando una serie di sistemi che possono essere monitorati e controllati a distanza. In questo progetto, sfrutteremo la potenza dell'IoT e costruiremo un dispositivo di monitoraggio della temperatura con avvisi e-mail utilizzando Raspberry Pi, MLX90614 e PiCamera.
In precedenza abbiamo costruito anche altri termometri simili per la misurazione della temperatura corporea, li puoi trovare qui.
- Termometro digitale basato su Arduino che utilizza MAX30205
- Screening della temperatura corporea senza contatto utilizzando RFID e Arduino con MLX90614
- Termometro a infrarossi senza contatto con pistola Arduino
- Termometro senza contatto per montaggio a parete con Arduino
- Termometro intelligente utilizzando Arduino con l'applicazione Android
Componenti richiesti
Qui stiamo usando il sistema operativo Raspbian Raspberry Pi 3. Tutti i requisiti hardware e software di base sono stati discussi in precedenza, puoi cercarli nell'introduzione di Raspberry Pi e LED Raspberry PI lampeggiante per iniziare, oltre a quello di cui abbiamo bisogno:
- Raspberry Pi 3 (qualsiasi versione andrebbe bene).
- Fotocamera Pi.
- MLX90614 - Sensore di temperatura IR.
- Cavi di collegamento.
- Breadboard.
- Alimentazione (5V, 2A / 3A)
Questo progetto è semplice se dividiamo il progetto in parti.
- Comprensione e interfacciamento di MLX90614 con Raspberry pi.
- Iniziare con Pi Camera.
- Configurazione dell'e-mail SMTP con Raspberry pi.
- Sviluppo e comprensione del codice finale.
Raspberry Pi: Raspberry Pi è un computer delle dimensioni di una carta di credito progettato per scopi educativi. A causa del suo prezzo e delle straordinarie specifiche come il wifi integrato, il Bluetooth e l'intestazione GPIO programmabile e il numero di opzioni possibili per creare un'applicazione, è stato adottato da sviluppatori e appassionati di elettronica. Puoi cercarlo nell'introduzione di Raspberry Pi e LED Raspberry PI lampeggiante per iniziare con il processo di avvio.
Sensore di temperatura IR MLX90614: sul mercato sono disponibili molti sensori che possono fornirci temperatura e umidità. Ciò che rende questo sensore diverso da tutti gli altri sensori è che può fornirci la temperatura dell'oggetto e altri sensori forniscono la temperatura ambiente. Abbiamo utilizzato ampiamente il sensore DHT11 e l'LM35 per molte applicazioni in cui è necessario misurare l'umidità o la temperatura atmosferica.
Ma qui per realizzare una pistola termica che non necessita di contatto fisico e può misurare la temperatura dell'oggetto invece della temperatura ambiente, utilizziamo MLX90614 basato su IR. Per saperne di più sui circuiti dei sensori a infrarossi e IR, segui il link.
Il sensore MLX90614 è prodotto dai sistemi integrati Melexis Microelectronics, funziona secondo il principio del sensore a termopila a infrarossi per la misurazione della temperatura. Questi sensori sono costituiti da due unità incorporate internamente per fornire l'uscita della temperatura. La prima unità è l'unità di rilevamento che dispone di un rivelatore a infrarossi a cui segue la seconda unità che esegue il calcolo dei dati con elaborazione del segnale digitale (DSP). Questo sensore funziona secondo la legge di Stefan-Boltzmann che spiega la potenza irradiata da un corpo nero in termini di temperatura. In termini semplici, qualsiasi oggetto emette energia IR e l'intensità sarà direttamente proporzionale alla temperatura di quell'oggetto. Il sensore MLX90614 converte il valore di calcolo in ADC a 17 bite che è possibile accedere utilizzando il protocollo di comunicazione I2C. Questi sensori misurano la temperatura ambiente e la temperatura dell'oggetto con la calibrazione della risoluzione di 0,02 ° C. Per saperne di più sulle caratteristiche del sensore MLX90614, fare riferimento alla scheda tecnica MLX90614.
Caratteristiche di MLX90614:
- Tensione di funzionamento: da 3,6 V a 5 V.
- Intervallo di temperatura ambiente: da -40 ° C a 125 ° C
- Intervallo di temperatura dell'oggetto: da -70 ° C a -382,2 ° C
- Risoluzione / calibrazione: 0,02 ° C
- ADC a 17 bit.
- Comunicazione I2C.
Interfacciamento di MLX90614 con Raspberry Pi
Innanzitutto, scaricheremo la libreria e i pacchetti necessari per interfacciare correttamente l'MLX90614.
Passaggio 1: abilitazione dell'I2C dall'impostazione Raspberry Pi.
Digita sudo raspi-config e poi vai alle opzioni di interfacciamento.
Vai all'opzione I2C e abilitala.
Passaggio 2: scarica il pacchetto / libreria di MLX90614 andando su https://pypi.org/project/PyMLX90614/#files, quindi fai clic con il pulsante destro del mouse e copia l'indirizzo del collegamento.
Vai al terminale RPI e digita wget e incolla il link copiato come sotto.
Wget
Scaricherà la libreria nel nome del file zip "PyMLX90614-0.0.3.tar.gz" . quindi estrarre la cartella con l'estensione tar -xf nome file o utilizzare il comando seguente per fare lo stesso.
tar -xf PyMLX90614-0.0.3.tar.gz
Quindi dobbiamo installare alcuni pacchetti richiesti utilizzando i comandi seguenti.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
Quindi vai alla cartella estratta usando cd PyMLX90614-0.0.3 / ed esegui il comando.
sudo python setup.py install
Una volta che hai finito di seguire i passaggi, basta interfacciare il sensore MLX90614 con Raspberry pi utilizzando il circuito indicato di seguito. Il circuito Raspberry Pi MLX90614 di seguito è stato progettato utilizzando il fritzing.
Se i collegamenti e l'installazione vengono eseguiti correttamente, possiamo controllare se otteniamo il valore dell'indirizzo del sensore sul bus I2C utilizzando il comando i2cdetect -y 1 .
Se tutto funziona come previsto, possiamo vedere l'output di seguito sul nostro terminale.
0x5A rappresenta l'indirizzo del sensore come indicato dal datasheet. Lo snippet della scheda tecnica che mostra lo stesso è fornito di seguito.
Ora, eseguiremo un nuovo nome di file mlxread.py e scriveremo un programma di esempio per controllare i dati dal sensore. Il codice per lo stesso è dato di seguito.
from smbus2 import SMBus from 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. vicino()
Una volta creato il file, lo eseguiremo con l'estensione python python mlxread.py. L'output che ho ricevuto è mostrato di seguito. Ho eseguito il programma più volte per verificare se i valori cambiano mentre ci passo sopra la mano.
Woah, abbiamo interfacciato con successo MLX90614 con il nostro Raspberry Pi come puoi confermare dall'immagine sopra.
Interfaccia fotocamera Pi con Raspberry Pi
Passaggio 1: abilitazione della fotocamera dall'impostazione Raspberry Pi.
Digita sudo raspi-config e poi vai alle opzioni di interfacciamento.
Vai a Fotocamera e abilita la fotocamera.
Ora collega il modulo della fotocamera come mostrato di seguito.
Step2: Per verificare se la fotocamera è collegata correttamente, prendiamo un'immagine di prova e la salviamo sul nostro desktop (stiamo usando la versione completa del sistema operativo Raspbian con GUI)
raspistill -o Desktop / immagine.jpg
Ciò consentirà alla fotocamera di fare clic su un'immagine con il nome dell'immagine e di memorizzarla sul desktop.
Configurazione dell'e-mail SMTP con Raspberry Pi
In questa sezione, capiremo come possiamo impostare il nostro account GMAIL per inviare mail di avviso una volta che la temperatura supera il valore impostato predefinito.
SMTP è un Simple Mail Transfer Protocol, un protocollo a livello di applicazione responsabile del servizio di posta elettronica che utilizza TCP / IP. Fornisce la capacità di inviare e ricevere messaggi di posta elettronica ed è gestito dall'Internet Engineering Task Force (IETF).
Questo tutorial funziona solo con account GMAIL e per evitare possibili errori, sarebbe consigliato se utilizzi un nuovo account Gmail.
Per impostazione predefinita, Google non consente agli utenti di inviare e-mail utilizzando script Python. Per farlo funzionare, dobbiamo abilitare alcune app meno sicure andando nelle impostazioni dell'account.
Passaggio 1: vai nell'angolo destro e fai clic su Gestisci il tuo account Google.
Passaggio 2: fare clic su Sicurezza e scorrere verso il basso fino a "Accesso alle app meno sicure".
Passaggio 3: attiva l'app meno sicura.
Passaggio 4: ripetere anche con l'altro ID e-mail per inviare / ricevere l'e-mail dallo script python.
Passaggio 5: scarica i pacchetti richiesti.
sudo apt-get install ssmtp sudo apt-get install mailutils
Se si verifica un errore durante l'esecuzione del comando mediante copia-incolla, digitarlo manualmente.
Step6: Al termine dell'installazione di tutte le librerie, dobbiamo apportare modifiche al file ssmtp.conf dove dobbiamo inserire i dettagli dell'email del mittente
Vai a sudo nano /etc/ssmtp/ssmtp.conf
Scorri fino alla fine e incolla questo, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = YES UseTLS = YES
Ho anche condiviso uno screenshot dei miei terminali come riferimento.
Ho appena usato una breadboard per effettuare la connessione, la mia configurazione hardware sembra la sua quando l'MLX90614 e la fotocamera sono collegati.
Codice Python per Pi per leggere la temperatura da MLX90614 e inviare e-mail con immagine
Il programma python esegue tutte le operazioni necessarie per leggere i dati del sensore, confrontarli con il valore di soglia, autorizzare l'email e quindi inviare l'email con l'immagine allegata. In un primo momento, richiederemo la dichiarazione di posta elettronica delle biblioteche, del mittente e del destinatario. L'email può essere inviata da smtplib, ma vogliamo solo che l'email sia organizzata con un oggetto, un corpo e altri allegati, questo viene fatto con l'aiuto di Multipurpose Internet Mail Extensions (MIME). Il codice completo si trova in fondo a questa pagina.
importare RPi.GPIO come gpio importare picamera import time import smtplib da email.MIMEMultipart import MIMEMultipart from email.MIMEText import MIMEText from email.MIMEBase import MIMEBase from email import encoder from email.mime.image import MIMEImage from smbus2 import SMBus from mlx90614 import MLX90614
Successivamente, definiamo l'indirizzo e-mail del mittente, l'indirizzo e-mail del destinatario, l'oggetto dell'e-mail, il corpo e il messaggio in allegato.
fromaddr = "[email protected]" # cambia di conseguenza l'indirizzo email toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "Il valore della temperatura supera l'avviso" body = "Trova l'allegato Immagine"
Quindi, creiamo una funzione con la quale possiamo inviare un'e-mail.
def sendMail (data): mail.attach (MIMEText (body, 'plain')) print data dat = '% s.jpg'% data print dat allegato = 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 ()
Quindi, creiamo una funzione per catturare l'immagine che viene inviata via e-mail e memorizza anche l'immagine con i dati e l'ora.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) print data camera.capture ('% s. jpg '% data) camera.stop_preview () time.sleep (1) sendMail (dati)
Quindi, effettuiamo alcune impostazioni con PiCamera.
camera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
Infine, abbiamo un ciclo while (1) che verrà eseguito all'infinito. Leggerà i dati dal sensore di temperatura MLX90614 e se la temperatura supera il valore impostato, viene chiamata la funzione capture_image () che quindi chiama la funzione sendMail (data) per inviare l'acquisizione dell'immagine tramite e-mail.
Misurazione della temperatura e invio di avvisi di posta con PI
Quando l'hardware e il software sono pronti, basta eseguire il codice python (fornito di seguito) sul tuo pi. Stamperà il valore della temperatura letto dal sensore come mostrato di seguito.
Se la temperatura dell'oggetto supera la temperatura di soglia, il nostro programma Python prenderà un'immagine dalla fotocamera, la salverà su Raspberry Pi e la condividerà anche tramite e-mail. Di seguito è mostrata un'e-mail di esempio inviata da raspberry Pi.
Il funzionamento completo del progetto si trova anche nel video linkato di seguito. Spero che l'articolo ti sia piaciuto, se hai domande per favore lasciale nei commenti qui sotto o puoi anche usare i nostri forum per inviare le tue domande ed entrare in contatto con la comunità.