كيفية بناء عداد الناس مع توت العليق و Ubidots: 6 خطوات

من زينو نهار اليوم ØµØ Ø¹ÙŠØ¯ÙƒÙ… انشر الفيديو Øتى يراه كل الØ

من زينو نهار اليوم ØµØ Ø¹ÙŠØ¯ÙƒÙ… انشر الفيديو Øتى يراه كل الØ

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

Anonim

في هذا المشروع البسيط ، سوف نستخدم مستشعر الحركة لاكتشاف ما إذا كان هناك كائن يمر أمام Raspberry Pi. بعد ذلك سنحسب عدد المرات التي يحدث ذلك ، ونرسل هذه القيمة إلى Ubidots.

عادةً ما تكون عدادات الأشخاص أجهزة باهظة الثمن تستخدم في صناعة البيع بالتجزئة لفهم كيفية تصرف المتسوقين. بفضل Raspberry Pi و Ubidots ، نحن قادرون على بناء عداد أشخاص فعالين في غضون ساعات قليلة وبقليل من الدولارات!

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

اللوازم:

الخطوة 1: الحصول على المواد المناسبة

لإكمال هذا المشروع ، ستحتاج:

  1. توت العليق بي نموذج ب
  2. جهاز استشعار شرطة التدخل السريع من قبل المنظر
  3. وتوت ال بي متوافق USB واي فاي دونغل
  4. حزمة بطارية USB لتشغيل Raspberry Pi (هذا اختياري في حالة رغبتك في ترك Pi لاسلكية بالكامل)
  5. ثلاثة أسلاك الطائر الإناث

الخطوة 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.