Sisukord:
Video: RuuviTag ja PiZero W ja Blinkt! Bluetoothi majakatepõhine termomeeter: 3 sammu (koos piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Selles juhendis kirjeldatakse lähenemisviisi temperatuuri ja niiskuse andmete lugemiseks RuuviTagilt Bluetoothi abil koos Raspberry Pi Zero W -ga ja väärtuste kuvamiseks binaararvudena Pimoroni vilkumisel! pHAT. Või lühidalt öeldes: kuidas ehitada uusim tehnika ja natuke nohiklik termomeeter.
RuuviTag on avatud lähtekoodiga Bluetoothi majakas, mis on varustatud temperatuuri/niiskuse/rõhu ja kiirendusanduritega, kuid võib toimida ka tavalise Eddystone ™/iBeacon lähedusmajakana. See oli väga edukas Kickstarteri projekt ja ma sain oma paar nädalat tagasi. RuutTagi lugemiseks vaarika abil on olemas pythonitarkvaraga Github ja ma olen kasutanud ühte nende näidet koos mõningate täiendustega.
Raspberry Pi Zero W on RPi perekonna viimane liige, põhimõtteliselt Pi Zero, millele on lisatud Bluetooth ja WLAN.
Silmapilk! Pimoroni pHAT on põhimõtteliselt kaheksa RBG LED -i riba, mis on konfigureeritud Raspberry Pi mütsiks. Seda on väga lihtne kasutada ja see sisaldab pythoni kogu. Idee oli lugeda andmed RuuviTagilt ja kuvada see blinkti abil! MÜTS. Väärtused kuvatakse binaararvudena, kasutades 7 LED-i, kaheksat aga näitamaks, kas kuvatakse niiskuse või temperatuuri (+/-/0) väärtusi.
Samm: süsteemi seadistamine
Süsteemi seadistamine on lihtne:- Lülitage RuuviTag (RuuviTag temperatuurianduri versioon) sisse.
- Seadistage oma RPi Zero W, RPi3 või mõni muu RPi, millele on lisatud Bluetoothi võimsus, järgides veebisaidil www.raspberrypi.org toodud juhiseid.
- Asetage pilk! MÜTS RPi peal (väljas olles).
- Paigaldage blinkt! ja RuuviTag tarkvara, nagu on näidatud vastavatel GitHubi lehtedel.
- Nüüd peate tuvastama oma RuuviTagi MAC -aadressi
- kopeerige lisatud Pythoni programm, avage see IDLE Python 3 jaoks
- muutke RuuviTagi MAC -aadress omaks, seejärel salvestage ja käivitage programm.
- saate programmi muuta ja optimeerida. Programm tuleb sellisel kujul, et seda tuleks kasutada omal vastutusel, kahjude eest ei võeta vastutust.
Samm: seade ja programm
Nagu eespool mainitud, oli idee konstrueerida lihtne ja odav süsteem majakalt andmete lugemiseks ja vilkumise numbriliste väärtuste kuvamiseks! MÜTS või sarnane LED -riba.
RPi -põhise süsteemiga mõõdetava temperatuuri väärtuste vahemik jääb enamikul juhtudel vahemikku –50 ° C kuni +80 ° C, niiskuse korral vahemikus 0–100%. Seega piisab enamiku rakenduste jaoks kuvarist, mis võib anda väärtusi vahemikus -100 kuni +100. Kümnendnumbreid, mis on väiksemad kui 128, saab kuvada 7 -bitiste (või LED -ide) kahendarvudena. Niisiis võtab programm RuuviTagilt temperatuuri ja niiskuse väärtused "ujukina" ja teisendab need kahendarvudeks, mis seejärel kuvatakse blinktil !.
Esimese sammuna ümardatakse number, analüüsitakse, kas see on positiivne, negatiivne või null, ja teisendatakse seejärel abs. Seejärel teisendatakse kümnendarv 7-kohaliseks binaararvuks, mis on põhimõtteliselt 0 ja 1 s string, mida analüüsitakse ja kuvatakse blinkti viimase 7 piksli kohta!
Temperatuuri väärtuste puhul näitab esimene piksel, kas väärtus on positiivne (punane), null (magenta) või negatiivne (sinine). Niiskuse väärtuste kuvamisel on see seatud roheliseks. Temperatuuri ja niiskuse väärtuste eristamise lihtsustamiseks on binaarpikslid seatud valgeks temperatuuriks ja kollaseks niiskuse jaoks. Kahendarvude loetavuse parandamiseks ei lülitata "0" piksleid täielikult välja, vaid on seatud palju nõrgemaks kui olekus "1". Nagu vilgub! pikslid on väga heledad, saate määrata üldise heleduse, muutes parameetrit "ere"
Programm kuvab ekraanil ka väärtused ja protsessi osad. Lisaks leiate mitmeid vaigistatud (#) printimisjuhiseid. Jätsin need sisse, sest vaigistuse tühistamise korral võivad need aidata teil protsessi mõista.
Väärtused võidakse salvestada ka logifaili.
Samm: programmi kood
Kood oli natuke silutud ja optimeeritud. Nüüd võite leida versiooni 3 (20_03_2017).
'See programm on ette nähtud RuuviTag' i temperatuuri, niiskuse ja rõhu väärtuste lugemiseks '' ning temperatuuri ja niiskuse väärtuste kuvamiseks binaararvudena Pimorini vilkumisel! MÜTS. '' '' See põhineb näitel print_to_screen.py ruuvitagi raamatukogust aadressil github. '' Vajalik on Pi Zero W, Pi 3 või mõni muu Bluetoothiga varustatud RPi ja kõik vajalikud teegid. '
impordi aeg
impordi osad kuupäevast ja ajast impordivad datetime
ruuvitag_sensor.ruuvi import RuuviTagSensor
alates blinkt import set_clear_on_exit, set_pixel, selge, näita
def temp_blinkt (bt):
# see rutiin võtab temperatuuri väärtuse ja kuvab selle binaarsel numbril!
selge ()
# värv ja intensiivsus "1" pikslit: valge
r1 = 64 g1 = 64 b1 = 64
#värv ja "0" pikslite intensiivsus: valge
r0 = 5 g0 = 5 b0 = 5
# Ümardage ja teisendage täisarvuks
r = ümmargune (bt)
# vz tähistab indikaatorpiksli algebralist märki
kui (r> 0): vz = 1 # positiivne elif (r <0): vz = 2 # negatiivne else: vz = 0 # null # print (vz) i = abs (r) #print (i)
# teisendage absoluutseks, 7-kohaliseks kahendarvuks
i1 = i + 128 # i jaoks annab 8-kohalise kahendarvu, mis algab 1 # print (i1)
b = "{0: b}". format (i1) # teisenda binaarseks
# trükk (b)
b0 = str (b) # teisenda stringiks
b1 = b0 [1: 8] #truncate esimene bitt
print ("binaararv:", b1)
# Määra pikslid vilkuma!
# määrake kahendarv
h vahemikus (0, 7): f = (h+1) kui (b1 [h] == "1"): set_pixel (f, r1, g1, b1) # print ("bit", h, " on 1, piksel ", f) else: set_pixel (f, r0, g0, b0) # print (" null ")
# Määra indikaatorpiksel
kui (vz == 1): set_pixel (0, 64, 0, 0) # punane positiivsete väärtuste jaoks elif (vz == 2): set_pixel (0, 0, 0, 64) # sinine negatiivsete väärtuste jaoks muu: set_pixel (0, 64, 0, 64) # magenta kui null
näita ()
# temp_blinkt () lõpp
def hum_blinkt (bh):
# see võtab niiskuse väärtuse ja kuvab selle binaarsel numbril blinktil!
selge ()
# värv ja intensiivsus "1" pikslit: kollane
r1 = 64 g1 = 64 b1 = 0
#värv ja "0" piksli intensiivsus:
r0 = 5 g0 = 5 b0 = 0
# Ümardage ja teisendage täisarvuks
r = ümmargune (bh)
# teisendada absoluutseks, 7-kohaline kahendarv i = abs (r) #print (i)
i1 = i + 128 # i jaoks annab 8-kohalise kahendnumbri, mis algab 1-ga
# print (i1)
b = "{0: b}". vorming (i1)
# trükk (b)
b0 = str (b)
b1 = b0 [1: 8] #truncate esimene bitt
print ("binaararv:", b1)
# Määra pikslid vilkuma!
# määrake binaararv piksliteks
h vahemikus (0, 7): f = (h+1) kui (b1 [h] == "1"): set_pixel (f, r1, g1, b1) else: # vaigista tühjade LED -ide jaoks set_pixel (f, r0, g0, b0) # vaigista tühjadeks LED -ideks
# Määra indikaatorpiksel
set_pixel (0, 0, 64, 0) # niiskuse jaoks roheline
näita ()
# hum_blinkt () lõpp
set_clear_on_exit ()
# Andmete lugemine RuuviTagist
mac = 'EC: 6D: 59: 6D: 01: 1C' # Muuda oma seadme mac-aadressiks
print ('Alustamine')
sensor = RuuviTagSensor (mac)
kuigi tõsi:
andmed = sensor.update ()
line_sen = str.format ('Andur - {0}', mac)
line_tem = str.format ('Temperatuur: {0} C', andmed ['temperatuur']) line_hum = str.format ('Niiskus: {0} %', andmed ['niiskus']) line_pre = str.format ('Rõhk: {0}', andmed ['rõhk'])
print ()
# kuva temperatuur vilgub! ba = str.format ('{0}', andmed ['temperatuur']) bt = float (ba) print (bt, "° C") temp_blinkt (bt) print ()
time.sleep (10) # kuvamistemperatuur 10 sekundiks
# vilgub ekraani niiskus!
bg = str.format ('{0}', andmed ['niiskus']) bh = float (bg) print (bh, " %") hum_blinkt (bh) print ()
# Tühjendage ekraan ja printige ekraanile anduri andmed
os.system ('selge') print ('Väljumiseks vajutage Ctrl+C. / n / n') print (str (datetime.now ())) print (line_sen) print (line_tem) print (line_hum) print (line_pre) print ('\ n / n / r …….')
# Oodake mõni sekund ja alustage uuesti
try: time.sleep (8), välja arvatud klaviatuur
Soovitan:
20 WATT 3D -PRINTIGA BLUETOOTHI KÕNEL: 9 sammu (koos piltidega)
20 WATTS 3D -PRINTIGA BLUETOOTHI KÕNEL: Tere sõbrad, tere tulemast minu esimesesse Instructables väljaandesse. Siin on paar minu valmistatud joodavat bluetooth kõlarit. Need on mõlemad 20 vatti võimsad kõlarid koos passiivsete radiaatoritega. Mõlemad kõlarid on varustatud piesoelektrilise tweetriga, nii et
Bluetoothi "õhu" rõngastipp: 7 sammu (koos piltidega)
Bluetooth "On Air" rõngastipp: töötasin mitteseotud projektiga, mis kasutab Bluetoothi, pidin katsetama sidet, nii et ehitasin ühe Arduino testiahela. Valgusti sisaldab kogu elektroonikat, mikrokontrollerit ja akut, mida saab USB kaudu laadida. See kasutab
Arduino -põhine mittekontaktne infrapuna -termomeeter - IR -põhine termomeeter Arduino abil: 4 sammu
Arduino -põhine mittekontaktne infrapuna -termomeeter | IR -põhine termomeeter Arduino abil: Tere, selles juhendis olevad poisid, teeme arduino abil kontaktivaba termomeetri. Kuna mõnikord on vedeliku/tahke aine temperatuur liiga kõrge või madal, siis on sellega raske kontakti saada ja seda lugeda temperatuur sellises olukorras
ESP32 Bluetoothi õpetus - ESP32 sisseehitatud Bluetoothi kasutamine: 5 sammu
ESP32 Bluetoothi õpetus | ESP32 sisseehitatud Bluetoothi kasutamine: Tere poisid Kuna ESP32 pardal on WiFi ja amp; Nii Bluetooth kui ka meie enamasti projektide puhul kasutame tavaliselt ainult Wifi -d, me ei kasuta Bluetoothi. Nii et selles juhendis näitan, kui lihtne on kasutada ESP32 Bluetoothi & Teie põhiprojektide jaoks
Bluetoothi termomeeter: 8 sammu
Bluetooth -termomeeter: see juhend annab üksikasjad lihtsa kahe kanaliga termomeetri valmistamiseks, kasutades 100K termistorisonde, Bluetooth -moodulit ja nutitelefoni. Bluetooth -moodul on LightBlue Bean, mille eesmärk on lihtsustada Bluetooth Low Energy rakenduste arendamist u