สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
ในบทช่วยสอนนี้ ฉันจะแสดงวิธีตรวจจับเหตุการณ์เปิดประตูและส่งการแจ้งเตือนผ่าน Gmail โดยใช้ Arduino Uno
หากคุณเป็นมือใหม่ คุณสามารถเรียนรู้เกี่ยวกับ wifi และเซ็นเซอร์ในบทช่วยสอน Arduino - WiFi และ Arduino - เซ็นเซอร์ประตู
มาเริ่มกันเลย!
การตรวจจับเหตุการณ์เปิดประตู เซ็นเซอร์แม่เหล็กที่ฉันใช้ประกอบด้วยสองส่วน: เซ็นเซอร์และแม่เหล็ก เมื่อสองส่วนอยู่ใกล้กัน พินเอาต์พุตของเซ็นเซอร์จะสูง มิฉะนั้น พินเอาต์พุตจะต่ำ ด้วยการใช้ประโยชน์จากคุณสมบัตินี้ ฉันจึงติดตั้งเซ็นเซอร์ส่วนหนึ่งที่บานประตูและอีกส่วนหนึ่งไว้ที่วงกบประตู โดยการตรวจสอบสถานะของพินเอาต์พุต เราสามารถตรวจจับได้เมื่อประตูถูกเปิด จากนั้นจึงแจ้งเตือนหรือส่งการแจ้งเตือน
การจัดการเหตุการณ์
เมื่อเกิดเหตุการณ์เปิดประตู การแจ้งเตือนจะถูกส่งผ่าน Gmail
ขั้นตอนที่ 1: สิ่งที่เราต้องการ
1. Arduino UNO หรือ Genuino UNO
2. PHPoC Shield สำหรับ Arduino
3. เซนเซอร์แม่เหล็ก
ขั้นตอนที่ 2: การประกอบ
1. สแต็ค PHPoC Shield บน Arduino
2. ต่อสาย LAN เข้ากับตัวป้องกันสำหรับอีเธอร์เน็ต
3. ปักหมุดสายไฟระหว่าง Arduino และเซนเซอร์
----5v -------- หมุดสีแดง
----A0------- หมุดดำ
ขั้นตอนที่ 3: ติดตั้งชุดนี้ที่ประตู
1. ติดส่วนเซ็นเซอร์, ชุด Arduino (รวมถึงโล่ PHPoC) เข้ากับวงกบประตู
2. ติดส่วนแม่เหล็กที่บานประตู
3. พาวเวอร์ Arduino
4. เชื่อมต่ออินเทอร์เน็ตผ่านสาย LAN หรือ USB Wifi Dongle
ขั้นตอนที่ 4: ดาวน์โหลดและติดตั้งไลบรารีบน Arduino
ติดตั้งไลบรารี PHPoC และ ezButton
ขั้นตอนที่ 5: รหัส Arduino
#รวม
#include อีเมล PhpocEmail; ปุ่ม ezButton (A0); // สร้างปุ่มวัตถุที่แนบกับขา A0; การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); Phpoc.begin(PF_LOG_SPI | PF_LOG_NET | PF_LOG_APP); // Phoc.beginIP6(); ยกเลิกหมายเหตุบรรทัดนี้หากคุณจะใช้ IPv6 button.setDebounceTime(100); // ตั้งเวลา debounce เป็น 100 มิลลิวินาที } void loop() { button.loop(); // ต้องเรียกใช้ฟังก์ชันลูป () ก่อนถ้า (button.isPressed ()) { // ถ้าประตูเปิดอยู่… email.setOutgoingServer ("smtp.gmail.com", 587); email.setOutgoingLogin("Google ID", "รหัสผ่าน Google"); email.setFrom("ที่อยู่ Gmail ", "ชื่อผู้ส่ง"); email.setTo("ที่อยู่อีเมลของผู้รับ", "ชื่อผู้รับ"); email.setSubject("ประตูถูกเปิด [#905]"); // Mail Subject // เนื้อหาเมล email.beginMessage(); email.println("#905"); email.println(""); email.println("ประตูถูกเปิด"); email.endMessage(); if (email.send() > 0) // ส่งอีเมล Serial.println("จดหมายของคุณถูกส่งเรียบร้อยแล้ว"); อื่น Serial.println("จดหมายของคุณไม่ได้รับการส่ง"); } else if (button.isReleased()) { // if door is closed… // เขียนโค้ดในลักษณะเดียวกัน } }
ขั้นตอนที่ 6: การอ้างอิงฟังก์ชัน
- วน ()
- ติดตั้ง()
- Serial.begin()
- Serial.println()
- ล่าช้า()
- สำหรับวง
- ในขณะที่วง
- ถ้าอย่างอื่น
- สตริง.toInt()