- Components necessaris
- Interfície MLX90614 amb Raspberry Pi
- Interfície de càmera Pi amb Raspberry Pi
- Configuració del correu electrònic SMTP amb Raspberry Pi
- Codi Python per a Pi per llegir la temperatura des de MLX90614 i enviar un correu electrònic amb imatge
- Mesurament de la temperatura i enviament d'alerta de correu amb PI
Des del brot de la corona, s’ha convertit en molt difícil identificar aquells que estan afectats o no pel virus. Per solucionar aquest problema, sovint s’utilitzen dispositius de temperatura per mesurar la temperatura corporal. Aquests dispositius tenen sensors de temperatura IR sense contacte que poden mesurar la temperatura corporal sense cap contacte físic.
Hi ha moltes armes de temperatura disponibles al mercat, però cap d'elles dóna cap avís ni notificació per correu electrònic a les autoritats superiors perquè prenguin les mesures adequades quan la temperatura supera un límit concret. En aquest projecte, connectarem un sensor de temperatura IR i enviarem les alertes per correu electrònic amb la imatge de la persona si la temperatura d'alguna persona en particular supera el valor establert.
En el món actual, la Internet de les Coses està revolucionant la nostra vida desenvolupant una sèrie de sistemes que es poden controlar i controlar remotament. En aquest projecte, aprofitarem la potència de l’IoT i crearem un dispositiu de control de temperatura amb alertes de correu electrònic mitjançant Raspberry Pi, MLX90614 i PiCamera.
Anteriorment, també hem construït altres termòmetres similars per mesurar la temperatura corporal. Els podeu trobar aquí.
- Termòmetre digital basat en Arduino que utilitza MAX30205
- Detecció de la temperatura corporal sense contacte mitjançant RFID i Arduino amb MLX90614
- Termòmetre infraroig sense contacte amb Arduino
- Termòmetre sense contacte muntat a la paret mitjançant Arduino
- Termòmetre intel·ligent que utilitza Arduino amb aplicació per a Android
Components necessaris
Aquí estem fent servir Raspberry Pi 3 Raspbian OS. Tots els requisits bàsics de maquinari i programari s’han comentat prèviament. Podeu consultar-los a la Introducció de Raspberry Pi i al LED Raspberry PI Parpellejant per començar, a part del que necessitem:
- Raspberry Pi 3 (qualsevol versió estaria bé).
- Càmera Pi.
- MLX90614 - Sensor de temperatura IR.
- Connexió de cables.
- Taula de pa.
- Font d'alimentació (5V, 2A / 3A)
Aquest projecte és senzill si el dividim en parts.
- Comprensió i interfície MLX90614 amb Raspberry pi.
- Introducció a Pi Camera.
- Configuració del correu electrònic SMTP amb Raspberry pi.
- Desenvolupament i comprensió del codi final.
Raspberry Pi: Raspberry Pi és un ordinador de mida de targeta de crèdit dissenyat amb finalitats educatives. A causa del seu preu i increïbles especificacions, com ara wifi a bord, Bluetooth i capçalera GPIO programable, i la quantitat d'opcions possibles per crear una aplicació, va ser adoptada per desenvolupadors i aficionats a l'electrònica. Podeu cercar-lo a la Introducció de Raspberry Pi i al LED Raspberry PI Parpellejant per començar amb el procés d’arrencada.
MLX90614 Sensor de temperatura IR: Hi ha molts sensors disponibles al mercat que ens poden donar temperatura i humitat. El que fa que aquest sensor sigui diferent de la resta de sensors és que ens pot donar temperatura a l’objecte i altres sensors donen temperatura ambiental. Hem utilitzat el sensor DHT11 i el LM35 àmpliament per a moltes aplicacions on s’ha de mesurar la temperatura o la humitat atmosfèrica.
Però aquí, per fer una pistola de temperatura que no necessiti contacte físic i pugui mesurar la temperatura de l’objecte en lloc de la temperatura ambient, fem servir MLX90614 basat en IR. Per obtenir més informació sobre els circuits de sensors infrarojos i IR, seguiu l'enllaç.

