في هذا المشروع البسيط ، سوف نستخدم مستشعر الحركة لاكتشاف ما إذا كان هناك كائن يمر أمام Raspberry Pi. بعد ذلك سنحسب عدد المرات التي يحدث ذلك ، ونرسل هذه القيمة إلى Ubidots.
عادةً ما تكون عدادات الأشخاص أجهزة باهظة الثمن تستخدم في صناعة البيع بالتجزئة لفهم كيفية تصرف المتسوقين. بفضل Raspberry Pi و Ubidots ، نحن قادرون على بناء عداد أشخاص فعالين في غضون ساعات قليلة وبقليل من الدولارات!
بمجرد إرسال الأشخاص الذين يقومون بحساب البيانات إلى Ubidots ، يمكننا إنشاء رسوم بيانية لطيفة للتحليل ، وكذلك تنبيهات الرسائل القصيرة / البريد الإلكتروني.
اللوازم:
الخطوة 1: الحصول على المواد المناسبة
لإكمال هذا المشروع ، ستحتاج:
- توت العليق بي نموذج ب
- جهاز استشعار شرطة التدخل السريع من قبل المنظر
- وتوت ال بي متوافق USB واي فاي دونغل
- حزمة بطارية USB لتشغيل Raspberry Pi (هذا اختياري في حالة رغبتك في ترك Pi لاسلكية بالكامل)
- ثلاثة أسلاك الطائر الإناث
الخطوة 2: توصيل الأشياء
جهاز استشعار الحركة PIR سهل الاستخدام لأنه يحتوي على ثلاثة دبابيس فقط:
- V +
- GND
- دبوس إشارة الذي يخرج "1" عندما يكون هناك حركة و "0" عندما لا يكون هناك.
لا حاجة لحام أي شيء ، ولا لكتابة معقدة I2C أو وظائف مسلسل للكشف عن هذه الإشارة ؛ فقط قم بتوصيل الكابلات مباشرة إلى دبابيس GPIO من Raspberry Pi وستعمل!
الخطوة 3: غلاف
نظرًا لأن مستشعر PIR حساس جدًا للحركة ، فقد استخدمت مفتاح العبور الموجود خلفه لضبط أدنى حساسية ممكنة. أيضا ، أخذت حالة قديمة من زوج من النظارات الشمسية وصنعت فجوة فيه ، ثم وضعت RPi وجهاز استشعار شرطة التدخل السريع بداخله. بهذه الطريقة ، يركز مستشعر الحركة بدرجة عالية في نقطة واحدة ، بدلاً من أن يكون متعدد الاتجاهات.
الخطوة 4: ترميز RPi الخاص بك
في هذه المرحلة ، سنفترض أنك قمت بإجراء إعداد أساسي لبرنامج Raspberry Pi الخاص بك وأنت تنظر إلى سطر أوامر Linux الخاص به. إذا لم يكن كذلك ، فإننا نوصي بالبحث في هذا الدليل أولاً. يمكنك أيضًا التحقق من هذا المنشور حول استخدام Wicd لإعداد WiFi الخاص بـ Raspberry Pi.
لنبدأ بالتأكد من أن لدينا جميع المكتبات المطلوبة:
sudo $ الحصول على التحديث
ترقية $ sudo apt-get $ sudo apt-get install تثبيت python-setuptools $ sudo easy_install pip $ pip ubidots
قم بإنشاء ملف جديد يسمى "peoplecounter.py":
$ sudo nano peoplecounter.py
واكتب فيه الرمز أدناه. تأكد من استبدال قيم مفتاح API والمعرف المتغير بالقيم الموجودة في حساب Ubidots الشخصي الخاص بك. (ملاحظة: الرمز ليس أنيقًا جدًا ، ولكن مهلا ، لست مطورًا لـ Python ، بل مجرد جهاز :)
يتكون البرنامج النصي من حلقة تتحقق من حالة الدبوس رقم 7 (مستشعر الحركة). إذا قرأت "1" ، بمعنى أن هناك حركة ، فستزيد من المتغير "peoplecount" وتنتظر 1.5 ثانية حتى يعود مستشعر الحركة إلى طبيعته. يتم ذلك 10 مرات ، مع التأكد من وجود ثانية واحدة على الأقل بين كل دورة ، ثم يرسل إجمالي "الحركات" إلى Ubidots. إذا كنت بحاجة إلى معايرة عداد الأشخاص ، فيجب عليك اللعب بخطوط "time.sleep" مع القيم الأخرى.
من ubidots استيراد ApiClient
استيراد RPi.GPIO كـ GPIO
وقت الاستيراد
GPIO.setmode (GPIO.BCM)
GPIO.setup (7 ، GPIO.IN)
محاولة:
api = ApiClient ("a21ebaf64e14d195c0044fcc3b9f6dab9d653af3")
أشخاص = api.get_variable ("5238cec3f91b282c7357a140")
باستثناء: طباعة "تعذر الاتصال بواجهة برمجة التطبيقات ، تحقق من اتصالك بالإنترنت"
عداد = 0
الناس = 0
في حين (1):
التواجد = GPIO.input (7)
إذا (وجود):
الناس + 1 =
التواجد = 0
time.sleep (1.5)
time.sleep (1)
عداد + = 1
إذا (العداد == 10):
الناس الطباعة
people.save_value ({ 'قيمة': peoplecount})
عداد = 0
الناس = 0
الخطوة 5: عرض البيانات الخاصة بك
أخيرًا ، انتقل إلى لوحة معلومات Ubidots وأضف عنصر واجهة مستخدم من النوع "بيان". سيعرض هذا العدد الإجمالي للأشخاص الذين تم اكتشافهم خلال إطار زمني تحدده
الخطوة 6: اختتام
يوفر هذا المشروع تلميحًا لعدد الأشخاص الذين يمرون بنقطة معينة. لا يوفر العدد الدقيق للأشخاص ، نظرًا لقيود مستشعر الحركة ، ولكن قد يكون هذا في بعض التطبيقات يكفي.
يمكن إرسال البيانات التي تم جمعها بسهولة إلى Ubidots Cloud ، حيث يمكن تفسيرها عن طريق إنشاء تنبيهات أو لوحات معلومات حية أو حتى مشاركة هذه البيانات في الوسائط الاجتماعية ، كرمز مدمج أو فقط في ارتباط عام. يمكنك أيضًا قراءة هذه البيانات من تطبيق آخر باستخدام Ubidots API.