Sisällysluettelo:
Video: RuuviTag ja PiZero W ja Blinkt! Bluetooth -majakkapohjainen lämpömittari: 3 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Tässä ohjeessa kuvataan lähestymistapa lämpö- ja kosteustietojen lukemiseen RuuviTagista Bluetooth -yhteydellä Raspberry Pi Zero W -laitteella ja arvojen näyttäminen binäärilukuna Pimoroni -vilkkumalla! pHAT tai lyhyesti sanottuna: kuinka rakentaa uusinta tekniikkaa ja vähän nörtti lämpömittari.
RuuviTag on avoimen lähdekoodin Bluetooth -majakka, jossa on lämpötila-/kosteus-/paine- ja kiihtyvyysanturit, mutta se voi toimia myös vakiona Eddystone ™/iBeacon -läheisyysmajakkana. Se oli erittäin onnistunut Kickstarter -projekti ja sain omani muutama viikko sitten. Siellä on python -ohjelmistolla varustettu Github, joka lukee RuuviTagin vadelmalla, ja olen käyttänyt yhtä heidän esimerkeistään, joitain lisäyksiä.
Raspberry Pi Zero W on RPi -perheen viimeisin jäsen, pohjimmiltaan Pi Zero, jossa on Bluetooth ja WLAN.
Vilkkuu! Pimoronin pHAT on pohjimmiltaan kahdeksan RBG -LED -valon nauha, jotka on konfiguroitu HAT: ksi Raspberry Pi: lle. Se on erittäin helppokäyttöinen ja sisältää python -kirjaston. Ajatuksena oli lukea RuuviTagin tiedot ja näyttää ne käyttämällä blinktiä! HATTU. Arvot näytetään binäärilukuina käyttämällä seitsemää LEDiä, kun taas kahdeksaa arvoa käytetään ilmaisemaan, näytetäänkö kosteus- tai lämpötilaarvot (+/-/0).
Vaihe 1: Järjestelmän asennus
Järjestelmän käyttöönotto on helppoa:- Kytke RuuviTag (RuuviTag-lämpötila-anturiversio) päälle.
- Määritä RPi Zero W, RPi3 tai muu RPi, johon on lisätty Bluetooth -kapasiteetti, noudattamalla ohjeita osoitteessa www.raspberrypi.org.
- Aseta blinkt! HAT RPi: ssä (pois päältä).
- Asenna blinkt! ja RuuviTag -ohjelmisto, kuten vastaavilla GitHub -sivuilla on ilmoitettu.
- Sinun on nyt tunnistettava RuuviTagin MAC -osoite
- kopioi liitteenä oleva Python -ohjelma, avaa se IDLE for Python 3 -ohjelmalla
- muuta RuuviTagin MAC -osoite omaksi, tallenna ja suorita ohjelma.
- voit vapaasti muokata ja optimoida ohjelmaa. Ohjelma tulee sellaisenaan, ja sitä käytetään omalla vastuullasi, eikä vastuuta mistään vahingoista.
Vaihe 2: Laite ja ohjelma
Kuten edellä mainittiin, ajatuksena oli rakentaa yksinkertainen ja edullinen järjestelmä tietojen lukemiseksi majakalta ja numeeristen arvojen näyttämiseksi vilkkumassa! HAT tai vastaava LED -nauha.
RPi -pohjaisella järjestelmällä mitattavan lämpötilan arvoalue on useimmissa tapauksissa välillä - 50 ° C ja +80 ° C, kosteuden ollessa 0 - 100%. Näyttö, joka voi antaa arvoja -100 -+100, riittää useimpiin sovelluksiin. Desimaaliluvut, jotka ovat pienempiä kuin 128, voidaan näyttää binäärilukuina, joissa on 7 bittiä (tai LED -valoja). Joten ohjelma ottaa RuuviTagin lämpötila- ja kosteusarvot "kelluviksi" numeroiksi ja muuntaa ne binääriluvuiksi, jotka näytetään sitten vilkkuvaksi !.
Ensimmäisessä vaiheessa luku pyöristetään, analysoidaan, onko positiivinen, negatiivinen tai nolla, ja muunnetaan sitten positiiviseksi lukuun käyttämällä "abs". Sitten desimaaliluku muunnetaan 7-numeroiseksi binääriluvuksi, joka on pohjimmiltaan 0s ja 1s merkkijono, joka analysoidaan ja näytetään blinktin viimeisillä 7 pikselillä !.
Lämpötila -arvojen ensimmäinen pikseli osoittaa, onko arvo positiivinen (punainen), nolla (magenta) vai negatiivinen (sininen). Kosteusarvot näytetään vihreänä. Lämpötila- ja kosteusarvojen erottamisen yksinkertaistamiseksi binaariset pikselit on asetettu valkoisiksi lämpötilalle ja keltaisille kosteudelle. Binaarilukujen luettavuuden parantamiseksi "0" pikseliä ei sammuteta kokonaan, vaan sen sijaan asetetaan paljon heikommaksi kuin "1" -tilassa. Kuten vilkkuva! pikselit ovat erittäin kirkkaita, voit asettaa yleisen kirkkauden muuttamalla parametria "kirkas"
Ohjelma näyttää arvot ja prosessin osat myös näytöllä. Lisäksi löydät useita mykistettyjä (#) tulostusohjeita. Jätin ne sisään, koska niistä saattaa olla apua prosessin ymmärtämisessä, jos mykistys on poistettu.
Arvot voidaan myös tallentaa lokitiedostoon.
Vaihe 3: Ohjelmakoodi
Koodia on hieman virheenkorjattu ja optimoitu. Löydät nyt version 3 (20_03_2017).
'' Tämä ohjelma on tarkoitettu lukemaan RuuviTagin lämpötila-, kosteus- ja painearvot '' ja näyttämään lämpötila- ja kosteusarvot binäärilukuina Pimorini -vilkkumassa! HATTU. '' '' Se perustuu githubin ruuvitag -kirjaston print_to_screen.py esimerkkiin. '' Vaatii Pi Zero W: n, Pi 3: n tai minkä tahansa muun Bluetoothilla varustetun RPi: n ja kaikki tarvittavat kirjastot asennettuna. ''
tuonnin aika
tuoda osia päivämäärästä tuoda päivämäärä
ruuvitag_sensor.ruuvi tuoda RuuviTagSensor
alkaen blinkt tuonti set_clear_on_exit, set_pixel, clear, show
def temp_blinkt (bt):
# tämä rutiini ottaa lämpötila -arvon ja näyttää sen binäärilukuna blinktissä!
asia selvä ()
# "1" pikselin väri ja voimakkuus: valkoinen
r1 = 64 g1 = 64 b1 = 64
#0 pikselin väri ja voimakkuus: valkoinen
r0 = 5 g0 = 5 b0 = 5
# Pyöristä ja muunna kokonaislukuksi
r = pyöreä (bt)
# vz edustaa indikaattoripikselin algebrallista merkkiä
jos (r> 0): vz = 1 # positiivinen elif (r <0): vz = 2 # negatiivinen muu: vz = 0 # nolla # tulosta (vz) i = abs (r) #print (i)
# muuntaa absoluuttiseksi, 7-numeroiseksi binääriluvuksi
i1 = i + 128 # for i johtaa 8-numeroiseen binaarilukuun, joka alkaa 1 # printillä (i1)
b = "{0: b}". format (i1) # muuntaa binääriseksi
# print (b)
b0 = str (b) # muuntaa merkkijonoksi
b1 = b0 [1: 8] #kierrä ensimmäinen bitti
tulosta ("binääriluku:", b1)
# Aseta pikselit blinktiin!
# aseta binääriluku
h: lle alueella (0, 7): f = (h+1) jos (b1 [h] == "1"): set_pixel (f, r1, g1, b1) # print ("bit", h, " on 1, pikseli ", f) else: set_pixel (f, r0, g0, b0) # print (" nolla ")
# Aseta ilmaisinpikseli
if (vz == 1): set_pixel (0, 64, 0, 0) # red positiivisille arvoille elif (vz == 2): set_pixel (0, 0, 0, 64) # blue negatiivisille arvoille else: set_pixel (0, 64, 0, 64) # magenta, jos nolla
näytä()
# end_tem_blinkt ()
def hum_blinkt (bh):
# tämä ottaa kosteusarvon ja näyttää sen binäärilukuna blinktissä!
asia selvä()
# väri ja 1 pikselin voimakkuus: keltainen
r1 = 64 g1 = 64 b1 = 0
#0 pikselin väri ja voimakkuus:
r0 = 5 g0 = 5 b0 = 0
# Pyöristä ja muunna kokonaislukuksi
r = pyöreä (bh)
# muunnos absoluuttiseksi, 7-numeroiseksi binääriluvuksi i = abs (r) #print (i)
i1 = i + 128 # for i antaa 8-numeroisen binaariluvun, joka alkaa yhdellä
# print (i1)
b = "{0: b}". muoto (i1)
# print (b)
b0 = str (b)
b1 = b0 [1: 8] #kierrä ensimmäinen bitti
tulosta ("binääriluku:", b1)
# Aseta pikselit blinktiin!
# aseta binääriluku pikseliksi
h alueella (0, 7): f = (h+1) jos (b1 [h] == "1"): set_pixel (f, r1, g1, b1) else: # mykistys tyhjiin LEDeihin set_pixel (f, r0, g0, b0) # mykistää tyhjät LEDit
# Aseta ilmaisinpikseli
set_pixel (0, 0, 64, 0) # vihreä kosteuden vuoksi
näytä()
# hum_blinktin loppu ()
set_clear_on_exit ()
# Tietojen lukeminen RuuviTagista
mac = 'EC: 6D: 59: 6D: 01: 1C' # Vaihda laitteen mac-osoitteeseen
tulosta ('Aloitus')
anturi = RuuviTagSensor (mac)
vaikka totta:
data = sensor.update ()
line_sen = str.format ('Anturi - {0}', mac)
line_tem = str.format ('Lämpötila: {0} C', data ['lämpötila']) line_hum = str.format ('Kosteus: {0} %', data ['kosteus']) line_pre = str.format ('Paine: {0}', tiedot ['paine'])
Tulosta()
# näytön lämpötila vilkkuu! ba = str.format ('{0}', data ['lämpötila']) bt = float (ba) print (bt, "° C") temp_blinkt (bt) print ()
time.sleep (10) # näytön lämpötila 10 sekunnin ajan
# näytön kosteus vilkkuu!
bg = str.format ('{0}', data ['kosteus']) bh = float (bg) print (bh, " %") hum_blinkt (bh) print ()
# Tyhjennä näyttö ja tulosta anturitiedot näytölle
os.system ('clear') print ('Lopeta painamalla Ctrl+C. / n / n') print (str (datetime.now ())) print (line_sen) print (line_tem) print (line_hum) print (line_pre) tulosta ('\ n / n / r …….')
# Odota muutama sekunti ja aloita alusta
try: time.sleep (8) paitsi näppäimistö
Suositeltava:
Kilpi Arduinolle vanhoilta venäläisiltä VFD -putkilta: kello, lämpömittari, jännitemittari : 21 vaihetta (kuvilla)
Kilpi Arduinolle vanhoilta venäläisiltä VFD -putkilta: kello, lämpömittari, jännitemittari …: Tämä projekti kesti lähes puoli vuotta. En voi kuvata kuinka paljon työtä tähän projektiin meni. Tämän projektin tekeminen yksin vie minut ikuisesti, joten sain apua ystäviltäni. Täältä näet työmme koottuina yhteen erittäin pitkään ohjeeseen
Digitaalinen RPi LED -lämpömittari: 6 vaihetta (kuvilla)
Digitaalinen RPi LED -lämpömittari: Raspbian OSLisätietoja siitä, miten tein tämän digitaalisen LED -lämpömittarin, jossa on Raspberry Pi Zero W, LED -nauha, OLED -näyttö ja mukautettu piirilevy.Se kiertää automaattisesti kaupunkiluettelon ja näyttää OLED -lämpötilan näyttö ja LEDit. Mutta
Kuinka tehdä mukautettu DIY -lämpömittari pylväskaavion ja Atmega328p: avulla: 3 vaihetta (kuvilla)
Kuinka tehdä mukautettu DIY -lämpötilamittari pylväskaavion ja Atmega328p: avulla: Tässä viestissä näytän sinulle, kuinka tehdä lämpötilamittari pylväskaavion ja amp; Atmega328p. Viesti sisältää kaikki yksityiskohdat, kuten piirikaavion, piirilevyjen valmistuksen, koodauksen, kokoonpanon ja amp; Testaus. Olen myös lisännyt videon, joka sisältää kaikki
Arduino From Scratch - Digitaalinen lämpömittari: 7 vaihetta (kuvilla)
Arduino From Scratch - Digitaalinen lämpömittari: Olen rakastanut projektien tekemistä Arduinosin kanssa, mutta 30 dollaria kappaleelta projektisi voivat tulla kalliiksi. Joten haluan näyttää sinulle, kuinka voit tehdä oman Arduinon tyhjästä ja säästää rahaa tekemällä sen. Tee oma Arduino noin 8 dollarilla. Tätä opettavaista varten
Arduino DIY analoginen lämpömittari: 7 vaihetta (kuvilla)
Arduino DIY analoginen lämpömittari: Rakkaat ystävät, tervetuloa toiseen opetusohjelmaan! Tänään opimme käyttämään tätä analogista voltimittaria Arduinon kanssa ja saamaan sen näyttämään lämpötilan jännitteen sijasta. Kuten näette, tässä muunnetussa volttimittarissa voimme nähdä lämpötilan