El sensor MLX90614 està fabricat per sistemes integrats de Melexis Microelectronics, funciona segons el principi del sensor de termopiletes infrarojos per mesurar la temperatura. Aquests sensors consten de dues unitats incrustades internament per donar la temperatura de sortida. La primera unitat és la unitat de detecció que té un detector d'infrarojos, seguit de la segona unitat que realitza el càlcul de les dades amb processament de senyal digital (DSP). Aquest sensor funciona segons la llei de Stefan-Boltzmann que explica la potència irradiada per un cos negre en termes de temperatura. En termes senzills, qualsevol objecte emet energia IR i la seva intensitat serà directament proporcional a la temperatura d’aquest objecte. El sensor MLX90614 converteix el valor computacional en ADC de 17 bitsi s’hi pot accedir mitjançant el protocol de comunicació I2C. Aquests sensors mesuren la temperatura ambiental i la temperatura dels objectes amb un calibratge de resolució de 0,02 ° C. Per obtenir més informació sobre les característiques del sensor MLX90614, consulteu el full de dades MLX90614.
Característiques de MLX90614:
- Voltatge de funcionament: 3,6V a 5V
- Rang de temperatura ambiental: -40 ° C a 125 ° C
- Rang de temperatura de l’objecte: -70 ° C a -382,2 ° C
- Resolució / calibració: 0,02 ° C
- ADC de 17 bits.
- Comunicació I2C.
Interfície MLX90614 amb Raspberry Pi
En primer lloc, descarregarem la biblioteca i els paquets necessaris per a la interfície amb èxit del MLX90614.
Pas 1: habilitar el paràmetre I2C des de Raspberry Pi.
Escriviu sudo raspi-config i després aneu a les opcions d'interfície.

Aneu a l'opció I2C i activeu-la.

Pas 2: baixeu el paquet / biblioteca de MLX90614 anant a https://pypi.org/project/PyMLX90614/#files i, a continuació, feu clic amb el botó dret i copieu l'adreça de l'enllaç.

Aneu al terminal RPI i escriviu wget i enganxeu l'enllaç copiat com a continuació.
Wget
Descarregarà la biblioteca al nom del fitxer zip "PyMLX90614-0.0.3.tar.gz" . a continuació, extreu la carpeta amb l'extensió del nom del fitxer tar -xf o utilitzeu l'ordre següent per fer el mateix.
tar -xf PyMLX90614-0.0.3.tar.gz
A continuació, hem d’instal·lar alguns paquets necessaris mitjançant les ordres següents.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
A continuació, aneu a la carpeta extreta amb cd PyMLX90614-0.0.3 / i executeu l'ordre.
sudo python setup.py install

Un cop hàgiu acabat de seguir els passos, només heu d’interfocar el sensor MLX90614 amb Raspberry pi mitjançant el circuit que es mostra a continuació. El següent circuit Raspberry Pi MLX90614 es va dissenyar utilitzant fritzing.

Si les connexions i la instal·lació es fan correctament, podem comprovar si obtenim el valor de l'adreça del sensor al bus I2C mitjançant l'ordre i2cdetect -y 1 .
Si tot funciona com s’esperava, podem veure la sortida següent al nostre terminal.

0x5A representa l'adreça del sensor tal com s'esmenta al full de dades. A continuació es mostra el fragment de full de dades que mostra el mateix.

Ara, executarem un nou nom de fitxer mlxread.py i escriurem un programa de mostra per comprovar les dades del sensor. A continuació es dóna el codi del mateix.
des de smbus2 importar SMBus des de mlx90614 importar MLX90614 bus = SMBus (1) sensor = MLX90614 (bus, adreça = 0x5A) imprimir "Temperatura ambient:", sensor.get_ambient () imprimir "Temperatura objecte:", sensor.get_object_1 () bus. Tanca()
Un cop creat el fitxer, l'executarem amb l'extensió python python mlxread.py. La sortida que he rebut es mostra a continuació. Vaig executar el programa diverses vegades per comprovar si els valors canvien quan hi passo la mà.

Vaja, hem interfaçat amb èxit MLX90614 amb el nostre Raspberry Pi, tal com podeu confirmar a la imatge anterior.
Interfície de càmera Pi amb Raspberry Pi
Pas 1: habilitar la configuració de la càmera des de Raspberry Pi.
Escriviu sudo raspi-config i després aneu a les opcions d'interfície.

Aneu a Càmera i activeu la càmera.


Ara, connecteu el mòdul de la càmera com es mostra a continuació.

Pas 2: per comprovar si la càmera està connectada correctament, fem una imatge de prova i la guardem al nostre escriptori (estem fent servir la versió del sistema operatiu Raspbian GUI completa)
raspistill -o Desktop / image.jpg
Això permetrà que la càmera faci clic en una imatge amb la imatge de nom i emmagatzemi-la al vostre escriptori.
Configuració del correu electrònic SMTP amb Raspberry Pi
En aquesta secció, entendrem com podem configurar el nostre compte GMAIL per enviar correus electrònics d’alerta un cop la temperatura supera el valor predeterminat.
SMTP és un protocol de transferència de correu simple que és un protocol de capa d’aplicació responsable del servei de correu electrònic que utilitza TCP / IP. Proporciona la possibilitat d'enviar i rebre missatges de correu electrònic i està gestionat per l' Internet Engineering Task Force (IETF).
Aquest tutorial només funciona amb comptes de GMAIL i, per evitar possibles errors, us recomanem que feu servir un compte de Gmail nou.
Per defecte, Google no permet als usuaris enviar correus electrònics mitjançant script Python. Per fer que això funcioni, hem d’habilitar algunes aplicacions menys segures accedint a la configuració del compte.
Pas 1: aneu a l'extrem dret i feu clic a Gestiona el vostre compte de Google.

