Spisu treści:

Zegar pływów i pogody: 9 kroków (ze zdjęciami)
Zegar pływów i pogody: 9 kroków (ze zdjęciami)

Wideo: Zegar pływów i pogody: 9 kroków (ze zdjęciami)

Wideo: Zegar pływów i pogody: 9 kroków (ze zdjęciami)
Wideo: [REKONSTRUKCJA W 16:9] Czołówka Kroniki OTV Kraków z lat 1992-1994 2024, Listopad
Anonim
Zegar pływów i pogody
Zegar pływów i pogody

Chociaż można kupić analogowe zegary pływów, które mają jedną wskazówkę wskazującą, czy przypływ jest wysoki, czy niski, czy gdzieś pomiędzy, chciałem mieć coś, co mówi mi, o której godzinie nastąpi odpływ. Chciałem czegoś, na co mógłbym szybko spojrzeć bez konieczności włączania, naciskania jakichkolwiek przycisków czy czekania. A ja chciałem czegoś z długą żywotnością baterii. Użyłem więc płyty TTGO T5, która jest płytą opartą na ESP32 z 2,13-calowym wyświetlaczem e-papierowym, podłączoną do układu TTL5110. TPL5110 włącza T5 co 2,5 godziny, a raz dziennie T5 pobiera dane pływów z NOAA i dane pogodowe z OpenWeatherMap, wyświetlają dane na e-papieru, a następnie mówi TPL5110, aby wyłączył T5.

AKTUALIZACJA (25 lutego 2020 r.) Zegar pływów działa już od roku, a bateria ma napięcie 4,00 V, więc zegar może działać przez wiele lat.

Krok 1: Lista sprzętu

Tablica TTGO T5 $17

Płyta Adafruit TPL5110 $5

Deska Adafruit Perma-Proto ćwiartka (opcjonalnie) 0,71 USD (minimalne zamówienie 8,50 USD)

Akumulator Li-Poly 1200 mAh 10 USD (lub inne odpowiednie źródło zasilania)

JST PH 2-pinowy kabel - męski nagłówek $0.75

Kondensator 220 uF

Krok 2: Narzędzia

Lutownica

Narzędzia do ściągania izolacji

Ładowarka akumulatorów Li-Po, taka jak ta.

Krok 3: Złóż sprzęt

Montaż sprzętu
Montaż sprzętu
Montaż sprzętu
Montaż sprzętu
Montaż sprzętu
Montaż sprzętu

Jak pokazuje schemat, montaż sprzętu jest dość prosty. Użyłem płytki Adafruit Perma-proto, która jest jak normalna płytka prototypowa, z wyjątkiem tego, że jest ułożona jak płytka stykowa, z takimi samymi połączeniami elektrycznymi jak płytka stykowa, co jest miłe. Ponieważ potrzebowałem tylko kilku połączeń, a cały zespół chciałem zmieścić w małym pudełku, pociąłem jedną z desek na czwarte za pomocą ściernicy Dremel.

Kondensator 220 uF jest bardzo ważny. Bez niego TPL5110 nigdy nie włączy T5. Nie jest jasne, dlaczego, ale inne osoby korzystające z TPL5110 miały ten sam problem. Może ESP32 pobiera więcej prądu przy starcie niż może dostarczyć TTL5110?

Nie podłączaj baterii na stałe. Użyj kabla JST-PH, aby odłączyć akumulator, aby go naładować. Może istnieć sposób na ładowanie baterii z T5 z powrotem przez TPL5110, jeśli TPL5110 jest „włączony”, ale nie mogę ręczyć za tę technikę.

Zrobiłem drewniane pudełko jako obudowę, ale wszystko o minimalnych wymiarach wewnętrznych 1,5" x 2,75" x 1" będzie działać.

Krok 4: Dostrój czas

Płyta TPL5110 ma potencjometr trymowania, który ustawia przedział czasu, w którym TPL5110 się budzi. Użyj małego śrubokręta, aby obrócić to całkowicie w kierunku przeciwnym do ruchu wskazówek zegara. Na mojej desce ustawiło to interwał na 145 minut, co w rzeczywistości jest więcej niż określone maksimum 120 minut, ale działa i jest spójne i zaoszczędzi jeszcze więcej energii niż budzenie się co 120 minut, więc użyłem go. Nie musisz dokładnie znać interwału, ponieważ celem jest po prostu pobieranie danych mniej więcej raz dziennie, około godziny 4 rano. W pliku env_config.h możesz określić interwał (np. 145 minut) i czas budzenia (np. 4 nad ranem).

(Jeśli chcesz mieć lepszą kontrolę rozrządu dla jakiegoś innego projektu, płytka TPL5110 ma z tyłu ślad, który możesz wyciąć, aby wyłączyć potencjometr. Następnie podłączasz rezystor do pinu Delay, a rezystancja określa interwał wg. ten wykres.)

Krok 5: Oprogramowanie

Będziesz potrzebował Arduino IDE z pakietem ESP32. W IDE ustaw swoją płytę na "ESP32 Dev Module".

Szkic jest dostępny na https://github.com/jasonful/Tides i wymaga 3 bibliotek:

  1. "ESP8266 Weather Station", dostępna z Arduino Library Manager (lub tutaj). Będziesz potrzebować tylko tych 6 plików: ESPHTTPClient.h, ESPWiFi.h, OpenWeatherMapCurrent.cpp, OpenWeatherMapCurrent.h, OpenWeatherMapForecast.cpp, OpenWeatherMapForecast.h i możesz usunąć resztę.
  2. "Json Streaming Parser" dostępny z Arduino Library Manager (lub tutaj)
  3. https://github.com/LilyGO/TTGO-Epape-T5-V1.8/tree/master/epa2in13-demo Nawet jeśli kod nie jest spakowany jako prawdziwa biblioteka, możesz go po prostu skopiować do katalogu bibliotek i dołączyć to.

Krok 6: Skonfiguruj oprogramowanie

Istnieje kilka parametrów, które będziesz musiał ustawić (i kilka, które możesz chcieć ustawić) w pliku env_config.h, w tym:

  • SSID Wi-Fi i hasło
  • Identyfikator stacji NOAA (innymi słowy, gdzie jesteś)
  • OpenWeatherMap AppID, do którego musisz się zarejestrować (to proste i bezpłatne)
  • Identyfikator lokalizacji OpenWeatherMap (znowu, gdzie jesteś)
  • CONFIG_USE_TPL5110, co pozwala na użycie T5 bez TPL5110. Zamiast tego oprogramowanie przejdzie w tryb głębokiego uśpienia. Płyta T5 pobiera około 8 ma w głębokim śnie, więc spodziewałbym się, że bateria wystarczy na kilka dni.

Krok 7: Jak działa oprogramowanie

(Możesz pominąć tę część, jeśli ci to nie zależy.)

Celem jest budzenie się raz dziennie, ale ponieważ maksymalny interwał TPL5110 wynosi tylko około 2 godziny, T5 musi budzić się częściej. Więc po pobraniu danych o pływach i pogodzie oblicza, ile z tych 2-godzinnych odstępów jest między teraz a 4:00 rano jutro rano. Jest to nieco skomplikowane przez fakt, że TPL5110 całkowicie odcina zasilanie T5, co jest dobre dla baterii, ale oznacza to, że tracimy pamięć RAM i zegar czasu rzeczywistego. To jak budzenie się każdego ranka z amnezją. Aby dowiedzieć się, która jest teraz godzina, wyodrębnia ją z nagłówka HTTP NOAA. Aby zapamiętać, ile pozostało 2-godzinnych interwałów, zapisuje to przeciw nieulotnej pamięci (flash). Za każdym razem, gdy się budzi, sprawdza ten licznik, zmniejsza go, zapisuje, a jeśli jest większy od zera, natychmiast wysyła sygnał do TPL51110 („Gotowe”), mówiąc mu, aby uśpił. Gdy licznik osiągnie zero, kod pobiera nowe dane, przelicza i resetuje licznik.

Krok 8: Uruchom to

Uruchom
Uruchom

Upewnij się, że przełącznik po lewej stronie T5 jest w pozycji górnej (włączonej), prześlij szkic do T5, a w ciągu kilku sekund ekran powinien zaktualizować informacje o pływach i pogodzie.

Jeśli chcesz debugować oprogramowanie, zmień „#define DEBUG 0” w górnej części Tides.ino na „#define DEBUG 1”. Spowoduje to włączenie wyjścia debugowania szeregowego, a także wyświetlenie na dole e-papieru liczby ponownych uruchomień pozostałych do pobrania nowych danych oraz czasu ostatniego pobrania danych.

Krok 9: Przyszłe kierunki

  1. Zastosowanie TPL5110 w połączeniu z wyświetlaczem e-papierowym to świetny sposób na wyświetlanie dowolnych danych, które nie zmieniają się często, przy doskonałej żywotności baterii.
  2. Kiedy to projektowałem, rozważałem użycie TrigBoard, który jest płytą ESP8266 z TPL5111 na pokładzie. Wymagałoby to osobnego wyświetlacza e-papieru i płyty sterownika e-papieru, takich jak ten lub ten. Lub kombinację sterownika z płytą jak to lub to. Aby przenieść kod do ESP8266, myślę, że kod SSL będzie musiał używać odcisków palców zamiast certyfikatów, a kod pamięci nieulotnej będzie musiał użyć pamięci EEPROM lub RTC.
  3. Niedawno słyszałem, że płyta Lolin32 jest całkiem przyzwoita w trybie głębokiego uśpienia: około 100uA. Nie tak dobra jak płyta TPL51110 (20uA według Adafruit), ale wystarczająco dobra.
  4. OpenWeatherMap zwraca o wiele więcej danych pogodowych niż wyświetlam. W tym identyfikatory ikon, które wymagałyby znalezienia gdzieś ikon monochromatycznych.

Zalecana: