جدول المحتويات:
فيديو: مستشعر حركة Raspberry Pi IFTTT: 4 خطوات
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
أهلا. أنا طالب بالصف الرابع وسنقوم اليوم بصنع مستشعر حركة IFTTT
اللوازم
1x صندوق كرتون صغير
1x Raspberry Pi موديل b + أو A +
1x مستشعر PIR https://www.amazon.com/gp/product/B07KZW86YR/ref=p… (مختلف) أسلاك توصيل
1x مصباح ذكي (اختياري)
شريط لاصق (اختياري)
حساب ifttt
الخطوة 1: القص:
اقطع ثقبًا صغيرًا في منتصف الجزء العلوي من الصندوق.
الخطوة الثانية: توصيل مستشعر PIR:
قم بتوصيل دبوس مستشعر PIR المسمى VCC بالدبوس 5 فولت على Raspberry Pi. يوفر هذا الطاقة لمستشعر PIR. قم بتوصيل الجهاز المسمى GND بالدبوس الأرضي على Pi (المسمى أيضًا GND). هذا يكمل الدائرة. قم بتوصيل الدائرة المسمى OUT بأي دبوس GPIO مرقم على Pi. في هذا المثال ، اخترنا GPIO 4. سينتج دبوس OUT جهدًا عندما يكتشف المستشعر الحركة. سيتم بعد ذلك استقبال الجهد بواسطة Raspberry Pi.
الخطوة 3: إعداد Webhooks:
أنشئ تطبيقًا صغيرًا جديدًا ، ثم حدد Webhooks. ثم افعل الشيء نفسه مع الإخطارات.
الخطوة 4: الكود:
ل python 3 أو thonny
#! / usr / bin / python # Importsimport RPi. GPIO كطلبات GPIOimport timeimport # قم بتعيين اتفاقية تسمية GPIO # تعيين دبوس GPIO كمدخل GPIO.setup (pinpir ، GPIO. IN) # متغيرات للاحتفاظ بالحالة الحالية والأخيرة = 0 الحالة السابقة = 0 حاول: طباعة ("في انتظار تسوية PIR …") # Loop حتى يصبح إخراج PIR 0 بينما GPIO.input (pinpir) == 1: currentstate = 0 print ("Ready") # Loop حتى إنهاء المستخدمين باستخدام CTRL-C بينما صحيح: # قراءة PIR state currentstate = GPIO.input (pinpir) # إذا تم تشغيل PIR إذا كانت الحالة الحالية == 1 والحالة السابقة == 0: طباعة ("تم اكتشاف الحركة!") # عنوان URL الخاص بك IFTTT مع اسم الحدث والمفتاح ومعلمات json (القيم) r = request.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 ("Waiting 120 seconds") time.sleep (120) # إذا عاد PIR إلى حالة الاستعداد elif currentstate == 0 والحالة السابقة == 1: print ("Ready") السابقة = 0 # انتظر 10 مللي ثانية مرة.sleep (0.01) باستثناء KeyboardInterrupt: print ("Quit") # إعادة تعيين إعدادات GPIO GPIO.cleanup ()
يتمتع!