جدول المحتويات:

لعبة Pumpkin Pi Trick-or-Treat Tracker: 5 خطوات
لعبة Pumpkin Pi Trick-or-Treat Tracker: 5 خطوات

فيديو: لعبة Pumpkin Pi Trick-or-Treat Tracker: 5 خطوات

فيديو: لعبة Pumpkin Pi Trick-or-Treat Tracker: 5 خطوات
فيديو: LifeAfter -🎃HALLOWEEN EVENT FULL GUIDE - How to do PUMPKIN THIEF faster & get FREE PUMPKIN furniture 2024, يوليو
Anonim
اليقطين Pi Trick-or-Treat Tracker
اليقطين Pi Trick-or-Treat Tracker

تابع المزيد بالمؤلف:

كيفية بناء جهاز مراقبة درجة حرارة Raspberry Pi
كيفية بناء جهاز مراقبة درجة حرارة Raspberry Pi
كيفية بناء جهاز مراقبة درجة حرارة Raspberry Pi
كيفية بناء جهاز مراقبة درجة حرارة Raspberry Pi
دفق البيانات من جداول بيانات Google إلى لوحة التحكم
دفق البيانات من جداول بيانات Google إلى لوحة التحكم
دفق البيانات من جداول بيانات Google إلى لوحة التحكم
دفق البيانات من جداول بيانات Google إلى لوحة التحكم
شبكة مجسات درجة الحرارة
شبكة مجسات درجة الحرارة
شبكة مجسات درجة الحرارة
شبكة مجسات درجة الحرارة

هل تبحث عن مشروع هالوين سريع يكون مفيدًا بأكثر من طريقة؟ هل تريد استخدام Pi Zero WH بشكل جيد؟ هل تشعر برغبة في استخدام البيانات لتحديد كمية الحلوى التي ستحتاجها للعام المقبل؟

احصل على استعداد لبناء Pumpkin Pi Trick-or-Treat Tracker! يضاعف هذا Pi-in-a-Pumpkin كزخرفة ومتتبع الأشخاص ، ويغير لونه ويتدفق عند اكتشاف الحركة. بدءًا من نقطة الصفر المطلقة ، لا ينبغي أن يأخذك هذا المشروع أكثر من فترة ما بعد الظهيرة - في الوقت المناسب تمامًا لعيد الهالوين!

اللوازم

  • Pi Zero WH مع بطاقة SD
  • مستشعر الحركة PIR
  • RGB LED
  • مقاومات 220 أوم
  • (3) خطوط التعادل (F / F ، M / F ، M / M)
  • بطارية محمولة
  • اليقطين المزيف

الخطوة 1: تجميع الأجهزة

تجميع الأجهزة
تجميع الأجهزة
تجميع الأجهزة
تجميع الأجهزة
تجميع الأجهزة
تجميع الأجهزة

بمجرد تشغيل Pi الخاص بك ، نحتاج إلى توصيل مستشعر الحركة ومصابيح LED. تأكد من عدم توصيل Pi بالطاقة في هذه المرحلة.

يتطلب مستشعر الحركة الخاص بنا توصيله بقدرة 3.3 فولت والأرضي ودبوس البيانات. لقد قمت بتوصيل دبوس مستشعر 3.3 فولت بالدبوس 1 من Pi ، ودبوس مستشعر الأرض إلى دبوس 6 من Pi ، ودبوس مستشعر البيانات إلى دبوس 16 من Pi. تُظهر الصورة الأولى الاتصال الكامل لـ Pi ومستشعر الحركة.

تعد مصابيح LED أكثر تعقيدًا قليلاً من مستشعر الحركة لأنها تتطلب مقاومًا لتعمل بشكل صحيح دون إتلافها أو إتلاف Pi. لقد استخدمت ثلاثة مقاومات 220 أوم ولكن مقاومات 220 و 330 أوم تستخدم عادة مع مصابيح LED.

لتوصيل كل شيء ، يمكنك إما:

  • قم بتوصيل أرجل LED بالمقاومات ثم قم بتشغيل الأسلاك في Pi
  • استخدم لوحة توصيل وخطوط ربط لربط كل شيء
  • استخدم خطوط الربط والشريط الكهربائي لتوصيل كل شيء (كما فعلت أنا).

