Orodha ya maudhui:
Video: RuuviTag na PiZero W na Blinkt! kipima joto cha Bluetooth Beacon: Hatua 3 (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:52
Hii inaelezea njia ya kusoma data ya joto na unyevu kutoka kwa RuuviTag ukitumia Bluetooth na Raspberry Pi Zero W na kuonyesha maadili kwa nambari za binary kwenye blom ya Pimoroni! pHAT. Au kuiweka fupi: jinsi ya kujenga hali ya sanaa na kipimajoto kidogo cha neva.
RuuviTag ni beacon ya sensa ya chanzo ya wazi inayokuja na joto / unyevu / shinikizo na sensorer za kupendeza, lakini pia inaweza kuwa kama taa ya karibu ya Eddystone ™ / iBeacon. Ulikuwa mradi wa Kickstarter uliofanikiwa sana na nilipata yangu wiki chache zilizopita. Kuna Github iliyo na programu ya chatu ya kusoma RuuviTag kwa kutumia rasiberi, na nimetumia moja ya mifano yao, na nyongeza zingine.
Raspberry Pi Zero W ndiye mwanachama wa hivi karibuni wa familia ya RPi, haswa Pi Zero na Bluetooth na WLAN imeongezwa.
Kupepesa macho! pHAT kutoka Pimoroni kimsingi ni ukanda wa LED nane za RBG zilizosanidiwa kama HAT kwa Raspberry Pi. Ni rahisi sana kutumia na inakuja na maktaba ya chatu. Wazo lilikuwa kusoma data kutoka kwa RuuviTag na kuionyesha kwa kutumia blinkt! Kofia. Thamani zinaonyeshwa kama nambari za kibinadamu kwa kutumia 7 za LED, wakati ile nane inatumika kuonyesha ikiwa unyevu au joto (+ / - / 0) maadili yanaonyeshwa.
Hatua ya 1: Kuanzisha Mfumo
Kuweka mfumo ni rahisi: - Washa RuuviTag (toleo la sensa ya joto ya RuuviTag).
- Weka RPi Zero W yako, RPi3, au RPi nyingine yoyote iliyo na uwezo wa bluetooth iliyoongezwa, kufuata maagizo kwenye www.raspberrypi.org.
- Weka blinkt! Kofia kwenye RPi (wakati iko mbali).
- Sakinisha blinkt! na programu ya RuuviTag, kama inavyoonyeshwa kwenye kurasa zinazolingana za GitHub.
- Sasa lazima utambue anwani ya MAC ya RuuviTag yako
- nakili programu ya Python iliyoambatanishwa, ifungue na IDLE kwa Python 3
- badilisha anwani ya MAC ya RuuviTag iwe yako, kisha uhifadhi na uendesha programu hiyo.
- jisikie huru kurekebisha na kuboresha programu. Programu inakuja kama ilivyo, kutumiwa kwa hatari yako mwenyewe, hakuna deni zinazochukuliwa kwa uharibifu wowote.
Hatua ya 2: Kifaa na Programu
Kama ilivyoelezwa hapo juu, wazo lilikuwa kujenga mfumo rahisi na wa bei rahisi kusoma data kutoka kwa beacon na kuonyesha maadili ya nambari kwenye blinkt! Kofia, au mkanda sawa wa LED.
Viwango vya viwango vya joto vinavyopimwa na mfumo msingi wa RPi katika hali nyingi itakuwa mahali fulani kati ya - 50 ° C na + 80 ° C, kwa unyevu kati ya 0 na 100%. Kwa hivyo onyesho ambalo linaweza kutoa maadili kutoka -100 hadi +100 litatosha kwa matumizi mengi. Nambari za desimali ndogo kama 128 zinaweza kuonyeshwa kama nambari za binary zilizo na bits 7 (au LEDs). Kwa hivyo mpango huchukua viwango vya joto na unyevu kutoka kwa RuuviTag kama nambari za "kuelea" na kuzibadilisha kuwa nambari za binary, ambazo zinaonyeshwa kwenye blinkt!.
Kama hatua ya kwanza, nambari imezungukwa, ikichanganuliwa ikiwa chanya, hasi au sifuri, kisha hubadilishwa kuwa nambari nzuri kwa kutumia "abs". Kisha nambari ya desimali inabadilishwa kuwa nambari ya binary ya tarakimu 7, kimsingi kamba ya 0s na 1s, ambayo inachambuliwa na kuonyeshwa kwenye saizi 7 za mwisho za blinkt!.
Kwa maadili ya joto pikseli ya kwanza inaonyesha ikiwa thamani ni chanya (nyekundu), sifuri (magenta) au hasi (bluu). Kuonyesha maadili ya unyevu imewekwa kijani. Ili kurahisisha ubaguzi kati ya maadili ya joto na unyevu saizi za binary zimewekwa nyeupe kwa joto na manjano kwa unyevu. Ili kuongeza uhalali wa nambari za kibinadamu, pikseli "0" hazizimwi kabisa, lakini badala yake zimewekwa dhaifu sana kuliko hali ya "1". Kama kupepesa macho! saizi ni veery mkali, unaweza kuweka mwangaza wa jumla kubadilisha parameter "mkali"
Programu inaonyesha maadili na sehemu za mchakato pia kwenye skrini. Kwa kuongeza utapata maagizo kadhaa ya kuchapisha yaliyonyamazishwa (#). Niliwaacha ndani, kwani unaweza kupata msaada wa kuelewa mchakato ikiwa hautajadiliwa.
Thamani zinaweza pia kuhifadhiwa kwenye faili ya kumbukumbu.
Hatua ya 3: Msimbo wa Programu
Nambari hiyo ilitatuliwa kidogo na kuboreshwa. Sasa unaweza kupata toleo la 3 (20_03_2017).
Programu hii imekusudiwa kusoma joto, unyevu na viwango vya shinikizo huunda RuuviTag "na kuonyesha viwango vya joto na unyevu kama nambari za binary kwenye blinkt ya Pimorini! Kofia. Inategemea mfano wa print_to_screen.py kutoka maktaba ya ruuvitag huko github. "Inahitaji Pi Zero W, Pi 3 au RPi nyingine yoyote iliyo na vifaa vya Bluetooth na maktaba zote muhimu."
muda wa kuagiza
kuagiza os kutoka wakati wa kuingiza wakati wa kuingilia
kutoka ruuvitag_sensor.ruuvi kuagiza RuuviTagSensor
kutoka blinkt kuagiza set_clear_on_exit, set_pixel, wazi, onyesha
def temp_blinkt (bt):
# utaratibu huu unachukua joto na kuionyesha kama nambari ya binary kwenye blinkt!
wazi ()
# rangi na ukubwa wa saizi "1": nyeupe
r1 = 64 g1 = 64 b1 = 64
# rangi na ukubwa wa saizi "0": nyeupe
r0 = 5 g0 = 5 b0 = 5
# Mzunguko na ubadilishe kuwa nambari kamili
r = pande zote (bt)
# vz inawakilisha ishara ya algebraic kwa pixel ya kiashiria
ikiwa (r> 0): vz = 1 # elif elif (r <0): vz = 2 # hasi nyingine: vz = 0 # zero # print (vz) i = abs (r) #print (i)
# badilisha kuwa nambari kamili ya nambari 7 ya binary
i1 = i + 128 # kwa maana napata nambari ya binary yenye tarakimu 8 kuanzia 1 # chapa (i1)
b = "{0: b}". fomati (i1) # badili kuwa ya binary
# kuchapisha (b)
b0 = str (b) # badilisha kuwa kamba
b1 = b0 [1: 8] # truncate kwanza kidogo
chapa ("nambari ya binary:", b1)
# Weka saizi kwenye blinkt!
# weka nambari ya binary
kwa h katika masafa (0, 7): f = (h + 1) ikiwa (b1 [h] == "1"): set_pixel (f, r1, g1, b1) # chapa ("bit", h, " ni 1, pixel ", f) mwingine: set_pixel (f, r0, g0, b0) # chapa (" nil ")
# Weka pikseli ya kiashiria
ikiwa (vz == 1): set_pixel (0, 64, 0, 0) # nyekundu kwa maadili mazuri elif (vz == 2): set_pixel (0, 0, 0, 64) # bluu kwa nambari hasi nyingine: set_pixel ((0, 64, 0, 64) # magenta ikiwa sifuri
onyesha ()
# mwisho wa temp_blinkt ()
def hum_blinkt (bh):
# hii inachukua thamani ya unyevu na kuionyesha kama nambari ya binary kwenye blinkt!
wazi ()
# rangi na ukubwa wa saizi "1": manjano
r1 = 64 g1 = 64 b1 = 0
# rangi na ukubwa wa saizi "0":
r0 = 5 g0 = 5 b0 = 0
# Mzunguko na ubadilishe kuwa nambari kamili
r = pande zote (bh)
# badilisha kuwa nambari kamili ya nambari 7 ya binary i = abs (r) #print (i)
i1 = i + 128 # kwa maana ninatoa nambari ya binary yenye tarakimu 8 kuanzia 1
# kuchapisha (i1)
b = "{0: b}". fomati (i1)
# kuchapisha (b)
b0 = str (b)
b1 = b0 [1: 8] # truncate kwanza kidogo
chapa ("nambari ya binary:", b1)
# Weka saizi kwenye blinkt!
# weka nambari ya binary kuwa saizi
kwa h katika masafa (0, 7): f = (h + 1) ikiwa (b1 [h] == "1"): set_pixel (f, r1, g1, b1) mwingine: # bubu kwa tupu za LED set_pixel (f, r0, g0, b0) # bubu kwa LED tupu
# Weka pikseli ya kiashiria
set_pixel (0, 0, 64, 0) # kijani kibichi kwa unyevu
onyesha ()
# mwisho wa hum_blinkt ()
seti_safisha_katika_kutoka ()
# Kusoma data kutoka RuuviTag
mac = 'EC: 6D: 59: 6D: 01: 1C' # Badilisha kwa anwani ya mac ya kifaa chako mwenyewe
chapisha ('Kuanzia')
sensor = RuuviTagSensor (mac)
wakati Kweli:
data = sensor.update ()
line_sen = str.format ('Sensor - {0}', mac)
line_tem = str.format ('Joto: {0} C', data ['joto']) line_hum = str.format ('Humidity: {0}%', data ['humidity']) line_pre = str.format ('Shinikizo: {0}', data ['shinikizo'])
chapisha ()
# joto la kuonyesha kwenye blinkt! ba = str.fomati ('{0}', data ['joto']) bt = kuelea (ba) kuchapisha (bt, "° C") temp_blinkt (bt) chapa ()
kulala (10) # joto la kuonyesha kwa sekunde 10
# onyesha unyevu kwenye blinkt!
bg = str.format ('{0}', data ['humidity']) bh = kuelea (bg) print (bh, "%") hum_blinkt (bh) print ()
# Futa skrini na uchapishe data ya sensa kwa skrini
mfumo. ('clear') chapa ('Bonyeza Ctrl + C kuacha. chapisha ('\ n / n / r …….')
# Subiri kwa sekunde chache na uanze tena
jaribu: saa. kulala (8) isipokuwa Kinanda Uingiliano
Ilipendekeza:
Tumia simu ya rununu kama kipima joto kisichoweza kuwasiliana / kipima joto cha kubebeka: Hatua 8 (na Picha)
Tumia simu ya rununu kama kipima joto kisichoweza kuwasiliana / kipima joto cha kubebeka: Kupima joto la mwili na wasio kuwasiliana / wasio na mawasiliano kama bunduki ya thermo. Niliunda mradi huu kwa sababu Thermo Gun sasa ni ghali sana, kwa hivyo lazima nipate mbadala wa kutengeneza DIY. Na kusudi ni kufanya na toleo la chini la bajeti.SuppliesMLX90614Ardu
Kipima joto na Rangi ya Jamaa inayohusiana na Joto kwenye 2 "Onyesho la TFT na Sensorer Nyingi: Hatua 5
Kipima joto na Rangi ya Jamaa inayohusiana na Joto kwenye 2 "Onyesho la TFT na Sensorer Nyingi: Nimefanya onyesho kuonyesha vipimo vya sensorer kadhaa za joto. Jambo la kupendeza ni kwamba rangi ya maadili hubadilika na joto: > 75 digrii Celcius = RED > 60 > 75 = CHANGAMOTO > 40 < 60 = MANJANO > 30 < 40
Wijeti ya Joto la Joto / Kipima joto cha Nyumbani: Hatua 7
Widget ya Joto la Joto / Kipima joto cha Nyumbani: kipimajoto kidogo na kizuri cha dijiti kutumia Dallas DS18B20 sensa ya dijiti na Arduino Pro Micro saa 3.3v. Kila kitu kimeundwa kutoshea sawasawa na kukatika mahali pake, hakuna screws au gundi inahitajika! Sio mengi kwake lakini inaonekana kuwa nzuri
Joto -Joto La Kudhibitiwa la Joto La joto: Hatua 6
Joto -Joto La Kutabasamu La Kudhibiti Joto: ******************************************* ************************************************** +
Kipima muda cha kinywaji cha Frosty - Hakuna Bia za Joto zaidi au zilizohifadhiwa!: Hatua 24
Kipima muda cha kinywaji cha Frosty - Hakuna Bia Zaidi ya Joto au iliyohifadhiwa !: Kipima muda cha Kinywaji cha Frosty na Gadget Gangster ni kipima muda kukujulisha wakati kinywaji chako kimepozwa. Nunua kit! http://gadgetgangster.com/154Hakuna tena makopo ya joto au chupa zilizolipuka, mwambie Timer yako ya Kinywaji cha Frosty jinsi unavyopenda pombe yako na