Tartalomjegyzék:
Videó: RuuviTag és PiZero W és Blinkt! Bluetooth jelzőfényes hőmérő: 3 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Ez az útmutató leír egy olyan megközelítést, amely lehetővé teszi a hőmérséklet és páratartalom adatainak olvasását egy RuuviTag -ról Bluetooth -on Raspberry Pi Zero W segítségével, és az értékek bináris számokban való megjelenítését Pimoroni villogáson! pHAT. Vagy röviden: hogyan lehet a legkorszerűbb és egy kicsit ideges hőmérőt felépíteni.
A RuuviTag egy nyílt forráskódú Bluetooth -jelzőfény, amely hőmérséklet-, páratartalom-/nyomás- és gyorsulásérzékelőkkel érkezik, de működhet szabványos Eddystone ™/iBeacon közelségi jelzőfényként is. Ez egy nagyon sikeres Kickstarter projekt volt, és néhány hete megkaptam az enyémet. Van egy Github python szoftverrel a RuuviTag málna segítségével történő olvasásához, és az egyik példájukat használtam, néhány kiegészítéssel.
A Raspberry Pi Zero W az RPi család legújabb tagja, alapvetően egy Pi Zero, Bluetooth és WLAN hozzáadásával.
A pislogás! A Pimoroni pHAT alapvetően egy nyolc RBG LED -es csík, amely a Raspberry Pi HAT -jaként van konfigurálva. Nagyon könnyen használható, és python könyvtárral rendelkezik. Az ötlet az volt, hogy kiolvassa a RuuviTag adatait, és megjeleníti a blinkt segítségével! KALAP. Az értékek bináris számként jelennek meg a 7 LED segítségével, míg a nyolc egy jelzi, ha a páratartalom vagy a hőmérséklet (+/-/0) megjelennek.
1. lépés: A rendszer beállítása
A rendszer beállítása egyszerű:- Kapcsolja be a RuuviTag-ot (RuuviTag hőmérséklet-érzékelő verzió).
- Állítsa be az RPi Zero W, az RPi3 vagy bármely más, hozzáadott Bluetooth -kapacitással rendelkező RPi -t a www.raspberrypi.org oldalon található utasítások szerint.
- Helyezze a blinkt! Kalap az RPi -n (kikapcsolt állapotban).
- Telepítse a blinkt! és RuuviTag szoftver, a megfelelő GitHub oldalakon feltüntetett módon.
- Most be kell azonosítania a RuuviTag MAC -címét
- másolja a csatolt Python programot, nyissa meg az IDLE for Python 3 programmal
- módosítsa a RuuviTag MAC -címét a sajátjára, majd mentse és futtassa a programot.
- bátran módosítsa és optimalizálja a programot. A program úgy jön, ahogy van, saját felelősségére kell használni, semmilyen kárért nem vállalunk felelősséget.
2. lépés: Az eszköz és a program
Amint fentebb említettük, az ötlet egy egyszerű és olcsó rendszer felépítése volt, amely kiolvassa a jeladóból származó adatokat, és megjeleníti a villogó kijelzőn a számértékeket! Kalap, vagy hasonló LED szalag.
Az RPi -alapú rendszerrel mérhető hőmérséklet értéktartománya a legtöbb esetben -50 ° C és +80 ° C között, a páratartalom 0 és 100%között van. Tehát egy olyan kijelző, amely -100 és +100 közötti értékeket tud adni, elegendő lesz a legtöbb alkalmazáshoz. A 128 -nál kisebb decimális számok bináris számként jeleníthetők meg 7 bittel (vagy LED -ekkel). A program tehát a hőmérséklet- és páratartalom -értékeket a RuuviTag -ból "lebegő" számokká veszi, és bináris számokká alakítja át, amelyeket ezután a villogó jelzés jelenít meg.
Első lépésként a számot kerekítik, elemzik, ha pozitív, negatív vagy nulla, majd az "abs" segítségével pozitív számmá alakítják. Ezután a tizedes szám 7 számjegyű bináris számmá alakul át, alapvetően 0-s és 1-es karakterláncká, amelyet a blinkt utolsó 7 pixelén elemeznek és megjelenítenek.
A hőmérsékletértékeknél az első pixel jelzi, hogy az érték pozitív (piros), nulla (bíbor) vagy negatív (kék). A páratartalom értékek kijelzése zöldre van állítva. A hőmérséklet és a páratartalom közötti megkülönböztetés egyszerűsítése érdekében a bináris képpontok fehérre vannak állítva a hőmérsékletre, és sárgára a páratartalomra. A bináris számok olvashatóságának javítása érdekében a "0" képpontokat nem kapcsolják ki teljesen, hanem sokkal gyengébben vannak beállítva, mint az "1" állapotban. Ahogy villog! A képpontok nagyon fényesek, beállíthatja az általános fényerőt a "fényes" paraméter megváltoztatásával
A program a képernyőn megjeleníti a folyamat értékeit és részeit is. Ezen kívül számos elnémított (#) nyomtatási utasítást talál. Hagytam őket, mivel hasznos lehet számukra a folyamat megértésében, ha a némítás feloldása megtörténik.
Az értékek naplófájlban is tárolhatók.
3. lépés: Programkód
A kódot kissé hibakeresettük és optimalizáltuk. Most megtalálhatja a 3. verziót (20_03_2017).
'Ez a program a hőmérséklet, a páratartalom és a nyomásértékek RuuviTag -ból történő olvasására szolgál', és a hőmérséklet és a páratartalom értékét bináris számként jeleníti meg egy Pimorini villogón! KALAP. '' '' A print_to_screen.py példán alapul, a github ruuvitag könyvtárából. '' Pi Zero W, Pi 3 vagy bármely más, bluetooth -al felszerelt RPi szükséges, és minden szükséges könyvtár telepítve van. '
importálási idő
import os from datetime import datetime
ruuvitag_sensor.ruuvi import RuuviTagSensor
blinkt importból set_clear_on_exit, set_pixel, clear, show
def temp_blinkt (bt):
# ez a rutin felveszi a hőmérséklet értékét, és bináris számként jeleníti meg a blinkt -en!
egyértelmű ()
# "1" pixel színe és intenzitása: fehér
r1 = 64 g1 = 64 b1 = 64
#"0" pixel színe és intenzitása: fehér
r0 = 5 g0 = 5 b0 = 5
# Kerekítse és konvertálja egész számgá
r = kerek (bt)
# vz az indikátor pixel algebrai jelét jelenti
if (r> 0): vz = 1 # pozitív elif (r <0): vz = 2 # negatív else: vz = 0 # zero # print (vz) i = abs (r) #print (i)
# abszolút, 7 számjegyű bináris számmá alakítani
i1 = i + 128 # az i esetén 8 számjegyű bináris számot eredményez 1 # nyomtatással (i1)
b = "{0: b}". format (i1) # konvertálni binárisra
# nyomtatás (b)
b0 = str (b) # karakterlánccá konvertálás
b1 = b0 [1: 8] #futtassa az első bitet
print ("bináris szám:", b1)
# Állítsa be a képpontokat a villogásra!
# állítsa be a bináris számot
h esetén a (0, 7) tartományban: f = (h+1) if (b1 [h] == "1"): set_pixel (f, r1, g1, b1) # print ("bit", h, " 1, pixel ", f) else: set_pixel (f, r0, g0, b0) # print (" nulla ")
# Állítsa be az indikátor pixelt
if (vz == 1): set_pixel (0, 64, 0, 0) # piros pozitív értékek esetén elif (vz == 2): set_pixel (0, 0, 0, 64) # kék negatív értékek esetén else: set_pixel (0, 64, 0, 64) # bíbor, ha nulla
előadás()
# end of temp_blinkt ()
def hum_blinkt (bh):
# ez veszi a páratartalom értékét, és bináris számként jeleníti meg a blinkt -en!
egyértelmű()
# "1" pixel színe és intenzitása: sárga
r1 = 64 g1 = 64 b1 = 0
#0 pixel színe és intenzitása:
r0 = 5 g0 = 5 b0 = 0
# Kerekítse és alakítsa át egész számgá
r = kerek (bh)
# átalakítás abszolút, 7 számjegyű bináris számmal i = abs (r) #print (i)
i1 = i + 128 # az i esetén 8 számjegyű bináris számot ad, amely 1-gyel kezdődik
# print (i1)
b = "{0: b}". formátum (i1)
# nyomtatás (b)
b0 = str (b)
b1 = b0 [1: 8] #futtassa az első bitet
print ("bináris szám:", b1)
# Állítsa be a képpontokat a villogásra!
# állítsa a bináris számot pixelre
h esetén a (0, 7) tartományban: f = (h+1) if (b1 [h] == "1"): set_pixel (f, r1, g1, b1) else: # némítás üres LED -ekre set_pixel (f, r0, g0, b0) # némítsa el az üres LED -eket
# Állítsa be az indikátor pixelt
set_pixel (0, 0, 64, 0) # zöld a páratartalomhoz
előadás()
# end of hum_blinkt ()
set_clear_on_exit ()
# Adatok olvasása a RuuviTag -ból
mac = 'EC: 6D: 59: 6D: 01: 1C' # Váltson saját készüléke mac-címére
nyomtatás („Kezdés”)
érzékelő = RuuviTagSensor (mac)
míg igaz:
data = sensor.update ()
line_sen = str.format ('Érzékelő - {0}', mac)
line_tem = str.format ('Hőmérséklet: {0} C', adatok ['hőmérséklet']) line_hum = str.format ('Páratartalom: {0} %', adatok ['páratartalom']) line_pre = str.format ('Nyomás: {0}', adatok ['nyomás'])
nyomtatás()
# kijelző hőmérséklet villog! ba = str.format ('{0}', data ['temperature']) bt = float (ba) print (bt, "Â ° C") temp_blinkt (bt) print ()
time.sleep (10) # kijelző hőmérséklet 10 másodpercig
# villogó kijelzőn a páratartalom!
bg = str.format ('{0}', data ['páratartalom']) bh = float (bg) print (bh, " %") hum_blinkt (bh) print ()
# Törölje a képernyőt, és nyomtassa ki az érzékelő adatait a képernyőre
os.system ('clear') print ('Kilépéshez nyomja le a Ctrl+C billentyűket. / n / n') print (str (datetime.now ())) print (line_sen) print (line_tem) print (line_hum) print (line_pre) print ('\ n / n / r …….')
# Várjon néhány másodpercet, és kezdje elölről
try: time.sleep (8), kivéve a KeyboardInterrupt: # A Ctrl+C billentyűkombináció lenyomása közben a loop végrehajtása leáll nyomtatás ('Kilépés') clear () show () break
Ajánlott:
Érintésmentes infravörös hőmérő: 8 lépés (képekkel)
Érintkezés nélküli infravörös hőmérő: A helyi Egészségügyi Minisztérium kapcsolatba lépett velem, mert szükségük volt arra, hogy napi szinten nyomon kövessék alkalmazottaik testhőmérsékletét a 2020-as Covid-19 válság idején. A normál, a polcon lévő infravörös hőmérők kezdtek szűkösek lenni
Arduino lézeres infravörös hőmérő: 7 lépés (képekkel)
Arduino lézeres infravörös hőmérő: Ebben a projektben megmutatom, hogyan lehet digitális lézeres infravörös hőmérőt készíteni egyedi 3D nyomtatott burkolattal
Arduino infravörös hőmérő pisztoly MDF tok: 4 lépés (képekkel)
Arduino infravörös hőmérő pisztoly MDF tok: Ez a projekt az Arduino infravörös hőmérő készítésére szolgál, az áramkört az MDF tokba helyezik, mint egy orvosi infravörös hőmérőt a piacon. A GY-906 érzékelő infravörös hőmérőt érintés nélkül mérik, ez mérhet
Pajzs Arduino számára a régi orosz VFD csövekből: óra, hőmérő, feszültségmérő : 21 lépés (képekkel)
Pajzs Arduino számára a régi orosz VFD csövekből: óra, hőmérő, feszültségmérő …: Ez a projekt csaknem fél évig tartott. Nem tudom leírni, mennyi munka volt ebben a projektben. Ha egyedül csinálnám ezt a projektet, örökké tartana, így segítséget kaptam a barátaimtól. Itt láthatja munkánkat egy nagyon hosszú utasításban összeállítva
Arduino alapú érintésmentes infravörös hőmérő - IR alapú hőmérő Arduino használatával: 4 lépés
Arduino alapú érintésmentes infravörös hőmérő | IR alapú hőmérő Arduino használatával: Sziasztok, ebben az útmutatóban, érintésmentes hőmérőt készítünk arduino segítségével. Mivel néha a folyadék/szilárd anyag hőmérséklete túl magas vagy alacsony, majd nehéz kapcsolatba lépni vele és elolvasni ilyenkor a hőmérséklet