Turinys:
Video: „RuuviTag“ir „PiZero W“bei „Blinkt“! „Bluetooth“švyturiu pagrįstas termometras: 3 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Šioje instrukcijoje aprašomas būdas skaityti temperatūros ir drėgmės duomenis iš „RuuviTag“naudojant „Bluetooth“su „Raspberry Pi Zero W“ir rodyti reikšmes dvejetainiais skaičiais „Pimoroni“mirksėjime! pHAT. Arba trumpai: kaip sukurti naujausią techniką ir šiek tiek nerūdijančio termometro.
„RuuviTag“yra atviro kodo jutiklio „Bluetooth“švyturys, pateikiamas kartu su temperatūros/drėgmės/slėgio ir pagreičio jutikliais, tačiau taip pat gali veikti kaip standartinis „Eddystone ™“/„iBeacon“artumo švyturys. Tai buvo labai sėkmingas „Kickstarter“projektas, kurį aš gavau prieš kelias savaites. Yra „Github“su „python“programine įranga, skirta „RuuviTag“skaityti naudojant avietę, ir aš panaudojau vieną iš jų pavyzdžių su kai kuriais papildymais.
„Raspberry Pi Zero W“yra naujausias „RPi“šeimos narys, iš esmės „Pi Zero“su „Bluetooth“ir WLAN.
Mirksėjimas! „Pimoroni“pHAT iš esmės yra aštuonių RBG šviesos diodų juostelė, sukonfigūruota kaip „Raspberry Pi“skrybėlė. Tai labai paprasta naudoti ir yra su „python“biblioteka. Idėja buvo perskaityti „RuuviTag“duomenis ir rodyti juos naudojant „blinkt“! KEPURĖ. Reikšmės rodomos kaip dvejetainiai skaičiai, naudojant 7 šviesos diodus, o aštuoni-naudojami parodyti, ar rodomos drėgmės ar temperatūros (+/-/0) vertės.
1 veiksmas: nustatykite sistemą
Sistemą nustatyti paprasta:- Įjunkite „RuuviTag“(„RuuviTag“temperatūros jutiklio versija).
- Nustatykite savo „RPi Zero W“, „RPi3“ar bet kurį kitą RPi su „Bluetooth“pajėgumu, vadovaudamiesi www.raspberrypi.org instrukcijomis.
- Padėk mirksnį! Kepurė ant RPi (išjungta).
- Įdiekite blinkt! ir „RuuviTag“programinė įranga, kaip nurodyta atitinkamuose „GitHub“puslapiuose.
- Dabar turite nustatyti savo „RuuviTag“MAC adresą
- nukopijuokite pridėtą „Python“programą, atidarykite ją naudodami „IDLE for Python 3“
- pakeiskite „RuuviTag“MAC adresą į savo, tada išsaugokite ir paleiskite programą.
- drąsiai keiskite ir optimizuokite programą. Programa pateikiama tokia, kokia yra, kad ja naudotumėtės savo rizika, neprisiimame jokios atsakomybės už bet kokią žalą.
2 veiksmas: įrenginys ir programa
Kaip minėta aukščiau, idėja buvo sukurti paprastą ir nebrangią sistemą, leidžiančią nuskaityti duomenis iš švyturėlio ir rodyti skaitines vertes „blinkte“! Kepurė arba panaši LED juostelė.
Temperatūros verčių diapazonas, kurį reikia išmatuoti naudojant RPi pagrįstą sistemą, daugeliu atvejų bus tarp - 50 ° C ir +80 ° C, o drėgmės - nuo 0 iki 100%. Taigi daugeliui programų pakaks ekrano, kuris gali pateikti reikšmes nuo -100 iki +100. Dešimtainiai skaičiai, mažesni nei 128, gali būti rodomi kaip dvejetainiai skaičiai su 7 bitais (arba šviesos diodais). Taigi programa paima temperatūros ir drėgmės vertes iš „RuuviTag“kaip „plūduriuojančius“skaičius ir paverčia juos dvejetainiais skaičiais, kurie tada rodomi mirksint !.
Pirmiausia skaičius suapvalinamas, išanalizuojamas teigiamas, neigiamas ar nulis, o tada paverčiamas teigiamu skaičiumi naudojant „abs“. Tada dešimtainis skaičius paverčiamas 7 skaitmenų dvejetainiu skaičiumi, iš esmės 0 ir 1 sekų eilute, kuri analizuojama ir rodoma paskutiniuose 7 mirksėjimo taškuose !.
Kalbant apie temperatūros vertes, pirmasis pikselis rodo, ar vertė yra teigiama (raudona), nulis (rausvai raudona), ar neigiama (mėlyna). Rodant drėgmės vertes, ji yra žalia. Siekiant supaprastinti temperatūros ir drėgmės verčių atskyrimą, dvejetainiai pikseliai yra nustatyti baltai temperatūrai, o geltonai - drėgmei. Siekiant pagerinti dvejetainių skaičių įskaitomumą, „0“pikseliai nėra visiškai išjungti, o yra nustatyti daug silpniau nei „1“būsenoje. Kaip mirksi! taškai yra labai ryškūs, galite nustatyti bendrą ryškumą, pakeisdami parametrą „ryškus“
Programa taip pat rodo vertes ir proceso dalis ekrane. Be to, rasite keletą nutildytų (#) spausdinimo instrukcijų. Aš juos palikau, nes jums gali būti naudinga suprasti procesą, jei nėra nutildytų.
Reikšmės taip pat gali būti saugomos žurnalo faile.
3 žingsnis: programos kodas
Kodas buvo šiek tiek derinamas ir optimizuotas. Dabar galite rasti 3 versiją (20_03_2017).
„Ši programa skirta skaityti„ RuuviTag “temperatūros, drėgmės ir slėgio reikšmes“ir parodyti temperatūros ir drėgmės vertes kaip dvejetainius skaičius „Pimorini“mirksėjime! KEPURĖ. '' '' Jis pagrįstas print_to_screen.py pavyzdžiu iš ruuvitag bibliotekos github. '' Reikalingas „Pi Zero W“, „Pi 3“ar bet kuris kitas „Bluetooth“įrengtas RPi ir visos reikalingos bibliotekos. “
importo laikas
importuoti operacines sistemas iš datos laiko importuoti datų laiką
iš ruuvitag_sensor.ruuvi importuoti RuuviTagSensor
iš „blinkt“importo set_clear_on_exit, set_pixel, clear, show
def temp_blinkt (bt):
# ši rutina nustato temperatūros vertę ir parodo ją kaip dvejetainį skaičių mirksint!
aišku ()
# spalva ir „1“pikselių intensyvumas: balta
r1 = 64 g1 = 64 b1 = 64
#„0“pikselių spalva ir intensyvumas: balta
r0 = 5 g0 = 5 b0 = 5
# Apvalinkite ir paverskite sveiku skaičiumi
r = apvalus (bt)
# vz žymi algebrinį indikatoriaus pikselio ženklą
jei (r> 0): vz = 1 # teigiamas elifas (r <0): vz = 2 # neigiamas kitas: vz = 0 # nulis # spausdinimas (vz) i = abs (r) #print (i)
# paversti absoliučiu 7 skaitmenų dvejetainiu skaičiumi
i1 = i + 128 #, kai i gaunamas 8 skaitmenų dvejetainis skaičius, prasidedantis 1 # print (i1)
b = "{0: b}". formatas (i1) # konvertuoti į dvejetainį
# spausdinimas (b)
b0 = str (b) # konvertuoti į eilutę
b1 = b0 [1: 8] #truncate pirmasis bitas
spausdinti ("dvejetainis numeris:", b1)
# Nustatykite taškus „blinkt“!
# nustatykite dvejetainį skaičių
h diapazone (0, 7): f = (h+1), jei (b1 [h] == "1"): set_pixel (f, r1, g1, b1) # print ("bit", h, " yra 1, pikselis ", f) else: set_pixel (f, r0, g0, b0) # print (" nulis ")
# Nustatykite indikatoriaus pikselį
if (vz == 1): set_pixel (0, 64, 0, 0) # raudona teigiamoms reikšmėms elif (vz == 2): set_pixel (0, 0, 0, 64) # mėlyna, jei neigiamos vertės dar: set_pixel (0, 64, 0, 64) # rausvai raudona, jei nulis
Rodyti()
# pabaiga temp_blinkt ()
def hum_blinkt (bh):
# tai paima drėgmės vertę ir parodo ją kaip dvejetainį skaičių „blinkt“!
aišku ()
# spalva ir „1“pikselių intensyvumas: geltona
r1 = 64 g1 = 64 b1 = 0
#"0" pikselių spalva ir intensyvumas:
r0 = 5 g0 = 5 b0 = 0
# Apvalinkite ir paverskite sveiku skaičiumi
r = apvalus (bh)
# transformuoti į absoliutų, 7 skaitmenų dvejetainį skaičių i = abs (r) #print (i)
i1 = i + 128 #, nes i pateikia 8 skaitmenų dvejetainį skaičių, prasidedantį 1
# spausdinimas (i1)
b = "{0: b}". formatas (i1)
# spausdinimas (b)
b0 = str (b)
b1 = b0 [1: 8] #truncate pirmasis bitas
spausdinti ("dvejetainis numeris:", b1)
# Nustatykite taškus „blinkt“!
# nustatykite dvejetainį skaičių į pikselius
h diapazone (0, 7): f = (h+1), jei (b1 [h] == "1"): set_pixel (f, r1, g1, b1) else: # nutildyti iki tuščių šviesos diodų set_pixel (f, r0, g0, b0) # nutildykite tuščius šviesos diodus
# Nustatykite indikatoriaus tašką
set_pixel (0, 0, 64, 0) # žalia drėgmei
Rodyti()
# pabaiga hum_blinkt ()
set_clear_on_exit ()
# Duomenų skaitymas iš „RuuviTag“
mac = 'EC: 6D: 59: 6D: 01: 1C' # Pakeiskite savo įrenginio „mac“adresą
spausdinti („Pradėti“)
jutiklis = RuuviTagSensor (mac)
nors tiesa:
duomenys = sensor.update ()
line_sen = str.format („Jutiklis - {0}“, „Mac“)
line_tem = str.format ('Temperatūra: {0} C', duomenys ['temperatūra']) line_hum = str.format ('Drėgmė: {0} %', duomenys ['drėgmė']) line_pre = str.format ('Slėgis: {0}', duomenys ['slėgis'])
spausdinti ()
# ekrano temperatūra mirksi! ba = str.format ('{0}', duomenys ['temperatūra']) bt = plūdė (ba) spauda (bt, "° C") temp_blinkt (bt) print ()
time.sleep (10) # ekrano temperatūra 10 sekundžių
# mirksi ekrano drėgmė!
bg = str.format ('{0}', duomenys ['drėgmė']) bh = plūdė (bg) spauda (bh, " %") hum_blinkt (bh) print ()
# Išvalykite ekraną ir spausdinkite jutiklio duomenis į ekraną
os.system ('aiškus') print ('Norėdami išeiti, paspauskite Ctrl+C. / n / n') print (str (datetime.now ())) print (line_sen) print (line_tem) print (line_hum) print (line_pre) spausdinti ('\ n / n / r …….')
# Palaukite kelias sekundes ir pradėkite iš naujo
try: time.sleep (8), išskyrus klaviatūrąInterrupt: # Kai paspaudžiamas klavišas Ctrl+C, kol ciklas sustabdomas, spausdinimas („Išeiti“) clear () show () break
Rekomenduojamas:
Bekontaktis IR termometras: 8 žingsniai (su nuotraukomis)
Bekontaktis IR termometras: mano vietinis sveikatos departamentas susisiekė su manimi, nes jiems reikėjo būdo kasdien stebėti savo darbuotojo sveikatos kūno temperatūrą per „Covid-19“krizę 2020 m. Įprastų IR termometrų lentynoje pradėjo trūkti
„Arduino“lazerinis infraraudonųjų spindulių termometras: 7 žingsniai (su nuotraukomis)
„Arduino“lazerinis infraraudonųjų spindulių termometras: Šiame projekte aš jums parodysiu, kaip sukurti skaitmeninį lazerinį infraraudonųjų spindulių termometrą su pasirinktiniu 3D spausdinimo korpusu
„Pasidaryk pats“kambario termometras naudojant OLED modulį: 7 žingsniai (su nuotraukomis)
„Pasidaryk pats“kambario termometras naudojant OLED modulį: Mes sužinome, kaip sukurti kambario termometrą naudojant DS18B20 jutiklį ir OLED modulį. Mes naudojame „Piksey Pico“kaip pagrindinę plokštę, tačiau eskizas taip pat suderinamas su „Arduino UNO“ir „Nano“plokštėmis, kad galėtumėte jas naudoti
Arduino pagrindu veikiantis bekontaktis infraraudonųjų spindulių termometras - IR termometras naudojant „Arduino“: 4 žingsniai
„Arduino“nekontaktinis infraraudonųjų spindulių termometras | Infraraudonųjų spindulių termometras naudojant „Arduino“: Sveiki vaikinai, šioje instrukcijoje mes pagaminsime bekontaktį termometrą naudodami arduino. Kadangi kartais skysčio/kietos medžiagos temperatūra yra per aukšta arba per žema, tada sunku su juo susisiekti ir perskaityti Temperatūra tada tokioje aplinkoje
„Picaxe“pagrįstas skaitmeninis termometras su maksimalia ir minimalia: 13 žingsnių
„Picaxe“pagrįstas skaitmeninis termometras su maks. Ir min.: (Palikite pranešimą, bet nebūkite per daug kritiškas, tai mano pirmasis pamokomas !!) Tai termometras, kurį padariau mūsų kemperiui, kad parodytų išorinę temperatūrą. Jis pagrįstas „Picaxe“lustu, nes jie yra pigūs ir lengvai naudojami. Jei tai skirta