Përmbajtje:
- Hapi 1: Materialet e përdorura
- Hapi 2: Montimi
- Hapi 3: Përdorimi i pajisjes
- Hapi 4: Skenari BME280
- Hapi 5: Skenari BMP280
Video: Stacioni i motit Inky_pHAT: 5 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:22
Këtu do të doja të përshkruaja një stacion moti shumë të thjeshtë dhe kompakt, me bazë Raspberry Pi Zero, i cili shfaq vlerat e matura nga një sensor i temperaturës/presionit/lagështisë BME280 në një ekran me letër elektronike/bojë e-boje Pimoroni Inky. Për të lejuar lidhjen e sensorëve dhe pHAT me GPIO të Pi unë vendosa një hacker Pimorini Pico HAT me dy tituj femra të bashkangjitur midis GPIO dhe ekranit. Pajisja është përdorur për të bashkuar disa sensorë, kështu që versioni BME280 i përshkruar këtu është vetëm një shembull.
Ndryshe nga ekranet LCD, ekranet me bojë elektronike e mbajnë imazhin edhe nëse energjia është e fikur. Prandaj ato janë një zgjidhje shumë e mirë nëse doni të shfaqni informacione që përditësohen herë pas here, veçanërisht për të ndërtuar pajisje me energji të ulët. Përfitimi kryesor i versionit njëngjyrësh/të zi të pHAT Inky është se azhurnimi i ekranit zgjat vetëm një sekondë, në vend të dhjetë deri në pesëmbëdhjetë sekondave të kërkuar nga versionet me tre ngjyra. Shih filmin.
Biblioteka Blinka e Adafruit ju lejon të ekzekutoni kodin Circuit Python në Raspberry Pi, dhe mostrat e Circuit Python për një larmi të madhe të sensorëve janë në dispozicion nga Adafruit. Një përshkrim i hollësishëm se si të instaloni Blinka dhe kodet Circuit Python mund të gjenden në faqen e internetit të Adafruit. Bibliotekat që kam testuar deri më tani (BMP280, BME280, TSL2591, TCS34785, VEML7065,…) po funksiononin shumë mirë, ndërsa kishte probleme të vogla në disa nga kodet shembull.
BME280 është një sensor për të matur temperaturën, lagështinë dhe presionin atmosferik. BMP280 breakouts janë të disponueshme nga shumë shitës, përfshirë Adafruit, por unë këtu po përdorja një version të lirë kinez. Ju lutemi kini parasysh se këto po përdorin adresa të ndryshme i2c (Adafruit: 0x77, të tjerët: 0x76).
Zbërthimi është i lidhur me Pi me i2c, dhe leximi i sensorit është shumë i thjeshtë duke përdorur bibliotekën dhe kodin shembull.
Hapi 1: Materialet e përdorura
Një Raspberry Pi Zero, me një kokë mashkull të bashkangjitur. Por çdo version i Raspberry Pi do të bënte.
Një bojë Pimoroni pHAT, version i zi/pikturë njëngjyrëshe, 25 € | 22 £ | 20US $, në Pimoroni.
Një haker Pimoroni Pico HAT, 2.50 € | 2 £, me dy tituj femra të bashkangjitur, njëra prej tyre një kokë përforcuese me kunja më të gjata. Unë kam ndërtuar dy versione të ndryshme, shihni përshkrimin më poshtë.
Një dalje BME280, Dorëzim AZ përmes Amazon.de @ 7.50 €, me kokën e bashkangjitur.
Kabllot e kërcyesit të zgjatur
Opsionale:
Një paketë USB me energji, për aplikacionet celulare
Një strehë për Pi ose pajisjen (nuk tregohet këtu)
Hapi 2: Montimi
- Ngjitini titujt femra te hakeri Pico HAT. Para bashkimit, kontrolloni orientimin e duhur. Unë kam ndërtuar dy versione të kësaj, për qëllime të ndryshme. Njëra me kokën përforcuese nga ana e poshtme e vendosur në rreshtin e parë dhe një kokë normale, lart/përballë në rreshtin e pasëm, dhe një version me kokën përforcuese të kthyer poshtë në rreshtin e pasmë, dhe një kokë femre me kënd të drejtë në rreshtin e parë Me Shihni imazhet. Versioni i parë ju lejon të lidhni dhe shkëmbeni sensorë dhe kabllo shumë lehtë, ndërsa versioni me kokën e brendshme të brendshme ju lejon të mbyllni Pi, sensor dhe bojë pHAT në një strehë. Përndryshe, mund të lidhni kabllot që lidhin GPIO dhe sensorin drejtpërdrejt me hakerin Pico HAT dhe/ose të lidhni hakerin Pico HAT direkt në kunjat e GPIO. Në çdo rast përdorni sasinë minimale të saldimit të kërkuar.
- Ngjitni titullin në sensor, nëse kërkohet.
- Vendosni njësinë e modifikuar të hakerëve Pico HAT në Pi, pastaj shtoni pHAT Inky. Nëse kërkohet, futni ndonjë mbështetje, p.sh. Një bllok shkumë ose dalje, për pHAT Inky.
- Bashkangjitni kabllot dhe sensorin, duke përdorur portat 3V, GND, SDA dhe SCL. Jo të gjithë sensorët do të mbijetojnë 5V, kështu që ju lutemi kontrolloni para se t'i lidhni me portat 5V.
- Instaloni bibliotekën Blinka, pastaj instaloni bibliotekën Circuit Python BME280 nga Adafruit.
- Instaloni bibliotekën Inky pHAT nga Pimoroni.
- Instaloni shembullin e kodit Python të përshkruar në një hap të mëvonshëm dhe bashkangjitur këtij udhëzimi.
- Drejtoni kodin.
Hapi 3: Përdorimi i pajisjes
Ekzistojnë dy mundësi për të përdorur pajisjen.
Kodi siç tregohet këtu do të fillojë duke përdorur një ekran të bashkangjitur, por pastaj mund të ekzekutohet pa.
Me modifikime të vogla në kod, mund të përdorni crontab për të kryer matjet në pikat e përcaktuara kohore. Kjo do të zvogëlojë konsumin e energjisë edhe më tej. Përshkrime të shkëlqyera se si të përdorni crontab mund të gjenden diku tjetër.
Në lidhje me një paketë energjie ju mund të ndërtoni një pajisje të lëvizshme dhe ta përdorni atë për të matur kushtet brenda ose jashtë, në frigorifer, në saunë, humidorin tuaj, bodrumin e verës, në një aeroplan,….
Duke përdorur një Zero W ju jo vetëm që mund të shfaqni vlerat në ekran, por gjithashtu t'i dërgoni ato në një server ose faqen tuaj të internetit përmes WLAN, siç përshkruhet diku tjetër.
Hapi 4: Skenari BME280
Siç u përmend më parë, ju duhet të instaloni bibliotekat Adafruit Blinka dhe Circuit Python BME280, si dhe bibliotekën Pimoroni Inky pHAT.
Kodi së pari inicon sensorin dhe pHAT-in e bojës, pastaj lexon vlerat e temperaturës, presionit dhe lagështisë nga sensori dhe i shfaq ato në ekran dhe ekran me bojë elektronike. Duke përdorur komandën time.sleep (), matjet merren çdo minutë. Rregulloni sipas kërkesës. Duke vendosur një parametër të gjuhës, mund të ndryshoni gjuhën e përdorur për të shfaqur rezultatet.
Duke përdorur ekranin e bojës Inky pHAT, ju së pari ndërtoni imazhin që do të shfaqet në kujtesë para se të transferohet përfundimisht në ekran duke përdorur komandën inkyphat.show (). Biblioteka Inky pHAT po thjeshton procesin, duke ofruar komanda për të vizatuar dhe formatuar tekstin, linjat, drejtkëndëshat, rrathët ose përdorimin e imazheve të sfondit.
Përveç vlerave të matura, shfaqet edhe koha e matjes.
Ju lutemi mbani në mend se skenari si dhe bibliotekat janë shkruar në Python 3, kështu që hapeni dhe ekzekutoni duke përdorur Py3 IDLE ose ekuivalentin e tij.
# Një skenar për sensorin e temperaturës/presionit/lagështisë bme280 (versioni jo -Adafruit) # dhe pHAT me bojë - versioni i zi # # version Dhjetor 01 2018, Dr H # # Kërkon bibliotekat Adafruit Blinka dhe Circuit Python BME280 # dhe Pimoroni Inky importi i bibliotekës koha e importimit të datës së kohës tabela e importit import busio nga adafruit_bme280 import Adafruit_BME280 nga adafruit_bme280 import Adafruit_BME280_I2C import inkyphat sys import nga PIL import ImageFont inkyphat.set_colour ('black') # për b/w inky phat inkyphat 180 ° font1 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 27) # Zgjidhni fontin standard standard2 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 19) # Zgjidhni të dhënat standarde të fontit # lang = "DE" # vendosni parametrin e gjuhës, parazgjedhje ("") -> anglisht lang = "EN" i2c = busio. I2C (bordi. SCL, bordi. SDA) bmp = Adafruit_BME280_I2C (i2c, adresa = 0x76) # adresa e paracaktuar i2c (për Adafruit BMP280) 0x77 (parazgjedhje), 0x76 për thyerjen kineze) # vendosni presionin e referencës # të kërkuar për al llogaritja e titullit, ju lutemi rregulloni. Vlera standarde 1013.25 hPa # input manual: #reference_hPa = input ("Futni presionin e referencës në hPa:") # ose # vendosni presionin në kohën e fillimit si referencë, p.sh. për kohën e matjes së lartësisë relative. gjumi (1) # prit një sekondë para matjes së parë j = 0 pres_norm_sum = 0 ndërsa j në intervalin (5): # merr pesë matje për të përcaktuar vlerën referuese pres_norm_sum = pres_norm_sum + bmp.presioni j = j + 1 time.sleep (1) reference_hPa = (pres_norm_sum/j) # vendosni matjen fillestare si pikë referimi për të mundësuar matjet e lartësisë bmp.sea_level_pressure = float (reference_hPa) print () ndërsa True: #runs përgjithmonë, modifikoni për crontab-version # matur vlerat t = bmp.temperatura p = bmp.presioni h = bmp. lagështia a = bmp.altitude # e llogaritur nga biblioteka adafruit nga presioni # timestamp ts = datetime.datetime.now () # timestamp ts0_EN = '{:%Y-% m-%d} '. format (ts) # timestamp - data, EN format ts0_DE =' {:%d.%m.%Y} '. format (ts) # timestamp - data, format gjerman 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 = "Presioni:" pText_DE = "Luftdruck:" h Text_EN = "Lagështia:" hText_DE = "rel. LF: "aText_EN =" Lartësia mbidetare: "aText_DE =" Höhe üNN: " # exakt: ü. NHN, über Normal Höhen Null if (lang ==" DE "): ts0 = ts0_DE aText = aText_DE pText = hText_DE = tText_DE = tjetër: # default anglisht ts0 = ts0_EN aText = aText_EN pText = pText_EN hText = hText_EN # vlerat e printimit për të shfaqur printimin e printimit (ts) (tText, tmp, "° C") (pText, para, "hPa") print (hText, hyg, " %") print (aText, alt, "m") print () # vlerat e printimit në Inky pHAT t1 = 5 # tab 1, kolona e parë, thjeshton optimizimin e paraqitjes t2 = 110 # tab 2, inkyphat e kolonës së dytë. qartë () inkyphat.text ((t1, 0), ts0, inkyphat. BLACK, font2) # shkruaj datën e afatit kohor inkyphat.text ((t2, 0), ts1, inkyphat. BLACK, font2) # shkruaj kohën kohore të inkyphat.line ((t1, 25, 207, 25), 1, 3) # vizatoni një vijë 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), (para + "hPa"), inkyphat. E ZE, font2) inkyphat.text ((t1, 80), hText, inkyphat. BLACK, font2) inkyphat.text ((t2, 80), (hyg + " %"), inkyphat. BLACK, font2) # shfaq alternativisht lartësinë e llogaritur # inkyphat.text ((t1, 80), aText, inkyphat. BLACK, font2) # inkyphat.text ((t2, 80), (alt + "m"), inkyphat. BLACK, font2) inkyphat.shfaq () kohën. fle (51) # prisni disa sekonda para matjeve të ardhshme, +19 sek për cikël inkyphat.clear () # procedurë e zbrazët e bojës me bojë pHAT, inkyphat.show () # heshtje për versionin crontab
Hapi 5: Skenari BMP280
BMP280 është shumë i ngjashëm me sensorin BME280, por vetëm mat temperaturën dhe presionin. Skriptet janë shumë të ngjashme, por keni nevojë për biblioteka të ndryshme Circuit Python. Këtu në vend të lagështirës shfaqet një lartësi e llogaritur, e bazuar në një presion referimi.
Bashkangjitur gjeni skenarin.
Recommended:
Stacioni i motit profesional duke përdorur ESP8266 dhe ESP32 DIY: 9 hapa (me fotografi)
Stacioni i Motit Profesional Duke Përdorur ESP8266 dhe ESP32 DIY: LineaMeteoStazione është një stacion i plotë moti i cili mund të ndërlidhet me sensorë profesionistë nga Sensirion si dhe disa komponentë të Davis Instrument (Rain Gauge, Anemometer) Projekti ka për qëllim si stacion moti DIY por thjesht kërkon
Stacioni i motit NaTaLia: Stacioni i motit Arduino me energji diellore Bëhet në rrugën e duhur: 8 hapa (me fotografi)
Stacioni i motit NaTaLia: Stacioni i motit me energji diellore Arduino Bëhet në rrugën e duhur: Pas 1 viti funksionimi të suksesshëm në 2 vende të ndryshme, unë po ndaj planet e mia të projektit të stacionit të motit me energji diellore dhe po shpjegoj se si evoluoi në një sistem i cili me të vërtetë mund të mbijetojë për një kohë të gjatë periudha nga energjia diellore. Nëse ndiqni
Stacioni i motit DIY & Stacioni i sensorit WiFi: 7 hapa (me fotografi)
DIY Weather Station & WiFi Sensor Station: Në këtë projekt do t'ju tregoj se si të krijoni një stacion moti së bashku me një stacion sensor WiFi. Stacioni i sensorit mat të dhënat e temperaturës dhe lagështisë lokale dhe i dërgon ato, përmes WiFi, në stacionin e motit. Stacioni i motit më pas shfaq t
Stacioni i motit Acurite 5 në 1 duke përdorur një Raspberry Pi dhe Weewx (Stacionet e tjera të motit janë të pajtueshme): 5 hapa (me fotografi)
Stacioni i motit Acurite 5 në 1 Duke përdorur një Raspberry Pi dhe Weewx (Stacionet e tjera të motit janë të pajtueshme): Kur kisha blerë stacionin e motit Acurite 5 në 1 doja të isha në gjendje të kontrolloja motin në shtëpinë time ndërsa isha larg. Kur mbërrita në shtëpi dhe e vendosa, kuptova se ose duhej ta kisha ekranin të lidhur me një kompjuter ose të blija shpërndarësin e tyre të zgjuar,
Stacioni i energjisë në konvikte/Stacioni i karikimit NiMH i ngritur: 3 hapa
Stacioni i energjisë në konvikte/Stacioni i karikimit NiMH: Unë kam një rrëmujë të një stacioni të energjisë. Doja të kondensoja gjithçka që ngarkohej në një tavolinë pune dhe të kisha vend për të bashkuar/etj në të. Lista e gjërave të energjisë: Telefoni celular (i prishur, por ngarkon bateritë e telefonit tim, kështu që është gjithmonë i kyçur dhe rrjedh karikime