Gety- en weerklok: 9 stappe (met foto's)
Gety- en weerklok: 9 stappe (met foto's)
Anonim
Gety- en weerklok
Gety- en weerklok

Alhoewel u analoog getyhorlosies kan koop met 'n enkele hand wat aandui of die gety hoog of laag is, of iewers tussenin, was dit iets wat ek wou sê op watter tydstip laagwater sal wees. Ek wou iets hê waarna ek vinnig kon kyk sonder om dit aan te skakel, of op enige knoppies te druk, of te wag. En ek wou iets hê met 'n lang batterylewe. Dus gebruik ek 'n TTGO T5-bord, 'n ESP32-gebaseerde bord met 'n e-papier-skerm van 2,13 duim, gekoppel aan 'n TTL5110-chip. Die TPL5110 skakel die T5 elke 2,5 uur aan, en een keer per dag laai die T5 getydata van NOAA en weerdata van OpenWeatherMap, vertoon die data op die e-papier, en vertel dan die TPL5110 om die T5 uit te skakel.

OPDATERING (25 Februarie 2020) Die Tide Clock werk nou al 'n jaar en die battery is op 4,00 volt, sodat die horlosie baie jare kan werk.

Stap 1: Hardeware lys

TTGO T5 -bord $ 17

Adafruit TPL5110 -bord $ 5

Adafruit Perma-Proto kwart-grootte bord (opsioneel) $ 0,71 (minimum bestelling $ 8,50)

Li-Poly battery 1200 mAh $ 10 (of ander gepaste kragbron)

JST PH 2-pins kabel-manlike kop $ 0,75

220 uF kapasitor

Stap 2: Gereedskap

Soldeerbout

Draadstroppers

Li-Po batterylaaier, soos hierdie.

Stap 3: Monteer hardeware

Monteer hardeware
Monteer hardeware
Monteer hardeware
Monteer hardeware
Monteer hardeware
Monteer hardeware

Die installering van die hardeware is redelik eenvoudig, soos die skematiese weergawe toon. Ek het 'n Adafruit Perma-proto-bord gebruik wat soos 'n gewone protobord is, behalwe dat dit soos 'n broodbord uitgelê is, met dieselfde elektriese verbindings as 'n broodbord, wat lekker is. Aangesien ek net 'n paar verbindings nodig gehad het en die hele eenheid in 'n klein boks wou plaas, het ek een van die planke met 'n Dremel -afsnywiel in vierdes gesny.

Die 220 uF kapasitor is baie belangrik. Daarsonder sal die TPL5110 nooit die T5 aanskakel nie. Dit is 'n bietjie onduidelik hoekom, maar ander mense wat die TPL5110 gebruik, het dieselfde probleem gehad. Miskien trek die ESP32 meer stroom by die aanvang as wat die TTL5110 kan lewer?

Moenie die battery hardkoppel nie. Gebruik die JST-PH-kabel sodat u die battery kan ontkoppel om dit te laai. Daar kan 'n manier wees om die battery vanaf die T5 deur die TPL5110 terug te laai as die TPL5110 aan is, maar ek kan nie instaan vir die tegniek nie.

Ek het 'n houtkas as omhulsel gemaak, maar enigiets met 'n minimum afmeting van 1,5 "x 2,75" x 1 "sou werk.

Stap 4: Stel die tydsberekening in

Die TPL5110 -bord het 'n afwerkingspotentiometer wat die tydsinterval bepaal waarop die TPL5110 wakker word. Gebruik 'n klein skroewedraaier om dit heeltemal linksom te draai. Op my bord stel dit die interval op 145 minute, wat eintlik meer is as die gespesifiseerde maksimum van 120 minute, maar dit werk en was konsekwent en sal selfs meer krag bespaar as om elke 120 minute wakker te word, so ek het dit gebruik. U hoef nie die interval presies te ken nie, want die doel is net om data ongeveer een keer per dag ongeveer vieruur af te laai. U kan die interval (bv. 145 minute) en die wakker tyd (bv. 04:00) in env_config.h spesifiseer.

(As u 'n beter beheer van die tydsberekening vir 'n ander projek wil hê, het die TPL5110 -bord 'n spoor op die agterkant wat u kan sny om die potensiometer uit te skakel. Dan heg u 'n weerstand aan die Delay -pen, en die weerstand bepaal die interval, volgens hierdie grafiek.)

Stap 5: Die sagteware

U benodig die Arduino IDE met die ESP32 -pakket. Stel in die IDE u bord op "ESP32 Dev Module".

Die skets is beskikbaar op https://github.com/jasonful/Tides en benodig 3 biblioteke:

  1. "ESP8266 Weather Station", beskikbaar by die Arduino Library Manager (of hier). U benodig slegs hierdie 6 lêers: ESPHTTPClient.h, ESPWiFi.h, OpenWeatherMapCurrent.cpp, OpenWeatherMapCurrent.h, OpenWeatherMapForecast.cpp, OpenWeatherMapForecast.h en kan die res uitvee.
  2. "Json Streaming Parser" beskikbaar by die Arduino Library Manager (of hier)
  3. https://github.com/LilyGO/TTGO-Epape-T5-V1.8/tree/master/epa2in13-demo Alhoewel die kode nie as 'n ware biblioteek verpak is nie, kan u dit net onder u biblioteekgids kopieer en insluit Dit.

Stap 6: Stel die sagteware op

Daar is verskillende parameters wat u moet stel (en 'n paar wat u dalk wil stel) in die env_config.h -lêer, insluitend:

  • WiFi SSID en wagwoord
  • NOAA -stasie -ID (met ander woorde, waar is u)
  • OpenWeatherMap AppID, waarvoor u moet registreer (dit is maklik en gratis)
  • OpenWeatherMap LocationID (weer, waar is u)
  • CONFIG_USE_TPL5110, waarmee u 'n T5 sonder 'n TPL5110 kan gebruik. Die sagteware gaan eerder in die diep slaapmodus. Die T5 -bord trek ongeveer 8 ma diep in die slaap, so ek verwag net dat die battery 'n paar dae sal hou.

Stap 7: Hoe die sagteware werk

(U kan hierdie deel oorslaan as u nie omgee nie.)

Die doel is om een keer per dag wakker te word, maar aangesien die maksimum interval van die TPL5110 slegs 2 uur of so is, moet die T5 meer gereeld wakker word. Dus, nadat dit gety- en weerdata afgelaai het, bereken dit hoeveel van hierdie tussenposes van 2 uur tussen nou en 4:00 die oggend. Dit word effens ingewikkeld deur die feit dat die TPL5110 die krag van die T5 heeltemal afskakel, wat goed is vir die battery, maar dit beteken dat ons RAM en die intydse klok verloor. Dit is soos om elke oggend wakker te word met geheueverlies. Om uit te vind hoe laat dit nou is, haal dit dit uit die NOAA se HTTP -kop. En om te onthou hoeveel tussenposes van 2 uur daar oorbly, skryf dit in teenstelling met nie-vlugtige berging (flits). Elke keer as dit wakker word, kontroleer dit die toonbank, verminder dit, stoor dit, en as dit groter is as nul, stuur dit onmiddellik 'n sein na die TPL51110 ("Klaar") om dit te laat slaap. As die toonbank nul bereik, laai die kode nuwe data af, en herbereken en herstel die toonbank.

Stap 8: Begin dit

Hardloop dit
Hardloop dit

Maak seker dat die skakelaar aan die linkerkant van die T5 in die op (aan) posisie is, laai die skets op na die T5, en binne 'n paar sekondes moet die skerm opdateer met inligting oor die gety en weer.

As u die sagteware moet ontfout, verander die "#define DEBUG 0" bo -aan Tides.ino na "#define DEBUG 1". Dit sal die seriële ontfout-uitset aanskakel, en onderaan die e-papier verskyn ook die aantal restante wat herlaai moet word voordat nuwe data afgelaai word, en die tyd wat dit laas afgelaai is.

Stap 9: Toekomstige aanwysings

  1. Die gebruik van die TPL5110 gekombineer met 'n e-papier-skerm is 'n uitstekende manier om data te wys wat nie gereeld verander nie, met 'n uitstekende batterylewe.
  2. Toe ek dit ontwerp, het ek dit oorweeg om die TrigBoard te gebruik, 'n ESP8266 -bord met 'n TPL5111 aan boord. Dit sou nodig gewees het om 'n aparte e-papier vertoning en e-papier bestuurderbord soos hierdie of hierdie te kry. Of 'n bestuurder+bordkombinasie soos hierdie of hierdie. Om die kode na ESP8266 oor te dra, dink ek dat die SSL-kode vingerafdrukke moet gebruik in plaas van sertifikate, en die nie-vlugtige bergingskode moet EEPROM- of RTC-geheue gebruik.
  3. Ek het onlangs gehoor dat die Lolin32 -bord redelik goed is in die diep slaapmodus: ongeveer 100uA. Nie so goed soos die TPL51110 -bord nie (20uA volgens Adafruit), maar goed genoeg.
  4. OpenWeatherMap gee baie meer weerdata terug as wat ek vertoon. Insluitende ikoon -ID's, wat monochrome ikone êrens moet vind.

Aanbeveel: