สารบัญ:
วีดีโอ: Raspberry Pi Motion Sensor IFTTT: 4 ขั้นตอน
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
สวัสดี. ฉันเป็นนักเรียนชั้นประถมศึกษาปีที่ 4 และวันนี้เรากำลังจะสร้างเซ็นเซอร์ตรวจจับความเคลื่อนไหว IFTTT
เสบียง
1x กล่องกระดาษแข็งขนาดเล็ก
1x raspberry pi รุ่น b+ หรือ a+
1x PIR sensor https://www.amazon.com/gp/product/B07KZW86YR/ref=p…(ต่างๆ) สายจัมเปอร์
หลอดไฟอัจฉริยะ 1x (อุปกรณ์เสริม)
เทปพันท่อ (อุปกรณ์เสริม)
บัญชี ifttt
ขั้นตอนที่ 1: ตัด:
เจาะรูเล็กๆ ตรงกลางด้านบนของกล่อง
ขั้นตอนที่ 2: การติดเซ็นเซอร์ PIR:
เชื่อมต่อพินของเซ็นเซอร์ PIR ที่ระบุว่า VCC กับพิน 5V บน Raspberry Pi สิ่งนี้ให้พลังงานแก่เซ็นเซอร์ PIR เชื่อมต่อ GND หนึ่งอันที่มีป้ายกำกับเข้ากับพินกราวด์บน Pi (ยังมีป้ายกำกับว่า GND) เสร็จสิ้นวงจร เชื่อมต่ออันที่มีป้ายกำกับ OUT กับพิน GPIO ที่มีหมายเลขบน Pi ในตัวอย่างนี้ เราได้เลือก GPIO 4 พิน OUT จะส่งสัญญาณแรงดันออกเมื่อเซ็นเซอร์ตรวจจับการเคลื่อนไหว แรงดันไฟฟ้าจะได้รับจาก Raspberry Pi
ขั้นตอนที่ 3: ตั้งค่าเว็บฮุค:
สร้างแอปเพล็ตใหม่ จากนั้นเลือก Webhooks แล้วทำเช่นเดียวกันกับการแจ้งเตือน
ขั้นตอนที่ 4: รหัส:
สำหรับ python 3 หรือ thonny
#! /usr/bin/python # Importsimport RPi. GPIO เป็นคำขอนำเข้า GPIOimport timeimport # ตั้งค่าการตั้งชื่อ GPIO แบบแผนการตั้งชื่อ GPIO.setmode (GPIO. BCM) # ปิดคำเตือน GPIO GPIO.setwarnings (เท็จ) # ตั้งค่าตัวแปรเพื่อเก็บ GPIO Pin identitypinpir = 17 # ตั้งค่าพิน GPIO เป็นอินพุต GPIO.setup (pinpir, GPIO. IN) # ตัวแปรเพื่อเก็บสถานะปัจจุบันและสถานะปัจจุบันล่าสุด = 0 สถานะก่อนหน้า = 0 ลอง: พิมพ์ ("รอให้ PIR ชำระ …") # วนซ้ำจนกว่าเอาต์พุต PIR เป็น 0 ในขณะที่ GPIO.input(pinpir) == 1: currentstate = 0 print(" Ready") # วนซ้ำจนกว่าผู้ใช้จะเลิกใช้ CTRL-C ในขณะที่ True: # อ่านสถานะ PIR สถานะปัจจุบัน = GPIO.input (pinpir) # หาก PIR ถูกทริกเกอร์หากสถานะปัจจุบัน == 1 และสถานะก่อนหน้า == 0: พิมพ์ ("ตรวจพบการเคลื่อนไหว!") # IFTTT URL ของคุณด้วยชื่อเหตุการณ์ พารามิเตอร์คีย์และ json (ค่า) r = คำขอ. โพสต์ ('https://maker.ifttt.com/trigger /YOUR_EVENT_NAME/with/key/YOUR_KEY_HERE', params={"value1":"none", "value2":"none", "value3":"none"}) # บันทึกสถานะใหม่ก่อนหน้านี้ สถานะก่อนหน้า = 1 #รอ 120 วินาที ก่อนจะวนซ้ำ ag ain print("Waiting 120 seconds") time.sleep(120) # ถ้า PIR กลับสู่สถานะพร้อม elif currentstate == 0 และ Previousstate == 1: print("Ready") สถานะก่อนหน้า = 0 # รอ 10 มิลลิวินาที.sleep(0.01) ยกเว้น KeyboardInterrupt: print(" Quit") # รีเซ็ตการตั้งค่า GPIO GPIO.cleanup()
สนุก!