Kazalo:
Video: RuuviTag in PiZero W ter Blinkt! termometer na osnovi svetilnika Bluetooth: 3 koraki (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Ta navodila opisujejo pristop za branje podatkov o temperaturi in vlažnosti iz RuuviTaga z uporabo Bluetootha z Raspberry Pi Zero W in za prikaz vrednosti v binarnih številkah na Pimoronijevem utripanju! pHAT. Ali skratka: kako zgraditi najsodobnejšo tehnologijo in nekoliko nergač termometer.
RuuviTag je odprtokodni senzor bluetooth svetilnik, ki je opremljen s senzorji temperature/vlažnosti/tlaka in pospeška, lahko pa deluje tudi kot standardni svetilnik bližine Eddystone ™/iBeacon. To je bil zelo uspešen projekt Kickstarter in pred nekaj tedni sem ga dobil. Obstaja Github s programsko opremo python za branje RuuviTaga z malino in uporabil sem enega od njihovih primerov z nekaj dodatki.
Raspberry Pi Zero W je najnovejši član družine RPi, v bistvu Pi Zero z dodanimi Bluetooth in WLAN.
Trepetanje! pHAT iz Pimoronija je v bistvu trak osmih LED RBG, nastavljenih kot HAT za Raspberry Pi. Je zelo enostaven za uporabo in ima knjižnico python. Ideja je bila prebrati podatke iz RuuviTaga in jih prikazati z bliskavico! KOP. Vrednosti so prikazane kot binarne številke s pomočjo 7 LED, medtem ko se ena osem uporablja za prikaz, ali so prikazane vrednosti vlažnosti ali temperature (+/-/0).
1. korak: Nastavitev sistema
Nastavitev sistema je preprosta:- Vklopite RuuviTag (različica temperaturnega senzorja RuuviTag).
- Nastavite svoj RPi Zero W, RPi3 ali kateri koli drug RPi z dodano zmogljivostjo bluetooth, po navodilih na www.raspberrypi.org.
- Utripi! HAT na RPi (medtem ko je izklopljen).
- Namestite utripalec! in programsko opremo RuuviTag, kot je navedeno na ustreznih straneh GitHub.
- Zdaj morate identificirati naslov MAC svoje oznake RuuviTag
- kopirajte priloženi program Python, ga odprite z IDLE za Python 3
- spremenite naslov MAC oznake RuuviTag v svojega, nato shranite in zaženite program.
- program lahko spremenite in optimizirate. Program je tak, kakršen je, za uporabo na lastno odgovornost, ne prevzemamo odgovornosti za morebitno škodo.
2. korak: Naprava in program
Kot je bilo že omenjeno, je bila ideja zgraditi preprost in poceni sistem za branje podatkov iz svetilnika in prikaz številskih vrednosti na utripu! HAT ali podoben LED trak.
Območje vrednosti temperature za merjenje s sistemom, ki temelji na RPi, bo v večini primerov nekje med - 50 ° C in +80 ° C, za vlažnost med 0 in 100%. Tako bo zaslon, ki lahko daje vrednosti od -100 do +100, dovolj za večino aplikacij. Decimalna števila, manjša kot 128, se lahko prikažejo kot binarna števila s 7 bitovi (ali LED). Tako program vzame vrednosti temperature in vlažnosti iz RuuviTaga kot "plavajoče" številke in jih pretvori v binarne številke, ki se nato prikažejo na utripanju !.
Kot prvi korak se število zaokroži, analizira, če je pozitivno, negativno ali nič, nato pa se z "abs" pretvori v pozitivno število. Nato se decimalno število pretvori v 7-mestno binarno število, v bistvu niz 0 in 1, ki se analizira in prikaže na zadnjih 7 pikslih utripa !.
Za temperaturne vrednosti prva slikovna pika označuje, ali je vrednost pozitivna (rdeča), nič (magenta) ali negativna (modra). Prikaz vrednosti vlažnosti je nastavljen na zeleno. Za poenostavitev razlikovanja med vrednostmi temperature in vlažnosti so binarni piksli nastavljeni na belo za temperaturo in rumeno za vlažnost. Da bi izboljšali čitljivost binarnih števil, se piksla "0" ne izklopijo popolnoma, temveč so nastavljene precej šibkeje kot v stanju "1". Kot utripanje! slikovne pike so zelo svetle, lahko nastavite splošno svetlost s spreminjanjem parametra "svetlo"
Program prikaže vrednosti in dele procesa tudi na zaslonu. Poleg tega boste našli več utišanih (#) navodil za tiskanje. Pustil sem jih, saj vam bodo morda v pomoč pri razumevanju postopka, če ni vklopljen.
Vrednosti so lahko shranjene tudi v dnevniški datoteki.
3. korak: programska koda
Koda je bila nekoliko odpravljena in optimizirana. Zdaj lahko najdete različico 3 (20_03_2017).
"Ta program je namenjen branju vrednosti temperature, vlažnosti in tlaka iz RuuviTaga" "in prikaz vrednosti temperature in vlažnosti kot binarnih številk na utripu Pimorini! KOP. '' '' Temelji na primeru print_to_screen.py iz knjižnice ruuvitag v githubu. '' Zahteva Pi Zero W, Pi 3 ali kateri koli drug RPi, opremljen z bluetoothom in vsemi potrebnimi knjižnicami. '
čas uvoza
uvoz OS iz datetime uvoz datetime
iz ruuvitag_sensor.ruuvi uvoz RuuviTagSensor
from blinkt import set_clear_on_exit, set_pixel, clear, show
def temp_blinkt (bt):
# ta rutina vzame vrednost temperature in jo prikaže kot binarno številko na blinkt!
jasno ()
# barva in intenzivnost slikovnih pik "1": bela
r1 = 64 g1 = 64 b1 = 64
#barva in intenzivnost "0" slikovnih pik: bela
r0 = 5 g0 = 5 b0 = 5
# Zaokroži in pretvori v celo število
r = okroglo (bt)
# vz predstavlja algebrski znak za slikovno piko indikatorja
if (r> 0): vz = 1 # pozitiven elif (r <0): vz = 2 # negativen else: vz = 0 # zero # print (vz) i = abs (r) #print (i)
# pretvori v absolutno, 7-mestno binarno število
i1 = i + 128 # za i povzroči 8-mestno binarno število, ki se začne z 1 # print (i1)
b = "{0: b}". format (i1) # pretvori v binarno datoteko
# natisni (b)
b0 = str (b) # pretvori v niz
b1 = b0 [1: 8] #skrajšaj prvi bit
print ("binarna številka:", b1)
# Nastavite slikovne pike na blinkt!
# nastavite binarno številko
za h v razponu (0, 7): f = (h+1) if (b1 [h] == "1"): set_pixel (f, r1, g1, b1) # print ("bit", h, " je 1, pixel ", f) else: set_pixel (f, r0, g0, b0) # print (" nič ")
# Nastavite slikovno piko indikatorja
if (vz == 1): set_pixel (0, 64, 0, 0) # rdeča za pozitivne vrednosti elif (vz == 2): set_pixel (0, 0, 0, 64) # modra za negativne vrednosti else: set_pixel (0, 64, 0, 64) # magenta, če je nič
show ()
# konec temp_blinkt ()
def hum_blinkt (bh):
# to vzame vrednost vlažnosti in jo prikaže kot binarno številko na blinkt!
jasno ()
# barva in intenzivnost slikovnih pik "1": rumena
r1 = 64 g1 = 64 b1 = 0
#barva in intenzivnost "0" slikovnih pik:
r0 = 5 g0 = 5 b0 = 0
# Zaokrožite in preoblikujte v celo število
r = okroglo (bh)
# pretvori v absolutno, 7-mestno binarno število i = abs (r) #print (i)
i1 = i + 128 # za i poda 8-mestno binarno število, ki se začne z 1
# natisni (i1)
b = "{0: b}". format (i1)
# natisni (b)
b0 = str (b)
b1 = b0 [1: 8] #obrežite prvi bit
print ("binarna številka:", b1)
# Nastavite slikovne pike na blinkt!
# nastavite binarno število na slikovne pike
za h v območju (0, 7): f = (h+1) if (b1 [h] == "1"): set_pixel (f, r1, g1, b1) else: # utišanje na prazne LED set_pixel (f, r0, g0, b0) # utišanje na prazne LED
# Nastavite slikovno piko indikatorja
set_pixel (0, 0, 64, 0) # zelena za vlažnost
pokaži ()
# konec hum_blinkt ()
set_clear_on_exit ()
# Branje podatkov iz oznake RuuviTag
mac = 'EC: 6D: 59: 6D: 01: 1C' # Spremenite mac-naslov svoje naprave
print ('Začetek')
sensor = RuuviTagSensor (mac)
medtem ko je res:
data = sensor.update ()
line_sen = str.format ('Senzor - {0}', mac)
line_tem = str.format ('Temperatura: {0} C', podatki ['temperatura']) line_hum = str.format ('Vlažnost: {0} %', podatki ['vlažnost']) line_pre = str.format ('Tlak: {0}', podatki ['tlak'])
print ()
# temperatura prikaza pri utripanju! ba = str.format ('{0}', data ['temperature']) bt = float (ba) print (bt, "Â ° C") temp_blinkt (bt) print ()
time.sleep (10) # temperatura prikaza 10 sekund
# prikaz vlažnosti pri utripanju!
bg = str.format ('{0}', data ['vlažnost']) bh = float (bg) print (bh, " %") hum_blinkt (bh) print ()
# Počistite zaslon in natisnite podatke senzorja na zaslon
os.system ('clear') print ('Pritisnite Ctrl+C za izhod. / n / n') print (str (datetime.now ())) print (line_sen) print (line_tem) print (line_hum) print (line_pre) print ('\ n / n / r …….')
# Počakajte nekaj sekund in začnite znova
poskusite: time.sleep (8) razen KeyboardInterrupt: # Ko pritisnete Ctrl+C, se izvedba zanke while ustavi. print ('Exit') clear () show () break
Priporočena:
Biometrični glasovalni stroj na osnovi prstnih odtisov z uporabo Arduina: 4 koraki (s slikami)
Biometrični glasovalni stroj na osnovi prstnih odtisov z uporabo Arduina: Vsi se zavedamo obstoječega elektronskega glasovalnega stroja, kjer mora uporabnik pritisniti gumb za oddajo glasu. Toda ti stroji so bili že od začetka kritizirani zaradi kaljenja. Zato vlada načrtuje uvedbo prstnih odtisov
Uporabite pametni telefon kot brezkontaktni termometer / prenosni termometer: 8 korakov (s slikami)
Uporabite pametni telefon kot brezkontaktni termometer / prenosni termometer: Merjenje telesne temperature z brezkontaktnim / brezkontaktnim kot termo pištola. Ta projekt sem ustvaril, ker je Thermo Gun zdaj zelo drag, zato moram dobiti alternativo za izdelavo DIY. Namen je izdelati z nizko proračunsko različico
Brezkontaktni infrardeči termometer na osnovi Arduino - IR termometer na osnovi Arduina: 4 koraki
Brezkontaktni infrardeči termometer na osnovi Arduino | IR -termometer z uporabo Arduina: Pozdravljeni fantje, v tem navodilu bomo naredili brezkontaktni termometer z arduinom. Ker je včasih temperatura tekočine/trdne snovi previsoka ali prenizka, potem pa je težko priti v stik z njo in prebrati temperatura v tem prizorju
Vremenski monitor na osnovi ESP32 M5Stack M5stick C z DHT11 - Spremljajte indeks temperature in vlažnosti ter toplote na M5stick-C z DHT11: 6 korakov
Vremenski monitor na osnovi ESP32 M5Stack M5stick C z DHT11 | Spremljajte indeks temperaturne vlažnosti in toplote na M5stick-C z DHT11: Pozdravljeni fantje, v tem navodilu se bomo naučili povezovati temperaturni senzor DHT11 z m5stick-C (razvojna plošča m5stack) in ga prikazati na zaslonu m5stick-C. Tako bomo v tem vodiču prebrali temperaturo, vlažnost & toploto
Digitalni termometer na osnovi Picaxe z maks. In min .: 13 korakov
Digitalni termometer na osnovi Picaxe z Max in Min: (Pustite sporočilo, vendar ne bodite preveč kritični, to je moj prvi pouk !!) To je termometer, ki sem ga naredil za naše avtodom, ki prikazuje zunanjo temperaturo. Temelji na čipu Picaxe, saj so poceni in enostavni za uporabo. Če je to za