Sisällysluettelo:

Inky_pHAT -sääasema: 5 vaihetta
Inky_pHAT -sääasema: 5 vaihetta

Video: Inky_pHAT -sääasema: 5 vaihetta

Video: Inky_pHAT -sääasema: 5 vaihetta
Video: Основные ошибки при возведении перегородок из газобетона #5 2024, Marraskuu
Anonim
Inky_pHAT -sääasema
Inky_pHAT -sääasema
Inky_pHAT -sääasema
Inky_pHAT -sääasema
Inky_pHAT -sääasema
Inky_pHAT -sääasema
Inky_pHAT -sääasema
Inky_pHAT -sääasema

Haluaisin tässä kuvata hyvin yksinkertaisen ja pienikokoisen Raspberry Pi Zero -pohjaisen sääaseman, joka näyttää BME280-lämpötila-, paine-/kosteusanturilla mitatut arvot Pimoroni Inky pHAT -sähköpaperi/-muste-näytöllä. Jotta anturit ja pHAT voitaisiin liittää Pi GP: hen, asetin Pimorini Pico HAT -hakkerin, jossa oli kaksi naarasliitintä GPIO: n ja näytön väliin. Laitetta on käytetty useiden antureiden kiinnittämiseen, joten tässä kuvattu BME280 -versio on vain esimerkki.

Toisin kuin LCD-näytöt, e-musteen näytöt säilyttävät kuvan, vaikka virta olisi katkaistu. Siksi ne ovat erittäin hyvä ratkaisu, jos haluat näyttää tietoja, jotka päivitetään vain silloin tällöin, erityisesti vähäenergisten laitteiden rakentamiseksi. Inky pHAT: n yksivärisen/mustan version suurin etu on se, että näytön päivittäminen kestää vain noin sekunnin sen sijaan, että kolmiväriset versiot vaatisivat kymmenen tai viisitoista sekuntia. Nähdä elokuva.

Adafruitin Blinka -kirjasto sallii Circuit Python -koodin käyttämisen Raspberry Pi -laitteella, ja Circuit Python -näytteitä monenlaisille antureille on saatavana Adafruitilta. Yksityiskohtainen kuvaus Blinka- ja Circuit Python -koodien asentamisesta löytyy Adafruit -verkkosivustolta. Tähän mennessä testatut kirjastot (BMP280, BME280, TSL2591, TCS34785, VEML7065,…) toimivat erittäin hyvin, vaikka joissakin esimerkkikoodeissa oli pieniä ongelmia.

BME280 on anturi lämpötilan, kosteuden ja ilmanpaineen mittaamiseen. BMP280 -purkauksia on saatavana monilta toimittajilta, mukaan lukien Adafruit, mutta tässä käytin halpaa kiinalaista versiota. Huomaa, että nämä käyttävät eri i2c -osoitteita (Adafruit: 0x77, muut: 0x76).

Katkaisu on kytketty Pi: hen i2c: llä, ja anturin lukeminen on hyvin yksinkertaista kirjaston ja esimerkkikoodin avulla.

Vaihe 1: Käytetyt materiaalit

Käytetyt materiaalit
Käytetyt materiaalit
Käytetyt materiaalit
Käytetyt materiaalit
Käytetyt materiaalit
Käytetyt materiaalit
Käytetyt materiaalit
Käytetyt materiaalit

Raspberry Pi Zero, johon on liitetty urosotsikko. Mutta mikä tahansa Raspberry Pi -versio tekisi.

Pimoroni Inky pHAT, musta/yksivärinen versio, 25 € | 22 £ | 20US $, Pimoroni.

Pimoroni Pico HAT -hakkeri, 2,50 € | 2 £, kaksi naarasotsikkoa, joista toinen on tehosteotsikko, jossa on pidemmät nastat. Olen rakentanut kaksi eri versiota, katso kuvaus alla.

BME280 -purkaus, AZ Toimitus Amazon.de -sivuston kautta @ 7.50 €, otsikko kiinnitettynä.

Pidennyshyppykaapelit

Valinnainen:

USB -virtalähde mobiilisovelluksiin

Pi -laitteen tai laitteen kotelo (ei tässä)

