Satura rādītājs:
Video: RuuviTag un PiZero W un Blinkt! termometrs uz Bluetooth bākas: 3 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Šajā pamācībā ir aprakstīta pieeja temperatūras un mitruma datu nolasīšanai no RuuviTag, izmantojot Bluetooth ar Raspberry Pi Zero W, un parādīt vērtības bināros skaitļos uz Pimoroni mirgošanas! pHAT. Vai arī īsi sakot: kā izveidot modernu stāvokli un mazliet nerdy termometru.
RuuviTag ir atvērtā pirmkoda sensora Bluetooth bāka, kas aprīkota ar temperatūras/mitruma/spiediena un paātrinājuma sensoriem, bet var darboties arī kā standarta Eddystone ™/iBeacon tuvuma bāka. Tas bija ļoti veiksmīgs Kickstarter projekts, un es to ieguvu pirms dažām nedēļām. Ir Github ar python programmatūru, lai lasītu RuuviTag, izmantojot aveņu, un esmu izmantojis vienu no viņu piemēriem ar dažiem papildinājumiem.
Raspberry Pi Zero W ir jaunākais RPi ģimenes loceklis, būtībā Pi Zero ar Bluetooth un WLAN.
Mirkšķināt! PHAT no Pimoroni būtībā ir astoņu RBG gaismas diodes, kas konfigurētas kā Raspberry Pi HAT. To ir ļoti viegli lietot, un tam ir python bibliotēka. Ideja bija nolasīt RuuviTag datus un parādīt tos, izmantojot blinkt! Cepure. Vērtības tiek parādītas kā bināri skaitļi, izmantojot 7 no gaismas diodēm, bet astoņi tiek izmantoti, lai norādītu, vai tiek parādītas mitruma vai temperatūras (+/-/0) vērtības.
1. darbība: sistēmas iestatīšana
Sistēmas iestatīšana ir vienkārša:- Ieslēdziet RuuviTag (RuuviTag temperatūras sensora versija).
- Iestatiet savu RPi Zero W, RPi3 vai jebkuru citu RPi ar pievienotu Bluetooth jaudu, ievērojot norādījumus vietnē www.raspberrypi.org.
- Novieto blinktu! Cepure uz RPi (izslēgta).
- Uzstādiet blinktu! un RuuviTag programmatūru, kā norādīts attiecīgajās GitHub lapās.
- Tagad jums jāidentificē RuuviTag MAC adrese
- nokopējiet pievienoto Python programmu, atveriet to ar IDLE for Python 3
- nomainiet RuuviTag MAC adresi uz savu, pēc tam saglabājiet un palaidiet programmu.
- jūtieties brīvi mainīt un optimizēt programmu. Programma ir tāda, kāda tā ir, lai to izmantotu uz savu risku, par jebkādiem zaudējumiem netiek uzņemta atbildība.
2. darbība: ierīce un programma
Kā minēts iepriekš, ideja bija izveidot vienkāršu un lētu sistēmu, lai nolasītu datus no bākas un parādītu skaitliskās vērtības uz mirgošanas! Cepure vai līdzīga LED sloksne.
Temperatūras vērtību diapazons, kas jāmēra ar sistēmu, kas balstīta uz RPi, vairumā gadījumu būs kaut kur robežās no -50 ° C līdz +80 ° C, mitrumam no 0 līdz 100%. Tātad lielākajai daļai lietojumprogrammu pietiks ar displeju, kas var sniegt vērtības no -100 līdz +100. Decimāldaļskaitļus, kas ir mazāki par 128, var parādīt kā binārus skaitļus ar 7 bitiem (vai gaismas diodēm). Tātad programma ņem temperatūras un mitruma vērtības no RuuviTag kā "peldošus" skaitļus un pārveido tos bināros skaitļos, kas pēc tam tiek parādīti mirgojošajā !.
Vispirms skaitlis tiek noapaļots, analizēts, vai tas ir pozitīvs, negatīvs vai nulle, un pēc tam tiek pārveidots par pozitīvu skaitli, izmantojot "abs". Pēc tam decimāldaļskaitlis tiek pārvērsts par 7 ciparu bināru skaitli, kas pamatā ir 0s un 1s virkne, kas tiek analizēta un parādīta mirgošanas pēdējos 7 pikseļos !.
Temperatūras vērtībām pirmais pikselis norāda, vai vērtība ir pozitīva (sarkana), nulle (purpursarkana) vai negatīva (zila). Parādot mitruma vērtības, tas ir iestatīts uz zaļu. Lai vienkāršotu temperatūras un mitruma vērtību nošķiršanu, binārie pikseļi ir iestatīti baltā temperatūrā un dzeltenā mitrumā. Lai uzlabotu bināro skaitļu salasāmību, "0" pikseļi nav pilnībā izslēgti, bet tiek iestatīti daudz vājāk nekā "1" stāvoklī. Kā mirgo! pikseļi ir ļoti spilgti, varat iestatīt vispārējo spilgtumu, mainot parametru "spilgts"
Programma parāda vērtības un procesa daļas arī ekrānā. Turklāt jūs atradīsit vairākas izslēgtas (#) drukāšanas instrukcijas. Es atstāju tos iekšā, jo tie var šķist noderīgi, lai izprastu procesu, ja nav ieslēgta skaņa.
Vērtības var tikt saglabātas arī žurnāla failā.
3. darbība: programmas kods
Kods tika nedaudz atkļūdots un optimizēts. Tagad jūs varat atrast 3. versiju (20_03_2017).
'Šī programma ir paredzēta, lai nolasītu RuuviTag temperatūras, mitruma un spiediena vērtības' un parādītu temperatūras un mitruma vērtības kā binārus skaitļus uz Pimorini mirgojošā mirgoņa! Cepure. '' '' Tas ir balstīts uz print_to_screen.py piemēru no ruuvitag bibliotēkas vietnē github. '' Nepieciešams Pi Zero W, Pi 3 vai jebkurš cits RPi, kas aprīkots ar Bluetooth, un instalētas visas nepieciešamās bibliotēkas. '
importa laiks
importēt os no datetime importēt datetime
no ruuvitag_sensor.ruuvi importēt RuuviTagSensor
no blinkt importa set_clear_on_exit, set_pixel, clear, show
def temp_blinkt (bt):
# šī rutīna ņem temperatūras vērtību un parāda to kā bināru skaitli mirgošanas laikā!
skaidrs ()
# krāsa un “1” pikseļu intensitāte: balta
r1 = 64 g1 = 64 b1 = 64
#krāsa un "0" pikseļu intensitāte: balta
r0 = 5 g0 = 5 b0 = 5
# Noapaļojiet un pārvērtiet par veselu skaitli
r = apaļš (bt)
# vz ir indikatora pikseļa algebriskā zīme
ja (r> 0): vz = 1 # pozitīvs elifs (r <0): vz = 2 # negatīvs cits: vz = 0 # nulle # drukāt (vz) i = abs (r) #print (i)
# pārveidot par absolūtu, 7 ciparu bināru skaitli
i1 = i + 128 #, ja i iegūst 8 ciparu bināru skaitli, kas sākas ar 1 # drukāt (i1)
b = "{0: b}". formāts (i1) # konvertēt uz bināro
# drukāt (b)
b0 = str (b) # pārvērst par virkni
b1 = b0 [1: 8] #truncate pirmais bits
drukāt ("binārais numurs:", b1)
# Iestatiet pikseļus uz mirgošanas!
# iestatiet bināro skaitli
h diapazonā (0, 7): f = (h+1), ja (b1 [h] == "1"): set_pixel (f, r1, g1, b1) # print ("bit", h, " ir 1, pikseļi ", f) cits: set_pixel (f, r0, g0, b0) # print (" nulle ")
# Iestatiet indikatora pikseļu
ja (vz == 1): set_pixel (0, 64, 0, 0) # sarkans pozitīvām vērtībām elif (vz == 2): set_pixel (0, 0, 0, 64) # zils negatīvām vērtībām cits: set_pixel (0, 64, 0, 64) # purpursarkana, ja tā ir nulle
rādīt ()
# beigas temp_blinkt ()
def hum_blinkt (bh):
# tas ņem mitruma vērtību un parāda to kā bināru skaitli mirgošanas laikā!
skaidrs ()
# krāsa un “1” pikseļu intensitāte: dzeltena
r1 = 64 g1 = 64 b1 = 0
#krāsa un 0 pikseļu intensitāte:
r0 = 5 g0 = 5 b0 = 0
# Noapaļojiet un pārveidojiet par veselu skaitli
r = apaļš (bh)
# pārveidot par absolūtu, 7 ciparu bināru skaitli i = abs (r) #print (i)
i1 = i + 128 #, jo i dod 8 ciparu bināro skaitli, kas sākas ar 1
# drukāt (i1)
b = "{0: b}". formāts (i1)
# drukāt (b)
b0 = str (b)
b1 = b0 [1: 8] #truncate pirmais bits
drukāt ("binārais numurs:", b1)
# Iestatiet pikseļus uz mirgošanas!
# iestatiet bināro skaitli uz pikseļiem
h diapazonā (0, 7): f = (h+1), ja (b1 [h] == "1"): set_pixel (f, r1, g1, b1) else: # izslēgt līdz tukšām gaismas diodēm set_pixel (f, r0, g0, b0) # izslēgt tukšas gaismas diodes
# Iestatiet indikatora pikseļu
set_pixel (0, 0, 64, 0) # zaļš mitrumam
rādīt ()
# hum_blinkt () beigas ()
set_clear_on_exit ()
# Datu nolasīšana no RuuviTag
mac = 'EC: 6D: 59: 6D: 01: 1C' # Mainiet uz savas ierīces mac adresi
drukāt ("Sākt")
sensors = RuuviTagSensor (mac)
kamēr taisnība:
dati = sensors.update ()
line_sen = str.format ('Sensors - {0}', mac)
line_tem = str.format ('Temperatūra: {0} C', dati ['temperatūra']) line_hum = str.format ('Mitrums: {0} %', dati ['mitrums']) line_pre = str.format ('Spiediens: {0}', dati ['spiediens'])
drukāt ()
# displeja temperatūra mirgo! ba = str.format ('{0}', dati ['temperatūra']) bt = pludiņš (ba) print (bt, "° C") temp_blinkt (bt) print ()
time.sleep (10) # displeja temperatūra 10 sekundes
# mirgo displeja mitrums!
bg = str.format ('{0}', dati ['mitrums']) bh = pludiņš (bg) print (bh, " %") hum_blinkt (bh) print ()
# Notīriet ekrānu un izdrukājiet sensora datus ekrānā
os.system ('skaidrs') print ('Lai izietu, nospiediet Ctrl+C. / n / n') print (str (datetime.now ())) print (line_sen) print (line_tem) print (line_hum) print (line_pre) drukāt ('\ n / n / r …….')
# Pagaidiet dažas sekundes un sāciet no jauna
izmēģināt: time.sleep (8), izņemot tastatūruInterrupt: # Nospiežot taustiņu kombināciju Ctrl+C, cilpas izpilde tiek pārtraukta drukāt ('Exit') clear () show () break
Ieteicams:
Bezkontakta infrasarkanais termometrs: 8 soļi (ar attēliem)
Bezkontakta infrasarkanais termometrs: Mans vietējais Veselības departaments sazinājās ar mani, jo viņiem bija nepieciešams veids, kā katru dienu izsekot sava darbinieka veselības temperatūrai 2020. gada Covid-19 krīzes laikā. Parastie IR termometri sāka pietrūkt
Arduino lāzera infrasarkanais termometrs: 7 soļi (ar attēliem)
Arduino lāzera infrasarkanais termometrs: Šajā projektā es jums parādīšu, kā izveidot digitālo lāzera infrasarkano termometru ar pielāgotu 3D drukātu korpusu
DIY istabas termometrs, izmantojot OLED moduli: 7 soļi (ar attēliem)
DIY istabas termometrs, izmantojot OLED moduli: Mēs uzzinām, kā izveidot istabas termometru, izmantojot DS18B20 sensoru un OLED moduli. Mēs izmantojam Piksey Pico kā galveno dēli, bet skice ir saderīga arī ar Arduino UNO un Nano plāksnēm, lai jūs varētu arī tās izmantot
Arduino vairogs no vecām krievu VFD caurulēm: pulkstenis, termometrs, voltu mērītājs : 21 soļi (ar attēliem)
Arduino vairogs no vecām krievu VFD caurulēm: pulkstenis, termometrs, voltu mērītājs …: šī projekta pabeigšana prasīja gandrīz pusgadu. Es nevaru aprakstīt, cik daudz darba tika ieguldīts šajā projektā. Šī projekta īstenošana vienatnē prasītu mani mūžīgi, tāpēc man bija palīdzība no draugiem. Šeit jūs varat redzēt mūsu darbu, kas apkopots vienā ļoti garā instrukcijā
Arduino balstīts bezkontakta infrasarkanais termometrs - Uz IR balstīts termometrs, izmantojot Arduino: 4 soļi
Arduino balstīts bezkontakta infrasarkanais termometrs | Uz IR balstīts termometrs, izmantojot Arduino: Sveiki puiši, šajā instrukcijā mēs izgatavosim bezkontakta termometru, izmantojot arduino. Tā kā dažreiz šķidruma/cietās vielas temperatūra ir pārāk augsta vai zema, un tad ir grūti ar to sazināties un izlasīt temperatūra tādā situācijā