- ส่วนประกอบที่จำเป็น
- การเชื่อมต่อ MLX90614 กับ Raspberry Pi
- กล้อง Pi เชื่อมต่อกับ Raspberry Pi
- การตั้งค่าอีเมล SMTP ด้วย Raspberry Pi
- Python Code เพื่อให้ Pi อ่านอุณหภูมิจาก MLX90614 และส่งอีเมลพร้อมรูปภาพ
- การวัดอุณหภูมิและการส่งอีเมลแจ้งเตือนด้วย PI
นับตั้งแต่มีการระบาดของโคโรนาจึงเป็นเรื่องยากมากที่จะระบุผู้ที่ได้รับผลกระทบจากไวรัสหรือไม่ เพื่อแก้ปัญหานี้มักใช้อุปกรณ์วัดอุณหภูมิเพื่อวัดอุณหภูมิของร่างกาย อุปกรณ์เหล่านี้มีเซ็นเซอร์อุณหภูมิ IR แบบไม่สัมผัสซึ่งสามารถวัดอุณหภูมิของร่างกายได้โดยไม่ต้องสัมผัสทางกายภาพ
มีปืนวัดอุณหภูมิจำนวนมากในตลาด แต่ไม่มีปืนใดที่แจ้งเตือนหรือแจ้งทางอีเมลไปยังหน่วยงานระดับสูงเพื่อดำเนินการที่เหมาะสมเมื่ออุณหภูมิสูงเกินขีด จำกัด เฉพาะ ในโครงการนี้เราจะเชื่อมต่อเซ็นเซอร์อุณหภูมิ IR และส่งการแจ้งเตือนทางอีเมลพร้อมรูปภาพของบุคคลหากอุณหภูมิของบุคคลใดบุคคลหนึ่งเกินค่าที่ตั้งไว้
ในโลกปัจจุบัน Internet of Things กำลังปฏิวัติชีวิตของเราด้วยการพัฒนาระบบต่างๆที่สามารถตรวจสอบและควบคุมได้จากระยะไกล ในโครงการนี้เราจะใช้ประโยชน์จากพลังของ IoT และเราจะสร้างอุปกรณ์ตรวจสอบอุณหภูมิพร้อมการแจ้งเตือนทางอีเมลโดยใช้ Raspberry Pi, MLX90614 และ PiCamera
ก่อนหน้านี้เราได้สร้างเทอร์โมมิเตอร์อื่น ๆ ที่คล้ายกันสำหรับการวัดอุณหภูมิร่างกายคุณสามารถดูได้ที่นี่
- เครื่องวัดอุณหภูมิดิจิตอลที่ใช้ Arduino โดยใช้ MAX30205
- การตรวจคัดกรองอุณหภูมิร่างกายแบบไม่สัมผัสโดยใช้ RFID และ Arduino พร้อม MLX90614
- ปืนวัดอุณหภูมิอินฟราเรดแบบไม่สัมผัสโดยใช้ Arduino
- เครื่องวัดอุณหภูมิแบบไม่สัมผัสติดผนังโดยใช้ Arduino
- เครื่องวัดอุณหภูมิอัจฉริยะโดยใช้ Arduino พร้อมแอปพลิเคชัน Android
ส่วนประกอบที่จำเป็น
ที่นี่เราจะใช้ราสเบอร์รี่ Pi 3 Raspbian OS ข้อกำหนดฮาร์ดแวร์และซอฟต์แวร์พื้นฐานทั้งหมดได้กล่าวไว้ก่อนหน้านี้คุณสามารถค้นหาได้ในบทนำ Raspberry Pi และ Raspberry PI LED กะพริบเพื่อเริ่มต้นใช้งานนอกเหนือจากที่เราต้องการ:
- Raspberry Pi 3 (ทุกรุ่นก็ใช้ได้)
- พี่กล้อง.
- MLX90614 - เซ็นเซอร์อุณหภูมิ IR
- การเชื่อมต่อสายไฟ
- เขียงหั่นขนม.
- แหล่งจ่ายไฟ (5V, 2A / 3A)
โครงการนี้ง่ายมากถ้าเราแบ่งโครงการออกเป็นส่วน ๆ
- การทำความเข้าใจและการเชื่อมต่อ MLX90614 กับ Raspberry pi
- เริ่มต้นใช้งาน Pi Camera
- การตั้งค่าอีเมล SMTP ด้วย Raspberry pi
- การพัฒนาและทำความเข้าใจโค้ดขั้นสุดท้าย
Raspberry Pi: Raspberry Pi เป็นคอมพิวเตอร์ขนาดบัตรเครดิตที่ออกแบบมาเพื่อการศึกษา เนื่องจากราคาและคุณสมบัติที่น่าทึ่งเช่น wifi ออนบอร์ดบลูทู ธ และส่วนหัว GPIO ที่ตั้งโปรแกรมได้และจำนวนตัวเลือกที่เป็นไปได้ในการสร้างแอปพลิเคชันจึงถูกนำมาใช้โดยนักพัฒนาและมือสมัครเล่นด้านอิเล็กทรอนิกส์ คุณสามารถค้นหาได้ใน Raspberry Pi Introduction และ Raspberry PI LED กะพริบเพื่อเริ่มต้นกระบวนการบูต
MLX90614 IR Temperature Sensor: มีเซ็นเซอร์มากมายในตลาดซึ่งสามารถให้อุณหภูมิและความชื้นแก่เราได้ สิ่งที่ทำให้เซ็นเซอร์นี้แตกต่างจากเซ็นเซอร์อื่น ๆ ก็คือมันสามารถทำให้เรามีอุณหภูมิของวัตถุและเซ็นเซอร์อื่น ๆ ให้อุณหภูมิโดยรอบ เราใช้เซ็นเซอร์ DHT11 และ LM35 อย่างกว้างขวางสำหรับการใช้งานจำนวนมากที่ต้องวัดความชื้นในบรรยากาศหรืออุณหภูมิ
แต่ที่นี่สำหรับการทำปืนอุณหภูมิซึ่งไม่จำเป็นต้องมีการติดต่อทางกายภาพและสามารถวัดอุณหภูมิวัตถุแทนอุณหภูมิที่เราใช้IR ตาม MLX90614หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวงจรเซ็นเซอร์อินฟราเรดและ IR ให้ไปที่ลิงค์
เซ็นเซอร์ MLX90614ผลิตโดยระบบMelexis Microelectronics Integratedซึ่งทำงานบนหลักการของเซ็นเซอร์อินฟราเรดเทอร์โมไพล์สำหรับการวัดอุณหภูมิ เซ็นเซอร์เหล่านี้ประกอบด้วยสองหน่วยที่ฝังอยู่ภายในเพื่อให้อุณหภูมิออก หน่วยแรกคือหน่วยตรวจจับซึ่งมีเครื่องตรวจจับอินฟราเรดซึ่งตามด้วยหน่วยที่สองซึ่งทำการคำนวณข้อมูลด้วยการประมวลผลสัญญาณดิจิทัล (DSP) เซ็นเซอร์นี้ทำงานตามกฎหมาย Stefan-Boltzmannซึ่งอธิบายถึงพลังงานที่แผ่ออกมาจากตัวเครื่องสีดำในแง่ของอุณหภูมิ พูดง่ายๆคือวัตถุใด ๆ ปล่อยพลังงาน IR และความเข้มของวัตถุนั้นจะแปรผันตรงกับอุณหภูมิของวัตถุนั้น เซ็นเซอร์ MLX90614 แปลงค่าการคำนวณเป็นADC 17 บิตและที่สามารถเข้าถึงได้โดยใช้โปรโตคอลการสื่อสาร I2C เซ็นเซอร์เหล่านี้จะวัดอุณหภูมิแวดล้อมและอุณหภูมิของวัตถุด้วยการปรับเทียบความละเอียด 0.02 ° C หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับคุณสมบัติของเซ็นเซอร์ MLX90614 โปรดดูแผ่นข้อมูล MLX90614
คุณสมบัติของ MLX90614:
- แรงดันไฟฟ้าที่ใช้งาน: 3.6V ถึง 5V
- ช่วงอุณหภูมิแวดล้อม: -40 ° C ถึง 125 ° C
- ช่วงอุณหภูมิของวัตถุ: -70 ° C ถึง -382.2 ° C
- ความละเอียด / การสอบเทียบ: 0.02 ° C
- ADC 17 บิต
- การสื่อสาร I2C
การเชื่อมต่อ MLX90614 กับ Raspberry Pi
ขั้นแรกเราจะดาวน์โหลดไลบรารีและแพ็คเกจที่จำเป็นในการเชื่อมต่อ MLX90614 ให้สำเร็จ
ขั้นตอนที่ 1:การเปิดใช้งาน I2C จากการตั้งค่า Raspberry Pi
พิมพ์ sudo raspi-config จากนั้นไปที่ตัวเลือกการเชื่อมต่อ
ไปที่ตัวเลือก I2C และเปิดใช้งาน
ขั้นตอนที่ 2:ดาวน์โหลดแพ็คเกจ / ไลบรารีของ MLX90614 โดยไปที่https://pypi.org/project/PyMLX90614/#filesจากนั้นคลิกขวาและคัดลอกที่อยู่ลิงก์
ไปที่เทอร์มินัล RPI แล้วพิมพ์ wget แล้ววางลิงค์ที่คัดลอกไว้ด้านล่าง
Wget
มันจะดาวน์โหลดห้องสมุดในชื่อไฟล์ซิป'PyMLX90614-0.0.3.tar.gz' จากนั้นแตกโฟลเดอร์ด้วยนามสกุลของชื่อไฟล์ tar -xf หรือใช้คำสั่งด้านล่างเพื่อทำเช่นเดียวกัน
tar -xf PyMLX90614-0.0.3.tar.gz
จากนั้นเราต้องติดตั้งแพ็คเกจที่จำเป็นโดยใช้คำสั่งด้านล่าง
sudo apt-get ติดตั้ง python-setuptools sudo apt-get install -y i2c-tools
จากนั้นไปที่โฟลเดอร์ที่แยกโดยใช้ cd PyMLX90614-0.0.3 / และเรียกใช้คำสั่ง
sudo python setup.py ติดตั้ง
เมื่อคุณทำตามขั้นตอนเสร็จแล้วเพียงเชื่อมต่อเซ็นเซอร์ MLX90614 กับ Raspberry piโดยใช้วงจรที่ระบุด้านล่าง วงจร Raspberry Pi MLX90614ด้านล่างได้รับการออกแบบโดยใช้ fritzing
หากการเชื่อมต่อและการติดตั้งจะทำอย่างถูกต้องเราสามารถตรวจสอบว่าเราได้รับค่าที่อยู่เซ็นเซอร์บนบัส I2C โดยใช้คำสั่ง i2cdetect -y 1
หากทุกอย่างเป็นไปตามที่คาดไว้เราจะเห็นผลลัพธ์ด้านล่างในเทอร์มินัลของเรา
0x5Aแสดงที่อยู่ของเซ็นเซอร์ตามที่ระบุไว้ในแผ่นข้อมูล ตัวอย่างแผ่นข้อมูลที่แสดงเหมือนกันได้รับด้านล่าง
ตอนนี้เราจะทำการสร้างชื่อไฟล์ใหม่ mlxread.py และเขียนโปรแกรมตัวอย่างเพื่อตรวจสอบข้อมูลจากเซ็นเซอร์ รหัสสำหรับเดียวกันได้รับด้านล่าง
จาก smbus2 นำเข้า SMBus จาก mlx90614 นำเข้า MLX90614 บัส = เซ็นเซอร์ SMBus (1) = MLX90614 (บัสที่อยู่ = 0x5A) พิมพ์ "อุณหภูมิแวดล้อม:", sensor.get_ambient () พิมพ์ "อุณหภูมิวัตถุ:", sensor.get_object_1 () บัส ปิด()
เมื่อสร้างไฟล์เสร็จแล้วเราจะรันด้วย python extension python mlxread.py ผลลัพธ์ที่ฉันได้รับแสดงอยู่ด้านล่าง ฉันรันโปรแกรมหลายครั้งเพื่อตรวจสอบว่าค่าเปลี่ยนไปหรือไม่เมื่อฉันเลื่อนมือไป
ว้าวเราได้เชื่อมต่อ MLX90614 กับ Raspberry Pi ของเราเรียบร้อยแล้วตามที่คุณสามารถยืนยันได้จากภาพด้านบน
กล้อง Pi เชื่อมต่อกับ Raspberry Pi
ขั้นตอนที่ 1: เปิดใช้งานกล้องจากการตั้งค่า Raspberry Pi
พิมพ์ sudo raspi-config จากนั้นไปที่ตัวเลือกการเชื่อมต่อ
ไปที่กล้องและเปิดใช้งานกล้อง
ตอนนี้เชื่อมต่อโมดูลกล้องตามที่แสดงด้านล่าง
ขั้นตอนที่ 2:ในการตรวจสอบว่ากล้องเชื่อมต่อถูกต้องหรือไม่เราจะทำการทดสอบภาพและบันทึกลงในเดสก์ท็อปของเรา (เราใช้เวอร์ชัน Full GUI Raspbian OS)
raspistill -o Desktop / image.jpg
วิธีนี้จะทำให้กล้องของคุณคลิกรูปภาพที่มีชื่ออิมเมจและจัดเก็บไว้บนเดสก์ท็อปของคุณ
การตั้งค่าอีเมล SMTP ด้วย Raspberry Pi
ในส่วนนี้เราจะเข้าใจว่าเราสามารถตั้งค่าบัญชี GMAIL ของเราให้ส่งอีเมลแจ้งเตือนได้อย่างไรเมื่ออุณหภูมิเกินค่าที่กำหนดไว้ล่วงหน้า
SMTP เป็นธรรมดา Mail Transfer Protocolซึ่งเป็นโปรโตคอลชั้นแอพลิเคชันที่รับผิดชอบในการให้บริการอีเมลโดยใช้ TCP ให้ความสามารถในการส่งและรับข้อความอีเมลและได้รับการจัดการโดยInternet Engineering Task Force (IETF)
บทแนะนำนี้ใช้ได้กับบัญชี GMAILเท่านั้นและเพื่อหลีกเลี่ยงข้อผิดพลาดที่อาจเกิดขึ้นขอแนะนำหากคุณใช้บัญชี Gmail ใหม่
ตามค่าเริ่มต้น Google ไม่อนุญาตให้ผู้ใช้ส่งอีเมลโดยใช้สคริปต์ python เพื่อให้ได้ผลเราต้องเปิดใช้งานแอปที่มีความปลอดภัยน้อยโดยไปที่การตั้งค่าบัญชี
ขั้นที่ 1:ไปที่มุมขวาและคลิกที่จัดการบัญชี Google ของคุณ
ขั้นตอนที่ 2: คลิกที่ความปลอดภัยและเลื่อนลงไปที่“ การเข้าถึงแอปที่ปลอดภัยน้อยลง”
ขั้นตอนที่ 3:เปิดใช้งานแอปที่มีความปลอดภัยน้อย
ขั้นตอนที่ 4: ทำซ้ำกับรหัสอีเมลอื่นเพื่อส่ง / รับอีเมลจากสคริปต์ python
ขั้นตอนที่ 5:ดาวน์โหลดแพ็คเกจที่ต้องการ
sudo apt-get install ssmtp sudo apt-get install mailutils
หากคุณได้รับข้อผิดพลาดในการเรียกใช้คำสั่งโดยการคัดลอกวางให้พิมพ์ด้วยตนเอง
ขั้นตอนที่ 6:หลังจากการติดตั้งไลบรารีทั้งหมดเสร็จสิ้นเราจำเป็นต้องทำการเปลี่ยนแปลงใน ไฟล์ ssmtp.conf ซึ่งเราต้องป้อนรายละเอียดอีเมลของผู้ส่ง
ไปที่ sudo nano /etc/ssmtp/ssmtp.conf
เลื่อนลงไปจนสุดแล้ววางสิ่งนี้
mailhub = smtp.gmail.com: 587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = YES UseTLS = YES
ฉันได้แชร์ภาพหน้าจอของเครื่องปลายทางของฉันเพื่อเป็นข้อมูลอ้างอิงของคุณ
ฉันเพิ่งใช้เขียงหั่นขนมเพื่อทำการเชื่อมต่อการตั้งค่าฮาร์ดแวร์ของฉันดูเหมือนของเขาเมื่อเชื่อมต่อ MLX90614 และกล้อง
Python Code เพื่อให้ Pi อ่านอุณหภูมิจาก MLX90614 และส่งอีเมลพร้อมรูปภาพ
โปรแกรม python จะดำเนินการที่จำเป็นทั้งหมดเพื่ออ่านข้อมูลเซ็นเซอร์เปรียบเทียบกับค่าขีด จำกัด อนุญาตอีเมลจากนั้นส่งอีเมลพร้อมรูปภาพที่แนบมา ในตอนแรกเราจะต้องมีการประกาศไลบรารีผู้ส่งและผู้รับอีเมล smtplib สามารถส่งอีเมลได้ แต่เราต้องการให้จัดระเบียบอีเมลด้วยหัวเรื่องเนื้อหาและไฟล์แนบอื่น ๆ ซึ่งทำได้ด้วยความช่วยเหลือของ Multipurpose Internet Mail Extensions (MIME) คุณสามารถดูรหัสทั้งหมดได้ที่ด้านล่างของหน้านี้
นำเข้า RPi.GPIO เป็น gpio นำเข้า picamera เวลานำเข้านำเข้า smtplib จากอีเมล MIMEM Multipart นำเข้า MIMMultipart จากอีเมล MIMEText นำเข้า MIMET ข้อความจากอีเมล MIMEBase นำเข้า MIMEBase จากตัวเข้ารหัสนำเข้าอีเมลจากอีเมล
หลังจากนั้นเรากำหนดที่อยู่อีเมลของผู้ส่งที่อยู่อีเมลผู้รับหัวเรื่องของอีเมลเนื้อหาและข้อความแนบ
fromaddr = "[email protected]" # เปลี่ยนที่อยู่อีเมลตามนั้น toaddr = "[email protected]" mail = MIMEMultipart () mail = fromaddr mail = toaddr mail = "Temperature value เกิน alert" 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 (รูปภาพ) เซิร์ฟเวอร์ = smtplib.SMTP ('smtp.gmail.com', 587) server.starttls () server.login (fromaddr, "test12345 @") text = mail. as_string () server.sendmail (fromaddr, toaddr, ข้อความ) server.quit ()
จากนั้นสร้างฟังก์ชั่นในการจับภาพที่ส่งทางอีเมลและยังจัดเก็บภาพพร้อมข้อมูลและเวลา
def capture_image (): data = time.strftime ("% d_% b_% Y-% H:% M:% S") camera.start_preview () time.sleep (5) พิมพ์ข้อมูล camera.capture ('% s. ข้อมูล jpg '%) camera.stop_preview () time.sleep (1) sendMail (data)
จากนั้นเราทำการตั้งค่าบางอย่างกับ PiCamera
กล้อง = picamera.PiCamera () camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
และในที่สุดเราก็มีลูปชั่วขณะ (1) ซึ่งจะวิ่งไปเรื่อย ๆ มันจะอ่านข้อมูลจากเซ็นเซอร์อุณหภูมิ MLX90614 และหากอุณหภูมิสูงเกินค่าที่ตั้งไว้ฟังก์ชัน capture_image () จะถูกเรียกใช้ซึ่งจะเรียกใช้ ฟังก์ชัน sendMail (data) เพื่อส่งการจับภาพทางอีเมล
การวัดอุณหภูมิและการส่งอีเมลแจ้งเตือนด้วย PI
เมื่อฮาร์ดแวร์และซอฟต์แวร์พร้อมแล้วให้รันโค้ด python (ให้ด้านล่าง) บน pi ของคุณ มันจะพิมพ์ค่าของอุณหภูมิที่อ่านได้จากเซ็นเซอร์ดังที่แสดงด้านล่าง
หากอุณหภูมิของวัตถุสูงกว่าอุณหภูมิเกณฑ์โปรแกรม python ของเราจะถ่ายภาพจากกล้องบันทึกลงในราสเบอร์รี่ pi และแชร์ผ่านทางอีเมล ตัวอย่างอีเมลที่ส่งจากราสเบอร์รี่ Pi แสดงอยู่ด้านล่าง
คุณสามารถดูการทำงานทั้งหมดของโครงการได้ในวิดีโอที่ลิงก์ด้านล่าง หวังว่าคุณจะชอบบทความนี้หากคุณมีคำถามใด ๆ โปรดทิ้งไว้ในความคิดเห็นด้านล่างหรือคุณสามารถใช้ฟอรัมของเราเพื่อโพสต์คำถามของคุณและติดต่อกับชุมชน