Съдържание:

Часовник за приливите и отливите: 9 стъпки (със снимки)
Часовник за приливите и отливите: 9 стъпки (със снимки)

Видео: Часовник за приливите и отливите: 9 стъпки (със снимки)

Видео: Часовник за приливите и отливите: 9 стъпки (със снимки)
Видео: Новото ми плавателно средство и настройки на сонар Garmin Vivid 7 SV 2024, Ноември
Anonim
Часовник за приливите и отливите
Часовник за приливите и отливите

Въпреки че можете да си купите аналогови часовници за прилив, които имат една стрелка, показваща дали приливът е висок или нисък или някъде по средата, това, което исках, беше нещо, което щеше да ми каже в кой момент ще бъде отливът. Исках нещо, което да погледна бързо, без да се налага да го включвам, да натискам никакви бутони или да чакам. Исках нещо с дълъг живот на батерията. Затова използвах платка TTGO T5, която е базирана на ESP32 с 2,13-инчов дисплей за електронна хартия, свързан с чип TTL5110. TPL5110 включва T5 на всеки 2,5 часа, а веднъж на ден T5 изтегля данни за приливите и отливите от NOAA и метеорологичните данни от OpenWeatherMap, показват данните на електронната хартия, след което казват на TPL5110 да изключи T5.

АКТУАЛИЗИРАНЕ (25 февруари 2020 г.) Tide Clock работи от една година, а батерията е на 4,00 волта, така че часовникът може да работи в продължение на много години.

Стъпка 1: Списък на хардуера

TTGO T5 дъска $ 17

Дъска Adafruit TPL5110 $ 5

Дъска с четвърт размер Adafruit Perma-Proto (по избор) $ 0,71 (минимална поръчка $ 8,50)

Li-Poly батерия 1200 mAh $ 10 (или друг подходящ източник на захранване)

JST PH 2-пинов кабел-мъжка заглавка $ 0,75

220 uF кондензатор

Стъпка 2: Инструменти

Поялник

Машини за сваляне на тел

Зарядно устройство за батерии Li-Po, като това.

Стъпка 3: Сглобете хардуера

Сглобете хардуера
Сглобете хардуера
Сглобете хардуера
Сглобете хардуера
Сглобете хардуера
Сглобете хардуера

Сглобяването на хардуера е доста просто, както показва схемата. Използвах дъска Adafruit Perma-proto, която е като нормална протоплата, освен че е подредена като макет, със същите електрически връзки като макет, което е хубаво. Тъй като имах нужда само от няколко връзки и исках да побера целия монтаж в малка кутия, нарязах една от дъските на четвърти с прекъсващо колело Dremel.

Кондензаторът 220 uF е много важен. Без него TPL5110 никога няма да включи T5. Малко е неясно защо, но други хора, използващи TPL5110, са имали същия проблем. Може би ESP32 черпи повече ток при стартиране, отколкото TTL5110 може да осигури?

Не свързвайте батерията с кабел. Използвайте кабела JST-PH, за да можете да изключите батерията, за да я заредите. Възможно е да има начин да заредите батерията от T5 обратно през TPL5110, ако TPL5110 е „включен“, но не мога да гарантирам тази техника.

Направих дървена кутия като заграждение, но всичко с минимални вътрешни размери 1,5 "x 2,75" x 1 "ще работи.

Стъпка 4: Настройте времето

Платката TPL5110 има потенциометър за настройка, който задава интервала от време, през който TPL5110 се събужда. Използвайте малка отвертка, за да я завъртите докрай обратно на часовниковата стрелка. На моята дъска това зададе интервала на 145 минути, което всъщност е повече от предвидения максимум от 120 минути, но той работи и беше последователен и ще спести още повече енергия, отколкото да се събужда на всеки 120 минути, затова го използвах. Не е нужно да знаете точно интервала, тъй като целта е просто да изтеглите данни приблизително веднъж на ден приблизително около 4 часа сутринта. Можете да зададете интервала (напр. 145 минути) и времето за събуждане (напр. 4 часа сутринта) в env_config.h.

(Ако искате по -добър контрол на времето за някой друг проект, платката TPL5110 има следа на гърба, която можете да изрежете, за да деактивирате потенциометъра. След това прикрепяте резистор към щифта за закъснение и съпротивлението определя интервала, според тази диаграма.)

Стъпка 5: Софтуерът

Ще ви е необходима Arduino IDE с пакета ESP32. В IDE задайте дъската си на „ESP32 Dev Module“.

Скицата е достъпна на адрес https://github.com/jasonful/Tides и изисква 3 библиотеки:

  1. „ESP8266 Weather Station“, достъпно от мениджъра на библиотеката Arduino (или тук). Ще ви трябват само тези 6 файла: ESPHTTPClient.h, ESPWiFi.h, OpenWeatherMapCurrent.cpp, OpenWeatherMapCurrent.h, OpenWeatherMapForecast.cpp, OpenWeatherMapForecast.h и можете да изтриете останалите.
  2. „Json Streaming Parser“, достъпен от Arduino Library Manager (или тук)
  3. https://github.com/LilyGO/TTGO-Epape-T5-V1.8/tree/master/epa2in13-demo Въпреки че кодът не е опакован като истинска библиотека, можете просто да го копирате в директорията на вашите библиотеки и да включите то.

Стъпка 6: Конфигурирайте софтуера

Има няколко параметъра, които ще трябва да зададете (и няколко, които може да искате да зададете) във файла env_config.h, включително:

  • WiFi SSID и парола
  • Идентификационен номер на станцията NOAA (с други думи, къде сте)
  • OpenWeatherMap AppID, за който ще трябва да се регистрирате (лесно и безплатно)
  • OpenWeatherMap LocationID (отново къде си)
  • CONFIG_USE_TPL5110, което ви позволява да използвате T5 без TPL5110. Вместо това софтуерът ще влезе в режим на дълбок сън. Дъската T5 извлича около 8 ma в дълбок сън, така че очаквам само батерията да издържи няколко дни.

Стъпка 7: Как работи софтуерът

(Можете да пропуснете тази част, ако не ви пука.)

Целта е да се събуждате веднъж на ден, но тъй като максималният интервал на TPL5110 е само около 2 часа, T5 трябва да се събужда по -често. Така че, след като изтегли данни за приливите и времето, той изчислява колко от тези 2 -часови интервали има между сега и 4:00 сутринта сутринта. Това е малко усложнено от факта, че TPL5110 напълно прекъсва захранването на T5, което е добре за батерията, но това означава, че губим RAM и часовник в реално време. Това е като да се събуждаш всяка сутрин с амнезия. За да разбере колко е часът, той го извлича от HTTP заглавката на NOAA. И за да запомните колко 2-часови интервали са останали, той пише този брояч на енергонезависима памет (флаш). Всеки път, когато се събуди, той проверява този брояч, намалява го, съхранява го и ако е по -голям от нула, незабавно изпраща сигнал до TPL51110 ("Готово"), който му казва да го приспи. Когато броячът достигне нула, кодът изтегля нови данни и преизчислява и нулира брояча.

Стъпка 8: Стартирайте го

Пусни го
Пусни го

Уверете се, че превключвателят от лявата страна на T5 е в положение нагоре (включено), качете скицата в T5 и в рамките на няколко секунди екранът трябва да се актуализира с информация за приливите и времето.

Ако трябва да отстраните грешки в софтуера, променете „#define DEBUG 0“в горната част на Tides.ino на „#define DEBUG 1“. Това ще включи серийния изход за отстраняване на грешки, а също така ще покаже в долната част на електронната хартия броя на рестартиранията, останали преди изтеглянето на нови данни, и времето, когато са изтеглили последните данни.

Стъпка 9: Бъдещи посоки

  1. Използването на TPL5110 в комбинация с дисплей за електронна хартия е чудесен начин за показване на всички данни, които не се променят често, с отличен живот на батерията.
  2. Когато проектирах това, обмислих да използвам TrigBoard, която е платка ESP8266 с TPL5111 на борда. Щеше да се наложи получаване на отделен дисплей за електронна хартия и дъска за драйвер за електронна хартия като тази или тази. Или комбинация от драйвер+платка като тази или тази. За да прехвърля кода към ESP8266, мисля, че SSL кодът ще трябва да използва пръстови отпечатъци вместо сертификати, а енергонезависимият код за съхранение ще трябва да използва EEPROM или RTC памет.
  3. Наскоро чух, че платката Lolin32 е доста прилична в режим на дълбок сън: около 100uA. Не толкова добър като платката TPL51110 (20uA според Adafruit), но достатъчно добър.
  4. OpenWeatherMap връща много повече метеорологични данни, отколкото показвам. Включително идентификатори на икони, които биха изисквали някъде да се намерят монохромни икони.

Препоръчано: