Mündəricat:
Video: Raspberry Pi Motion Sensor IFTTT: 4 addım
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Salam. Mən 4 -cü sinif şagirdiyəm və bu gün IFTTT hərəkət sensoru hazırlayacağıq
Təchizat
1 x kiçik karton qutu
1x moruq pi modeli b+ və ya+
1x PIR sensoru https://www.amazon.com/gp/product/B07KZW86YR/ref=p…(Müxtəlif) keçid telləri
1x ağıllı ampul (isteğe bağlı)
Yapışqan bant (isteğe bağlı)
ifttt hesabı
Addım 1: kəsin:
Qutunun yuxarı hissəsinin ortasında kiçik bir çuxur kəsin.
Addım 2: PIR Sensorunun Bağlanması:
PIR sensorunun VCC etiketli pinini Raspberry Pi üzərindəki 5V pininə qoşun. Bu, PIR sensoruna güc verir. GND etiketli olanı Pi üzərindəki bir topraklama pininə (həmçinin GND etiketli) bağlayın. OUT etiketli olanı Pi üzərindəki hər hansı bir nömrəli GPIO pininə qoşun. Bu nümunədə GPIO 4 seçdik. Sensor hərəkət algıladığında ÇIKIŞ pin bir gərginlik çıxaracaq. Gərginlik daha sonra Raspberry Pi tərəfindən alınacaq.
Addım 3: Veb Qarmaqlarını Qurun:
yeni bir applet edin və sonra Webhooks seçin. və sonra bildirişlərlə eyni şeyi edin.
Addım 4: Kod:
Python 3 və ya thonny üçün
#! /usr/bin/python # RPi. GPIO -nu GPIOimport etmək üçün vaxt idxalı istəkləri # GPIO adlandırma konvensiyasını qurunGPIO.setmode (GPIO. BCM) # GPIO xəbərdarlıqlarını söndürün # GPIO pinini inputGPIO.setup (pinpir, GPIO. IN) olaraq təyin edin # Mövcud və son vəziyyətləri saxlamaq üçün dəyişənlər cari cərəyan = 0previousstate = 0 cəhd edin: çap edin ("PIR -in həll olunmasını gözləyir …") # GPIO zamanı PIR çıxışı 0 olana qədər döngə edin..input (pinpir) == 1: currentstate = 0 print ("Hazır") # Doğru olarkən istifadəçilər CTRL-C ilə çıxana qədər döngə: # PIR vəziyyətini oxu Currentstate = GPIO.input (pinpir) # Currentstate olarsa PIR tetiklenirse == 1 və əvvəlki dövlət == 0: çap ("Hərəkət aşkarlandı!") # Hadisə adı, açar və json parametrləri (dəyərləri) olan IFTTT URL'niz r = request.post ('https://maker.ifttt.com/trigger /YOUR_EVENT_NAME/with/key/YOUR_KEY_HERE ', params = {"value1": "none", "value2": "none", "value3": "none"}) # Yeni əvvəlki vəziyyəti qeyd edin əvvəlki dövlət = 1 # 120 saniyə gözləyin ag döngəsindən əvvəl ain print ("120 saniyə gözləyir") vaxt.yuxu (120) # Əgər PIR hazır vəziyyətə qayıdırsa elif currentstate == 0 və əvvəlki vəziyyət == 1: print ("Hazır") previousstate = 0 # 10 milisaniyə gözləyin.yuxu (0.01) KeyboardInterrupt istisna olmaqla: yazdır ("Çıx") # GPIO parametrlərini sıfırla GPIO.cleanup ()
Zövq alın!