Vaihe 2: Kokoonpano

Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
  • Juottaa naarasotsikot Pico HAT -hakkeriin. Tarkista ennen juottamista oikea suunta. Olen rakentanut tästä kaksi versiota eri tarkoituksiin. Yksi, jossa alaspäin suuntautuva tehosterokotus on sijoitettu eturiviin ja tavallinen ylös/ylöspäin suuntautuva otsikko takarivillä, ja versio, jossa alaspäin suuntaava tehostin ylärivillä takarivillä ja suorakulmainen naarasotsikko eturivillä. Katso kuvia. Ensimmäinen versio mahdollistaa antureiden ja kaapeleiden kiinnittämisen ja vaihtamisen erittäin helposti, kun taas sisäänpäin suuntautuvalla otsikolla varustettu versio mahdollistaa Pi: n, anturin ja musteisen pHAT: n liittämisen koteloon. Vaihtoehtoisesti voit juottaa GPIO: n ja anturin yhdistävät kaapelit suoraan Pico HAT -hakkeriin ja/tai juottaa Pico HAT -hakkerin suoraan GPIO -nastoihin. Käytä joka tapauksessa vähimmäismäärää tarvittavaa juotetta.
  • Juotos otsikko tarvittaessa anturiin.
  • Pino muokattu Pico HAT hakkeriyksikkö Pi: hen ja lisää sitten musteinen pHAT. Aseta tarvittaessa tukea, esim. Vaahtolohko tai erottimet musteisen pHAT: n käyttöön.
  • Kiinnitä kaapelit ja anturi käyttämällä 3V-, GND-, SDA- ja SCL -portteja. Kaikki anturit eivät kestä 5V, joten tarkista ennen kuin liität ne 5V -portteihin.
  • Asenna Blinka -kirjasto ja asenna sitten Circuit Python BME280 -kirjasto Adafruitista.
  • Asenna Inkyn pHAT -kirjasto Pimoronilta.
  • Asenna esimerkki Python -koodista, joka on kuvattu myöhemmässä vaiheessa ja liitetty tähän ohjeeseen.
  • Suorita koodi.

Vaihe 3: Laitteen käyttö

Laitteen käyttäminen
Laitteen käyttäminen

Laitteen käyttöön on kaksi vaihtoehtoa.

Tässä näkyvä koodi on aloitettava käyttämällä liitettyä näyttöä, mutta sitten se voi toimia ilman.

Pienillä muutoksilla koodiin voit käyttää crontabia mittausten suorittamiseen määritetyillä ajankohdilla. Tämä mahdollistaisi sähkönkulutuksen vähentämisen entisestään. Erinomaisia kuvauksia crontabin käytöstä löytyy muualta.

Yhdessä virtalähteen kanssa voit rakentaa mobiililaitteen ja käyttää sitä mittaamaan olosuhteita sisällä tai ulkona, jääkaapissa, saunassa, humidorissa, viinikellarissa, lentokoneessa….

Zero W: n avulla voit paitsi näyttää arvot näytöllä, myös lähettää ne palvelimelle tai verkkosivustollesi WLAN -verkon kautta, kuten muualla on kuvattu.

Vaihe 4: BME280 -skripti

BME280 -käsikirjoitus
BME280 -käsikirjoitus

Kuten aiemmin mainittiin, sinun on asennettava Adafruit Blinka- ja Circuit Python BME280 -kirjastot sekä Pimoroni Inky pHAT -kirjasto.

Koodi alustaa ensin anturin ja musteisen pHAT: n, lukee sitten lämpötila-, paine- ja kosteusarvot anturista ja näyttää ne näytöllä ja e-musteen näytöllä. Käyttämällä time.sleep () -komentoa mittaukset suoritetaan joka minuutti. Säädä tarpeen mukaan. Asettamalla kieliparametrin voit muuttaa tulosten näyttämiseen käytettävää kieltä.

Inky pHAT e-ink -näytön avulla rakennat ensin kuvan näytettäväksi muistissa ennen kuin se lopulta siirretään näytölle käyttämällä inkyphat.show () -komentoa. Musteinen pHAT -kirjasto yksinkertaistaa prosessia ja tarjoaa komentoja piirtää ja muotoilla tekstiä, viivoja, suorakulmioita, ympyröitä tai käyttää taustakuvia.

Mittausarvojen lisäksi näytössä näkyy myös mittausaika.

Muista, että komentosarja ja kirjastot on kirjoitettu Python 3: lla, joten avaa ja suorita Py3 IDLE tai vastaava.

