Përmbajtje:

Stacioni i motit Inky_pHAT: 5 hapa
Stacioni i motit Inky_pHAT: 5 hapa

Video: Stacioni i motit Inky_pHAT: 5 hapa

Video: Stacioni i motit Inky_pHAT: 5 hapa
Video: 🇧🇷 ДНЕВНЫЕ БОРДЕЛИ РИО // ЗАБРАЛ ЛЬВИЦУ С ПЛЯЖА ДОМОЙ 🇧🇷 БРАЗИЛИЯ РИО ДЕ ЖАНЕЙРО 2024, Nëntor
Anonim
Stacioni i motit Inky_pHAT
Stacioni i motit Inky_pHAT
Stacioni i motit Inky_pHAT
Stacioni i motit Inky_pHAT
Stacioni i motit Inky_pHAT
Stacioni i motit Inky_pHAT
Stacioni i motit Inky_pHAT
Stacioni i motit Inky_pHAT

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

Materialet e Përdorura
Materialet e Përdorura
Materialet e Përdorura
Materialet e Përdorura
Materialet e Përdorura
Materialet e Përdorura
Materialet e Përdorura
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

Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi
  • 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

Duke përdorur Pajisjen
Duke përdorur Pajisjen

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

Skenari BME280
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: