- Komponen Diperlukan
- Memadankan MLX90614 dengan Raspberry Pi
- Kamera Pi Berinteraksi dengan Raspberry Pi
- Menyiapkan E-mel SMTP dengan Raspberry Pi
- Python Code untuk Pi untuk Membaca Suhu dari MLX90614 dan Hantar E-mel dengan Gambar
- Mengukur Suhu dan Menghantar Makluman Mel dengan PI
Sejak wabak korona, menjadi sangat sukar untuk mengenal pasti mereka yang terkena virus atau tidak. Untuk menyelesaikan masalah ini, alat suhu sering digunakan untuk mengukur suhu badan. Peranti ini mempunyai sensor suhu IR tanpa sentuhan yang dapat mengukur suhu badan tanpa sentuhan fizikal.
Terdapat banyak senjata api yang tersedia di pasar, tetapi tidak ada yang memberikan notifikasi amaran atau e-mel kepada pihak berkuasa yang lebih tinggi untuk mengambil tindakan yang sewajarnya ketika suhu melebihi had tertentu. Dalam projek ini, kami akan menghubungkan sensor suhu IR dan menghantar makluman e-mel dengan gambar orang tersebut sekiranya suhu orang tertentu melebihi nilai yang ditetapkan.
Di dunia sekarang ini, Internet of Things merevolusikan kehidupan kita dengan mengembangkan sejumlah sistem yang dapat dipantau dan dikendalikan dari jarak jauh. Dalam projek ini, kami akan memanfaatkan kekuatan IoT dan kami akan membina peranti Pemantau Suhu dengan amaran E-mel menggunakan Raspberry Pi, MLX90614, dan PiCamera.
Sebelum ini kami juga telah membina termometer lain yang serupa untuk pengukuran suhu badan, anda boleh mendapatkannya di sini.
- Termometer digital berasaskan Arduino menggunakan MAX30205
- Pemeriksaan suhu badan tanpa sentuhan menggunakan RFID dan Arduino dengan MLX90614
- Pistol Termometer Inframerah Tanpa Kontak menggunakan Arduino
- Termometer Non-Contact Wall Mount menggunakan Arduino
- Termometer Pintar menggunakan Arduino dengan Aplikasi Android
Komponen Diperlukan
Di sini kita menggunakan OS Raspberry Pi 3 Raspbian. Semua keperluan asas Perkakasan dan Perisian dibincangkan sebelumnya, anda boleh mencarinya dalam Pengenalan Raspberry Pi dan LED Berkedip Raspberry PI untuk memulakan, selain daripada yang kita perlukan:
- Raspberry Pi 3 (versi mana-mana baik)
- Kamera Pi.
- MLX90614 - Sensor suhu IR.
- Menyambung wayar.
- Papan roti.
- Bekalan Kuasa (5V, 2A / 3A)
Projek ini mudah sekiranya kita membahagikan projek tersebut kepada beberapa bahagian.
- Memahami & Menghubungkan MLX90614 dengan Raspberry pi.
- Bermula dengan Pi Camera.
- Menetapkan E-mel SMTP dengan Raspberry pi.
- Pengembangan dan pemahaman kod akhir.
Raspberry Pi: Raspberry Pi adalah komputer berukuran kad kredit yang direka untuk tujuan pendidikan. Oleh kerana harganya dan spesifikasi luar biasa seperti wifi onboard, Bluetooth, dan header GPIO yang dapat diprogramkan, dan sebilangan besar kemungkinan pilihan untuk membuat aplikasi, aplikasi ini diadopsi oleh pengembang dan penggemar elektronik. Anda boleh mencarinya di Raspberry Pi Pengenalan dan Raspberry PI LED Berkedip untuk memulakan proses boot.
MLX90614 IR Temperature Sensor: Terdapat banyak sensor yang terdapat di pasaran yang dapat memberi kita suhu dan kelembapan. Apa yang membuat sensor ini berbeza dari semua sensor lain adalah ia dapat memberi kita suhu objek dan sensor lain memberikan suhu sekitar. Kami telah menggunakan Sensor DHT11 dan LM35 secara meluas untuk banyak aplikasi di mana kelembapan atau suhu atmosfera harus diukur.
Tetapi di sini untuk membuat senapang suhu yang tidak memerlukan kontak fizikal dan dapat mengukur suhu objek dan bukan suhu persekitaran, kami menggunakan MLX90614 berdasarkan IR. Untuk mengetahui lebih lanjut mengenai litar sensor inframerah dan IR, ikuti pautan.
Sensor MLX90614 dihasilkan oleh sistem Melexis Microelectronics Integrated, ia berfungsi berdasarkan prinsip sensor termopile InfraRed untuk pengukuran suhu. Sensor ini terdiri daripada dua unit yang tertanam secara dalaman untuk memberikan output suhu. Unit pertama adalah unit penginderaan yang memiliki pengesan inframerah yang diikuti oleh unit kedua yang melakukan pengiraan data dengan pemprosesan isyarat Digital (DSP). Sensor ini berfungsi berdasarkan undang-undang Stefan-Boltzmann yang menerangkan kuasa yang dipancarkan oleh badan hitam dari segi suhunya. Secara sederhana, setiap objek memancarkan tenaga IR dan intensitasnya akan berkadar terus dengan suhu objek tersebut. Sensor MLX90614 menukar nilai pengiraan menjadi ADC 17-bitdan itu dapat diakses menggunakan protokol komunikasi I2C. Sensor ini mengukur suhu persekitaran dan suhu objek dengan penentukuran resolusi 0,02 ° C. Untuk mengetahui lebih lanjut mengenai ciri-ciri sensor MLX90614, rujuk Lembaran Data MLX90614.
Ciri MLX90614:
- Voltan Operasi: 3.6V hingga 5V
- Julat Suhu ambien: -40 ° C hingga 125 ° C
- Julat Suhu Objek: -70 ° C hingga -382.2 ° C
- Resolusi / Penentukuran: 0.02 ° C
- ADC 17-bit.
- Komunikasi I2C.
Memadankan MLX90614 dengan Raspberry Pi
Pertama, kami akan memuat turun pustaka dan pakej yang diperlukan untuk berjaya menghubungkan antara MLX90614.
Langkah 1: Mengaktifkan tetapan I2C dari Raspberry Pi.
Ketik sudo raspi-config dan kemudian pergi ke pilihan antara muka.
Pergi ke pilihan I2C dan aktifkan.
Langkah 2: Muat turun pakej / pustaka MLX90614 dengan pergi ke https://pypi.org/project/PyMLX90614/#files, kemudian klik kanan dan salin alamat pautan.
Pergi ke terminal RPI dan ketik wget dan tampal pautan yang disalin seperti di bawah.
Wget
Ia akan memuat turun perpustakaan dengan nama fail zip 'PyMLX90614-0.0.3.tar.gz' . kemudian ekstrak folder dengan peluasan nama fail tar -xf atau gunakan arahan di bawah untuk melakukan perkara yang sama.
tar -xf PyMLX90614-0.0.3.tar.gz
Kemudian kita perlu memasang beberapa pakej yang diperlukan menggunakan arahan di bawah.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
Kemudian pergi ke folder yang diekstrak menggunakan cd PyMLX90614-0.0.3 / dan jalankan perintah.
sudo python setup.py pasang
Setelah anda selesai mengikuti langkah-langkahnya, cukup hubungkan sensor MLX90614 dengan Raspberry pi menggunakan rangkaian yang diberikan di bawah. Litar Raspberry Pi MLX90614 di bawah ini dirancang menggunakan fritzing.
Sekiranya sambungan dan pemasangan dilakukan dengan betul, kita dapat memeriksa apakah kita mendapat nilai alamat sensor pada bus I2C menggunakan perintah i2cdetect -y 1 .
Sekiranya semuanya berfungsi seperti yang diharapkan, kita dapat melihat output di bawah di terminal kita.
0x5A mewakili alamat sensor seperti yang disebutkan dalam lembar data. Coretan datasheet yang menunjukkannya sama seperti di bawah.
Sekarang, kita akan menjalankan membuat nama fail baru mlxread.py dan menulis contoh program untuk memeriksa data dari sensor. Kod untuk yang sama diberikan di bawah.
dari smbus2 import SMBus dari 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. tutup ()
Setelah fail dibuat, kami akan menjalankannya dengan python extension python mlxread.py. Output yang saya terima ditunjukkan di bawah. Saya menjalankan program berkali-kali untuk memeriksa sama ada nilainya berubah ketika saya menggerakkannya.
Woah, kami berjaya menghubungkan MLX90614 dengan Raspberry Pi kami seperti yang anda dapat sahkan dari gambar di atas.
Kamera Pi Berinteraksi dengan Raspberry Pi
Langkah 1: Mengaktifkan kamera dari tetapan Raspberry Pi.
Ketik sudo raspi-config dan kemudian pergi ke pilihan antara muka.
Pergi ke Kamera dan aktifkan kamera.
Sekarang, sambungkan modul kamera seperti gambar di bawah.
Langkah 2: Untuk memeriksa apakah kamera disambungkan dengan betul, kami mengambil gambar ujian dan menyimpannya di Desktop kami (kami menggunakan versi GUI Raspbian OS Penuh)
raspistill -o Desktop / image.jpg
Ini akan membolehkan kamera anda mengklik gambar dengan gambar nama dan menyimpannya di Desktop anda.
Menyiapkan E-mel SMTP dengan Raspberry Pi
Di bahagian ini, kami akan memahami bagaimana kami dapat menetapkan akaun GMAIL kami untuk menghantar surat amaran setelah suhu melebihi nilai set yang telah ditetapkan.
SMTP adalah Simple Mail Transfer Protocol yang merupakan protokol lapisan aplikasi yang bertanggungjawab untuk perkhidmatan e - mel menggunakan TCP / IP. Ini menyediakan kemampuan untuk mengirim dan menerima mesej e-mel dan dikendalikan oleh Pasukan Petugas Kejuruteraan Internet (IETF).
Tutorial ini hanya berfungsi dengan akaun GMAIL dan untuk mengelakkan kemungkinan kesilapan, sebaiknya anda menggunakan akaun Gmail baru.
Secara lalai, Google tidak membenarkan pengguna menghantar e-mel menggunakan skrip python. Untuk membuat ini berfungsi, kita harus mengaktifkan beberapa aplikasi yang kurang selamat dengan masuk ke tetapan akaun.
Langkah 1: Pergi ke sudut kanan dan klik pada saya Uruskan Akaun Google anda.
Langkah 2: Klik pada Keselamatan dan tatal ke bawah ke "Akses Aplikasi Kurang Selamat".
Langkah 3: Aktifkan aplikasi yang kurang selamat.
Langkah 4: Ulangi dengan id e-mel yang lain juga untuk menghantar / menerima e-mel dari skrip python.
Langkah 5: Muat turun pakej yang diperlukan.
sudo apt-get install ssmtp sudo apt-get install mailutils
Sekiranya anda mengalami kesilapan dalam menjalankan perintah dengan menyalin-menyisipkan, maka ketik secara manual.
Langkah 6: Setelah pemasangan semua perpustakaan dilakukan, kita perlu membuat perubahan pada fail ssmtp.conf di mana kita harus memasukkan butiran e-mel pengirim.
Pergi ke sudo nano /etc/ssmtp/ssmtp.conf
Tatal ke hujung dan tampal ini, mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = YA UseTLS = YA
Saya juga telah berkongsi tangkapan skrin terminal saya untuk rujukan anda.
Saya hanya menggunakan papan roti untuk membuat sambungan saya, susunan perkakasan saya kelihatan seperti ketika MLX90614 dan kamera disambungkan.
Python Code untuk Pi untuk Membaca Suhu dari MLX90614 dan Hantar E-mel dengan Gambar
Program python melakukan semua operasi yang diperlukan untuk membaca data sensor, membandingkannya dengan nilai ambang, membenarkan e-mel, dan kemudian menghantar e-mel dengan gambar yang dilampirkan. Pada mulanya, kami memerlukan perpustakaan, pengirim, dan deklarasi e-mel penerima. E-mel boleh dihantar melalui smtplib, tetapi kami hanya mahu e-mel diatur dengan subjek, isi, dan lampiran lain, ini dilakukan dengan bantuan Pelbagai Mel Internet Serbaguna (MIME). Kod lengkap boleh didapati di bahagian bawah halaman ini.
import RPi.GPIO sebagai gpio import picamera import time import smtplib dari email.MIMEMultipart import MIMEMultipart dari email.MIMEText import MIMEText dari email.MIMEBase import MIMEBase dari pengekod import e-mel dari email.mime.image import MIMEImage dari smbus2 import SMBus dari mlx90614 import MLx90614 import mlx90614
Selepas itu, kami menentukan alamat e-mel pengirim, alamat e-mel penerima, subjek e-mel, isi, dan mesej lampiran.
fromaddr = "[email protected]" # ubah alamat e-mel dengan sewajarnya toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "Nilai suhu melebihi amaran" body = "Sila cari yang dilampirkan gambar"
Kemudian, kami membuat fungsi menggunakan yang kami dapat menghantar E-mel.
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 = mel. as_string () server.sendmail (fromaddr, toaddr, text) pelayan.quit ()
Kemudian, kami membuat fungsi untuk menangkap gambar yang dikirim melalui e-mel dan juga menyimpan gambar dengan data dan waktu.
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) cetak data kamera.capture ('% s. jpg '% data) camera.stop_preview () time.sleep (1) sendMail (data)
Kemudian, kami membuat beberapa tetapan dengan PiCamera.
kamera = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
Dan akhirnya, kita mempunyai gelung sementara (1) yang akan berjalan tanpa had. Ia akan membaca data dari sensor suhu MLX90614 dan jika suhu melebihi nilai yang ditetapkan, fungsi capture_image () dipanggil yang kemudian memanggil fungsi sendMail (data) untuk mengirim tangkapan gambar melalui e-mel.
Mengukur Suhu dan Menghantar Makluman Mel dengan PI
Apabila perkakasan dan perisian sudah siap, jalankan kod python (berikan di bawah) pada pi anda. Ia akan mencetak nilai suhu yang dibaca dari sensor seperti gambar di bawah.
Sekiranya suhu objek melebihi suhu ambang, maka program python kami akan mengambil gambar dari kamera, menyimpannya pada raspberry pi, dan juga membagikannya melalui E-mel. Contoh E-mel yang dihantar dari raspberry Pi ditunjukkan di bawah.
Penyelesaian projek yang lengkap juga terdapat dalam video yang dipautkan di bawah. Mudah-mudahan anda menikmati artikel ini, jika ada pertanyaan, silakan tinggalkan di komen di bawah atau anda juga boleh menggunakan forum kami untuk menghantar pertanyaan anda dan menghubungi komuniti.