فهرست مطالب:
تصویری: RuuviTag و PiZero W و Blinkt! دماسنج مبتنی بر چراغ بلوتوث: 3 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
این دستورالعمل روشی را برای خواندن داده های دما و رطوبت از RuuviTag با استفاده از بلوتوث با Raspberry Pi Zero W و نمایش مقادیر به صورت دوتایی در یک چشمک زدن Pimoroni توصیف می کند! PHAT. یا به طور خلاصه: چگونه می توان یک سطح پیشرفته و دماسنج کمی نامطلوب ایجاد کرد.
RuuviTag یک چراغ بلوتوث سنسور منبع باز است که دارای سنسورهای دما/رطوبت/فشار و شتاب می باشد ، اما ممکن است به عنوان یک چراغ مجاور استاندارد Eddystone ™/iBeacon نیز عمل کند. این یک پروژه بسیار موفق Kickstarter بود و من چند هفته پیش پروژه خود را دریافت کردم. یک Github با نرم افزار python وجود دارد که RuuviTag را با استفاده از تمشک می خواند ، و من از یکی از نمونه های آنها ، با برخی افزودنی ها استفاده کرده ام.
Raspberry Pi Zero W جدیدترین عضو خانواده RPi است که در اصل Pi Zero با بلوتوث و WLAN اضافه شده است.
پلک زدن! PHAT از Pimoroni اساساً یک نوار از هشت LED RBG است که به عنوان یک HAT برای رزبری پای پیکربندی شده است. استفاده از آن بسیار آسان است و دارای یک کتابخانه پایتون است. ایده این بود که داده های RuuviTag را بخوانید و با استفاده از چشمک زدن آنها را نمایش دهید! کلاه مقادیر به عنوان اعداد باینری با استفاده از 7 LED نشان داده می شوند ، در حالی که هشت عدد برای نشان دادن میزان رطوبت یا دما (+/-/0) نشان داده می شود.
مرحله 1: راه اندازی سیستم
راه اندازی سیستم آسان است:- RuuviTag (نسخه سنسور دما RuuviTag) را روشن کنید.
- RPi Zero W ، RPi3 یا هر RPi دیگری را با ظرفیت بلوتوث اضافه شده ، طبق دستورالعمل های www.raspberrypi.org تنظیم کنید.
- چشمک را بگذار! HAT در RPi (در حالت خاموش).
- چشمک را نصب کنید! و نرم افزار RuuviTag ، همانطور که در صفحات مربوطه GitHub نشان داده شده است.
- اکنون باید آدرس MAC RuuviTag خود را شناسایی کنید
- برنامه ضمیمه پایتون را کپی کنید ، آن را با IDLE برای پایتون 3 باز کنید
- آدرس MAC RuuviTag را به نام خود تغییر دهید ، سپس برنامه را ذخیره و اجرا کنید.
- با خیال راحت برنامه را اصلاح و بهینه سازی کنید. این برنامه همانطور که هست ارائه می شود ، برای استفاده در معرض خطر خود ، هیچ گونه تعهدی در قبال هرگونه خسارت بر عهده نمی گیرد.
مرحله 2: دستگاه و برنامه
همانطور که در بالا ذکر شد ، ایده ایجاد یک سیستم ساده و ارزان برای خواندن داده ها از چراغ راهنما و نمایش مقادیر عددی در چشمک زدن بود! HAT یا یک نوار LED مشابه.
محدوده مقادیر دما برای اندازه گیری با سیستم مبتنی بر RPi در بیشتر موارد چیزی بین - 50 تا 80 درجه سانتیگراد ، برای رطوبت بین 0 تا 100 درصد خواهد بود. بنابراین یک صفحه نمایش که می تواند مقادیر -100 تا +100 را نشان دهد برای اکثر برنامه ها کافی است. اعداد اعشاری کوچکتر از 128 می توانند به عنوان اعداد باینری با 7 بیت (یا LED) نمایش داده شوند. بنابراین برنامه مقادیر دما و رطوبت را از RuuviTag به عنوان اعداد "شناور" می گیرد و آنها را به اعداد دودویی تبدیل می کند ، که سپس در چشمک زدن نمایش داده می شوند !.
در مرحله اول ، عدد گرد می شود ، در صورت مثبت ، منفی یا صفر تجزیه و تحلیل می شود و سپس با استفاده از "abs" به عدد مثبت تبدیل می شود. سپس عدد اعشاری به یک عدد باینری 7 رقمی تبدیل می شود که اساساً یک رشته 0 و 1 است و در 7 پیکسل آخر پلک تجزیه و تحلیل می شود.
برای مقادیر دما ، پیکسل اول نشان می دهد که مقدار مثبت (قرمز) ، صفر (سرخابی) یا منفی (آبی) است. با نمایش مقادیر رطوبت روی سبز تنظیم شده است. برای ساده سازی تمایز بین مقادیر دما و رطوبت ، پیکسل های دوتایی برای دما سفید و زرد برای رطوبت تنظیم می شوند. برای افزایش خوانایی اعداد دوتایی ، پیکسل "0" به طور کامل خاموش نمی شود ، اما در عوض بسیار ضعیف تر از حالت "1" تنظیم می شود. به عنوان چشمک! پیکسل ها بسیار روشن هستند ، می توانید روشنایی کلی را با تغییر پارامتر "روشن" تنظیم کنید
این برنامه مقادیر و قسمت های فرآیند را نیز روی صفحه نمایش می دهد. علاوه بر این ، چندین دستور چاپ بی صدا (#) را خواهید یافت. من آنها را رها کردم ، زیرا ممکن است برای درک روند در صورت بیصدا شدن آنها مفید واقع شوند.
همچنین ممکن است مقادیر در یک فایل log ذخیره شوند.
مرحله 3: کد برنامه
کد کمی اشکال زدایی و بهینه سازی شد. اکنون ممکن است نسخه 3 (20_03_2017) را بیابید.
"این برنامه برای خواندن مقادیر دما ، رطوبت و فشار از RuuviTag در نظر گرفته شده است" و مقادیر دما و رطوبت را به صورت اعداد دوتایی در یک چشمک زدن Pimorini نشان می دهد! کلاه '' '' بر اساس مثال print_to_screen.py از کتابخانه ruuvitag در github است. "نیاز به Pi Zero W ، Pi 3 یا هر RPi مجهز به بلوتوث و نصب همه کتابخانه های مورد نیاز."
زمان واردات
import os from datetime وارد کردن datetime
از ruuvitag_sensor.ruuvi واردات RuuviTagSensor
از واردات blinkt set_clear_on_exit ، set_pixel ، clear ، show
def temp_blinkt (bt):
# این روال مقدار دما را می گیرد و آن را به صورت یک عدد باینری در چشمک زدن نمایش می دهد!
روشن ()
# رنگ و شدت پیکسل "1": سفید
r1 = 64 g1 = 64 b1 = 64
#رنگ و شدت پیکسل "0": سفید
r0 = 5 g0 = 5 b0 = 5
# گرد کنید و به عدد صحیح تبدیل کنید
r = گرد (bt)
# vz نشان دهنده علامت جبری برای پیکسل نشانگر است
if (r> 0): vz = 1 # elif positive (r <0): vz = 2 # منفی else: vz = 0 # zero # print (vz) i = abs (r) #print (i)
# تبدیل به عدد باینری مطلق و 7 رقمی
i1 = i + 128 # برای i منجر به یک عدد باینری 8 رقمی می شود که با چاپ 1 # شروع می شود (i1)
b = "{0: b}". فرمت (i1) # تبدیل به باینری
# چاپ (ب)
b0 = str (b) # تبدیل به رشته
b1 = b0 [1: 8] #بیت اول را کوتاه کنید
چاپ ("شماره دودویی:" ، 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) # چاپ (" صفر ")
# پیکسل نشانگر را تنظیم کنید
if (vz == 1): set_pixel (0، 64، 0، 0) # قرمز برای مقادیر مثبت elif (vz == 2): set_pixel (0، 0، 0، 64) # آبی برای مقادیر منفی دیگر: set_pixel (0 ، 64 ، 0 ، 64) # سرخابی اگر صفر باشد
نمایش ()
# پایان temp_blinkt ()
def hum_blinkt (bh):
# این مقدار رطوبت را می گیرد و آن را به صورت یک عدد باینری در چشمک زدن نمایش می دهد!
روشن ()
# رنگ و شدت پیکسل "1": زرد
r1 = 64 g1 = 64 b1 = 0
#رنگ و شدت پیکسل "0":
r0 = 5 g0 = 5 b0 = 0
# گرد کنید و به عدد صحیح تبدیل کنید
r = گرد (bh)
# تبدیل به عدد باینری مطلق 7 رقمی i = abs (r) #print (i)
i1 = i + 128 # برای i یک عدد باینری 8 رقمی می دهد که با 1 شروع می شود
# چاپ (i1)
b = "{0: b}". فرمت (i1)
# چاپ (ب)
b0 = str (b)
b1 = b0 [1: 8] #بیت اول را کوتاه کنید
چاپ ("شماره دودویی:" ، b1)
# پیکسل ها را روی چشمک زدن تنظیم کنید!
# تعداد دودویی را روی پیکسل تنظیم کنید
برای h در محدوده (0 ، 7): f = (h+1) if (b1 [h] == "1"): set_pixel (f، r1، g1، b1) else: # بیصدا کردن 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' # تغییر آدرس مک دستگاه خود
چاپ ("شروع")
سنسور = RuuviTagSensor (مک)
در حالی که True:
data = sensor.update ()
line_sen = str.format ('Sensor - {0}'، mac)
line_tem = str.format ('دما: {0} C' ، داده ['دما']) line_hum = str.format ('رطوبت: {0}٪' ، داده ['رطوبت']) line_pre = str.format ("فشار: {0}" ، داده ["فشار"])
چاپ()
# دمای نمایش در چشمک زدن! ba = str.format ('{0}' ، داده ['دما']) 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 ('برای خروج Ctrl+C را فشار دهید. / n / n') print (str (datetime.now ())) print (line_sen) print (line_tem) print (line_hum) print (line_pre) چاپ ('\ n / n / r …….')
# چند ثانیه صبر کنید و دوباره شروع کنید
try: time.sleep (8) به جز KeyboardIntruptrupt: # وقتی Ctrl+C فشار داده می شود ، اجرای حلقه while متوقف می شود چاپ ('Exit') clear () break () break () break ()
توصیه شده:
چراغ قوه چراغ قوه چراغ قرمز با قدرت بالا DIY برای درد: 7 مرحله
چراغ قوه چراغ قوه چراغ قرمز DIY با قدرت بالا 660 نانومتر برای درد: آیا می توانید یک چراغ قوه چراغ قوه نور درمانی قرمز 660 نانومتری با قدرت بالا فقط با 80 دلار تهیه کنید؟ برخی از شرکت ها می گویند سس مخصوص یا دستگاهی با قدرت بالا دارند ، اما حتی آنها برای تظاهرات چشمگیر آنها را تقلب می کنند. یک منطقی d
استفاده از تلفن هوشمند به عنوان دماسنج غیر تماسی / دماسنج قابل حمل: 8 مرحله (همراه با تصاویر)
از اسمارت فون به عنوان دماسنج غیر تماسی / دماسنج قابل حمل استفاده کنید: اندازه گیری دمای بدن بدون تماس / بدون تماس مانند تفنگ حرارتی. من این پروژه را ایجاد کردم زیرا Thermo Gun در حال حاضر بسیار گران است ، بنابراین من باید جایگزینی برای تهیه DIY داشته باشم. و هدف این است که با نسخه کم بودجه تهیه شود
دماسنج مادون قرمز غیر تماسی مبتنی بر آردوینو - دماسنج مبتنی بر IR با استفاده از آردوینو: 4 مرحله
دماسنج مادون قرمز بدون تماس مبتنی بر آردوینو | دماسنج مبتنی بر IR با استفاده از آردوینو: سلام بچه ها در این دستورالعمل ما با استفاده از آردوینو یک دماسنج غیر تماسی ایجاد می کنیم. از آنجا که گاهی اوقات دمای مایع/جامد بسیار زیاد یا بسیار پایین است و سپس تماس با آن و خواندن آن سخت است. دما در آن حالت
ESP32 NTP دماسنج پخت دماسنج با تصحیح اشتاین هارت-هارت و هشدار دما: 7 مرحله (همراه با تصاویر)
ESP32 NTP دماسنج پخت دماسنج با تصحیح اشتاین هارت و هشدار دما: هنوز در سفر برای تکمیل یک & quot؛ پروژه آینده & quot ؛، & quot ؛، & quot؛ دماسنج پخت و پز دما ETP32 NTP با اصلاح Steinhart-Hart و هشدار دما & quot؛ یک دستورالعمل است که نشان می دهد چگونه یک پروب دما NTP ، پیزو ب
یک چراغ قوه قابل شارژ قابل شارژ با بلندگوهای بلوتوث و تلفن های همراه شارژ: 4 مرحله (همراه با تصاویر)
یک چراغ فلاش قابل شارژ با بلندگوهای بلوتوث و تلفن های همراه شارژ: سلام دوستان ، در این مقاله آموزشی ، من از یک چراغ فلش قابل شارژ مجهز به بلندگوهای بلوتوث و شارژ USB USB برای شارژ تلفن همراه گزارش می کنم ، بنابراین دستگاه چند وجهی است که خوب است برای کمپ زدن و پیاده روی در پارک ها یا کوه