سنقوم بتوصيل مؤشر LED الخاص بنا بالدبابيس 11 و 13 و 15. وهذا أصعب قليلاً من مستشعر الحركة ، لأن الأرجل الموجودة على مؤشر LED تتوافق مع لون معين! الساق الطويلة هي GND. وعلى مؤشر LED الخاص بي على الأقل ، كانت الأرجل حمراء ، GND ، زرقاء ، خضراء. لقد قمت بتوصيل Blue بـ Pi pin 11 ، و Green بـ Pi pin 13 ، و Red بـ Pi pin 15. تُظهر الصورة الثانية توصيلات الدائرة النهائية.

الخطوة 2: الحالة الأولية

الحالة الأولية
الحالة الأولية
الحالة الأولية
الحالة الأولية

بالتأكيد يمكننا أن نرى متى يتم اكتشاف الحركة باستخدام مؤشر LED ، ولكن كيف سنتعقب عدد الخدع أو المعالجين الذين أسقطناهم لسرقة الحلوى؟

سنقوم بالبث إلى لوحة القيادة في كل مرة تبدأ فيها الحركة ويتوقف اكتشافها. نظرًا لأنه يمكن الوصول إلى لوحة القيادة هذه من أي مكان به اتصال بالإنترنت ، يمكننا مراقبة ما إذا كان شخص ما يقترب من الباب الأمامي / وعاء الحلوى أم لا.

الخطوة 1: التسجيل للحصول على حساب الولاية الأولي ، انتقل إلى https://iot.app.initialstate.com وأنشئ حسابًا جديدًا.

الخطوة 2: قم بتثبيت ISStreamer

قم بتثبيت وحدة بيثون الحالة الأولية على Raspberry Pi الخاص بك. في موجه الأوامر (لا تنس إدخال SSH في Pi أولاً) ، قم بتشغيل الأمر التالي:

$ cd / الرئيسية / pi /

$ / curl -sSL https://get.initialstate.com/python -o - | سودو باش

الخطوة 3: اصنع بعض Automagic

بعد الخطوة 2 ، سترى شيئًا مشابهًا للإخراج التالي على الشاشة:

pi @ raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o - | سودو باش

كلمة المرور: بداية ISStreamer Python سهلة التثبيت! قد يستغرق هذا بضع دقائق للتثبيت ، احصل على بعض القهوة:) ولكن لا تنسَ العودة ، سأطرح أسئلة لاحقًا! Found easy_install: setuptools 1.1.6 Found pip: pip 1.5.6 from /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) إصدار النقطة الرئيسي: 1 pip إصدار ثانوي: تم العثور على 5 ISStreamer ، يتم تحديثه … المطلب محدث بالفعل: ISStreamer في /Library/Python/2.7/site-packages تنظيف … هل تريد الحصول تلقائيًا على مثال على البرنامج النصي؟ [y / N] أين تريد حفظ المثال؟ [افتراضي:./is_example.py] يرجى تحديد تطبيق الحالة الأولية الذي تستخدمه: 1. app.initialstate.com 2. [NEW!] iot.app.initialstate.com أدخل الخيار 1 أو 2: أدخل iot.app اسم مستخدم.initialstate.com: أدخل كلمة مرور iot.app.initialstate.com:

عند مطالبتك بالحصول على مثال على برنامج نصي تلقائيًا ، اكتب y. سيؤدي ذلك إلى إنشاء برنامج نصي للاختبار يمكننا تشغيله للتأكد من أنه يمكننا دفق البيانات إلى الحالة الأولية. سيطلب الموجه التالي المكان الذي تريد حفظ ملف المثال فيه. يمكنك إما كتابة مسار محلي مخصص أو الضغط على إدخال لقبول الموقع الافتراضي. أخيرًا ، سيتم سؤالك عن تطبيق Initial State الذي تستخدمه. إذا كنت قد أنشأت حسابًا مؤخرًا ، فحدد الخيار 2 ، وأدخل اسم المستخدم وكلمة المرور. بعد ذلك سيكتمل التثبيت.

الخطوة 4: مفاتيح الوصول

