Სარჩევი:
ვიდეო: RuuviTag და PiZero W და Blinkt! Bluetooth შუქურაზე დაფუძნებული თერმომეტრი: 3 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
ეს ინსტრუქცია აღწერს მიდგომას RuuviTag– ის ტემპერატურისა და ტენიანობის მონაცემების წაკითხვისთვის Bluetooth– ის გამოყენებით Raspberry Pi Zero W– ით და აჩვენებს მნიშვნელობებს ორობითი რიცხვებით Pimoroni blinkt– ზე! pHAT. ან მოკლედ რომ ვთქვათ: როგორ უნდა ავაშენოთ თანამედროვე ხელოვნება და ცოტა არ იყოს თერმომეტრი.
RuuviTag არის ღია სენსორის bluetooth შუქურა, რომელსაც გააჩნია ტემპერატურის/ტენიანობის/წნევის და ამაღლების სენსორები, მაგრამ ასევე შეიძლება მოქმედებდეს როგორც სტანდარტული Eddystone ™/iBeacon სიახლოვის შუქურა. ეს იყო ძალიან წარმატებული Kickstarter პროექტი და მე მივიღე ჩემი რამდენიმე კვირის წინ. არსებობს Github პითონის პროგრამული უზრუნველყოფით, რომ წაიკითხოთ RuuviTag ჟოლოს გამოყენებით და მე გამოვიყენე მათი ერთ -ერთი მაგალითი, გარკვეული დამატებებით.
Raspberry Pi Zero W არის RPi ოჯახის უახლესი წევრი, ძირითადად Pi Zero Bluetooth და WLAN დამატებული.
მოციმციმე! PIMORON– ის pHAT ძირითადად არის რვა RBG LED- ების ზოლი, რომელიც კონფიგურირებულია როგორც HASP Raspberry Pi– სთვის. მისი გამოყენება ძალიან ადვილია და გააჩნია პითონის ბიბლიოთეკა. იდეა იყო RuuviTag– ის მონაცემების წაკითხვა და მისი ჩვენება blinkt– ის გამოყენებით! ქუდი ღირებულებები ნაჩვენებია როგორც ორობითი რიცხვები 7 შუქდიოდური შუქდიოდის გამოყენებით, ხოლო რვა ერთი გამოიყენება ტენიანობის ან ტემპერატურის (+/-/0) მნიშვნელობების ჩვენების მიზნით.
ნაბიჯი 1: სისტემის დაყენება
სისტემის დაყენება მარტივია:- ჩართეთ RuuviTag (ტემპერატურის სენსორის RuuviTag ვერსია).
- დააყენეთ თქვენი RPi Zero W, RPi3, ან ნებისმიერი სხვა RPi დამატებული bluetooth ტევადობით, www.raspberrypi.org– ის მითითებების შესაბამისად.
- განათავსეთ მოციმციმე! ქუდი RPi– ზე (გამორთვის დროს).
- დააინსტალირეთ ბლინკი! და RuuviTag პროგრამული უზრუნველყოფა, როგორც მითითებულია შესაბამის GitHub გვერდებზე.
- ახლა თქვენ უნდა დაადგინოთ თქვენი RuuviTag– ის MAC მისამართი
- დააკოპირეთ თანდართული პითონის პროგრამა, გახსენით ის IDLE პითონ 3 -ისთვის
- შეცვალეთ RuuviTag– ის MAC მისამართი თქვენით, შემდეგ შეინახეთ და გაუშვით პროგრამა.
- მოგერიდებათ შეცვალოთ და გააუმჯობესოთ პროგრამა. პროგრამა მოდის ისე, როგორც ის არის, რომ გამოიყენო საკუთარი რისკით, არანაირი ვალდებულება არ აიღო რაიმე ზიანისთვის.
ნაბიჯი 2: მოწყობილობა და პროგრამა
როგორც ზემოთ აღვნიშნეთ, იდეა იყო შეექმნა მარტივი და იაფი სისტემა შუქურის მონაცემების წასაკითხად და რიცხვითი მნიშვნელობების ჩვენებისათვის მოციმციმეზე! ქუდი, ან მსგავსი LED ზოლები.
ტემპერატურის მნიშვნელობების დიაპაზონი, რომელიც უნდა შეფასდეს RPi სისტემით, უმეტეს შემთხვევაში იქნება სადღაც - 50 ° C- დან +80 ° C- მდე, ტენიანობა 0 -დან 100%-მდე. ამრიგად, ჩვენება, რომელსაც შეუძლია მნიშვნელობების მინიჭება -100 -დან +100 -მდე, საკმარისი იქნება პროგრამების უმეტესობისთვის. ათწილადის რიცხვები 128 -ით ნაკლები შეიძლება გამოისახოს ორობითი რიცხვებით 7 ბიტიანი (ან LED- ები). ამრიგად, პროგრამა იღებს ტემპერატურისა და ტენიანობის მნიშვნელობებს RuuviTag– დან, როგორც „მცურავი“რიცხვები და გარდაქმნის მათ ორობითი რიცხვებით, რომლებიც შემდეგ ნაჩვენებია მოციმციმე !.
როგორც პირველი ნაბიჯი, რიცხვი მრგვალდება, გაანალიზებულია დადებითი, უარყოფითი ან ნულოვანი და შემდეგ გარდაიქმნება დადებით რიცხვად "აბს" გამოყენებით. შემდეგ ათობითი რიცხვი გარდაიქმნება შვიდნიშნა ორობითი რიცხვით, ძირითადად 0 და 1 სტრიქონად, რომელიც გაანალიზებულია და ნაჩვენებია დახუჭვის ბოლო 7 პიქსელზე !.
ტემპერატურის მნიშვნელობებისთვის პირველი პიქსელი მიუთითებს თუ მნიშვნელობა არის დადებითი (წითელი), ნული (მაგენტა) ან უარყოფითი (ლურჯი). ტენიანობის მნიშვნელობების ჩვენება მწვანეა. ტემპერატურისა და ტენიანობის ღირებულებებს შორის დისკრიმინაციის გასამარტივებლად ორობითი პიქსელი მითითებულია თეთრი ტემპერატურისთვის და ყვითელი ტენიანობისთვის. ორობითი რიცხვების წაკითხვის გასაუმჯობესებლად, "0" პიქსელი არ არის მთლიანად გამორთული, მაგრამ სამაგიეროდ არის გაცილებით სუსტი ვიდრე "1" მდგომარეობაში. როგორც მოციმციმე! პიქსელები ძალიან კაშკაშაა, შეგიძლიათ დააყენოთ ზოგადი სიკაშკაშე, რომელიც ცვლის პარამეტრს "ნათელი"
პროგრამა ეკრანზე აჩვენებს პროცესის ღირებულებებს და ნაწილებს. გარდა ამისა თქვენ ნახავთ რამდენიმე მდუმარე (#) ბეჭდვის ინსტრუქციას. მე დავტოვე ისინი, რადგან თქვენ შეიძლება გამოსადეგი აღმოჩნდეთ პროცესის გასაგებად, თუ ის დადუმებულია.
ღირებულებები ასევე შეიძლება იყოს შენახული ჟურნალის ფაილში.
ნაბიჯი 3: პროგრამის კოდი
კოდი ოდნავ გამართული და ოპტიმიზირებულია. ახლა თქვენ შეგიძლიათ იპოვოთ ვერსია 3 (20_03_2017).
"ეს პროგრამა მიზნად ისახავს ტემპერატურის, ტენიანობის და წნევის მნიშვნელობების წაკითხვას RuuviTag" და აჩვენებს ტემპერატურისა და ტენიანობის მნიშვნელობებს როგორც ორობითი რიცხვები Pimorini blinkt- ზე! ქუდი '' '' იგი დაფუძნებულია print_to_screen.py მაგალითზე ruuvitag ბიბლიოთეკიდან github- ში. "მოითხოვს Pi Zero W, Pi 3 ან ნებისმიერი სხვა RPi აღჭურვილი bluetooth- ით და დაინსტალირებული ყველა საჭირო ბიბლიოთეკა."
იმპორტის დრო
იმპორტი os საწყისი datetime იმპორტი datetime
ruuvitag_sensor.ruuvi იმპორტი RuuviTagSensor
blinkt იმპორტიდან set_clear_on_exit, set_pixel, clear, show
def temp_blinkt (bt):
# ეს რუტინული იღებს ტემპერატურის მნიშვნელობას და აჩვენებს მას ორობითი რიცხვის სახით blinkt!
გასაგებია ()
# ფერი და ინტენსივობა "1" პიქსელი: თეთრი
r1 = 64 g1 = 64 b1 = 64
#ფერი და "0" პიქსელის ინტენსივობა: თეთრი
r0 = 5 g0 = 5 b0 = 5
# მრგვალდება და გადაიქცევა მთელ რიცხვში
r = მრგვალი (bt)
# vz წარმოადგენს ალგებრული ნიშნის მაჩვენებელს პიქსელისთვის
თუ (r> 0): vz = 1 # დადებითი elif (r <0): vz = 2 # უარყოფითი სხვა: vz = 0 # ნულოვანი # ბეჭდვა (vz) i = abs (r) # ბეჭდვა (i)
# გარდაიქმნება აბსოლუტურ, 7 ნიშნა ორობითი რიცხვით
i1 = i + 128 # i- სთვის რვა ციფრიანი ორობითი რიცხვი იწყება 1 # ბეჭდვით (i1)
b = "{0: b}". ფორმატი (i1) # გადააკეთეთ ორობითი
# ბეჭდვა (ბ)
b0 = str (b) # გადაიყვანეთ სტრიქონად
b1 = b0 [1: 8] #გაანადგურე პირველი ბიტი
ბეჭდვა ("ორობითი ნომერი:", b1)
# დააყენეთ პიქსელები მოციმციმეზე!
# დააყენეთ ორობითი ნომერი
დიაპაზონში h (0, 7): f = (h+1) თუ (b1 [h] == "1"): set_pixel (f, r1, g1, b1) # print ("bit", h, " არის 1, პიქსელი ", ვ) სხვა: set_pixel (f, r0, g0, b0) # print (" nil ")
# დააყენეთ ინდიკატორის პიქსელი
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):
# ეს იღებს ტენიანობის მნიშვნელობას და აჩვენებს მას ორობითი რიცხვის სახით blinkt!
გასაგებია ()
# ფერი და ინტენსივობა "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 # for i იძლევა 8 ციფრიანი ორობითი რიცხვი 1 – ით დაწყებული
# ბეჭდვა (i1)
b = "{0: b}". ფორმატი (i1)
# ბეჭდვა (ბ)
b0 = str (b)
b1 = b0 [1: 8] #გაანადგურე პირველი ბიტი
ბეჭდვა ("ორობითი ნომერი:", b1)
# დააყენეთ პიქსელები მოციმციმეზე!
# დააყენეთ ორობითი რიცხვი პიქსელებზე
დიაპაზონში h (0, 7): f = (h+1) თუ (b1 [h] == "1"): set_pixel (f, r1, g1, b1) სხვა: # დადუმება ცარიელ LED- ებზე set_pixel (f, r0, g0, b0) # გამორთეთ ცარიელი ები
# დააყენეთ ინდიკატორის პიქსელი
set_pixel (0, 0, 64, 0) # მწვანე ტენიანობისთვის
ჩვენება ()
# hum_blinkt- ის დასასრული ()
set_clear_on_exit ()
# მონაცემების წაკითხვა RuuviTag– დან
mac = 'EC: 6D: 59: 6D: 01: 1C' # შეცვალეთ თქვენი საკუთარი მოწყობილობის mac მისამართი
დაბეჭდვა ("იწყება")
სენსორი = RuuviTagSensor (mac)
მართალია:
მონაცემები = sensor.update ()
line_sen = str.format ('სენსორი - {0}', მაკ)
line_tem = str.format ('ტემპერატურა: {0} C', მონაცემები ['ტემპერატურა']) line_hum = str.format ('ტენიანობა: {0} %', მონაცემები ['ტენიანობა']) line_pre = str.format ('წნევა: {0}', მონაცემები ['წნევა'])
ბეჭდვა ()
# ჩვენების ტემპერატურა მოციმციმედ! ba = str.format ('{0}', data ['temperature']) bt = float (ba) print (bt, "Â ° C") temp_blinkt (bt) print ()
დრო. ძილი (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 …….')
# დაელოდეთ რამდენიმე წამს და დაიწყეთ თავიდან
ცადე: time.sleep (8) კლავიატურის გარდა შეფერხება: # როდესაც Ctrl+C დაჭერილია შესრულებული მარყუჟის შესრულება დაბლოკილია ბეჭდვა ('გასვლა') წმინდა () ჩვენება () შესვენება
გირჩევთ:
გამოიყენეთ სმარტფონი როგორც უკონტაქტო თერმომეტრი / პორტატული თერმომეტრი: 8 ნაბიჯი (სურათებით)
გამოიყენეთ სმარტფონი როგორც უკონტაქტო თერმომეტრი / პორტატული თერმომეტრი: სხეულის ტემპერატურის გაზომვა უკონტაქტო / უკონტაქტო თერმო იარაღის მსგავსად. მე შევქმენი ეს პროექტი, რადგან თერმო იარაღი ახლა ძალიან ძვირია, ამიტომ მე უნდა მივიღო ალტერნატივა საკუთარი ხელების გასაკეთებლად. და მიზანი არის დაბალი ბიუჯეტის ვერსიით.მომარაგებაMLX90614 არდუ
არდუინოზე დაფუძნებული ციფრული თერმომეტრი: 3 ნაბიჯი
Arduino დაფუძნებული ციფრული თერმომეტრი: ამ პროექტში შექმნილია Arduino დაფუძნებული ციფრული თერმომეტრი, რომელიც შეიძლება გამოყენებულ იქნას ოთახის ტემპერატურის გასაანალიზებლად. თერმომეტრი ზოგადად გამოიყენება როგორც ტემპერატურის საზომი ინსტრუმენტი. არსებობს სხვადასხვა პრინციპი, რომლის გამოყენებაც შესაძლებელია
არდუინოს საფუძველზე არაკონტაქტური ინფრაწითელი თერმომეტრი - IR დაფუძნებული თერმომეტრი არდუინოს გამოყენებით: 4 ნაბიჯი
არდუინოს საფუძველზე არაკონტაქტური ინფრაწითელი თერმომეტრი | IR დაფუძნებული თერმომეტრი Arduino– ს გამოყენებით: გამარჯობა ბიჭებო ამ ინსტრუქციებში ჩვენ გავაკეთებთ უკონტაქტო თერმომეტრს arduino– ს გამოყენებით. ვინაიდან ზოგჯერ თხევადი/მყარი ტემპერატურა ძალიან მაღალია ან დაბალია და შემდეგ ძნელია მასთან კონტაქტის დამყარება და მისი წაკითხვა ტემპერატურა მაშინ ამ სცენარში
ამინდზე დაფუძნებული მუსიკის გენერატორი (ESP8266 დაფუძნებული მიდი გენერატორი): 4 ნაბიჯი (სურათებით)
ამინდზე დაფუძნებული მუსიკის გენერატორი (ESP8266 დაფუძნებული მიდი გენერატორი): გამარჯობა, დღეს მე აგიხსნით, თუ როგორ უნდა შექმნათ თქვენი საკუთარი პატარა ამინდი მუსიკის გენერატორი. იგი ეფუძნება ESP8266- ს, რომელიც არდუინოს მსგავსია და ის პასუხობს ტემპერატურას, წვიმას და სინათლის ინტენსივობა. ნუ ელოდებით, რომ ის მთელ სიმღერებს ან აკორდს გამოიმუშავებს
პიკაქსზე დაფუძნებული ციფრული თერმომეტრი მაქსიმალური და მინიმალური: 13 ნაბიჯი
პიკაქსზე დაფუძნებული ციფრული თერმომეტრი მაქს და მინი: (გთხოვთ დატოვეთ შეტყობინება, მაგრამ ნუ იქნებით ძალიან კრიტიკული, ეს არის ჩემი პირველი სასწავლო !!) ეს არის თერმომეტრი, რომელიც მე გავაკეთე ჩვენი კამპერისთვის, გარე ტემპერატურის საჩვენებლად. იგი დაფუძნებულია Picaxe ჩიპზე, რადგან ისინი იაფი და მარტივი გამოსაყენებელია. თუ ეს არის