Sisukord:
- Samm: kasutatud materjalid
- 2. samm: kokkupanek
- Samm: seadme kasutamine
- Samm: BME280 skript
- Samm: BMP280 skript
Video: Inky_pHAT ilmajaam: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Siinkohal tahaksin kirjeldada väga lihtsat ja kompaktset Raspberry Pi Zero-põhist ilmajaama, mis kuvab BME280 temperatuuri/rõhu/niiskuse anduri abil mõõdetud väärtused Pimoroni Inky pHAT e-paberi/e-tindi ekraanil. Andurite ja pHAT -i ühendamiseks Pi GPIO -ga paigutasin GPIO ja ekraani vahele Pimorini Pico HAT häkkeri, millel oli kaks naissoost päist. Seadet on kasutatud mitme anduri kinnitamiseks, seega on siin kirjeldatud BME280 versioon vaid näide.
Erinevalt LCD-ekraanidest hoiavad e-tindiekraanid pilti ka siis, kui toide on välja lülitatud. Seetõttu on need väga hea lahendus, kui soovite kuvada aeg -ajalt uuendatavat teavet, eriti madala energiatarbega seadmete ehitamiseks. Inky pHAT ühevärvilise/musta versiooni peamine eelis on see, et ekraani värskendamine võtab kolmevärviliste versioonide jaoks vajaliku kümne kuni viieteistkümne sekundi asemel vaid umbes ühe sekundi. Vaata filmi.
Adafruit'i Blinka raamatukogu võimaldab Raspberry Pi -l käivitada Circuit Pythoni koodi ja Adafruit pakub Circuit Pythoni proove mitmesuguste andurite jaoks. Üksikasjaliku kirjelduse Blinka ja Circuit Pythoni koodide installimise kohta leiate Adafruit'i veebisaidilt. Minu testitud raamatukogud (BMP280, BME280, TSL2591, TCS34785, VEML7065,…) töötasid väga hästi, samas kui mõnedes näidiskoodides esines väiksemaid probleeme.
BME280 on andur temperatuuri, niiskuse ja õhurõhu mõõtmiseks. BMP280 purunemisi on saadaval paljudelt müüjatelt, sealhulgas Adafruitilt, kuid ma kasutasin siin odavat hiina versiooni. Pange tähele, et need kasutavad erinevaid i2c aadresse (Adafruit: 0x77, teised: 0x76).
Katkestus on Pi -ga ühendatud i2c abil ning anduri lugemine on raamatukogu ja näidiskoodi abil väga lihtne.
Samm: kasutatud materjalid
Vaarika Pi Zero, millele on lisatud isane päis. Kuid iga Raspberry Pi versioon sobiks.
Pimoroni Inky pHAT, must/ühevärviline versioon, 25 € | 22 £ | 20US $, Pimoronis.
Pimoroni Pico HAT häkker, 2,50 € | 2 £, millele on kinnitatud kaks naissoost päist, üks neist pikemate nööpnõeltega. Olen koostanud kaks erinevat versiooni, vt allpool olevat kirjeldust.
BME280 purunemine, AZ Kohaletoimetamine Amazon.de kaudu @ 7,50 €, päis lisatud.
Pikenduskaablid
Valikuline:
USB -toiteplokk mobiilirakenduste jaoks
Pi või seadme korpus (pole siin näidatud)
2. samm: kokkupanek
- Jootke naissoost päised Pico HAT häkkerile. Enne jootmist kontrollige õiget suunda. Olen koostanud sellest kaks versiooni, erinevatel eesmärkidel. Üks, kus allapoole suunatud võimendi päis on paigutatud esireale ja tavaline, üles/näoga päis tagareale ning versioon, mille tagurpidi on allapoole suunatud võimenduspäis ja esireas täisnurgaga naissoost päis. Vaadake pilte. Esimene versioon võimaldab andureid ja kaableid väga hõlpsalt kinnitada ja vahetada, samas kui sissepoole suunatud päisega versioon võimaldab Pi, anduri ja Inky pHAT -i korpusesse sulgeda. Teise võimalusena võite joota GPIO -d ja andurit ühendavad kaablid otse Pico HAT häkkeriga ja/või joota Pico HAT häkker otse GPIO tihvtidega. Igal juhul kasutage minimaalset nõutavat jootet.
- Vajadusel jootke päis anduri külge.
- Asetage muudetud Pico HAT häkkerüksus Pi -le, seejärel lisage Inky pHAT. Vajadusel sisestage mõni tugi, nt. Vahtplokk või eraldiseisvad tindid pHAT jaoks.
- Ühendage kaablid ja andur, kasutades 3V, GND, SDA ja SCL porte. Mitte kõik andurid ei talu 5 V pinget, seega kontrollige enne nende ühendamist 5 V portidega.
- Installige Blinka raamatukogu, seejärel installige Adafruitist Circuit Python BME280 raamatukogu.
- Installige Pimoroni Inky pHAT raamatukogu.
- Installige hilisemas etapis kirjeldatud ja sellele juhendile lisatud Pythoni koodi näide.
- Käivitage kood.
Samm: seadme kasutamine
Seadme kasutamiseks on kaks võimalust.
Siin näidatud kood käivitatakse lisatud ekraani abil, kuid saab seejärel ilma selleta töötada.
Koodi väikeste muudatustega võite kasutada crontabi mõõtmiste tegemiseks kindlaksmääratud ajahetkedel. See võimaldaks veelgi vähendada energiatarbimist. Suurepäraseid kirjeldusi crontabi kasutamise kohta leiate mujalt.
Koos toiteplokiga saate ehitada mobiilseadme ja kasutada seda olude mõõtmiseks seest või väljast, külmkapis, saunas, õhuniiskus, veinikelder, lennuk jne.
Zero W kasutamisel võite mitte ainult kuvada väärtusi ekraanil, vaid ka saata need WLAN -i kaudu serverisse või veebisaidile, nagu on kirjeldatud mujal.
Samm: BME280 skript
Nagu varem mainitud, peate installima Adafruit Blinka ja Circuit Python BME280 raamatukogud ning Pimoroni Inky pHAT raamatukogu.
Kood lähtestab esmalt anduri ja tindipõhise pHAT, seejärel loeb andurilt temperatuuri, rõhu ja niiskuse väärtused ning kuvab need ekraanil ja e-tindi ekraanil. Kasutades käsku time.sleep (), tehakse mõõtmisi iga minuti järel. Reguleerige vastavalt vajadusele. Keeleparameetri määramisega saate muuta tulemuste kuvamiseks kasutatavat keelt.
Inky pHAT e-ink ekraani kasutades ehitate esmalt pildi mällu kuvatavaks, enne kui see lõpuks ekraanile teisaldatakse, kasutades käsku inkyphat.show (). Inky pHAT raamatukogu lihtsustab protsessi, pakkudes käske teksti, joonte, ristkülikute, ringide joonistamiseks ja vormindamiseks või taustpiltide kasutamiseks.
Lisaks mõõdetud väärtustele kuvatakse ka mõõtmise aeg.
Pidage meeles, et nii skript kui ka teegid on kirjutatud Python 3 -s, nii et avage ja käivitage Py3 IDLE või samaväärse programmi abil.
# Skript bme280 temperatuuri/rõhu/niiskuse andurile (mitte -Adafruuti versioon) # ja tindiga pHAT - must versioon # # versioon 1. detsember 2018, Dr H # # Vajab Adafruit Blinka ja Circuit Python BME280 raamatukogusid # ja Pimoroni tinti pHAT -teegi importimise aeg importimise kuupäeva importimise parda importimine busio aadressilt adafruit_bme280 import Adafruit_BME280 alates adafruit_bme280 import Adafruit_BME280_I2C import inkyphat import sys PIL -ist importimine ImageFont inkyphat.set_colour ('must') # mustvalge tindi jaoks 180 ° font1 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 27) # Valige standardne font font2 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 19) # Valige standardsed fondiandmed # lang = "DE" # määrake keele parameeter, vaikimisi ("") -> english lang = "ET" i2c = busio. I2C (board. SCL, board. SDA) bmp = Adafruit_BME280_I2C (i2c, address = 0x76) # vaikimisi i2c -aadress (Adafruit BMP280 jaoks) 0x77 (vaikimisi), 0x76 Hiina katkestuse korral) # seatud võrdlusrõhk # nõutav al tiitli arvutamine, palun korrigeerige. Standardväärtus 1013,25 hPa # käsitsi sisestamine: #reference_hPa = sisend ("Sisesta võrdlusrõhk hPa -s:") # või # seatud rõhk lähteaegadel võrdluseks, nt. suhtelise kõrguse mõõtmiseks aeg. uni (1) # oodake sekund enne esimest mõõtmist 1 time.sleep (1) reference_hPa = (pres_norm_sum/j) # määras esmamõõtmise võrdluspunktiks, et võimaldada kõrguse mõõtmist väärtused t = bmp.temperatuur p = bmp.rõhk h = bmp.niiskus a = bmp.altitude # arvutatud adafruit raamatukogu rõhu järgi #timestamp ts = datetime.datetime.now () # timestamp ts0_EN = '{:%Y-% m-%d} '. format (ts) # timestamp - date, EN format ts0_DE =' {:%d.%m.%Y} '. format (ts) # timestamp - kuupäev, saksa formaat ts1 =' {: %H:%M:%S} '. Format (ts) # timestamp - time tmp = "{0: 0.1f}". Format (t) pre = "{0: 0,1f}". Format (p) hyg = "{0: 0.1f}". Format (h) alt="{0: 0.1f}". Format (a) tText = "Temp.:" pText_EN = "Pressure:" pText_DE = "Luftdruck:" h Text_EN = "Niiskus:" hText_DE = "suhteline LF: "aText_EN =" Kõrgus: "aText_DE =" Höhe üNN: " # exakt: ü. NHN, über Normal Höhen Null if (lang ==" DE "): ts0 = ts0_DE aText = aText_DE pText = pText_DE hText = hText: # vaikimisi eesti ts0 = ts0_EN aText = aText_EN pText = pText_EN hText = hText_EN # printimisväärtused print (ts) print (tText, tmp, "° C") print (pText, pre, "hPa") print (hText, hyg, " %") print (aText, alt, "m") print () # printimisväärtust tindile pHAT t1 = 5 # tab 1, frist veerg, lihtsustab paigutuse optimeerimist t2 = 110 # tab 2, teine veerg inkyphat. clear () inkyphat.text ((t1, 0), ts0, inkyphat. BLACK, font2) # kirjutage ajatempli kuupäev inkyphat.text ((t2, 0), ts1, inkyphat. BLACK, font2) # kirjutage ajatempli aeg inkyphat.line ((t1, 25, 207, 25), 1, 3) # tõmmake joon inkyphat.text ((t1, 30), tText, inkyphat. BLACK, font2) inkyphat.text ((t2, 30), (tmp + "° C"), inkyphat. BLACK, font2) inkyphat.text ((t1, 55), pText, inkyphat. BLACK, font2) inkyphat.text ((t2, 55), (pre + "hPa"), inkyphat. MUST, font2) inkyphat.text ((t1, 80), hText, inkyphat. BLACK, font2) inkyphat.text ((t2, 80), (hyg + " %"), inkyphat. BLACK, font2) # kuvab alternatiivselt arvutatud kõrguse # inkyphat.text ((t1, 80), aText, inkyphat. BLACK, font2) # inkyphat.text ((t2, 80), (alt + "m"), inkyphat. BLACK, font2) inkyphat.show () time.sleep (51) # oodake mõni sekund enne järgmisi mõõtmisi, +19 sekundit tsükli kohta inkyphat.clear () # tühi Inky pHAT kuvamisprotseduur, inkyphat.show () # vaikus crontab-versiooni jaoks
Samm: BMP280 skript
BMP280 on väga sarnane BME280 anduriga, kuid mõõdab ainult temperatuuri ja rõhku. Skriptid on väga sarnased, kuid vajate erinevaid Circuit Pythoni teeke. Siin kuvatakse niiskuse asemel arvutuslik kõrgus, mis põhineb võrdlusrõhul.
Lisatud leiate skripti.
Soovitan:
Professionaalne ilmajaam ESP8266 ja ESP32 DIY abil: 9 sammu (piltidega)
Professionaalne ilmajaam, kasutades ESP8266 ja ESP32 isetegemist: LineaMeteoStazione on täielik ilmajaam, mida saab ühendada Sensirioni professionaalsete anduritega ja mõne Davise instrumendi komponendiga (vihmamõõtur, anemomeeter). Projekt on mõeldud DIY ilmajaamana, kuid nõuab lihtsalt
Kaabeltelevisiooniga ilmajaam: 5 sammu
Satelliit -abiga ilmajaam: see projekt on mõeldud inimestele, kes soovivad koguda oma ilmaandmeid. Selle abil saab mõõta tuule kiirust ja suunda, temperatuuri ja õhuniiskust. Samuti on see võimeline kuulama ilmastiku satelliite, mis tiirlevad ümber Maa iga 100 minuti järel. Ma tahan
Käeshoitav ilmajaam: 4 sammu
Käeshoitav ilmajaam: selles juhendis kasutame pardal Arduino, oled -ekraani ja SparkFuni keskkonnaandurite kombinatsiooni koos CCS811 ja BME280 anduritega, et luua käeshoitav seade, mis mõõdab temperatuuri, niiskust, TVOC taset, õhurõhku
Fanair: teie toa ilmajaam: 6 sammu (piltidega)
Fanair: teie toa ilmajaam: Praeguse ilma teada saamiseks on lugematuid viise, kuid siis teate ainult väljas olevat ilma. Mis saab siis, kui soovite teada, milline ilm on teie majas, konkreetses toas? Seda ma üritan selle projektiga lahendada. Fanair kasutab mul
NaTaLia ilmajaam: Arduino päikeseenergial töötav ilmajaam on õigesti tehtud: 8 sammu (piltidega)
NaTaLia ilmajaam: Arduino päikeseenergial töötav ilmajaam on õigesti tehtud: pärast 1 -aastast edukat tegutsemist kahes erinevas kohas jagan oma päikeseenergiaga töötavate ilmajaamade projektiplaane ja selgitan, kuidas see arenes süsteemiks, mis võib pika aja jooksul tõesti ellu jääda perioodid päikeseenergiast. Kui järgite