Pas 2: feu clic a Seguretat i desplaceu-vos cap avall fins a "Accés menys segur a l'aplicació".

Pas 3: activeu l'aplicació menys segura.

Pas 4: repetiu-ho també amb l’altre identificador de correu electrònic per enviar / rebre el correu electrònic des de l’escriptura python.
Pas 5: descarregueu els paquets necessaris.
sudo apt-get install ssmtp sudo apt-get instal·lar mailutils
Si apareix un error en executar l'ordre en copiant-enganxant, escriviu-lo manualment.

Pas 6: un cop feta la instal·lació de totes les biblioteques, hem de fer canvis al fitxer ssmtp.conf on hem d’introduir les dades de correu electrònic del remitent
Aneu a sudo nano /etc/ssmtp/ssmtp.conf
Desplaceu-vos cap avall fins al final i enganxeu-lo, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = YES UseTLS = YES
També he compartit una captura de pantalla dels meus terminals com a referència.

Acabo d’utilitzar un tauler d’anàlisi per establir la meva connexió, la configuració del maquinari és semblant a ell quan es connecten el MLX90614 i la càmera.

Codi Python per a Pi per llegir la temperatura des de MLX90614 i enviar un correu electrònic amb imatge
El programa Python fa totes les operacions necessàries per llegir les dades del sensor, comparar-les amb el valor llindar, autoritzar el correu electrònic i enviar el correu electrònic amb la imatge adjunta. Al principi, requerirem declaracions per correu electrònic de biblioteques, remitents i destinataris. El correu electrònic es pot enviar mitjançant smtplib, però només volem que el correu electrònic s’organitzi amb un assumpte, un cos i altres fitxers adjunts, això es fa amb l’ajut de les extensions de correu multipropòsit d’Internet (MIME). El codi complet es troba a la part inferior d’aquesta pàgina.
importar RPi.GPIO com gpio importar càmera d'importar temps d'importació d'importar smtplib de correu electrònic.MIMEM importar múltiples parts MIMEM multipartir de correu electrònic.MIMEText importar MIMEText de correu electrònic.MIMEBase importar MIMEBase de correu electrònic importar codificadors de correu electrònic.mime.image importar MIMEImatge de smbus2 importar SMBus de mlx90614 importar MLX90614
Després, definim l'adreça de correu electrònic del remitent, l'adreça de correu electrònic del destinatari, l'assumpte del correu electrònic, el cos i el missatge adjunt.
fromaddr = "[email protected]" # canviar l'adreça de correu electrònic en conseqüència toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "El valor de temperatura supera l'alerta" body = "Trobeu el fitxer adjunt imatge "
A continuació, creem una funció mitjançant la qual podem enviar un correu electrònic.
def sendMail (dades): mail.attach (MIMEText (body, 'plain')) print data dat = '% s.jpg'% data print dat attachment = obert (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 ()
A continuació, creem una funció per capturar la imatge que s’envia per correu electrònic i també emmagatzema la imatge amb dades i temps.
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 (dades)
A continuació, fem algunes configuracions amb PiCamera.
camera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
I, finalment, tenim un bucle while (1) que funcionarà infinitament. Llegirà les dades del sensor de temperatura MLX90614 i, si la temperatura supera el valor establert, es crida la funció capture_image () que després crida a la funció sendMail (dades) per enviar la captura d’imatges per correu electrònic.
Mesurament de la temperatura i enviament d'alerta de correu amb PI
Quan el maquinari i el programari estiguin a punt, només cal que executeu el codi python (que apareix a continuació) al vostre pi. Imprimirà el valor de la temperatura llegida des del sensor com es mostra a continuació.

Si la temperatura de l’objecte supera la temperatura llindar, el nostre programa Python agafarà una imatge de la càmera, la guardarà a raspberry pi i també la compartirà per correu electrònic. A continuació es mostra un exemple de correu electrònic enviat des de raspberry Pi.

El funcionament complet del projecte també es pot trobar al vídeo enllaçat a continuació. Espero que us hagi agradat l'article, si teniu alguna pregunta, deixeu-los als comentaris següents o també podeu utilitzar els nostres fòrums per publicar les vostres preguntes i posar-vos en contacte amb la comunitat.