# Käsikirjoitus bme280 lämpötila-, paine-/kosteusanturille (muu kuin Adafruit -versio) # ja musteinen pHAT - musta versio # # versio 01.12.2018, tohtori H # # Edellyttää Adafruit Blinka- ja Circuit Python BME280 -kirjastoja # ja Pimoroni Inky pHAT -kirjaston tuonti aika tuonti päivämäärän tuontilevy tuonti busio osoitteesta adafruit_bme280 tuonti Adafruit_BME280 osoitteesta adafruit_bme280 tuonti Adafruit_BME280_I2C tuonti inkyphat tuonti sys PIL -tuonnista 180 ° font1 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 27) # Valitse vakiokirjasin fontti2 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 19) # Valitse vakiokirjasintiedot # lang = "DE" # aseta kieliparametri, oletus ("") -> english lang = "FI" i2c = busio. I2C (board. SCL, board. SDA) bmp = Adafruit_BME280_I2C (i2c, address = 0x76) # oletus -i2c -osoite (Adafruit BMP280: lle) 0x77 (oletus), 0x76 kiinalaiselle purkaukselle) # asettaa viitepaine # vaaditaan al otsikon laskenta, säädä. Vakioarvo 1013,25 hPa # manuaalinen syöttö: #reference_hPa = sisääntulo ("Syötä vertailupaine hPa:") # tai # asetuspaine lähtöhetkellä viitteenä, esim. suhteellisille korkeusmittauksille aika. uni (1) # odota sekunti ennen ensimmäistä mittausta j = 0 pres_norm_sum = 0 kun j alueella (5): # ota viisi mittausta viitearvon määrittämiseksi pres_norm_sum = pres_norm_sum + bmp. 1 aika.unenaika (1) reference_hPa = (pres_norm_sum/j) # aseta alkumittaus referenssipisteeksi, jotta korkeusmittaukset voidaan suorittaa bmp.sea_level_pressure = float (reference_hPa) print () kun True: # toimii ikuisesti, muokkaa crontab-version # mitattuna arvot t = bmp.lämpötila p = bmp.paine h = bmp.kosteus a = bmp.altitude # laskettu adafruit-kirjaston paineesta #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 - päivämäärä, saksalainen muoto ts1 =' {: %H:%M:%S} '. Format (ts) # timestamp - time tmp = "{0: 0.1f}". Format (t) pre = "{0: 0.1f}". Format (p) hygienia = "{0: 0.1f}". Format (h) alt="{0: 0.1f}". Format (a) tText = "Temp.:" pText_EN = "Paine:" pText_DE = "Luftdruck:" h Text_EN = "Kosteus:" hText_DE = "suhteellinen LF: "aText_EN =" Korkeus: "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: # oletuksena englanti ts0 = ts0_FI aText = aText_EN pText = pText_EN hText = hText_EN # tulostusarvot, jotka näytetään print (ts) print (tText, tmp, "° C") print (pText, pre, "hPa") print (hText, hyg, " %") print (aText, alt, "m") print () # tulostusarvot musteeseen pHAT t1 = 5 # välilehti 1, frist -sarake, yksinkertaistaa asettelun optimointia t2 = 110 # välilehti 2, toinen sarake inkyphat. clear () inkyphat.text ((t1, 0), ts0, inkyphat. BLACK, font2) # kirjoita aikaleima päivämäärä inkyphat.text ((t2, 0), ts1, inkyphat. BLACK, font2) # write timestamp time inkyphat.line ((t1, 25, 207, 25), 1, 3) # piirrä viiva 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. MUSTA, fontti 2) inkyphat.text ((t1, 80), hText, inkyphat. BLACK, font2) inkyphat.text ((t2, 80), (hyg + " %"), inkyphat. BLACK, font2) # vaihtoehtoisesti näyttää lasketun korkeuden # inkyphat.text ((t1, 80), aText, inkyphat. BLACK, font2) # inkyphat.text ((t2, 80), (alt + "m"), inkyphat. BLACK, font2) inkyphat.show () time.sleep (51) # odota muutama sekunti ennen seuraavia mittauksia, +19 sek / sykli inkyphat.clear () # tyhjä Musteinen pHAT-näyttö, inkyphat.show () # hiljaisuus crontab-versiolle

Vaihe 5: BMP280 -skripti

BMP280 on hyvin samanlainen kuin BME280 -anturi, mutta mittaa vain lämpötilan ja paineen. Skriptit ovat hyvin samankaltaisia, mutta tarvitset erilaisia Circuit Python -kirjastoja. Tässä näytetään kosteuden sijasta laskettu korkeus viitepaineen perusteella.

Liitteenä löydät käsikirjoituksen.

Suositeltava: