جدول المحتويات:
فيديو: RuuviTag و PiZero W و Blinkt! ميزان حرارة قائم على منارة بلوتوث: 3 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:39
يصف هذا التوجيه طريقة لقراءة بيانات درجة الحرارة والرطوبة من RuuviTag باستخدام Bluetooth مع Raspberry Pi Zero W ولعرض القيم بالأرقام الثنائية على وميض Pimoroni! pHAT أو باختصار: كيفية بناء حالة من الفن وميزان حرارة نردي قليلاً.
RuuviTag عبارة عن منارة بلوتوث مفتوحة المصدر مزودة بمستشعرات درجة الحرارة / الرطوبة / الضغط والتسارع ، ولكنها قد تعمل أيضًا كمنارة تقارب قياسية Eddystone ™ / iBeacon. لقد كان مشروع Kickstarter ناجحًا للغاية وقد حصلت عليه منذ بضعة أسابيع. يوجد Github مع برنامج python لقراءة RuuviTag باستخدام التوت ، وقد استخدمت أحد أمثلةهم ، مع بعض الإضافات.
Raspberry Pi Zero W هو أحدث عضو في عائلة RPi ، وهو أساسًا Pi Zero مع Bluetooth و WLAN المضافة.
وميض! pHAT من Pimoroni هو في الأساس شريط من ثمانية مصابيح RBG تم تكوينها لتكون HAT لـ Raspberry Pi. إنه سهل الاستخدام للغاية ويأتي مع مكتبة بيثون. كانت الفكرة هي قراءة البيانات من RuuviTag وعرضها باستخدام الوميض! قبعة. يتم عرض القيم كأرقام ثنائية باستخدام 7 من مصابيح LED ، بينما يتم استخدام الثمانية للإشارة إلى ما إذا كانت قيم الرطوبة أو درجة الحرارة (+ / - / 0) معروضة.
الخطوة 1: إعداد النظام
يعد إعداد النظام أمرًا سهلاً: - قم بتشغيل RuuviTag (إصدار مستشعر درجة حرارة RuuviTag).
- قم بإعداد RPi Zero W أو RPi3 أو أي RPi آخر بسعة البلوتوث المضافة ، باتباع الإرشادات الموجودة على www.raspberrypi.org.
- ضع الوميض! HAT على RPi (أثناء الإيقاف).
- تثبيت الوميض! وبرنامج RuuviTag ، كما هو موضح في صفحات GitHub المقابلة.
- عليك الآن تحديد عنوان MAC الخاص بـ RuuviTag الخاص بك
- انسخ برنامج Python المرفق ، وافتحه بـ IDLE لـ Python 3
- قم بتغيير عنوان MAC الخاص بـ RuuviTag إلى عنوانك ، ثم قم بحفظ البرنامج وتشغيله.
- لا تتردد في تعديل وتحسين البرنامج. يأتي البرنامج كما هو ، ليتم استخدامه على مسؤوليتك الخاصة ، ولا يتم تحمل أي مسؤولية عن أي أضرار.
الخطوة الثانية: الجهاز والبرنامج
كما ذكرنا أعلاه ، كانت الفكرة هي إنشاء نظام بسيط وغير مكلف لقراءة البيانات من المنارة وعرض القيم الرقمية على وميض! HAT ، أو شريط LED مشابه.
سيكون نطاق قيم درجة الحرارة المراد قياسها باستخدام نظام يعتمد على RPi في معظم الحالات في مكان ما بين -50 درجة مئوية و +80 درجة مئوية ، للرطوبة بين 0 و 100٪. لذا فإن الشاشة التي يمكن أن تعطي قيمًا من -100 إلى +100 ستكون كافية لمعظم التطبيقات. يمكن عرض الأرقام العشرية الأصغر مثل 128 كأرقام ثنائية مع 7 بت (أو المصابيح). لذلك يأخذ البرنامج قيم درجة الحرارة والرطوبة من RuuviTag كأرقام "عائمة" ويحولها إلى أرقام ثنائية ، والتي يتم عرضها بعد ذلك على وميض !.
كخطوة أولى ، يتم تقريب الرقم وتحليله إذا كان موجبًا أو سالبًا أو صفرًا ، ثم يتم تحويله إلى رقم موجب باستخدام "القيمة المطلقة". ثم يتم تحويل الرقم العشري إلى رقم ثنائي مكون من 7 أرقام ، وهو عبارة عن سلسلة من 0 و 1 ، والتي يتم تحليلها وعرضها على آخر 7 بكسل من الوميض !.
بالنسبة لقيم درجة الحرارة ، يشير البكسل الأول إلى ما إذا كانت القيمة موجبة (أحمر) أو صفر (أرجواني) أو سالبة (أزرق). عرض قيم الرطوبة يتم ضبطه على اللون الأخضر. لتبسيط التمييز بين قيم درجة الحرارة والرطوبة ، يتم تعيين وحدات البكسل الثنائية باللون الأبيض لدرجة الحرارة والأصفر للرطوبة. لتعزيز وضوح الأرقام الثنائية ، لا يتم إيقاف تشغيل "0" بكسل تمامًا ، ولكن بدلاً من ذلك يتم تعيينها أضعف بكثير مما كانت عليه في الحالة "1". وميض! وحدات البكسل ساطعة للغاية ، يمكنك ضبط السطوع العام تغيير المعلمة "ساطع"
يعرض البرنامج قيم وأجزاء العملية أيضًا على الشاشة. بالإضافة إلى ذلك ، ستجد العديد من إرشادات الطباعة المكتومة (#). لقد تركتهم ، حيث قد تجدهم مفيدًا في فهم العملية إذا لم يتم كتم الصوت.
يمكن أيضًا تخزين القيم في ملف سجل.
الخطوة 3: كود البرنامج
تم تصحيح التعليمات البرمجية وتحسينها قليلاً. يمكنك الآن العثور على الإصدار 3 (20_03_2017).
يهدف هذا البرنامج إلى قراءة قيم درجة الحرارة والرطوبة والضغط من RuuviTag '' وعرض قيم درجة الحرارة والرطوبة كأرقام ثنائية على وميض بيموريني! قبعة. يعتمد على المثال print_to_screen.py من مكتبة ruuvitag في github. "يتطلب Pi Zero W أو Pi 3 أو أي RPi آخر مجهز بالبلوتوث وجميع المكتبات الضرورية مثبتة."
وقت الاستيراد
استيراد نظام التشغيل من تاريخ الاستيراد والوقت والوقت
من ruuvitag_sensor.ruuvi استيراد RuuviTagSensor
من استيراد blinkt set_clear_on_exit ، set_pixel ، clear ، show
def temp_blinkt (BT):
# هذا الروتين يأخذ قيمة درجة الحرارة ويعرضها كرقم ثنائي عند الوميض!
صافي ()
# لون وكثافة بكسل "1": أبيض
r1 = 64 ج 1 = 64 ب 1 = 64
# اللون وشدة البكسل "0": أبيض
r0 = 5 g0 = 5 b0 = 5
# جولة وتحويلها إلى عدد صحيح
ص = جولة (bt)
يمثل # vz علامة جبرية لبكسل المؤشر
if (r> 0): vz = 1 # elif إيجابي (r <0): vz = 2 # سالب آخر: vz = 0 # صفر # print (vz) i = abs (r) #print (i)
# تحويل إلى رقم ثنائي مطلق مكون من 7 أرقام
i1 = i + 128 # بالنسبة لـ i ينتج عن رقم ثنائي مكون من 8 أرقام يبدأ بـ 1 # print (i1)
b = "{0: b}". تنسيق (i1) # تحويل إلى ثنائي
# طباعة (ب)
b0 = str (b) # تحويل إلى سلسلة
b1 = b0 [1: 8] # اقتطاع البتة الأولى
print ("رقم ثنائي:"، b1)
# تعيين البكسل على الوميض!
# تعيين رقم ثنائي
لـ h في النطاق (0 ، 7): f = (h + 1) if (b1 [h] == "1"): set_pixel (f ، r1 ، g1 ، b1) # print ("bit"، h، " هو 1 ، بكسل "، و) وإلا: set_pixel (f ، r0 ، g0 ، b0) # print (" لا شيء ")
# تعيين بكسل المؤشر
إذا (vz == 1): set_pixel (0 ، 64 ، 0 ، 0) # أحمر للقيم الموجبة elif (vz == 2): set_pixel (0 ، 0 ، 0 ، 64) # أزرق للقيم السالبة else: set_pixel (0 ، 64 ، 0 ، 64) # أرجواني إذا كان صفرًا
مشاهده()
# نهاية temp_blinkt ()
def hum_blinkt (البحرين):
# هذا يأخذ قيمة الرطوبة ويعرضها كرقم ثنائي عند الوميض!
صافي()
# لون وكثافة بكسل "1": أصفر
r1 = 64 ج 1 = 64 ب 1 = 0
# اللون وشدة البكسل "0":
r0 = 5 g0 = 5 b0 = 0
# جولة وتحويلها إلى عدد صحيح
ص = جولة (bh)
# تحويل إلى رقم ثنائي مطلق مكون من 7 أرقام i = abs (r) #print (i)
i1 = i + 128 # لأعطي رقمًا ثنائيًا مكونًا من 8 أرقام يبدأ بـ 1
# طباعة (i1)
ب = "{0: ب}". تنسيق (i1)
# طباعة (ب)
ب 0 = شارع (ب)
b1 = b0 [1: 8] # اقتطاع البتة الأولى
print ("رقم ثنائي:"، b1)
# تعيين بكسل على الوميض!
# اضبط الرقم الثنائي على وحدات البكسل
لـ h في النطاق (0 ، 7): f = (h + 1) if (b1 [h] == "1"): set_pixel (f ، r1 ، g1 ، b1) وإلا: # كتم الصوت إلى مصابيح LED الفارغة set_pixel (f ، r0، g0، b0) # كتم الصوت لمصابيح LED الفارغة
# تعيين بكسل المؤشر
set_pixel (0 ، 0 ، 64 ، 0) # أخضر للرطوبة
مشاهده()
# نهاية hum_blinkt ()
set_clear_on_exit ()
# قراءة البيانات من RuuviTag
mac = 'EC: 6D: 59: 6D: 01: 1C' # تغيير إلى عنوان mac الخاص بجهازك
طباعة ("بدء")
جهاز استشعار = RuuviTagSensor (ماك)
احيانا صحيح:
البيانات = sensor.update ()
line_sen = str.format ('Sensor - {0}'، mac)
line_tem = str.format ('درجة الحرارة: {0} درجة مئوية ، البيانات [' درجة الحرارة ']) line_hum = str.format (' الرطوبة: {0}٪ '، البيانات [' الرطوبة ']) line_pre = str.format ("الضغط: {0}" ، البيانات ["الضغط"])
مطبعة()
# عرض درجة الحرارة على الوميض! ba = str.format ('{0}'، البيانات ['temperature']) bt = float (ba) print (bt، "Â ° C") temp_blinkt (bt) print ()
time.sleep (10) # عرض درجة الحرارة لمدة 10 ثوان
# عرض الرطوبة على الوميض!
bg = str.format ('{0}'، البيانات ['الرطوبة']) bh = float (bg) print (bh، "٪") hum_blinkt (bh) print ()
# مسح بيانات الشاشة ومستشعر الطباعة للشاشة
os.system ('clear') print ('Press Ctrl + C للإنهاء. / n / n') print (str (datetime.now ())) print (line_sen) print (line_tem) print (line_hum) print (line_pre) طباعة ('\ n / n / r …….')
# انتظر بضع ثوان وابدأ من جديد
حاول: time.sleep (8) باستثناء KeyboardInterrupt: # عند الضغط على Ctrl + C ، يتم إيقاف تشغيل حلقة while ، اطبع ('Exit') مسح () show () break
موصى به:
IOT ThermoGun - ميزان حرارة ذكي لقياس درجة حرارة الجسم بالأشعة تحت الحمراء - Ameba Arduino: 3 خطوات
IOT ThermoGun - ميزان حرارة ذكي يعمل بالأشعة تحت الحمراء للجسم - Ameba Arduino: مع استمرار COVID-19 في إحداث فوضى على مستوى العالم ، مما تسبب في آلاف الوفيات ، والملايين في المستشفى ، فإن أي جهاز طبي مفيد مطلوب بشكل كبير ، خاصة الأجهزة الطبية المنزلية مثل ميزان الحرارة غير المتصل بالأشعة تحت الحمراء ؟؟ . عادة ما يكون مقياس الحرارة المحمول قيد التشغيل
استخدام الهاتف الذكي كمقياس حرارة لا يلامس / ميزان حرارة محمول: 8 خطوات (بالصور)
استخدام الهاتف الذكي كمقياس حرارة غير متصل / ميزان حرارة محمول: قياس درجة حرارة الجسم بدون تلامس / بدون تلامس مثل مسدس حراري. لقد أنشأت هذا المشروع لأن Thermo Gun الآن مكلف للغاية ، لذلك يجب أن أحصل على بديل لصنع DIY. والغرض من ذلك هو إصدار الميزانية المنخفضة. العرض MLX90614Ardu
ميزان حرارة رقمي قائم على اردوينو: 3 خطوات
ميزان حرارة رقمي قائم على اردوينو: في هذا المشروع ، تم تصميم ميزان حرارة رقمي قائم على اردوينو يمكن استخدامه لتحليل درجة حرارة الغرفة ، ويستخدم مقياس الحرارة بشكل عام كأداة لقياس درجة الحرارة. هناك العديد من المبادئ التي يمكن استخدامها لقياس
ESP8266 مراقبة درجة حرارة Nodemcu باستخدام DHT11 على خادم ويب محلي - احصل على درجة حرارة الغرفة ورطوبتها على متصفحك: 6 خطوات
ESP8266 مراقبة درجة حرارة Nodemcu باستخدام DHT11 على خادم ويب محلي | احصل على درجة حرارة الغرفة ورطوبتها على متصفحك: مرحبًا يا شباب اليوم سنصنع الرطوبة & amp؛ نظام مراقبة درجة الحرارة باستخدام ESP 8266 NODEMCU & amp؛ جهاز استشعار درجة الحرارة DHT11. سيتم الحصول على درجة الحرارة والرطوبة من مستشعر DHT11 & amp؛ يمكن رؤيته على متصفح أي صفحة ويب ستتم إدارتها
ميزان حرارة يعمل بالأشعة تحت الحمراء لا يلامس من أردوينو - ميزان حرارة قائم على الأشعة تحت الحمراء باستخدام Arduino: 4 خطوات
ميزان حرارة يعمل بالأشعة تحت الحمراء لا يلامس من أردوينو | ميزان حرارة قائم على الأشعة تحت الحمراء باستخدام Arduino: مرحبًا يا رفاق في هذه التعليمات ، سنقوم بعمل مقياس حرارة بدون تلامس باستخدام اردوينو. نظرًا لأن درجة حرارة السائل / الصلب في بعض الأحيان تكون مرتفعة جدًا أو منخفضة ومن ثم يصعب الاتصال بها وقراءتها درجة الحرارة ثم في هذا المشهد