- Nepieciešamās sastāvdaļas
- Saskarne MLX90614 ar Raspberry Pi
- Pi kameras saskarne ar Aveņu Pi
- SMTP e-pasta iestatīšana, izmantojot Raspberry Pi
- Python kods, lai Pi varētu nolasīt temperatūru no MLX90614 un nosūtīt e-pastu ar attēlu
- Temperatūras mērīšana un pasta brīdinājuma nosūtīšana ar PI
Kopš koronijas uzliesmojuma ir kļuvis ļoti grūti noteikt tos, kurus vīruss ietekmē vai nē. Lai atrisinātu šo problēmu, ķermeņa temperatūras mērīšanai bieži izmanto temperatūras ierīces. Šīm ierīcēm ir bezkontakta IR temperatūras sensori, kas var izmērīt ķermeņa temperatūru bez jebkāda fiziska kontakta.
Tirgū ir pieejami daudzi temperatūras lielgabali, taču neviens no tiem nesniedz brīdinājumu vai e-pasta paziņojumu augstākām iestādēm, lai veiktu atbilstošas darbības, kad temperatūra pārsniedz noteiktu robežu. Šajā projektā mēs sasaistīsimies ar IR temperatūras sensoru un nosūtīsim brīdinājumus pa e-pastu ar personas attēlu, ja kādas konkrētas personas temperatūra pārsniedz iestatīto vērtību.
Mūsdienu pasaulē lietiskais internets padara mūsu dzīvi revolucionāru, izstrādājot vairākas sistēmas, kuras var kontrolēt un kontrolēt attālināti. Šajā projektā mēs izmantosim IoT spēku un izveidosim temperatūras uzraudzības ierīci ar e-pasta brīdinājumiem, izmantojot Raspberry Pi, MLX90614 un PiCamera.
Iepriekš mēs esam uzbūvējuši arī citus līdzīgus termometrus ķermeņa temperatūras mērīšanai, tos varat atrast šeit.
- Arduino bāzes digitālais termometrs, izmantojot MAX30205
- Bezkontakta ķermeņa temperatūras skrīnings, izmantojot RFID un Arduino ar MLX90614
- Bezkontakta infrasarkanā termometra pistole, izmantojot Arduino
- Sienas stiprinājuma bezkontakta termometrs, izmantojot Arduino
- Viedais termometrs, izmantojot Arduino ar Android lietojumprogrammu
Nepieciešamās sastāvdaļas
Šeit mēs izmantojam Raspberry Pi 3 Raspbian OS. Visas aparatūras un programmatūras pamatprasības ir iepriekš apspriestas, lai sāktu darbu, varat to apskatīt Raspberry Pi ievadā un mirgo Raspberry PI LED, izņemot mums nepieciešamo:
- Aveņu Pi 3 (jebkura versija būtu labi).
- Pi kamera.
- MLX90614 - IR temperatūras sensors.
- Savienojošie vadi.
- Maizes dēlis.
- Barošanas avots (5V, 2A / 3A)
Šis projekts ir vienkāršs, ja mēs sadalām projektu daļās.
- Izpratne un saskarne MLX90614 ar Raspberry pi.
- Darba sākšana ar Pi Camera.
- SMTP e-pasta iestatīšana, izmantojot Raspberry pi.
- Galīgā koda izstrāde un izpratne.
Raspberry Pi: Raspberry Pi ir kredītkartes lieluma dators, kas paredzēts izglītības vajadzībām. Sakarā ar tā cenu un pārsteidzošajām specifikācijām, piemēram, borta wifi, Bluetooth un programmējamu GPIO galveni, un iespējamo iespēju izveidot lietojumprogrammu, to pieņēma izstrādātāji un elektronikas hobiji. Lai sāktu darbu ar sāknēšanas procesu, to var apskatīt Raspberry Pi ievadā un mirgo Raspberry PI gaismas diode.
MLX90614 IR temperatūras sensors: tirgū ir pieejami daudzi sensori, kas var dot mums temperatūru un mitrumu. Šis sensors atšķiras no visiem citiem sensoriem, jo tas mums var dot objekta temperatūru, bet citi sensori - apkārtējo temperatūru. DHT11 Sensor un LM35 esam plaši izmantojuši daudzos gadījumos, kad jāmēra atmosfēras mitrums vai temperatūra.
Bet šeit, lai izveidotu temperatūras ieroci, kuram nav nepieciešams fizisks kontakts un kurš apkārtējās temperatūras vietā var izmērīt objekta temperatūru, mēs izmantojam IR balstītu MLX90614. Lai uzzinātu vairāk par infrasarkano un infrasarkano sensoru shēmām, sekojiet saitei.
MLX90614 sensoru ražo Melexis Microelectronics Integrated systems, tas temperatūras mērīšanai darbojas pēc InfraRed termopāļu sensora principa. Šie sensori sastāv no divām iekšēji iebūvētām vienībām, lai iegūtu temperatūras izvadi. Pirmā vienība ir sensora vienība, kurai ir infrasarkanais detektors, kam seko otrā vienība, kas veic datu aprēķināšanu ar digitālo signālu apstrādi (DSP). Šis sensors darbojas saskaņā ar Stefana-Boltmana likumu, kas izskaidro melnā ķermeņa izstaroto jaudu temperatūras ziņā. Vienkārši sakot, jebkurš objekts izstaro IR enerģiju, un tā intensitāte būs tieši proporcionāla šī objekta temperatūrai. MLX90614 sensors pārveido skaitļošanas vērtību 17 bitu ADCun tam var piekļūt, izmantojot I2C sakaru protokolu. Šie sensori mēra apkārtējās vides temperatūru, kā arī objekta temperatūru ar izšķirtspējas kalibrēšanu 0,02 ° C. Lai uzzinātu vairāk par MLX90614 sensora funkcijām, skatiet MLX90614 datu lapu.
MLX90614 iezīmes:
- Darba spriegums: no 3,6 V līdz 5 V
- Apkārtējās temperatūras diapazons: -40 ° C līdz 125 ° C
- Objekta temperatūras diapazons: -70 ° C līdz -382,2 ° C
- Izšķirtspēja / kalibrēšana: 0,02 ° C
- 17 bitu ADC.
- I2C komunikācija.
Saskarne MLX90614 ar Raspberry Pi
Pirmkārt, mēs lejupielādēsim bibliotēku un pakotnes, kas nepieciešamas, lai veiksmīgi saskartos ar MLX90614.
1. darbība: I2C iespējošana no Raspberry Pi iestatījuma.
Ierakstiet sudo raspi-config un pēc tam pārejiet uz saskarnes opcijām.
Dodieties uz opciju I2C un iespējojiet to.
2. solis: lejupielādējiet MLX90614 pakotni / bibliotēku, dodoties uz vietni https://pypi.org/project/PyMLX90614/#files, pēc tam ar peles labo pogu noklikšķiniet un nokopējiet saites adresi.
Dodieties uz RPI termināli un ierakstiet wget un ielīmējiet saiti, kas nokopēta tāpat kā zemāk.
Wget
Tā lejupielādēs bibliotēku zip faila nosaukumā 'PyMLX90614-0.0.3.tar.gz' . pēc tam izvelciet mapi ar faila tar -xf paplašinājumu vai izmantojiet zemāk esošo komandu, lai to izdarītu.
darva -xf PyMLX90614-0.0.3.tar.gz
Tad mums jāinstalē daži nepieciešamie pakotnes, izmantojot tālāk norādītās komandas.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
Pēc tam dodieties uz izvilkto mapi, izmantojot cd PyMLX90614-0.0.3 /, un palaidiet komandu.
sudo python setup.py instalēt
Kad esat pabeidzis darbības, vienkārši saskarieties ar MLX90614 sensoru ar Raspberry pi, izmantojot tālāk norādīto shēmu. Zemāk esošā Raspberry Pi MLX90614 shēma tika veidota, izmantojot fritzing.
Ja savienojumi un instalēšana tiek veikta pareizi, mēs varam pārbaudīt, vai sensora adreses vērtība tiek iegūta I2C kopnē, izmantojot komandu i2cdetect -y 1 .
Ja viss darbojas, kā paredzēts, mēs varam redzēt zemāk redzamo produkciju mūsu terminālī.
0x5A apzīmē sensora adresi, kā minēts datu lapā. Datu lapas fragments, kas parāda to pašu, ir norādīts zemāk.
Tagad mēs izveidosim jaunu faila nosaukumu mlxread.py un uzrakstīsim programmas paraugu, lai pārbaudītu datus no sensora. Tālāk ir norādīts tā paša kods.
no smbus2 importa SMBus no mlx90614 importa MLX90614 kopne = SMBus (1) sensors = MLX90614 (kopne, adrese = 0x5A) drukāt "Apkārtējā temperatūra:", sensors.get_ambient () drukāt "Objekta temperatūra:", sensors.get_object_1 () kopne. aizvērt ()
Kad fails ir izveidots, mēs to palaidīsim ar python paplašinājumu python mlxread.py. Izeja, kuru saņēmu, ir parādīta zemāk. Es vairākas reizes palaidu programmu, lai pārbaudītu, vai vērtības mainās, pārvietojot roku virs tās.
Woah, mēs esam veiksmīgi savienojuši MLX90614 ar mūsu Raspberry Pi, kā jūs varat apstiprināt no iepriekš minētā attēla.
Pi kameras saskarne ar Aveņu Pi
1. solis: kameras iespējošana no Raspberry Pi iestatījuma.
Ierakstiet sudo raspi-config un pēc tam pārejiet uz saskarnes opcijām.
Dodieties uz Kamera un iespējojiet kameru.
Tagad pievienojiet kameras moduli, kā parādīts zemāk.
2. solis: Lai pārbaudītu, vai kamera ir pareizi pievienota, mēs uzņemam testa attēlu un saglabājam to savā darbvirsmā (mēs izmantojam pilnu GUI Raspbian OS versiju)
raspistill -o Desktop / image.jpg
Tas ļaus jūsu kamerai noklikšķināt uz attēla ar nosaukuma attēlu un saglabāt to uz darbvirsmas.
SMTP e-pasta iestatīšana, izmantojot Raspberry Pi
Šajā sadaļā mēs sapratīsim, kā mēs varam iestatīt savu GMAIL kontu sūtīt brīdinājuma vēstules, tiklīdz temperatūra pārsniedz iepriekš noteikto iestatīto vērtību.
SMTP ir vienkāršs pasta pārsūtīšanas protokols, kas ir lietojumprogrammu slāņa protokols, kas atbild par e-pasta pakalpojumu, izmantojot TCP / IP. Tas nodrošina iespēju nosūtīt un saņemt e-pasta ziņojumus, un to pārvalda Internet Engineering Task Force (IETF).
Šī apmācība darbojas tikai ar GMAIL kontiem, un, lai izvairītos no iespējamām kļūdām, ieteicams izmantot jaunu Gmail kontu.
Pēc noklusējuma Google neļauj lietotājiem sūtīt e-pastus, izmantojot Python skriptu. Lai tas darbotos, mums ir jāiespējo dažas mazāk drošas lietotnes, dodoties uz konta iestatījumiem.
1. solis: dodieties uz labo stūri un noklikšķiniet uz My Manage your Google Account.
2. solis: noklikšķiniet uz Drošība un ritiniet uz leju līdz “Mazāk droša piekļuve lietotnei”.
3. darbība: iespējojiet mazāk drošu lietotni.
4. solis: atkārtojiet arī citu e-pasta ID, lai nosūtītu / saņemtu e-pastu no python skripta.
5. solis: lejupielādējiet nepieciešamos iepakojumus.
sudo apt-get install ssmtp sudo apt-get install mailutils
Ja rodas kļūda, palaižot komandu, ielīmējot kopiju, pēc tam ierakstiet to manuāli.
6. solis: Pēc visu bibliotēku instalēšanas ir jāveic izmaiņas failā ssmtp.conf, kur jāievada sūtītāja e-pasta informācija
Atveriet vietni sudo nano /etc/ssmtp/ssmtp.conf
Ritiniet uz leju līdz beigām un ielīmējiet šo, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = YES UseTLS = YES
Es jums kopīgoju arī savu termināļu ekrānuzņēmumu.
Es tikko izmantoju maizes dēli, lai izveidotu savienojumu. Kad aparatūru MLX90614 un kameru savieno, mans aparatūras iestatījums izskatās pēc viņa.
Python kods, lai Pi varētu nolasīt temperatūru no MLX90614 un nosūtīt e-pastu ar attēlu
Python programma veic visas nepieciešamās darbības, lai nolasītu sensora datus, salīdzinātu tos ar sliekšņa vērtību, autorizētu e-pastu un pēc tam nosūtītu e-pastu ar pievienoto attēlu. Sākumā mums būs nepieciešama bibliotēku, sūtītāja un saņēmēja e-pasta deklarācija. E-pastu var nosūtīt, izmantojot smtplib, taču mēs tikai vēlamies, lai e-pasts būtu sakārtots ar tēmu, pamattekstu un citu pielikumu, tas tiek darīts ar daudzfunkcionālu interneta pasta paplašinājumu (MIME) palīdzību. Pilns kods ir atrodams šīs lapas apakšdaļā.
importēt RPi.GPIO kā gpio importēt picamera importa laiku importēt smtplib no e-pasta. MIMEMultipart importēt MIMEMultipart no e-pasta. MIMEText importēt MIMEText no e-pasta. MIMEBase importēt MIMEBase no e-pasta importēšanas kodētājiem no email.mime.image importēt MIMEImage no smbus2 importēt SMBus no mlx90614
Pēc tam mēs definējam sūtītāja e-pasta adresi, saņēmēja e-pasta adresi, e-pasta tēmu, pamattekstu un pielikuma ziņojumu.
fromaddr = "[email protected]" # attiecīgi mainiet e-pasta adresi toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "Temperatūras vērtība pārsniedz brīdinājumu" body = "Lūdzu, atrodiet pievienoto attēls "
Pēc tam mēs izveidojam funkciju, ar kuras palīdzību mēs varam nosūtīt e-pastu.
def sendMail (dati): mail.attach (MIMEText (body, 'plain')) drukas dati dat = '% s.jpg'% data print dat attachment = open (dat, 'rb') image = MIMEImage (attachment.read ()) attachment.close () mail.attach (attēls) serveris = smtplib.SMTP ('smtp.gmail.com', 587) server.starttls () server.login (fromaddr, "test12345 @") text = pasts. as_string () server.sendmail (fromaddr, toaddr, teksts) server.quit ()
Pēc tam mēs izveidojam funkciju, lai uzņemtu attēlu, kas tiek nosūtīts pa e-pastu, kā arī saglabā attēlu ar datiem un laiku.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) drukāt datus camera.capture ('% s. jpg '% data) camera.stop_preview () time.sleep (1) sendMail (dati)
Pēc tam mēs veicam dažus iestatījumus ar PiCamera.
camera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
Un beidzot mums ir kāda laika (1) cilpa, kas darbosies bezgalīgi. Tas nolasīs datus no temperatūras sensora MLX90614 un, ja temperatūra pārsniedz iestatīto vērtību, tiek izsaukta funkcija capture_image (), kas pēc tam izsauc funkciju sendMail (dati), lai nosūtītu attēlu uzņemšanu pa e-pastu.
Temperatūras mērīšana un pasta brīdinājuma nosūtīšana ar PI
Kad aparatūra un programmatūra ir gatava, vienkārši izpildiet pitona kodu (norādiet zemāk) savā pi. Tas izdrukās no sensora nolasītās temperatūras vērtību, kā parādīts zemāk.
Ja objekta temperatūra pārsniedz sliekšņa temperatūru, mūsu pitona programma no kameras uzņems attēlu, saglabās to aveņu pi un arī koplietos to pa e-pastu. E-pasta paraugs, kas nosūtīts no aveņu Pi, ir parādīts zemāk.
Pilnīga projekta darbība ir atrodama arī zemāk esošajā videoklipā. Ceru, ka jums patika raksts. Ja jums ir kādi jautājumi, lūdzu, atstājiet tos zemāk esošajos komentāros, vai arī varat izmantot mūsu forumus, lai izliktu savus jautājumus un sazinātos ar kopienu.