دعنا نلقي نظرة على مثال البرنامج النصي الذي تم إنشاؤه. $ nano is_example.py في السطر 15 ، سترى سطرًا يبدأ بـ Streamer = Streamer (bucket_…. ينشئ هذا السطر مجموعة بيانات جديدة باسم "Python Stream Example" ويرتبط بحسابك. يحدث هذا الارتباط بسبب access_key =”…” المعلمة في نفس السطر. هذه السلسلة الطويلة من الأحرف والأرقام هي مفتاح الوصول إلى حساب الولاية الأولية. إذا انتقلت إلى حساب Initial State في متصفح الويب ، فانقر فوق اسم المستخدم الخاص بك في الجزء العلوي الأيمن ، ثم انتقل إلى "إعداداتي" ، ستجد مفتاح الوصول نفسه في أسفل الصفحة ضمن "مفاتيح الوصول المتدفقة".

في كل مرة تقوم فيها بإنشاء دفق بيانات ، سيوجه مفتاح الوصول هذا تدفق البيانات إلى حسابك (لذلك لا تشارك مفتاحك مع أي شخص).

الخطوة 5: قم بتشغيل المثال

قم بتشغيل البرنامج النصي التجريبي للتأكد من أنه يمكننا إنشاء دفق بيانات إلى حساب Initial State الخاص بك. قم بتشغيل ما يلي:

$ python is_example.py

الخطوة السادسة: الربح

ارجع إلى حساب Initial State الخاص بك في متصفح الويب الخاص بك. يجب أن تظهر مجموعة بيانات جديدة تسمى "Python Stream Example" على اليسار في رف السجل (قد تضطر إلى تحديث الصفحة). انقر فوق هذا المستودع ثم انقر فوق رمز Waves لعرض بيانات الاختبار.

الخطوة 3: نص بايثون

قم بإنشاء برنامج نصي وافتح محرر النصوص باستخدام الأمر التالي:

نانو vistors.py

انسخ والصق الرمز من هنا إلى محرر النصوص الخاص بك.

قبل أن نحاول تشغيل أي شيء ، نحتاج إلى إجراء بعض التعديلات ومراجعة ما يحدث في البرنامج النصي الخاص بنا.

استيراد RPi. GPIO كـ GPIO

من وقت استيراد السكون من ISStreamer. Streamer import Streamer # أخبر Pi أننا سنستخدم نظام الترقيم GPIO.setmode (GPIO. BCM) # الدبابيس التي يتصل بها D1 و LED بـ PIN = 23 BLUE = 17 GREEN = 27 RED = 22 # حدد دبوس مستشعر الحركة الخاص بنا كمدخل GPIO.setup (PIN ، GPIO. IN) # حدد دبابيس LED الخاصة بنا كإخراج GPIO.setup (RED ، GPIO. OUT) GPIO.output (أحمر ، 0) GPIO.setup (أخضر) GPIO. OUT) GPIO.output (أخضر ، 0) GPIO.setup (أزرق ، GPIO. OUT) GPIO.output (أزرق ، 0)

الأسطر 1-21 للتهيئة. أولاً نقوم باستيراد واجهة GPIO الخاصة بـ Pi وطريقة لإسكات البرنامج النصي الخاص بنا. ثم نقوم باستيراد غاسل الحالة الأولية الذي قمنا بتثبيته في الصفحة السابقة.

يحدد GPIO.setmode نظام الترقيم الذي نستخدمه للدبابيس. بدلاً من الموقع الفعلي ، نستخدم نظام ترقيم باي. كما في الرسم التخطيطي السابق ، كانت المسامير التي اخترناها هي 23 و 17 و 27 و 22. ثم قمنا بإعداد دبوس الحركة كمدخل ودبابيس LED كإخراج.

# اسم حاوية الحالة الأولية (معروض)

BUCKET_NAME = ": jack_o_lantern: Trick or Treat Tracker" # مفتاح حاوية الحالة الأولية (مخفي) BUCKET_KEY = "trickortreat" # مفتاح الوصول للحالة الأولية ACCESS_KEY = "Your_Access_Key" # متغيرات تضمن عدم دفقنا بوجود أو عدم وجود الحركة مرتين متتاليتين # هذا يحفظ على الأحداث المرسلة وقوة المعالجة بالفعلRecordedMotion = False alreadyRecordedNoMotion = False counter = 0 # قم بتهيئة دفق الحالة الأولية = Streamer (bucket_name = BUCKET_NAME، bucket_key = BUCKET_KEY، access_key = ACCESS_KEY) # تشغيل وتعيين مؤشر LED إلى أصفر خرج GPIO (أحمر ، 1) خرج GPIO (أخضر ، 1)

تعتبر الأسطر 23-41 مهمة لأننا نقوم بتهيئة غاسل الحالة الأولية وتعيين مؤشر LED إلى اللون الأصفر. ضع مفتاح الوصول الأولي للحالة في السطر 28.

# حلقة إلى أجل غير مسمى

while True: # إذا كان مستشعر الحركة يسحب عالياً (يكتشف الحركة): إذا كان GPIO.input (PIN) == 1: اطبع "تم اكتشاف الحركة" # إذا لم نقم بالبث حتى الآن: إذا لم يكن قد تم بالفعل تسجيل الحركة: عداد = عداد + 1 # اضبط مؤشر LED على GPIO.output باللون الأحمر (أحمر ، 1) GPIO.output (أخضر ، 0) # Stream to Initial State streamer.log (": ghost: or: chocolate_bar:؟"، ": chocolate_bar: Time For Treats!") streamer.log (": candy: Hungry Humans؟: candy:"، counter) streamer.flush () alreadyRecordedMotion = True alreadyRecordedNoMotion = False else: # إيقاف البرنامج النصي مؤقتًا لمدة ثانية واحدة من السكون (1) وإلا: طباعة "لم يتم اكتشاف حركة" # إذا لم نتدفق بعد: إذا لم يكن قد تم تسجيله بالفعل: لا توجد حركة: # اضبط مؤشر LED على أصفر GPIO.output (RED ، 1) GPIO.output (GREEN ، 1) # Stream to Initial State streamer.log (": ghost: or: chocolate_bar:؟ "،": no_pedestrians: لا أحد في الجوار ") streamer.flush () alreadyRecordedNoMotion = True alreadyRecordedMotion = False else: # إيقاف البرنامج النصي مؤقتًا لمدة ثانية واحدة من السكون (1)

الأسطر 43-77 هي لحم الكود. إذا تم الكشف عن الحركة ، فسيقوم البرنامج النصي بالتحقق لمعرفة ما إذا كان "Time For Treats!" تم دفقه بالفعل. إذا لم يحدث ذلك ، فسيتم إرساله إلى الحالة الأولية وتعيين مؤشر LED على اللون الأحمر ؛ إذا كان الأمر كذلك ، فإن النص ينتظر ثانية واحدة ثم يقرأ من مستشعر الحركة مرة أخرى. الشيء نفسه ينطبق إذا لم يتم الكشف عن أي حركة.

حان الوقت لاختبار الكود! تأكد من حفظ الملف الذي تم تحريره مع إضافة مفتاح الوصول الخاص بك في السطر 28 ، ثم أدخل في الجهاز:

زوار بيثون

يجب أن ترى مؤشر LED يضيء ويبدأ "لم يتم الكشف عن الحركة" في الطباعة إلى سطر الأوامر. حاول التلويح بيدك على مستشعر الحركة - يجب أن ترى الآن ضوءًا أحمر ويبدأ "اكتشاف الحركة" في الطباعة!

الآن للتحقق من أن قراءاتنا يتم بثها إلى الحالة الأولية.

الخطوة 4: لوحة التحكم بالخدعة أو المعالجة

لوحة القيادة خدعة أو علاج
لوحة القيادة خدعة أو علاج

توجه إلى Initial State وتحقق من لوحة القيادة الخاصة بك! يجب أن ترى دلوًا يسمى "Trick or Treat Tracker". لوِّح بيدك بالقرب من مستشعر الحركة وشاهده وهو يتم تحديثه!

تتكون لوحة المعلومات الخاصة بي من جزئين ملخص يعرضان القيمة الأخيرة ومدرج تكراري لعدد الأحداث حتى أتمكن من رؤية الأوقات التي تم فيها تشغيل المستشعر.

وهنا بعض الأشياء في الاعتبار:

  • ربما تريد قسمة عدد "الجياع البشر" على 2 لحساب حقيقة أن نفس الشخص سيمر أمام مستشعر الحركة مرتين - في طريقهم إلى باب منزلك وفي طريق عودتهم. يمكنك القيام بذلك باستخدام تعبيرات الوقت الفعلي باستخدام المعادلة "= math.round (([Hungry Humans؟] / 2)، 0)".
  • يمكنك اختبار مدى حساسية مستشعر الحركة لديك ووضعه على الرصيف وفقًا لذلك. أقترح إبقائها بعيدة بما يكفي عن الباب بحيث لا تنطلق عندما يقف شخص ما عند الباب.
  • يمكنك أيضًا إعداد تنبيهات نصية لإخبارك بأن شخصًا ما يقترب.
  • اختر صورة خلفية لإضفاء طابع مخيف على لوحة القيادة!

موصى به: