וִידֵאוֹ: חיישן תנועה Raspberry Pi IFTTT: 4 שלבים
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
שלום. אני תלמיד כיתה ד 'והיום אנחנו הולכים לייצר חיישן תנועה IFTTT
אספקה
1x קופסת קרטון קטנה
1x פטל פי דגם b+ או a+
1x חיישן PIR https://www.amazon.com/gp/product/B07KZW86YR/ref=p… (שונים) חוטי מגשר
1x נורה חכמה (אופציונלי)
סרט דביק (אופציונלי)
חשבון ifttt
שלב 1: גזור:
חותכים חור קטן באמצע החלק העליון של הקופסה.
שלב 2: חיבור חיישן ה- PIR:
חבר את הסיכה של חיישן PIR המסומן VCC לסיכה 5V ב- Raspberry Pi. זה מספק כוח לחיישן ה- PIR. חבר את זה המסומן ב- GND לסיכה הארקה בפי (המכונה גם GND). זה משלים את המעגל. חבר את זה המסומן OUT לכל פין GPIO ממוספר בפי. בדוגמה זו, בחרנו ב- GPIO 4. סיכת OUT תוציא מתח כאשר החיישן מזהה תנועה. לאחר מכן המתח יתקבל על ידי ה- Raspberry Pi.
שלב 3: הגדרת Webhooks:
צור יישומון חדש ולאחר מכן בחר Webhooks. ולאחר מכן עשו את אותו הדבר עם התראות.
שלב 4: קוד:
עבור python 3 או thonny
#! /usr/bin/python # יבוא ייבוא RPi. GPIO כבקשות ייבוא זמן GPIO # הגדר את מוסכמת השמות של GPIO GPIO.setmode (GPIO. BCM) # כבה אזהרות GPIOGPIO.setwarnings (שקר) # הגדר משתנה שיחזיק את זהות ה- PIN PINpinpir = 17 # הגדר את סיכת GPIO כ inputGPIO.setup (pinpir, GPIO. IN) # משתנים להחזיק את המצב הנוכחי והאחרון הנוכחי = 0previousstate = 0 נסה: הדפס ("מחכה ל- PIR להתיישב …") # לולאה עד פלט PIR הוא 0 בעוד GPIO.input (pinpir) == 1: currentstate = 0 הדפסה ("מוכן") # לולאה עד שמשתמשים עוזבים עם CTRL-C בזמן אמת: # קרא מצב PIR currentstate = GPIO.input (pinpir) # אם ה- PIR מופעל אם הנוכחי == 1 ו- previousstate == 0: הדפס ("זוהתה תנועה!") # כתובת ה- IFTTT שלך עם שם אירוע, מפתח ופרמטרים של json (ערכים) r = requests.post ('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 ("מחכה 120 שניות") time.sleep (120) # אם ה- PIR חזר למצב מוכן elif currentstate == 0 ו- previousstate == 1: print ("Ready") previousstate = 0 # המתן 10 מילי שניות זמן.sleep (0.01) למעט מקלדת הפרעה: הדפסה ("צא") # אפס את הגדרות GPIO GPIO.cleanup ()
תהנה!