חיישן תנועה Raspberry Pi IFTTT: 4 שלבים
חיישן תנועה Raspberry Pi IFTTT: 4 שלבים
Anonim
חיישן תנועה Raspberry Pi IFTTT
חיישן תנועה Raspberry Pi IFTTT
חיישן תנועה Raspberry Pi IFTTT
חיישן תנועה Raspberry Pi IFTTT

שלום. אני תלמיד כיתה ד 'והיום אנחנו הולכים לייצר חיישן תנועה IFTTT

אספקה

1x קופסת קרטון קטנה

1x פטל פי דגם b+ או a+

1x חיישן PIR https://www.amazon.com/gp/product/B07KZW86YR/ref=p… (שונים) חוטי מגשר

1x נורה חכמה (אופציונלי)

סרט דביק (אופציונלי)

חשבון ifttt

שלב 1: גזור:

גזירה
גזירה

חותכים חור קטן באמצע החלק העליון של הקופסה.

שלב 2: חיבור חיישן ה- PIR:

חיבור חיישן ה- PIR
חיבור חיישן ה- PIR
חיבור חיישן ה- PIR
חיבור חיישן ה- PIR

חבר את הסיכה של חיישן PIR המסומן VCC לסיכה 5V ב- Raspberry Pi. זה מספק כוח לחיישן ה- PIR. חבר את זה המסומן ב- GND לסיכה הארקה בפי (המכונה גם GND). זה משלים את המעגל. חבר את זה המסומן OUT לכל פין GPIO ממוספר בפי. בדוגמה זו, בחרנו ב- GPIO 4. סיכת OUT תוציא מתח כאשר החיישן מזהה תנועה. לאחר מכן המתח יתקבל על ידי ה- Raspberry Pi.

שלב 3: הגדרת Webhooks:

הגדרת Webhooks
הגדרת 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 ()

תהנה!

מוּמלָץ: