Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:04
Хотя вы можете купить аналоговые часы с приливом и отливом, у которых одна стрелка показывает, высокий или низкий прилив или что-то среднее, мне нужно было что-то, что сообщало бы мне, в какое время будет отлив. Мне нужно было что-то, на что я мог бы быстро взглянуть, не включая его, не нажимая никаких кнопок или не дожидаясь. И хотелось чего-нибудь с большим временем автономной работы. Поэтому я использовал плату TTGO T5, которая представляет собой плату на основе ESP32 с дисплеем для электронной бумаги 2,13 дюйма, подключенную к микросхеме TTL5110. TPL5110 включает T5 каждые 2,5 часа, а один раз в день T5 загружает данные о приливах с NOAA и данные о погоде из OpenWeatherMap, отображают данные на электронной бумаге, а затем приказывают TPL5110 выключить T5.
ОБНОВЛЕНИЕ (25 февраля 2020 г.) Часы приливов работают в течение одного года, а аккумулятор работает на 4,00 вольта, так что часы, вероятно, могут работать в течение многих лет.
Шаг 1: Список оборудования
Доска TTGO T5 $ 17
Доска Adafruit TPL5110 $ 5
Доска Adafruit Perma-Proto Quarter-size (необязательно) 0,71 доллара США (минимальный заказ 8,50 долларов США)
Литий-полимерный аккумулятор 1200 мАч 10 долларов США (или другой подходящий источник питания)
2-контактный кабель JST PH - штекер $ 0,75
Конденсатор 220 мкФ
Шаг 2: Инструменты
Паяльник
Инструмент для зачистки проводов
Зарядное устройство Li-Po аккумулятора, такое как это.
Шаг 3: Соберите оборудование
Как показано на схеме, сборка оборудования довольно проста. Я использовал плату Adafruit Perma-proto, которая похожа на обычную макетную плату, за исключением того, что она выложена как макет, с теми же электрическими соединениями, что и макет, что приятно. Поскольку мне нужно было всего несколько соединений, и я хотел уместить всю сборку в небольшую коробку, я разрезал одну из досок на четверти с помощью отрезного круга Dremel.
Конденсатор 220 мкФ очень важен. Без него TPL5110 никогда не включит T5. Непонятно почему, но у других людей, использующих TPL5110, была такая же проблема. Может быть, ESP32 потребляет больше тока при запуске, чем может дать TTL5110?
Не подключайте аккумулятор жестко. Используйте кабель JST-PH, чтобы отсоединить аккумулятор для его зарядки. Если TPL5110 включен, может быть способ зарядить аккумулятор от T5 обратно через TPL5110, но я не могу поручиться за этот метод.
Я сделал деревянный ящик в качестве ограждения, но подойдет все, что имеет минимальные внутренние размеры 1,5 x 2,75 x 1 дюйм.
Шаг 4: Настройте время
На плате TPL5110 есть подстроечный потенциометр, который устанавливает временной интервал, через который TPL5110 выходит из спящего режима. Используйте крошечную отвертку, чтобы повернуть его против часовой стрелки до упора. На моей плате это установило интервал на 145 минут, что на самом деле больше, чем заявленный максимум в 120 минут, но он работает и был последовательным и сэкономит даже больше энергии, чем пробуждение каждые 120 минут, поэтому я использовал его. Вам не нужно точно знать интервал, поскольку цель состоит в том, чтобы загружать данные примерно раз в день примерно в 4 часа ночи. Вы можете указать интервал (например, 145 минут) и время пробуждения (например, 4 часа ночи) в env_config.h.
(Если вы хотите лучше контролировать синхронизацию для какого-либо другого проекта, на задней панели платы TPL5110 есть след, который вы можете вырезать, чтобы отключить потенциометр. Затем вы присоединяете резистор к контакту задержки, и сопротивление определяет интервал в соответствии с этот график.)
Шаг 5: Программное обеспечение
Вам понадобится IDE Arduino с пакетом ESP32. В среде IDE установите для вашей платы значение «ESP32 Dev Module».
Скетч доступен по адресу https://github.com/jasonful/Tides и требует 3 библиотеки:
- «Метеостанция ESP8266», доступная в Менеджере библиотек Arduino (или здесь). Вам понадобятся только эти 6 файлов: ESPHTTPClient.h, ESPWiFi.h, OpenWeatherMapCurrent.cpp, OpenWeatherMapCurrent.h, OpenWeatherMapForecast.cpp, OpenWeatherMapForecast.h, а остальные вы можете удалить.
- "Json Streaming Parser" доступен в диспетчере библиотек Arduino (или здесь)
- 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 мА в глубоком сне, поэтому я ожидаю, что заряда батареи хватит на несколько дней.
Шаг 7: Как работает программное обеспечение
(Вы можете пропустить эту часть, если вам все равно.)
Цель состоит в том, чтобы просыпаться один раз в день, но поскольку максимальный интервал TPL5110 составляет всего 2 часа или около того, T5 должен просыпаться чаще. Таким образом, после загрузки данных о приливах и погоде он вычисляет, сколько из этих двухчасовых интервалов существует с настоящего момента до 4:00 утра завтрашнего утра. Это немного усложняется тем фактом, что TPL5110 полностью отключает питание T5, что хорошо для батареи, но это означает, что мы теряем оперативную память и часы реального времени. Это как просыпаться каждое утро с амнезией. Чтобы выяснить, сколько сейчас времени, он извлекает его из HTTP-заголовка NOAA. И чтобы запомнить, сколько осталось 2-часовых интервалов, он записывает этот счетчик в энергонезависимую память (флеш-память). Каждый раз, когда он просыпается, он проверяет этот счетчик, уменьшает его, сохраняет его, и если он больше нуля, он немедленно отправляет сигнал на TPL51110 («Готово»), говоря ему, что он переводит его в спящий режим. Когда счетчик достигает нуля, код загружает новые данные, пересчитывает и сбрасывает счетчик.
Шаг 8: запустите
Убедитесь, что переключатель на левой стороне T5 находится в верхнем (включенном) положении, загрузите эскиз в T5, и в течение нескольких секунд экран должен обновиться с информацией о приливах и погоде.
Если вам нужно отладить программное обеспечение, измените «#define DEBUG 0» в верхней части Tides.ino на «#define DEBUG 1». Это включит последовательный вывод отладки, а также отобразит в нижней части электронного документа количество перезапусков, оставшихся до загрузки новых данных, и время последней загрузки данных.
Шаг 9: Будущие направления
- Использование TPL5110 в сочетании с дисплеем на электронной бумаге - отличный способ отображать любые данные, которые не часто меняются, с отличным временем автономной работы.
- Когда я разрабатывал это, я думал об использовании TrigBoard, который представляет собой плату ESP8266 с TPL5111 на плате. Это потребовало бы получения отдельного дисплея электронной бумаги и платы драйвера электронной бумаги вроде этого или этого. Или вот такая комбинация драйвер + плата. Я думаю, что для переноса кода на ESP8266 код SSL должен будет использовать отпечатки пальцев вместо сертификатов, а код энергонезависимого хранилища должен будет использовать память EEPROM или RTC.
- Недавно я слышал, что плата Lolin32 в режиме глубокого сна неплохо работает: около 100 мкА. Не так хорошо, как плата TPL51110 (20 мкА по данным Adafruit), но достаточно хороша.
- OpenWeatherMap возвращает гораздо больше данных о погоде, чем я показываю. Включая идентификаторы значков, которые потребовали бы где-нибудь найти монохромные значки.
Рекомендуемые:
Часы Vortex: наручные часы с зеркалом бесконечности: 10 шагов (с изображениями)
Часы Vortex: наручные часы с зеркалом бесконечности: целью этого проекта было создание носимой версии зеркальных часов бесконечности. Он использует свои светодиоды RGB для индикации времени, назначая часы, минуты и секунды красным, зеленым и синим светам соответственно и перекрывая эти оттенки t
Фотохромные часы и светящиеся в темноте часы: 12 шагов (с изображениями)
Фотохромные часы и часы, светящиеся в темноте: в этих часах используется специально созданный 4-значный 7-сегментный дисплей, сделанный из ультрафиолетовых светодиодов. Перед дисплеем размещается экран, который состоит либо из фосфоресцирующего («светится в темноте»), либо из фотохромного материала. Загорается кнопка вверху
C51 4-битные электронные часы - деревянные часы: 15 шагов (с изображениями)
C51 4-битные электронные часы - деревянные часы: у меня было немного свободного времени на этих выходных, поэтому я собрал эти 4-битные электронные цифровые часы DIY за 2,40 австралийских долларов, которые я недавно купил на AliExpress
Часы с прогнозом погоды с использованием старого будильника и Arduino: 13 шагов (с изображениями)
Часы с прогнозом погоды с использованием старого будильника и Arduino: у меня валялся сломанный будильник, и мне пришла в голову идея преобразовать его в часы и станцию прогнозирования погоды. Для этого проекта вам понадобятся: Старый круглый будильник, модуль датчика Arduino Nano BME280 ( температура, влажность, давление) ЖК-дисплей
Создайте настоящие часы с боем колокола для вашего ПК и часы с огнетушителем: 3 шага (с изображениями)
Создайте настоящие часы с боем колокола для вашего ПК и часы с огнетушителем: медный колокол, маленькое реле, еще несколько вещей и настоящий колокол могут пробить часы на вашем рабочем столе. Хотя этот проект работает на Windows и Mac OS X тоже, я решил установить Ubuntu Linux на ПК, который я нашел в мусорном ведре, и поработать над этим: у меня никогда не было