Indholdsfortegnelse:

Tidevand og vejrur: 9 trin (med billeder)
Tidevand og vejrur: 9 trin (med billeder)

Video: Tidevand og vejrur: 9 trin (med billeder)

Video: Tidevand og vejrur: 9 trin (med billeder)
Video: Сокрытые тайны битвы авианесущего крейсера USS Yorktown 2024, November
Anonim
Tidevands- og vejrur
Tidevands- og vejrur

Selvom du kan købe analoge tidevandsure, der har en enkelt hånd, der angiver, om tidevandet er høj eller lav eller et sted imellem, var det, jeg ville, noget, der ville fortælle mig på hvilket tidspunkt lavvande vil være. Jeg ville have noget, jeg hurtigt kunne kigge på uden at skulle tænde det, eller trykke på nogen knapper eller vente. Og jeg ville have noget med lang batterilevetid. Så jeg brugte et TTGO T5-kort, som er et ESP32-baseret kort med et 2,13 e-papirdisplay, forbundet til en TTL5110-chip. TPL5110 tænder T5 hver 2,5 time, og en gang om dagen downloader T5 tidevandsdata fra NOAA og vejrdata fra OpenWeatherMap, viser dataene på e-papiret og fortæller derefter TPL5110 at slukke for T5.

OPDATERING (25. februar 2020) Tide Clock har kørt i et år nu, og batteriet er på 4,00 volt, så uret kunne tænkes at køre i mange år.

Trin 1: Hardware -liste

TTGO T5 board $ 17

Adafruit TPL5110 board $ 5

Adafruit Perma-Proto Quarter-size board (valgfrit) $ 0,71 (minimumsordre 8,50 $)

Li-Poly batteri 1200 mAh $ 10 (eller en anden passende strømkilde)

JST PH 2-benet kabel-hanhoved $ 0,75

220 uF kondensator

Trin 2: Værktøjer

Loddekolbe

Wire strippere

Li-Po batterioplader, som denne.

Trin 3: Saml hardware

Saml hardware
Saml hardware
Saml hardware
Saml hardware
Saml hardware
Saml hardware

Montering af hardwaren er ret enkel som skematisk viser. Jeg brugte et Adafruit Perma-proto-bord, der er som et normalt protoboard, undtagen at det er lagt ud som et brødbræt med de samme elektriske forbindelser som et brødbræt, hvilket er rart. Da jeg kun havde brug for et par forbindelser og ønskede at passe hele samlingen til en lille kasse, skar jeg en af brædderne i fjerdedele med et Dremel cutoff -hjul.

220 uF kondensatoren er meget vigtig. Uden det vil TPL5110 aldrig tænde T5. Det er lidt uklart hvorfor, men andre mennesker, der bruger TPL5110, har haft det samme problem. Måske trækker ESP32 mere strøm ved opstart, end TTL5110 kan levere?

Trådløs ikke batteriet. Brug JST-PH-kablet, så du kan afbryde batteriet for at oplade det. Der kan være en måde at oplade batteriet fra T5 tilbage gennem TPL5110, hvis TPL5110 er "tændt", men jeg kan ikke stå inde for den teknik.

Jeg lavede en trækasse som et kabinet, men alt med minimum indvendige dimensioner på 1,5 "x 2,75" x 1 "ville fungere.

Trin 4: Indstil timingen

TPL5110 -kortet har et trimpotentiometer, der indstiller det tidsinterval, hvor TPL5110 vågner. Brug en lille skruetrækker til at dreje dette hele vejen mod uret. På mit bord satte dette intervallet til 145 minutter, hvilket faktisk er mere end det angivne maksimum på 120 minutter, men det virker og var konsekvent og vil spare endnu mere strøm end at vågne hvert 120. minut, så jeg brugte det. Du behøver ikke at kende intervallet præcist, da målet bare er at downloade data nogenlunde en gang om dagen cirka omkring kl. Du kan angive intervallet (f.eks. 145 minutter) og vågningstiden (f.eks. 4:00) i env_config.h.

(Hvis du vil have bedre styr på timingen for et andet projekt, har TPL5110 -kortet et spor på bagsiden, du kan skære for at deaktivere potentiometeret. Derefter fastgør du en modstand til forsinkelsesstiften, og modstanden bestemmer intervallet, i henhold til dette diagram.)

Trin 5: Softwaren

Du skal bruge Arduino IDE med ESP32 -pakken. I IDE skal du indstille dit board til "ESP32 Dev Module".

Skitsen er tilgængelig på https://github.com/jasonful/Tides og kræver 3 biblioteker:

  1. "ESP8266 Weather Station", tilgængelig fra Arduino Library Manager (eller her). Du skal kun bruge disse 6 filer: ESPHTTPClient.h, ESPWiFi.h, OpenWeatherMapCurrent.cpp, OpenWeatherMapCurrent.h, OpenWeatherMapForecast.cpp, OpenWeatherMapForecast.h og kan slette resten.
  2. "Json Streaming Parser" tilgængelig fra Arduino Library Manager (eller her)
  3. https://github.com/LilyGO/TTGO-Epape-T5-V1.8/tree/master/epa2in13-demo Selvom koden ikke er pakket som et ægte bibliotek, kan du bare kopiere den under bibliotekets bibliotek og inkludere det.

Trin 6: Konfigurer softwaren

Der er flere parametre, du skal indstille (og et par stykker, du måske vil angive) i filen env_config.h, herunder:

  • WiFi SSID og adgangskode
  • NOAA stations -id (med andre ord, hvor er du)
  • OpenWeatherMap AppID, som du skal registrere dig for (det er let og gratis)
  • OpenWeatherMap LocationID (igen, hvor er du)
  • CONFIG_USE_TPL5110, som giver dig mulighed for at bruge en T5 uden en TPL5110. I stedet vil softwaren gå i dyb dvaletilstand. T5 -kortet trækker omkring 8 ma i dyb søvn, så jeg ville kun forvente, at batteriet holder et par dage.

Trin 7: Sådan fungerer softwaren

(Du kan springe denne del over, hvis du er ligeglad.)

Målet er at vågne en gang om dagen, men da det maksimale interval for TPL5110 kun er 2 timer eller deromkring, skal T5 vågne oftere. Så efter at det har downloadet tidevands- og vejrdata, beregner det, hvor mange af disse 2 timers intervaller der er mellem nu og 4:00 i morgen formiddag. Dette er lidt kompliceret af det faktum, at TPL5110 helt afbryder strømmen til T5, hvilket er godt for batteriet, men det betyder, at vi mister RAM og uret i realtid. Det er som at vågne op hver morgen med hukommelsestab. Så for at finde ud af, hvad klokken er nu, udtrækker den den fra NOAAs HTTP -header. Og for at huske, hvor mange 2-timers intervaller der er tilbage, skriver det den modsætning til ikke-flygtig opbevaring (flash). Hver gang den vågner, kontrollerer den den tæller, formindsker den, gemmer den, og hvis den er større end nul, sender den straks et signal til TPL51110 ("Udført"), der fortæller den at den skal sove. Når tælleren når nul, downloader koden nye data og genberegner og nulstiller tælleren.

Trin 8: Kør det

Kør det
Kør det

Sørg for, at kontakten på venstre side af T5 er i op (tændt) position, upload skitsen til T5, og inden for få sekunder skal skærmen opdateres med tidevand og vejrinformation.

Hvis du skal fejlsøge softwaren, skal du ændre "#define DEBUG 0" øverst på Tides.ino til "#define DEBUG 1". Dette vil aktivere seriel fejlfindingsoutput og også vise bunden af e-papiret antallet af genstarter, der er tilbage, før det downloader nye data, og den tid, det senest downloadede data.

Trin 9: Fremtidige retninger

  1. Brugen af TPL5110 kombineret med et e-papir display er en fantastisk måde at vise data, der ikke ændres ofte, med fremragende batterilevetid.
  2. Da jeg designede dette, overvejede jeg at bruge TrigBoard, som er et ESP8266 -kort med en TPL5111 om bord. Det ville have krævet at få et separat e-papir display og e-paper driver board som dette eller dette. Eller en driver+board combo som denne eller denne. For at overføre koden til ESP8266, tror jeg, at SSL-koden skal bruge fingeraftryk i stedet for certifikater, og den ikke-flygtige lagerkode skal bruge EEPROM- eller RTC-hukommelse.
  3. Jeg har for nylig hørt, at Lolin32 -kortet er ret anstændigt i dyb dvaletilstand: omkring 100uA. Ikke så god som TPL51110 -tavlen (20uA ifølge Adafruit) men god nok.
  4. OpenWeatherMap returnerer meget flere vejrdata, end jeg viser. Inklusive ikon -id'er, hvilket ville kræve at finde monokrome ikoner et eller andet sted.

Anbefalede: