Spisu treści:
- Krok 1: Lista sprzętu
- Krok 2: Narzędzia
- Krok 3: Złóż sprzęt
- Krok 4: Dostrój czas
- Krok 5: Oprogramowanie
- Krok 6: Skonfiguruj oprogramowanie
- Krok 7: Jak działa oprogramowanie
- Krok 8: Uruchom to
- Krok 9: Przyszłe kierunki
Wideo: Zegar pływów i pogody: 9 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
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
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:
- "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ę.
- "Json Streaming Parser" dostępny z Arduino Library Manager (lub tutaj)
- 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
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
- 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.
- 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.
- 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.
- OpenWeatherMap zwraca o wiele więcej danych pogodowych niż wyświetlam. W tym identyfikatory ikon, które wymagałyby znalezienia gdzieś ikon monochromatycznych.
Zalecana:
Zegar WiFi, zegar i stacja pogodowa, sterowanie Blynk: 5 kroków (ze zdjęciami)
Zegar WiFi, timer i stacja pogodowa, sterowanie Blynk: jest to zegar cyfrowy Morphing (dzięki Hari Wiguna za koncepcję i kod morfingu), jest to również zegar analogowy, stacja raportowania pogody i minutnik kuchenny. Jest kontrolowany w całości przez Aplikacja Blynk na smartfonie przez Wi-Fi.Aplikacja umożliwia
ESP8266 Zegar sieciowy bez zegara RTC - Nodemcu NTP Zegar bez RTC - PROJEKT ZEGAR INTERNETOWY: 4 kroki
ESP8266 Zegar sieciowy bez zegara RTC | Nodemcu NTP Zegar bez RTC | PROJEKT ZEGARA INTERNETOWEGO: W projekcie będzie wykonywany projekt zegara bez RTC, będzie pobierał czas z internetu za pomocą wifi i wyświetli go na wyświetlaczu st7735
CountClock w trybie pływów: 10 kroków (ze zdjęciami)
CountClock w trybie Tidal: Aby uniknąć nieporozumień: CountClock w trybie Tidal nie wskazuje pływów oceanicznych, ale wskazuje czas. Aspekt pływowy w tym Instructable odnosi się do wizualnej prezentacji czasu, który wydaje się podobny do przypływu
Zegar prognozy pogody przy użyciu starego alarmu i Arduino: 13 kroków (ze zdjęciami)
Zegar prognozy pogody przy użyciu starego alarmu i Arduino: miałem zepsuty budzik i wpadłem na pomysł, aby przekonwertować go na zegar i stację prognozującą pogodę. Do tego projektu potrzebujesz: Stary okrągły budzik Arduino Nano BME280 moduł czujnika ( temperatura, wilgotność, ciśnienie) wyświetlacz LCD
Zegar sieciowy i monitor pogody oparty na ESP8266: 3 kroki (ze zdjęciami)
Zegar sieciowy i monitor pogody oparty na ESP8266: Krótki i prosty projekt weekendowy z ESP8266 i wyświetlaczem OLED 128x64 0,96''. Urządzenie jest zegarem sieciowym, tzn. pobiera czas z serwerów ntp. Wyświetla również informacje o pogodzie z ikonami z openweathermap.org Wymagane części:1. Moduł ESP8266 (