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

مقياس Raspberry Pi الذكي: 10 خطوات (بالصور)
مقياس Raspberry Pi الذكي: 10 خطوات (بالصور)

فيديو: مقياس Raspberry Pi الذكي: 10 خطوات (بالصور)

فيديو: مقياس Raspberry Pi الذكي: 10 خطوات (بالصور)
فيديو: راسبيري باي - التعريف بالجهاز و فتح الصندوق | RaspberryPi 2024, يوليو
Anonim
Image
Image

هل سئمت من التحديق في ميزان الحمام الممل ، القديم ، السيئ كل صباح؟ الشخص الذي غالبًا ما تقوله "أنا أكرهك" في كل مرة تخطو فيها. لماذا لم يصنع أي شخص مقياسًا ممتعًا أو محفزًا للاستخدام؟ حان الوقت لإنشاء مقياس ليس فقط ذكيًا ولكنه يتمتع بشخصية أكثر قليلاً لإضفاء السطوع على يومك. سنقوم ببناء ميزان حمام خاص بنا قابل للاختراق وتتبع الوزن ورسائل نصية يأتي مع حس دعابة مدمج.

هذا مشروع ممتع وسهل يجمع بين لوحة توازن Wii و Raspberry Pi ومنصة تحليلات البيانات عبر الإنترنت لإنشاء مقياس متصل بالويب يتم التحكم فيه بواسطة برنامج نصي من Python يمكنك اختراقه.

مستوى المشروع: مبتدئ الوقت التقريبي للإكمال: 20 دقيقة عامل المرح: لا يقاس

في هذا البرنامج التعليمي خطوة بخطوة ، سوف:

  • قم بتوصيل لوحة توازن Wii بـ Raspberry Pi من خلال البلوتوث ، قم بتشغيل برنامج نصي Python الذي يقيس وزنك عندما تخطو على لوحة التوازن
  • استخدم Raspberry Pi لنقل وزنك إلى خدمة سحابية (الحالة الأولية)
  • قم بإعداد إشعار SMS في كل مرة تزن فيها نفسك
  • بناء لوحة تحكم لتتبع الوزن يمكنك الوصول إليها في متصفح الويب الخاص بك

الخطوة 1: المعدات

مقياس وى للتوازن
مقياس وى للتوازن

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

  • Raspberry Pi 3 مع بطاقة SD ومزود طاقة (https://init.st/psuufmj)
  • مجلس توازن Wii (https://init.st/qg4ynjl)
  • حزمة بطارية Wii Fit القابلة لإعادة الشحن (https://init.st/iyypz2i)
  • 3/8 "وسادات لباد (https://init.st/8gywmjj)
  • قلم رصاص (لا أعطيك رابطًا إلى مكان شراء قلم رصاص … يجب أن تمتلك واحدًا من هؤلاء)

ملاحظة: إذا كان لديك Raspberry Pi 1 أو 2 ، فستحتاج إلى محول بلوتوث (https://init.st/7y3bcoe)

الخطوة 2: مقياس Wii Balance Board

لماذا لوحة توازن Wii؟ اتضح أنه مقياس متين ولطيف حقًا يحتوي على اتصال بلوتوث. سيسمح لنا ذلك بتوصيله بجهاز كمبيوتر أحادي اللوحة (Raspberry Pi) لقراءة وزنك في نص Python وإرسال هذه القياسات إلى خدمة بيانات عبر الإنترنت للقيام بأشياء رائعة. بالإضافة إلى ذلك ، هناك فرصة جيدة أن يكون لديك أنت أو أي شخص تعرفه بالفعل شخصًا يقوم ببساطة بجمع الغبار.

سنحتاج إلى إجراء بعض التعديلات البسيطة على لوحة Wii Balance لجعل هذا المشروع عمليًا ومريحًا حقًا.

الخطوة الثالثة: إعداد البلوتوث

يأتي Raspberry Pi 3 مزودًا ببلوتوث مدمج ، كل ما نحتاجه للتواصل مع لوحة توازن Wii. إذا كان لديك Raspberry Pi 1 أو 2 ، فسيتعين علينا استخدام أحد منافذ USB لتوصيل محول.

قم بتشغيل Pi الخاص بك (أفترض أنك قمت بالفعل بتثبيت Raspbian وتم تشغيله) وانتقل إلى نافذة Raspberry Pi الطرفية. يمكنك رؤية عنوان دونجل البلوتوث باستخدام الأمر "hcitool dev":

الأجهزة: hci0 00: 1A: 7D: DA: 71: 13

قم بتثبيت وحدات البلوتوث التي سنستخدمها في نصوص بايثون:

sudo apt-get install python-bluetooth

بعد اكتمال التثبيت ، نحن جاهزون للاتصال والتواصل مع لوحة توازن Wii. لن نقوم بإقران مجلسنا بشكل دائم مع Pi كما نفعل مع معظم أجهزة البلوتوث الخاصة بنا. لم يكن المقصود من Wii Balance Board أن يقترن بأي شيء آخر غير Wii ، وأثبت الاقتران الدائم أنه يمثل تحديًا مربكًا تمامًا. سيحدث الاقتران في كل مرة نقوم فيها بتشغيل نص Python الخاص بنا.

الخطوة 4: قراءة المقياس

حان الوقت لتوصيل Wii Balance Board الخاص بنا بـ Raspberry Pi. سنفعل ذلك عن طريق تعديل نسخة من نص Stavros Korokithakis 'Gr8W8Upd8M8.py (https://github.com/skorokithakis/gr8w8upd8m8). يوجد هنا نص Python الذي سنستخدمه لهذه الخطوة. يمكنك نسخ محتويات هذا الملف إلى ملف تقوم بإنشائه على Raspberry Pi الخاص بك أو يمكنك استنساخ جميع ملفات python التي سنستخدمها لهذا المشروع بأكمله. لنفعل هذا الأخير. اكتب الأوامر التالية في محطة طرفية على Raspberry Pi الخاص بك:

$ cd ~ $ git clone $ git clone https: github.com/initialstate/smart-scale.git الاستنساخ في "مقياس ذكي" … بعيد: عد الكائنات: 14 ، تم. جهاز التحكم عن بعد: ضغط الكائنات: 100٪ (12/12) ، تم. جهاز التحكم عن بعد: إجمالي 14 (دلتا 1) ، 8 مُعاد استخدامها (دلتا 0) ، إعادة استخدام الحزم 0 تفريغ كائنات: 100٪ (14/14) ، تم. التحقق من الاتصال … تم.

الاستنساخ في "مقياس ذكي" … بعيد: عد الكائنات: 14 ، تم. جهاز التحكم عن بعد: ضغط الكائنات: 100٪ (12/12) ، تم. جهاز التحكم عن بعد: إجمالي 14 (دلتا 1) ، 8 مُعاد استخدامها (دلتا 0) ، إعادة استخدام الحزم 0 تفريغ كائنات: 100٪ (14/14) ، تم. التحقق من الاتصال … تم.

يجب أن تشاهد ملفين من ملفات python في دليل المقياس الذكي الجديد - smartscale.py و wiiboard_test.py.

مقياس ذكي $ cd $ lsREADME.md smartscale.py wiiboard_test.py

قم بتشغيل البرنامج النصي wiiboard_test.py لاختبار الاتصال وأخذ قراءات الوزن من لوحة توازن Wii:

$ sudo python wiiboard_test.py

سترى الرد التالي:

جارٍ اكتشاف اللوحة … اضغط على زر المزامنة الأحمر على اللوحة الآن

قم بإزالة غطاء البطارية الموجود أسفل اللوحة لتحديد موقع زر المزامنة الأحمر. تأكد من الضغط على الزر في غضون بضع ثوانٍ من تشغيل البرنامج النصي وإلا ستنتهي المهلة. بمجرد النجاح ، سترى شيئًا مشابهًا لما يلي:

تم العثور على Wiiboard في العنوان 00: 23: CC: 2E: E1: 44 محاولة الاتصال … متصل بـ Wiiboard على العنوان 00: 23: CC: 2E: E1: 44 لوح متصل بالكتابة للبيانات المستلمة 84.9185297 رطل 84.8826412 رطل 84.9275927 رطل

يأخذ البرنامج النصي wiiboard_test.py عدد قياسات الوزن المحددة في السطر 10 ويخرج المتوسط:

# --------- إعدادات المستخدم --------- WEIGHT_SAMPLES = 500 # ------------------------- --------

يمكنك اللعب بهذا الرقم عن طريق تغيير القيمة وإعادة تشغيل البرنامج النصي لمعرفة التباين في الوزن المقاس والوقت المطلوب لكل قياس. قم بوزن نفسك ، ووزن الكلب ، ووزن أي شيء ، واكتشف ما إذا كانت القياسات منطقية. لإيقاف البرنامج النصي ، اضغط على CTRL + C.

لقد نجحت الآن في تحويل لوحة Wii Balance Board إلى ميزان Raspberry Pi المتصل. الآن ، لنجعله مقياسًا رائعًا.

الخطوة 5: تعديلات الأجهزة

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

افترضت Nintendo أنك ستعمل دائمًا على تزويد لوحة Wii Balance بأربع بطاريات AA ولا تتضمن أي محول طاقة تيار متردد. سيكون امتلاك طاقة البطارية فقط أمرًا غير مريح لأننا لا نستطيع إقران لوحة Wii الخاصة بنا بشكل دائم مع Pi من خلال البلوتوث. نحتاج إلى مزامنته ، ثم السماح له بالبقاء متزامنًا دون استنزاف البطاريات حتى نتمكن ببساطة من الوقوف على الميزان والوزن. لحسن الحظ ، هناك العديد من محولات الجهات الخارجية المصممة من أجل Wii Balance Board والتي يمكننا استخدامها لتوفير طاقة ثابتة من مقبس الحائط. استبدل البطاريات بحزمة بطارية وقم بتوصيل محول التيار المتردد بمأخذ الحائط.

يؤدي الاضطرار إلى إقران Wii Balance Board و Raspberry Pi في كل مرة نقوم فيها بتشغيل نص Python الخاص بنا بإزعاج آخر بسبب موقع زر المزامنة. يوجد زر المزامنة في الجزء السفلي من لوحة Wii ، مما يعني أنه سيتعين علينا قلبه في كل مرة نحتاج فيها إلى المزامنة. يمكننا إصلاح ذلك عن طريق عمل رافعة صغيرة باستخدام قلم رصاص وثلاث وسادات لباد مقاس 3/8 بوصة كما هو موضح أعلاه. تعرض حزمة البطارية القابلة لإعادة الشحن زر المزامنة إلى السطح السفلي للوحة. ضع شريطًا رصاصيًا (أو شيء مشابه) يمتد من زر المزامنة إلى الجزء الأمامي الخارجي للوحة. ضع ثلاث وسادات لباد مقاس 3/8 بوصة (أو شيء مشابه) في وسط القلم لإنشاء محور ثابت. احرص على عدم كشف الكثير من القلم الرصاص من السبورة لأنك لا تريد أن يقوم شخص ما بطرده عن طريق الخطأ. اقلب اللوحة ويمكنك الضغط على زر المزامنة بمجرد الضغط على الرافعة. قليلا من الاختراق لكنها فعالة.

اعتمادًا على كيفية تخزين لوحة Wii الخاصة بك ، قد ترغب في إزالة وسادات القبضة المطاطية من أقدام اللوح (الوسادات هي ببساطة ملصقات يمكنك نزعها). يمكن وضع ضمادات لباد مقاس 3/8 بوصة على أرجل اللوحة لسهولة الانزلاق.

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

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

نريد نقل وزننا / بياناتنا إلى خدمة سحابية وجعل هذه الخدمة تحول بياناتنا إلى لوحة تحكم لطيفة يمكننا الوصول إليها من جهاز الكمبيوتر المحمول أو الجهاز المحمول الخاص بنا. بياناتنا تحتاج إلى وجهة. سوف نستخدم الحالة الأولية كوجهة.

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

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

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

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

pi @ raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o - | sudo bashPassword: بداية ISStreamer Python سهل التثبيت! قد يستغرق هذا بضع دقائق للتثبيت ، احصل على بعض القهوة:) ولكن لا تنسَ العودة ، سأطرح أسئلة لاحقًا!

تم العثور على easy_install: setuptools 1.1.6

تم العثور على نقطة: نقطة 1.5.6 من /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) الإصدار الرئيسي للنقطة: إصدار ثانوي بنقطة واحدة: تم العثور على 5 ISStreamer ، التحديث … المتطلبات محدث بالفعل: ISStreamer في /Library/Python/2.7/site-packages تنظيف … هل تريد الحصول تلقائيًا على مثال على البرنامج النصي؟ [س / لا]

(قد يكون الإخراج مختلفًا ويستغرق وقتًا أطول إذا لم تقم بتثبيت وحدة دفق Python الأولية من قبل)

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

أين تريد حفظ المثال؟ [افتراضي:./is_example.py]:

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

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

دعنا نلقي نظرة على مثال البرنامج النصي الذي تم إنشاؤه.

نانو $ is_example.py

في السطر 15 ، سترى سطرًا يبدأ بـ Streamer = Streamer (bucket_…. تنشئ هذه السطور حاوية بيانات جديدة تسمى "Python Stream Example" وترتبط بحسابك. يحدث هذا الارتباط بسبب access_key = "…" المعلمة في نفس السطر. هذه السلسلة الطويلة من الأحرف والأرقام هي مفتاح الوصول إلى حساب الولاية الأولية. إذا انتقلت إلى حسابك الأولي في متصفح الويب ، فانقر على اسم المستخدم الخاص بك في الجزء العلوي الأيسر ، ثم انتقل إلى "إعداداتي" ، ستجد مفتاح الوصول نفسه في أسفل الصفحة تحت عنوان "Streaming Access Keys".

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

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

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

$ python is_example.py

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

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

الخطوة 7: السيناريو النهائي

بافتراض أنك قمت بتشغيل الأمر "git clone https://github.com/InitialState/smart-scale.git" في الجزء 2 ، فإن النص النهائي الذي يجمع كل شيء معًا يسمى smartscale.py في الدليل ~ / smart-scale. (https://github.com/InitialState/smart-scale/blob/master/smartscale.py)

يجب ضبط بعض الإعدادات في البرنامج النصي قبل أن تتمكن من تشغيله. افتح smartscale.py في محرر النصوص المفضل لديك مثل nano.

$ cd ~ $ cd مقياس ذكي نانو $ smartscale.py

بالقرب من أعلى هذا الملف ، يوجد قسم إعدادات المستخدم.

# --------- إعدادات المستخدم --------- BUCKET_NAME = ": apple: سجل وزني" BUCKET_KEY = "weight11" ACCESS_KEY = "ضع مفتاح الوصول الأولي إلى الولاية هنا" METRIC_UNITS = FalseWEIGHT_SAMPLES = 500THROWAWAY_SAMPLES = 100WEIGHT_HISTORY = 7 # ---------------------------------

  • يعيّن BUCKET_NAME اسم مجموعة بيانات الحالة الأولية التي سيتم تدفق وزنك / بياناتك إليها. يمكن تعيين هذا هنا وتغييره لاحقًا في واجهة المستخدم.
  • BUCKET_KEY هو معرف الحاوية الفريد الذي يحدد مكان تدفق بياناتك. إذا كنت تريد إنشاء حاوية / لوحة معلومات مختلفة ، فاستخدم معرّفًا مختلفًا هنا (* ملاحظة ، إذا قمت بأرشفة حاوية ، فلا يمكنك إعادة استخدام مفتاحها في حاوية جديدة).
  • ACCESS_KEY هو مفتاح حساب الحالة الأولية الخاص بك. إذا لم تضع ACCESS_KEY في هذا الحقل ، فلن تظهر بياناتك في حسابك.
  • يسمح لك METRIC_UNITS بتحديد وزنك بالكيلوجرام إذا تم ضبطه على True أو lb إذا تم ضبطه على False.
  • تحدد WEIGHT_SAMPLES عدد القياسات التي تم إجراؤها ومتوسطها معًا للحصول على وزنك الفعلي. تستغرق القياسات 500 حوالي 4-5 ثوان وتقدم نتائج دقيقة إلى حد ما.
  • تحدد THROWAWAY_SAMPLES عدد العينات التي يتم التخلص منها عند الخطوة الأولى على السبورة. هذا يمنع الخطوات الأولية والتحول من التخلص من القياس النهائي. يجب أن يكون هذا دائمًا أقل بكثير من WEIGHT_SAMPLES.
  • يحدد WEIGHT_HISTORY عدد القياسات التي تم إجراؤها قبل إرسال تحديث إضافي. فقط القياسات المأخوذة عن بعد ساعتين أو أكثر تحسب ضمن السجل.

بمجرد تحديد كل معلمة في هذا القسم وحفظ التغييرات ، تكون جاهزًا لتشغيل البرنامج النصي النهائي. قبل أن نقوم بتشغيل البرنامج النصي ، دعنا نستعرض ما سيفعله.

  • في بداية النص ، سيُطلب منك إقران لوحة توازن Wii مع Raspberry Pi. استخدم الرافعة التي اخترقتها معًا في القسم 2: تعديلات الأجهزة للضغط على زر المزامنة عندما يُطلب منك ذلك.
  • بمجرد تشغيل البرنامج النصي ، انتقل إلى لوحة Wii لبدء قياس وزنك. بعد 4-5 ثوانٍ ، سيتم إرسال وزنك تلقائيًا إلى حساب الدولة الأولي الخاص بك.
  • بعد إعداد إشعارات الرسائل القصيرة (في خطوتين) ، ستتلقى رسالة نصية بعد وقت قصير من القياس.

قم بتشغيل البرنامج النصي لبدء السحر.

$ sudo python smartscale.py

الخطوة 8: لوحة القيادة

لوحة القيادة
لوحة القيادة

انتقل إلى حساب Initial State الخاص بك وانقر على حاوية البيانات الجديدة مع الاسم المقابل لمعلمة BUCKET_NAME (أي سجل وزني). انقر فوق "البلاط" لعرض لوحة معلومات سجل وزنك. يجب أن تشاهد ثلاثة مربعات في المرة الأولى التي تعرض فيها بياناتك في "المربعات" - التحديث وتاريخ الوزن والوزن (رطل). يمكنك تخصيص لوحة القيادة الخاصة بك عن طريق تغيير حجم المربعات وتحريكها بالإضافة إلى تغيير أنواع العرض وحتى إضافة مربعات. تمنحك لوحة القيادة هذه القدرة على رؤية سجل وزنك في لمحة. إنه سهل الاستخدام للجوال ويمكنك حتى مشاركته مع أشخاص آخرين.

يمكنك إضافة صورة خلفية إلى لوحة المعلومات لإضفاء المزيد من الشخصية والسياق على بياناتك.

الخطوة 9: الرسائل القصيرة

رسالة قصيرة
رسالة قصيرة

لنقم بإنشاء تنبيه عبر الرسائل النصية القصيرة كلما أخذ الميزان قياسًا للوزن. تأكد من تحميل دلو بيانات سجل وزنك.

  1. انقر فوق إعدادات الحاوية (تحت اسمها) في نافذة مجموعة البيانات.
  2. انقر فوق علامة التبويب المشغلات.
  3. حدد دفق البيانات لبدء التشغيل. يمكنك استخدام القائمة المنسدلة للاختيار من التدفقات الحالية بمجرد تحميل مجموعة بيانات أو يمكنك كتابة اسم / مفتاح الدفق يدويًا. في مثال لقطة الشاشة أعلاه ، تم تحديد "تحديث".
  4. حدد عامل التشغيل الشرطي ، في هذه الحالة "تطابق".
  5. حدد قيمة المشغل التي ستطلق إجراءً (اكتب القيمة المطلوبة يدويًا). اكتب lb إذا كنت لا تستخدم وحدات مترية أو اكتب بالكيلو جرام إذا كنت تستخدم وحدات مترية. عندما يحتوي البث "تحديث" على "رطل" (أو "كجم") ، ستتلقى إشعارًا برسالة نصية.
  6. انقر فوق الزر "+" لإضافة شرط Trigger.
  7. أدخل عنوان بريدك الإلكتروني أو رقم هاتفك في حقل "جهات الاتصال للإعلام".
  8. انقر فوق الزر "+" لإضافة معلومات الاتصال.
  9. أدخل أي رمز تحقق في حالة إضافة رقم هاتف جديد لإكمال الإعداد.
  10. انقر فوق الزر تم في الجزء السفلي للعودة إلى الشاشة الرئيسية. المشغل الخاص بك الآن نشط وسيتم إطلاقه عند استيفاء الشرط.

بمجرد اكتمال الإعداد ، ستتلقى رسالة نصية قصيرة في كل مرة تزن فيها نفسك تحتوي على وزنك ، ومقدار وزنك الذي تغير منذ آخر قياس ، ونكتة عشوائية / إهانة / مجاملة.

الخطوة 10: الخاتمة

هناك خيارات غير محدودة بالنسبة لك للبناء على ما قمت بإنشائه الآن. فيما يلي بعض الأفكار لهذا المشروع:

  • يمكنك دفق البيانات من مصادر أخرى إلى نفس لوحة معلومات سجل الوزن لإنشاء لوحة معلومات الصحة الشخصية الخاصة بك.
  • يمكنك تغيير النكات في الرسالة WeighFirst و messageWeighLess و messageWeighMore و messageWeighSame إلى حس الدعابة لديك.
  • يمكنك تغيير النكات إلى رسائل عملية أو إزالتها واستخدام رمز الميزان لتتبع وزن شيء أكثر أهمية إلى جانب وزن جسمك.
  • يمكنك إنشاء ثلاجة بيرة / نبيذ ذكية خاصة بك باستخدام نفس الأسلوب. يوجد بالفعل برنامج تعليمي رائع تم إنشاؤه لذلك هنا.

اخترق واسمح لي أن أعرف ما إذا كان هذا البرنامج التعليمي يلهمك لإنشاء شيء مذهل.

موصى به: