สารบัญ:
- ขั้นตอนที่ 1: การตั้งค่าฮาร์ดแวร์
- ขั้นตอนที่ 2: การตั้งค่าซอฟต์แวร์ - การตั้งค่าอีเมลและผู้รับ
- ขั้นตอนที่ 3: การตั้งค่าซอฟต์แวร์ - การตั้งค่าซีเรียลและการแยกวิเคราะห์
- ขั้นตอนที่ 4: การตั้งค่าซอฟต์แวร์ - Gnuplot
- ขั้นตอนที่ 5: การตั้งค่าซอฟต์แวร์ - การตั้งค่าเกณฑ์และการส่งอีเมล
- ขั้นตอนที่ 6: การตั้งค่าซอฟต์แวร์ - HTML
- ขั้นตอนที่ 7: ฉันยังมีชีวิตอยู่…
วีดีโอ: Raspberry Pi ควบคุมการตรวจสอบอุณหภูมิห้องด้วยเอาต์พุตรูปภาพ Gnuplot และความสามารถในการแจ้งเตือนอีเมล: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
ที่ที่ฉันทำงาน มีห้องที่สำคัญมากซึ่งมีคอมพิวเตอร์จำนวนมาก อุณหภูมิแวดล้อมของห้องนี้จะต้องเย็นมากเพื่อเพิ่มประสิทธิภาพการทำงานของระบบเหล่านี้ ฉันถูกขอให้สร้างระบบตรวจสอบซึ่งมีความสามารถในการส่งรูปแบบการแจ้งเตือนไปยังบุคคลสองสามคนซึ่งจะแจ้งให้ทราบว่ามีบางอย่างผิดปกติกับเครื่องปรับอากาศในห้องนั้น ฮาร์ดแวร์สำหรับบิลด์นี้ฉันใช้ Raspberry pi และเซ็นเซอร์อุณหภูมิและความชื้น USB สำหรับการตรวจสอบ ฉันใช้ Gnuplot เพื่อพล็อตกราฟอุณหภูมิสามกราฟและสร้างภาพของกราฟเหล่านั้น จากนั้นฉันก็สร้างหน้า HTML เฉพาะที่จะโฮสต์บน Raspberry pi เพื่อให้สามารถตรวจสอบเงื่อนไขปัจจุบัน อิมเมจเอาต์พุต gnuplot ได้จากหน้าเว็บภายในเครือข่ายของเรา สำหรับการแจ้งเตือน ฉันเลือกที่จะใช้ Gmail ฉันพบโค้ดตัวอย่างในนิตยสารผู้ใช้ Linux (แน่นอนว่าคุณสามารถใช้เซิร์ฟเวอร์อีเมลใดก็ได้เมื่อคุณทราบการกำหนดพอร์ตที่จำเป็น) เพื่อที่ฉันได้สร้างบัญชีอีเมล Gmail เฉพาะสำหรับการแจ้งเตือนเหล่านี้ นอกจากนี้ ในฐานะคุณลักษณะเพิ่มเติม เมื่อมีการเรียกใช้การแจ้งเตือน ฉันได้แนบกราฟหนึ่งกราฟกับอีเมลเพื่อให้ผู้ที่ได้รับอีเมลทราบถึงความเพิ่มขึ้นอย่างมากที่ทำให้เกิดการแจ้งเตือน
ขั้นตอนที่ 1: การตั้งค่าฮาร์ดแวร์
ไม่มีอะไรมากในการตั้งค่าฮาร์ดแวร์ Raspberry pi ใช้งาน Raspian และเซ็นเซอร์อุณหภูมิ USB เพียงเสียบเข้ากับพอร์ต USB พอร์ตใดพอร์ตหนึ่งโดยตรง การใช้พลังงานของเซ็นเซอร์นี้น้อยที่สุดและด้วยเหตุนี้ฉันจึงขับเคลื่อนโดยตรงจาก Raspberry pi อย่างไรก็ตาม สำหรับอุปกรณ์ที่ใช้ USB ที่มีการใช้พลังงานมากกว่าเล็กน้อย ฉันขอแนะนำให้เปิดเครื่องผ่านฮับ USB ที่ใช้พลังงานและไม่ใช่โดยตรงจากพอร์ต USB ของ Raspberry pi เมื่อเซ็นเซอร์อุณหภูมิได้รับพลังงานแล้ว จะมีสตริงอนุกรมที่มีอุณหภูมิและ การอ่านค่าความชื้นของสภาวะปัจจุบัน อุณหภูมิ=20.9°C ความชื้น=62.7% จุดน้ำค้าง=13.0°CA สคริปต์หลามแยกวิเคราะห์สตริงนี้และเก็บค่าอุณหภูมิและความชื้นลงในไฟล์ข้อความสามไฟล์ทุกห้านาที ไฟล์ข้อความรายวัน 24 ชั่วโมงและ 48 ชั่วโมง (ความแตกต่างจะกล่าวถึงในภายหลังในส่วน HTML) จากไฟล์เหล่านี้ Gnuplot จะสร้างกราฟและต่อมาคือภาพของชุดข้อมูลในแต่ละไฟล์ ก่อนที่ฉันจะพูดถึงสคริปต์ python ฉันจะพูดถึงการเตรียม Raspberry pi เนื่องจากการตรวจสอบจะต้องดำเนินการทางออนไลน์ จึงจำเป็นต้องติดตั้งเว็บเซิร์ฟเวอร์ ฉันได้ลองสองสามตัวในช่วงเวลาของฉันกับ Raspberry pi แต่ถึงแม้ว่ามันจะใหญ่ไปหน่อย แต่ฉันก็ชอบ Apache ในการติดตั้ง Apache บน Raspberry pi ของคุณ คุณเพียงแค่พิมพ์:sudo apt-get install apache2 มันจะแจ้งให้คุณทราบก่อนทำการติดตั้ง กด "y" เพื่อใช่ และ Apache จะถูกติดตั้งไม่กี่นาทีขึ้นอยู่กับ Raspberry pi ของคุณ เมื่อนั้น เสร็จแล้ว คุณต้องติดตั้งปลั๊กอิน python สองตัว: python-serial และ python-gnuplot plug (แม้ว่าฉันจะรู้ว่า Raspian builds ล่าสุดมีมาตรฐานปลั๊กอิน python-serial แต่เพื่อความปลอดภัย) ในการติดตั้งสิ่งที่คุณพิมพ์:sudo apt-get install python-serial python-gnuplotOnce อีกครั้งหลังจากรับทราบพร้อมท์ ปลั๊กอินเหล่านี้ -ins จะถูกติดตั้ง และด้วยเหตุนี้การตั้งค่าฮาร์ดแวร์จึงเสร็จสมบูรณ์
ขั้นตอนที่ 2: การตั้งค่าซอฟต์แวร์ - การตั้งค่าอีเมลและผู้รับ
สร้างที่อยู่อีเมล ก่อนที่เราจะไปไกลถึงซอฟต์แวร์ในขณะนี้ เป็นเวลาที่ดีในการสร้างบัญชี Gmail เพื่อส่งการแจ้งเตือนทางอีเมลของคุณ (ตัวอย่างนี้ใช้ GMail แต่เซิร์ฟเวอร์อีเมลใด ๆ ก็สามารถใช้ได้เมื่อเราทราบการตั้งค่าพอร์ต smtp) รหัสหลามค่อนข้างตรงไปตรงมา แต่การนำเข้าที่จำเป็นนั้นสำคัญ หากไม่มีพวกเขา ไม่มีอะไรจะทำงานได้ตั้งแต่การนำเข้าเวลา * การนำเข้าเวลา การนำเข้าซีเรียล การนำเข้า smtplib การนำเข้า Gnuplot การนำเข้าระบบปฏิบัติการ sysFinally รายชื่อผู้รับจดหมาย แน่นอนว่าเราต้องเพิ่มผู้รับอีเมล ที่อยู่อีเมลแต่ละรายการจะถูกบันทึกไว้ในตัวแปร.from_address = '[email protected]'to_address1 = 'recipient1.mail.com' to_address2 = 'recipient2.mail.com'username = '[email protected]' รหัสผ่าน = 'custom_email_password'
ขั้นตอนที่ 3: การตั้งค่าซอฟต์แวร์ - การตั้งค่าซีเรียลและการแยกวิเคราะห์
ต่อไปเราจะดูการตั้งค่าซีเรียล เป็นเพียงเรื่องของการตั้งค่าพารามิเตอร์ที่ตรงกับเอาต์พุตอนุกรมจากเซ็นเซอร์เท่านั้น เซ็นเซอร์จะส่งสัญญาณอนุกรมที่ 9600 8 N 1 ซึ่งเป็นรูปแบบมาตรฐาน หลังจากได้รับสตริงแล้ว มีหลายวิธีในการแยกวิเคราะห์สตริงนี้ใน python และอาจเชื่อถือได้มากกว่า วิธีที่ฉันทำคือค้นหาอักขระ "ชั่วคราว" ในสตริงซีเรียล เมื่อพบแล้ว เป็นเพียงเรื่องของการอ่านอักขระต่อเนื่อง 46 ตัวถัดไปในสตริง สตริงที่รวบรวมสามารถระบุได้เหมือนองค์ประกอบในอาร์เรย์ ข้อมูลที่ต้องการจะถูกแยกวิเคราะห์ออกจากสตริงและบันทึกลงในไฟล์สามไฟล์พร้อมกับประทับเวลาที่สอดคล้องกัน = strftime("%d%b%Y %H:%M:%S ", localtime())
ขั้นตอนที่ 4: การตั้งค่าซอฟต์แวร์ - Gnuplot
Gnuplot เป็นเครื่องมือกราฟิกบรรทัดคำสั่ง เมื่อคุณได้ทราบถึงพื้นฐานแล้ว มันสามารถเป็นเครื่องมือที่ทรงพลังสำหรับการแสดงชุดข้อมูลแบบกราฟิก Gnuplot สามารถพล็อตจากไฟล์ข้อความที่จัดรูปแบบได้โดยตรง และเราเพิ่งจะมีสิ่งนี้จากขั้นตอนการแยกวิเคราะห์มาก่อน เมื่อเราระบุว่า gnuplot ตำแหน่งใดในไฟล์ที่มีข้อมูล เราสามารถพล็อตค่าที่ต้องการได้ ฉันจะใช้เวลาบนแกน X และอุณหภูมิของเราบนแกน Y การวางแผนเวลาจากประสบการณ์ของฉันนั้นยากที่สุด เนื่องจากคุณต้องได้รูปแบบเวลาใน gnuplot เพื่อให้ตรงกับรูปแบบของไฟล์ข้อความ หลังจากที่ตัวเลือกการทำกราฟทั้งหมดเสร็จสมบูรณ์และตามที่คุณต้องการแล้ว Gnuplot ก็สามารถสร้างรูปภาพของกราฟนี้ได้ นี่จะเป็นภาพที่เราจะใช้ในหน้าเว็บของเราในภายหลัง ฉันเลือกที่จะใช้รูปภาพ-p.webp
ขั้นตอนที่ 5: การตั้งค่าซอฟต์แวร์ - การตั้งค่าเกณฑ์และการส่งอีเมล
เกณฑ์สำหรับการแจ้งเตือนต้องทำโดยการลองผิดลองถูกสำหรับการตั้งค่าของคุณ ห้องที่ระบบไม่มีหน้าต่างดังนั้นเมื่อเครื่องปรับอากาศหยุดลงก็จะร้อนเร็วมาก ตอนแรกฉันดูชุดข้อมูลสองสามวันและดูการเปลี่ยนแปลงของอุณหภูมิ ก่อนที่ฉันจะตัดสินใจเลือกค่าการแจ้งเตือนที่ 30 องศาเซลเซียส ค่านี้ถูกตั้งค่าเป็นตัวแปรภายใน python scipt การดำเนินการนี้อาจดูไม่สูงมาก แต่เมื่อการแจ้งเตือนได้รับการกระตุ้น คุณยังต้องการให้เวลาตัวเองในการแก้ไขปัญหาก่อนที่จะกลายเป็นวิกฤต
เพื่อความง่าย ฉันกำลังส่งอีเมลทีละฉบับไปยังรายชื่อผู้รับจดหมาย เนื่องจากรายชื่อส่งเมลสั้น ฉันจึงไม่ต้องกังวลกับการส่งอีเมลถึงผู้รับหลายคน สิ่งหนึ่งที่ควรทราบในที่นี้ เนื่องจากฉันใช้งานสคริปต์นี้เป็นงาน cron ทุกๆ 5 นาที คุณจึงไม่ต้องการส่งอีเมลทุกๆ 5 นาทีเมื่อมีการทริกเกอร์ขีดจำกัด เพื่อแก้ไขปัญหานี้ ฉันเขียนวันที่และเวลาของการแจ้งเตือนลงในไฟล์ และตรวจสอบไฟล์นี้ก่อนที่จะส่งอีเมลเพื่อดูว่าระบบอยู่ในสถานะการแจ้งเตือนแล้วหรือไม่ เมื่ออยู่ในสถานะแจ้งเตือน ระบบจะส่งอีเมลอีกครั้งทุก ๆ ชั่วโมงหลังจากทริกเกอร์ครั้งแรกตราบเท่าที่ระบบอยู่ในสถานะแจ้งเตือน วิธีนี้ Gmail จะไม่บล็อกอีเมลของคุณจากการส่งอีเมลมากเกินไปในระยะเวลาอันสั้น
ขั้นตอนที่ 6: การตั้งค่าซอฟต์แวร์ - HTML
การตรวจสอบระบบทั้งหมดทำได้ผ่านหน้าเว็บและจำเป็นต้องใช้สคริปต์ html พื้นฐานสำหรับสิ่งนี้ ภาพที่ Gnuplot สร้างขึ้น ฉันเพียงแค่ใช้ขนาดเดิมของรูปภาพกลับคืนมา ฉันเชื่อว่าฉันได้ผ่านประมาณ 3 ขนาดสำหรับรูปภาพเหล่านี้ซึ่งให้ขนาดที่พอดีกับหน้าจอของฉันมากที่สุด ก่อนที่เราจะสร้างสคริปต์ html ให้สร้างโฟลเดอร์สำหรับมันก่อน โดยค่าเริ่มต้น โฟลเดอร์เว็บโฮสติ้งจะอยู่ที่ /var/www/ แม้ว่า Raspberry pi จะมีจุดประสงค์เพียงเพื่อตรวจสอบห้องนี้และออกการแจ้งเตือนทางอีเมล แต่สำหรับการดูแลบ้านที่ดี ฉันได้สร้างโฟลเดอร์แยกต่างหากในโฟลเดอร์ /var/www/ เนื่องจากโฟลเดอร์นี้เป็นของผู้ใช้รูท คุณต้องใช้ sudo เพื่อสร้างโฟลเดอร์จึงเป็นตำแหน่งนี้ sudo mkdir /var/www/temperature ในตัวอย่างนี้ ฉันใช้ temperature เป็นชื่อของโฟลเดอร์ แต่คุณสามารถใช้ชื่อใดก็ได้ที่นี่ แต่จำไว้ว่าจะต้องป้อนสิ่งนี้ลงในแถบที่อยู่เพื่อดูหน้านี้ เส้นทางนี้ถูกเก็บไว้ในตัวแปรภายในสคริปต์หลาม แม้ว่าจะต้องเปลี่ยนตำแหน่งโฮสต์หรือต้องแก้ไขสคริปต์สำหรับระบบอื่นก็สามารถเปลี่ยนแปลงได้จากตำแหน่งนี้ ตอนนี้เราสามารถสร้างสคริปต์ html ของเราในโฟลเดอร์นี้โดยจำไว้ว่าให้ใช้ sudo ต่อหน้าคำสั่งใด ๆ ของคุณ ต้องการที่จะดำเนินการในที่นี่ ฉันอยากจะแนะนำให้คุณตั้งชื่อสคริปต์ html "index.html" เนื่องจากจะทำให้สิ่งนี้ง่ายขึ้นเมื่อพยายามค้นหาหน้านี้ สิ่งสำคัญคือต้องแน่ใจว่าขนาดรูปภาพเท่ากับขนาดรูปภาพจาก Gnuplot เมื่อต้องการดูหน้านี้ คุณเพียงแค่ต้องป้อนที่อยู่ IP ของ Raspberry Pi ตามด้วย /temperature (หรือสิ่งที่คุณเคยตั้งชื่อโฟลเดอร์ของคุณ) ฉันมีหลายระบบที่ทำงานตรวจสอบสิ่งต่าง ๆ และพวกเขาทั้งหมดสร้างผลลัพธ์กราฟิกบางส่วน ดังนั้นฉันจึงสร้างเพจที่มีลิงก์ไปยังหน้าเหล่านี้ทั้งหมด ดังนั้นฉันไม่ต้องกังวลกับการป้อนที่อยู่ทุกครั้งที่ต้องการเข้าถึงหน้าเหล่านี้
ขั้นตอนที่ 7: ฉันยังมีชีวิตอยู่…
ฉันเคยใช้สิ่งนี้เพื่อตรวจสอบอุณหภูมิในห้องคอมพิวเตอร์ แต่นี่อาจเป็นข้อมูลจากแหล่งใดก็ได้ เมื่อมันสามารถเก็บไว้ในไฟล์ข้อความและคุณรู้ว่ามันเป็นรูปแบบที่ Gnuplot สามารถทำส่วนที่เหลือได้ สิ่งหนึ่งที่ฉันเพิ่มเมื่อเร็ว ๆ นี้ในโครงการนี้คือส่งอีเมล "ฮาร์ทบีต" แปลก ๆ นั่นคือในวันแรกของเดือนเวลา 9.00 น. ฉันมีสคริปต์ที่ทำงานเพื่อส่งอีเมลไปยังรายชื่อผู้รับจดหมายเพื่อแจ้งให้พวกเขาทราบว่าระบบกำลังทำงานตามที่ควรจะเป็นและทุกอย่างอยู่ในห้องได้ดี
ใช้รายการ cronjob เป็น:
แนะนำ:
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
LED กะพริบด้วย Raspberry Pi - วิธีใช้พิน GPIO บน Raspberry Pi: 4 ขั้นตอน
LED กะพริบด้วย Raspberry Pi | วิธีใช้ GPIO Pins บน Raspberry Pi: สวัสดีทุกคนในคำแนะนำนี้เราจะเรียนรู้วิธีใช้ GPIO ของ Raspberry pi หากคุณเคยใช้ Arduino คุณอาจรู้ว่าเราสามารถเชื่อมต่อสวิตช์ LED ฯลฯ เข้ากับหมุดของมันและทำให้มันทำงานได้ ทำให้ไฟ LED กะพริบหรือรับอินพุตจากสวิตช์ดังนั้น
อินเทอร์เฟซ ADXL335 Sensor บน Raspberry Pi 4B ใน 4 ขั้นตอน: 4 ขั้นตอน
อินเทอร์เฟซ ADXL335 Sensor บน Raspberry Pi 4B ใน 4 ขั้นตอน: ในคำแนะนำนี้ เราจะเชื่อมต่อเซ็นเซอร์ ADXL335 (accelerometer) บน Raspberry Pi 4 กับ Shunya O/S
การติดตั้ง Raspbian Buster บน Raspberry Pi 3 - เริ่มต้นใช้งาน Raspbian Buster ด้วย Raspberry Pi 3b / 3b+: 4 ขั้นตอน
การติดตั้ง Raspbian Buster บน Raspberry Pi 3 | เริ่มต้นใช้งาน Raspbian Buster ด้วย Raspberry Pi 3b / 3b+: สวัสดี องค์กร Raspberry pi ที่เพิ่งเปิดตัว Raspbian OS ใหม่ที่เรียกว่า Raspbian Buster เป็นเวอร์ชันใหม่ของ Raspbian สำหรับ Raspberry pi ดังนั้นวันนี้ในคำแนะนำนี้ เราจะได้เรียนรู้วิธีติดตั้ง Raspbian Buster OS บน Raspberry pi 3 ของคุณ
การติดตั้ง Raspbian ใน Raspberry Pi 3 B โดยไม่ต้องใช้ HDMI - เริ่มต้นใช้งาน Raspberry Pi 3B - การตั้งค่า Raspberry Pi ของคุณ 3: 6 ขั้นตอน
การติดตั้ง Raspbian ใน Raspberry Pi 3 B โดยไม่ต้องใช้ HDMI | เริ่มต้นใช้งาน Raspberry Pi 3B | การตั้งค่า Raspberry Pi ของคุณ 3: อย่างที่พวกคุณบางคนรู้ว่าคอมพิวเตอร์ Raspberry Pi นั้นยอดเยี่ยมมากและคุณสามารถรับคอมพิวเตอร์ทั้งหมดได้บนบอร์ดเล็ก ๆ ตัวเดียว Raspberry Pi 3 Model B มี ARM Cortex A53 แบบ 64 บิตแบบ quad-core โอเวอร์คล็อกที่ 1.2 GHz ทำให้ Pi 3 ประมาณ 50