Авторизация
Зарегистрироваться

Погодный информер на цветном e-paper дисплее

В топике будет описан погодный информер на основе трехцветного дисплея e-paper.

Особенность информера — изображение готовится на внешнем компьютере.



Погодный информер на цветном e-paper дисплее



Года три назад я купил на Ali цветной e- paper дисплей «Waveshare 4.2 inch e-paper module», руководствуясь в основном желанием попробовать новую технологию своими руками.
Дисплей может отображать 3 цвета (белый, черный, красный) с разрешением 400 на 300 точек. Интерфейс подключения – SPI. Всего требуется подключить пять информационных сигналов: DIN, CLK, CS, BUSY, RESET.
Плюс естественно GND и питание.

Принцип действия такого дисплея: в жидкости находятся сферы, окрашенные в три цвета. Они могут поворачиваться под действием электрического поля и оставаться в таком состоянии неопределенно долгое время.

Основное достоинство такого дисплея в том, что энергия для его работы требуется только на этапе вывода новой информации. В статике энергия не требуется совсем.
Поэтому такой дисплей идеален в системах с автономным питанием с нечастым обновлением данных.

Поставленная задача была такой: сделать автономный беспроводной блок с e-paper дисплеем, на котором можно будет отображать информацию о текущей погоде и прогноз на ближайшее время.
Размещаться такой блок предполагалось в прихожей, чтобы погодную информацию можно было посмотреть в момент выхода и решить, например, надо брать зонт с собой.

Конечно я знаю, что можно ровно то же самое посмотреть на экране смартфона :))

Дисплей был куплен, присоединен к ESP8266 и опробован в работе с помощью программы Loader.ino, которую предлагает Waveshare. При запуске esp8266 создает сайт, зайдя на который можно вывести изображение на дисплей.
Оказалось, что картинки выводятся весьма убого… Т.е. дисплей пригоден для вывода текстовой информации, но и не более того.

К сожалению, этот проект был заморожен до текущего времени. Когда я попытался реанимировать проект, оказалось, что дисплей на управляющие команды реагирует (видно характерное моргание), но новое изображение не появляется. На экране появляется просто цветной шум.

Обдумав ситуацию и почитав мануалы на сайте производителя дисплеев, я понял, что есть вероятность необратимого повреждения дисплея…

На следующее утро я все же решил попробовать восстановить нормальную работу достаточно дорогого прибора. Для этого я сделал битмап файлы типа «белое поле», «черное поле», «красное поле» и половинки в разных комбинациях (черно-белое, черно красное и т.д.)
Повыводив эти картинки, я обнаружил, что дисплей восстановился и нормально работает. Механизм мне непонятен, но факт имеет место.

Возможно, свою роль сыграло длительное хранение дисплея не в рекомендованном положении, а случайном. Шарики опустились к одной из поверхностей и прилипли к ней, а вывод монотонных изображений сдвинул из с места. Но это исключительно мои предположения, я не специалист в этих устройствах.
Итак, можно делать прибор.

Аппаратное решение


Требования: питаться от аккумулятора, по Wi-Fi соединяться c сервером, на котором работает IIS. IIS будет отдавать графический файл для отображения и принимать данные с информера. Требуется минимальное потребление энергии, аккумулятора должно хватать на 1 год или более. Процессор для управления будет ESP8266.

Дисплей достаточно большой по размеру, корпус тоже достаточно большой, можно использовать большую батарею. Для питания системы оптимален аккумулятор типа LiFePO4. Его напряжение полностью укладывается в рамки допустимого напряжения для питания ESP8266. Никаких промежуточных преобразователей не требуется, что дополнительно экономит энергию батареи.

Поскольку я склонен к брутальным решениям, я выбрал плоскую LiFePo4 батарею емкостью 4 ампер-часа. Мне повезло – я нашел на Али производителя батарей, у которого можно было купить одну батарею. Она обошлась мне в 800 р. На сегодня этот производитель продает такие батареи только по 4 штуки. Впрочем, именно такая плоская батарея не обязательна, можно использовать LiFePo4 элементы в корпусе 18650 или 26650. Два элемента 18650 дадут примерно ту же емкость, которой хватит на год работы.
Батарея точно встала в корпус.

Зарядка батареи


Для зарядки LiFePO4 нужен зарядник с напряжением 3.6 вольта. Поиск на Али дал мне зарядник импульсного типа пригодный для LiFePO4. Название платы TP5000.

Режим сна ESP8266


Тест платы на засыпание и просыпание показал, что, во-первых, ток потребления составляет примерно 1.5 мА в состоянии сна, а во-вторых плата просыпается, но по Wi-Fi не соединяется. Ток потребления в этом режиме составил около 40 мА, что говорит об отключенном Wi-Fi.
Разбираться не стал, к этому моменту я уже располагал информацией о возможности питания ESP8266 через TPL5110. Микросхема TPL5110 представляет собой микропотребляющий коммутатор питания. TPL5110 вырабатывает сигнал включения для силового P-MOSFET ключа по истечении запрограммированного интервала. Выключается TPL5110 по сигналу от микропроцессора. Это перепад из 0 в 1. Отсюда вытекают требования к выводу процессора: этот вывод должен чисто и гладко, без ненужных сигналов вести себя при старте системы. О выборе правильной ножки ниже.
Временной интервал задается резистором. В мануале приведены значения резисторов для типовых интервалов. Я выбрал интервал 1 час.
Предварительно я проверил, сколько времени проживет информер при непрерывном обращении за информацией на сервер с IIS. Информер проработал примерно 2.5 суток до отключения по разряду батареи. Прикидочный расчет показал, что если я хочу время жизни информера 1 год, то надо его включать примерно раз в час.

В реальности интервал получился 1 час 8 минут. Подгонять я ничего не стал.
Если требуется задать интервал точнее – можно подогнать задающее сопротивление, используя либо параллельное включение доступных номиналов, либо последовательное, либо и то и другое. Я, впрочем, смысла в этом не вижу, все равно задание интервала осуществляется аналоговым способом.

TPL5110 включена по типовой схеме, применено 2 кнопки для включения и выключения в тестовых целях. Параллельно кнопке включения внутри на плате установлена плоская кнопка. Она приклеена на правом боку корпуса и может использоваться для запуска цикла обмена принудительно.

Выбор вывода ESP8266 для выключения TPL5110


ESP8266 имеет особенности при подаче питания. Особенность его в том, что выводы микросхемы при старте системы могут на какое-то время становится активными выходами и что-то выводить. На одних ногах идет отладочная информация в режиме уарт на скорости 76 кбит, на других – появляется сигнал с частотой 50 МГц.
Плюс надо учесть, что для правильного старта несколько выводов должны иметь правильную комбинацию нулей и единиц.

К счастью, я далеко не первый озаботился этим вопросом. На сайте представлено исчерпывающее исследование, что происходит с выводами ESP8266 при старте и какие выводы можно безопасно использовать для управления внешними устройствами без опасения вывода на них чего-то ненужного при старте.

В моем случае такой безопасный вывод – это D1 (GPIO5). Он стартует в режиме чистого ввода. В программе достаточно включить его в режим вывода и подать нужный сигнал TPL5110. TPL5110 выключается подачей положительного перепада, о чём я уже упоминал ранее.

Важно:

1. Вход “DONE” TPL5110 обязательно следует притянуть к земле резистором. Я использовал резистор номиналом 570 КОм.
2. В программе надо сначала задать низкий уровень для GPIO5 и только потом включить его в режим выхода.

При выполнении этих условий питание на ESP8266 будет включаться и выключаться как часы :)

Казалось бы – все элементарно, но поиск дал массу публикаций с просьбами помочь со странным поведением TPL5110. Полагаю, что проблемы были связаны с отсутствием притягивающего к земле резистора вывода DONE. Он высокоомный, вывод микропроцессора находятся в режиме ввода при старте, тоже высокомном, т.е. цепь выключения без подтягивающего резистора висит в воздухе и реагирует на все паразитные помехи.

Выключение системы при разряде батареи


Сначала я хотел применить для мониторинга состояния батареи контроллер от батареи Iphone 4S. Задействованный там Gas Gauge bq27541 может общаться по протоколу HDQ с микропроцессором и отдавать обширную информацию о состоянии батареи (текущее напряжение, ток, прогноз по времени заряда и разряда и т.д.) Его также можно перепрограммировать для работы с LiFePo4. К сожалению, перепрограммирование не удалось в полной мере, готовый набор данных для похожей батареи с сайта TI был успешно записан и параметры были скорректированы, но полноценной работы bq27541 добиться не удалось. Сказался недостаток знаний по этой проблеме. Эту идею пришлось оставить. Замечу, что несколько моих самоделок вполне успешно используют для питания разнообразные батареи от айфонов, с выводом на экран напряжения, тока и процента заряда. Это удобно.

Неудача с использованием bq27541 привела меня к паллиативным решениям. Я решил измерять напряжение батареи при старте ESP8266 и, если напряжение недопустимо низкое – выводить на экран предупреждение о разряженной батарее (1 раз) фиксировать факт в EEPROM и в дальнейшем до заряда батареи ничего не делать и уходить в сон сразу после включения. Это решение не оптимально, кривая разряда LiFePo4 аккумулятора практически линейная и только в самом конце напряжение начинает заметно снижаться. Но учитывая огромную емкость батареи я решил, что такого решения достаточно для безопасной эксплуатации аккумулятора.
ESP8266 умеет измерять напряжение своего питания.

При экспериментальной проверке оказалось, что измеренное напряжение заметно ниже реального. Изучение документации дало ответ: «при измерении напряжения питания к цепи А0 не должно быть ничего подключено!»
На плате имеется входной делитель, соответственно нижний резистор этого делителя подключен к А0 всегда и мешает точному измерению напряжения питания.

В-принципе можно было бы ничего не делать, а просто программно скорректировать значения, выдаваемые АЦП.
Но я пошел трудным путем. Отпаял нижний резистор входного делителя.
Проверка после этого показала, что теперь показания АЦП завышены :)
Тогда я подобрал резистор, подключенный ко входу А0 до получения результатов, совпадающих с измеренным мультиметром значением.

Предположительно, инженеры Espressif Systems полагали, что входной делитель будет подключен все равно и скорректировали показания АЦП с учетом оптимального делителя. Но производящие эту конкретную плату китайские инженеры проигнорировали эту задумку и поставили резисторы входного делителя «какие были».

Изучив разрядные характеристики LiFeP04 элементов я решил, что порог отключения надо задать 2700 милливольт, а порог обратного включения в 3000 мВ. Это называется гистерезис :).

Принципиальная электрическая схема информера показана на рис.1. В разрыв провода от батареи включен предохранитель на 4А, в держателе типа ДПБ. Однажды он сработал, защитив систему от неприятностей. Причиной было короткое замыкание между плюсом и корпусом экрана ESP8266 при неверном закрывании крышки. Также им удобно включать-выключать питание при отладке.

Рис 1. Принципиальная электрическая схема Informer

При отладке информера был использован Bluetooth модуль, присоединенный к выводам TX и земля. Питание модуля осуществлялось автономно от лабораторного источника питания. Такое включение было сделано, чтобы установить соединение с модулем Bluetooth до подачи питания на ESP8266 и видеть на экране планшета всю отладочную информацию при автономном режиме информера. Фотография этой конфигурации оборудования представлена на рис. 2.


Рис 2 Отладочный режим информера

На рис 3 показан экран планшета, принимающий отладочную информацию по каналу Bluetooth.

Рис 3. Отладочная информация информера на экране планшета

На рис 4 показан информер в режиме отладки с большим красным светодиодом и модулем Bluetooth.


Рис. 4. Информер в режиме отладки с Bluetooth модулем и большим красным светодиодом.

Программное обеспечение


Код программы информера основан на программе GxEPD_WiFi_Example написанной Jean-Marc Zingg.

Код моей программы тут.

Алгоритм программы – соединится с сервером, забрать свежий битмап файл, на сервер отправить диагностический файл. В файле содержится напряжение батареи, а также служебная информация, такая как название исходного файла, время и дата его компиляции, серийный номер чипа, версия Core, текущая частота процессора, объем свободной памяти и HEAP.

Я решил, что оптимально будет готовить файл для отображения на погодном информере на сервере. Сервер – это машина на безвентилярной плате, обслуживающая всю домашнюю автоматизацию под управлением Windows.

На сервере работает IIS. Он обслуживает запросы погодного информера, выдавая заранее приготовленный графический файл и принимая данные от информера.

Сделать запрос к яндекс-погоде, разобрать полученный JSON и сформировать битмап файл существенно проще на такой машине, чем на esp8266. Для подготовки битмап файлов можно использовать любые шрифты, графические заготовки и т.п. Немаловажно также отметить полное отсутствие проблем с кириллицей.

Программа обращения к погодному API Яндекса и формирования битмапов написана на питоне. Текст программы тут.

Готовится два файла – один с погодной информацией, второй с предупреждением о низком напряжении батареи. Информер запрашивает один из них в зависимости от текущего состояния при старте. Если напряжение батареи в норме, то запрашивается файл с погодной информацией (рис. 5), если нет – то с предупреждением (рис. 6).


Рис 5. Изображение при нормальном напряжении батареи

Рис 6. Изображение при низком напряжении батареи

Оба изображения повернуты на -90 градусов, чтобы соответствовать физической ориентации дисплея.
Готовые битмапы копируются в директорию IIS

Принятый от погодного информера файл анализируется еще одной программой на питоне. Программа тут . Программа обрабатывает полученный файл, дописывает лог-файл и готовит командные файлы для коррекции времени последующего запуска программ до и после общения информера с IIS.

Для синхронизации подготовки битмап файлов используется следующий алгоритм:
Дата и время принятого из погодного информера файла используются для определения даты и времени следующего запуска программ подготовки картинок и анализа принятого файла.

Я измерил интервалы обращения погодного информера к серверу, завел данные в эксель и определил мат ожидание и разброс. На основе этих данных я задал интервал времени для следующего запуска программы подготовки картинок в 67 минут, а анализа принятого файла в 72 минуты. Получилась своеобразная вилка, которая автоматически подстраивается под активность погодного информера. Т.е. информация на экране информера запаздывает не более чем на один интервал включения.

Для запуска питон-программ используется стандартный «Планировщик заданий». Из особенностей: задачу, созданную пользователем вручную, невозможно изменить командным файлом. Не хватает каких-то прав.

Потратил пару дней на поиски решения, не нашел.
Но если создать задание из командного файла, то это задание можно редактировать в дальнейшем тоже из командного файла.

Есть тонкость: требуется ввод пароля при работе командного файла. Это легко сделать, направив файлик с паролем на вход команды вот так:

schtasks /change /tn !epaper2 /st 21:20:15 /sd 08.03.2021 < enter.txt

файл enter.txt содержит пароль и перевод строки (нажатие клавиши Enter)

Прием очень старый, но вполне рабочий.

Результаты:


Рис 7. Информер на стене в прихожей.

Информер успешно работает 3 месяца, текущее напряжение батареи:


Рис 8. Напряжение батареи информера в милливольтах.

И по расчетам, заряда батареи должно хватить на 478 дней.
Добавить в избранное +79 +108
свернуть развернуть
Комментарии (74)
RSS
+
avatar
  • KimIV
  • 25 марта 2021, 14:38
+1
Направление ветра, думаю, имеет значение.
+
avatar
+19
В городе? У меня ветер только в одном направлении дует всегда — из арки.
+
avatar
  • LePart
  • 25 марта 2021, 14:40
+5
Размещаться такой блок предполагалось в прихожей… брать зонтик или нет?
Верное решение. В прихожих, как правило, нет окон.
+
avatar
  • kn_dima
  • 25 марта 2021, 15:05
0
Если уж необходимы напоминания, то надо напечатать чеклист на обычной бумаге и повесить на выходную дверь.
А то выйдешь с зонтиком, но без ключей (мобилы и т.п.).
+
avatar
  • cl3
  • 25 марта 2021, 15:11
+4
+
avatar
0
У этой самоделки есть особенность: её «способен» повторить любой человек, прочитавший обзор. )))
+
avatar
+3
Да уж, это вам не зайку связать
+
avatar
+1
Не каждый :))) часть паяния сделана под микроскопом МБС-9. НЕт микроскопа — не повторить :))
+
avatar
0
Спасибо, очень интересно описано. Ближе к концу статьи возникло ощущение что на виртуалке с линуксом было бы проще запустить апач и прописать в cron запуск скриптов обновления погоды…
+
avatar
+1
Может быть… но машина с иис уже есть, переделывать все под никсы — очень трудозатратно.
+
avatar
  • GIPER
  • 25 марта 2021, 15:31
-1
Красивая и лаконичная прога. Но где блин комментарии? )) Для того чтобы переписать её под дисплей другого размера, без комментов, нужен будет человек со знанием хоть какого-то языка, а такого не на каждом диване найдешь )
+
avatar
+1
Берете исходник, там под все возможные дисплеи сделано, удаляете ненужные — и вуаля :)
+
avatar
  • GIPER
  • 26 марта 2021, 08:28
-1
Ну дык я и говорю — надо быть прогером, чтобы разобраться что там и куда. Сколько из нынешних самодельщиков освоили Питон? А были бы комменты, типа«дельта = смещение по экрану» и разобрался бы любой. Даже без знания языка. Сама прога то довольно простая.
+
avatar
+1
То есть это просто e-ink дисплей подключенный по воздуху. А показывать там всё равно что.
+
avatar
+4
Абсолютно верно.
+
avatar
  • artur84
  • 25 марта 2021, 15:55
0
какое то слишком агрессивное уведомление, вроде эта железяка орет на владельца и слишком много себе позволяет)

+
avatar
+2
:)))) можно и голодного котенка вставить
+
avatar
+25
Можно так:
+
avatar
0
все хорошо, но есть вопрос. зачем вы подымаете сервер IIS? есть же куча бесплатных решений, типа OpenWeatherMap? последний даже иконки отдает о текущей погоде.

сам пилю часы на активных светодиодных матрицах — MatrixClock.

пы.сы. у вас линки на Github битые.
+
avatar
+3
IIS поднят много лет назад и выполняет много функций.
Я просто использовал уже работающее решение.

Не вижу смысла спрашивать погоду в Москве на сайте хрен знает где размещенном.

Ссылку поправил. Там была лишняя закрывающая скобка.

Про часы почитал, я так понимаю — исходники Вы не выкладываете?
+
avatar
-4
Нет. Воруют, и выдают за свое. Плюс прошивка молульная и 70% использую в других проектах.

Позже открою только сам драйвер MAX7219. А уж на его основе можно свои часы написать.
+
avatar
+8
Не разделяю Вашу точку зрения. Если что-то публикую — выкладываю исходники.
Вот тут мои часы и с полными исходниками.
+
avatar
-2
Я тоже так раньше думал. Щас все не выкладываю, только драйвера. Дальше сами — на Arduino ESP8266 сейчас очень хорошая документация.
+
avatar
0
Ну позаимствовать можно если некогда самому возиться. Я тоже даю все исходники (надо Github освоить наконец то). Вот честно позаимствованный у многих, мой вариант часов на этих матрицах только на ESP32.
www.youtube.com/watch?v=5HrUQOGKziY&t=183s
Тоже потихоньку пилю когда время появляется.
+
avatar
+2
Круто, но не для меня. Как вижу бегущую строку так сразу глаз дергаться начинает. Смотришь такой кино, а тут тебе — СТАВКИ НА СПОРТ!!! Вот и с бегущей у меня так же. Имхо, часы должны тихо себе стоять в уголочке и не отвлекать внимание. Когда надо я сам посмотрю.
+
avatar
0
Тоже не разделяю подобное отношение.
Для микроконтроллеров в большинстве своем используется опенсорс. enjoyneering, по сути, вы чужие наработки украли и выдаете за свое. Не на асме же вы все написали.
+
avatar
0
Громкое заявление! Нет не asm. Использована, arduino esp8266, arduinojson и пару js библиотек. Все остальное самописное. Проект бесплатный, но да без исходников. За свое не выдаю. Версия arduino и arduinojson выдаётся на одной из html страниц.



А где ваши исходники посмотреть?
+
avatar
0
Мой код, который я, в основном, пишу, к сожалению, нигде нельзя посмотреть, т.к. он написан на языках МЭК 61131-3. Некоторые вещи выкладываю здесь github.com/AndreyVys И, по моему скромному мнению, воруют код те, кто берет открытые продукты, то есть использует наработки сообщества, и не выкладывает свой код в открытый доступ, то есть не делает свой вклад в сообщество.
+
avatar
0
не густо у вас со вкладами. у меня тоже есть наблюдение — все кто ничего не выкладывает/не умеет писать код тот больше всех и кричит о кражах. сам таким был. пока не поумнел.
+
avatar
0
Вы же о кражах и начали говорить. Открывать или не открывать код — личное дело каждого. Но говорить о воровстве кода, который большей частью состоит из опенсорса и распространяется под лицензией LGPL как бы нехорошо.
Вы почему-то обращаете внимание на тех, кто взял и не вернул. Да и хрен с ними, если на 100 этих людей найдется 1, который поможет — это уже плюс. Зачем им уподобляться?
ЗЫ Я и не говорил, что я внес какой-либо серьезный вклад. Что-то взял, сколько смог — отдал. Зато мой код невозможно украсть :)
ЗЫЫ По моему опыту в промавтоматике обычно те, кто не открывает код и говорит о своих ноухау или воровстве конкурентов обычно в своем коде скрывают бекдор, откровенный говнокод или хотят потом иметь заказчика на техподдержке.
+
avatar
0
ЗЫЫ По моему опыту в промавтоматике обычно те, кто не открывает код и говорит о своих ноухау или воровстве конкурентов обычно в своем коде скрывают бекдор, откровенный говнокод или хотят потом иметь заказчика на техподдержке.
СОГЛАСЕН. свой никому не назвязываю, денег не беру.
+
avatar
+1
Да вообще непонятно, какая проблема в «воровстве кода» в open source ПО? Ну, допустим, я написал какую-то хорошую библиотеку, которая лучше других решает какую-то задачу. Я выкладываю её код в общий доступ. Думаете, я это делаю, чтобы потешить свое самолюбие? Чтобы каждый видел, что именно я написал эту библиотеку? Нет, я выкладываю его, чтобы другие знали, что так можно решить проблему. Чтобы другие использовали мой код и добивались своих результатов. В итоге, если смотреть глобально, весь код в мире становится чуточку лучше. Вот для чего надо выкладывать свои наработки. Ведь если бы все думали как вы, у нас бы, прежде всего, не было Arduino.
+
avatar
0
Позже открою только сам драйвер MAX7219
А что в нем сложного-то? Просто в цикле по SPI (причем, можно и программном) передать данные?
+
avatar
0
Ничего, если разбираешься. Да и в часах тоже ничего сложного. Ногодрыг не советую. Больше 8 матриц начинаются тормоза.

Цикл не использую, вместо него Ticker. Зачем гонять биты без надобности (у MAX7219 есть sram. Один раз записал и он запомнил. Когда надо поменял. У меня щас в loop всего 4 строчки).
+
avatar
0
Да просто к тому, что если человек разбирается, он легко напишет его и сам. А если нет — то код именно «драйвера» ему вряд ли поможет.

Кстати, часто делаю на ногодрыге, 5 матриц тянет на ура даже AVR 16 МГц — при 30 Гц обновлении занимает порядка 1% процессорного времени.
+
avatar
-1
Не вижу смысла спрашивать погоду в Москве на сайте хрен знает где размещенном.
Но сами тянете погоду с яндекса через прокладку сервер на IIS. Непонятно тогда зачем нужен сервер на IIS? ESP8266 сама может погоду распарсить, кириллицей вывести и картинку прожевать. У неё для этого достаточно ресурсов. Главное шрифты ей положить и научить ими пользоваться.

Согласитесь не укаждого дома 24/7 крутится сервер на IIS с питоном. А вот роутер с wifi есть у всех. Пока ваш DIY больше похож на адский велосипед из костылей.
+
avatar
+2
У Яндекса датчик погоды расположены в Москве. Одна из погодных станций — Балчуг. Данные с Балчуга совпадают с показаниями датчиков с моего балкона. Ну понятно, атмосферное давление с учетом разности высот.

Где, говорите, датчики у OpenWeatherMap?

Сервер на ИИС нужен для множества других задач домашней автоматизации. Если бы его не было — я пошел бы другим путем. Но сервер есть и работает 24*7 лет 10+.

Решать задачи с распарсиванием JSON, кириллицей, дальнейшими хотелками на ESP? Резать рубероид маникюрными ножницами? Нет, увольте :)

Возможно будет V2.0. РОдственники хотят такую же штуку :)))
+
avatar
0
Про погоду в Москве через яндекс я согласен. Вопос был другой.

Непонятно тогда зачем нужен сервер на IIS? ESP8266 сама может погоду распарсить, кириллицей вывести и картинку прожевать. У неё для этого достаточно ресурсов. Главное шрифты ей положить и научить ими пользоваться
Пв.сы. Любой желающий может подключить свою погодную станцию к OpenWeatherMap (по типу как в народном мониторинге). Сколько таких станций и как потом OpenWeatherMap считает погоду, отбрасывает кривые данные по Москве затрудняюсь сказать.
+
avatar
+1
Ответил выше.

Шрифты положить можно. Но ИДЕ Ардуино не понимает кириллицы в лоб. Можно обойти — но зачем? Я решал такие задачи в других проектах, не понравилось. Гимор.

С моей точки зрения эта задача хотя и может быть реализована на ESP8266, но выходит за область оптимальных задач для этой платформы.

Не говоря уже об изменениях :)))
+
avatar
-1
Вот тут и возникает вопрос — зачем этот кривой путь здесь на муське? Ведь найдутся люди (без понимания технологий) которые захотят его повторить? Зачем отправлять людей из Питера в Москву через Камчатку? Есть же нормальный проекты без сервера прокладки. Вот первый попавшийся.

Причем здесь IDE и кирилица? Делаете массив из точек (например каждые 8 пикселе/бит это одна буква. Русской «А» соответствует число 192. Пишетр траслятор который на входе смотрит 192 а на выходе отправляет на экран 8 пикселей соответствующих этой букве в массиве шрифта.
+
avatar
+5
Мне нравится творить. Я удовольствие получаю от решения задачи. И с удовольствием делюсь результатами. Читатели возможно что-то интересное для себя найдут, решение вовсе не обязательно только для погоды использовать.

Кому-то не нравится творить и они повторяют готовое или покупают.

Каждому — свое.

Если же я что-то делаю не то — администрация мне укажет и я учту.
+
avatar
-1
Согласен с вами, но тогда может надо было немножко объяснить зачем у вас IIS? указать достоинства и недостатки его использования. Дать ссылки на похожие примеры без костылей.

С моей точки зрения эта задача хотя и может быть реализована на ESP8266, но выходит за область оптимальных задач для этой платформы
Лол. Вы хотели сказать за область ваших знаний? Я правильно понял?
+
avatar
+1
Вы поняли неверно.

Где в моих словах есть что-то про область моих знаний?

Я говорил о трудоемкости реализации задачи на платформе. У каждой платформы есть диапазон сложности задач, которые оптимально решать на этой платформе. Соответственно, есть и пограничные задачи, решение которых на платформе возможно, но требует повышенных трудозатрат по сравнению с другой платформой.

Я не слишком сложно для Вас говорю? Вы же вроде инженер? Должны понимать базовые вещи?
+
avatar
0
я как бы уже писал о том как реализовать кириллицу. ничего сложного в этом не вижу. стандартная вещь для точечных дисплеев. люди еще и не такие вещи на ESP8266 делают и даже не догадываются, о том что вышли за — диапазон сложности задач...(как это все выговорить, аааа мой мозг)

Причем здесь IDE и кирилица? Делаете массив из точек (например каждые 8 пикселе/бит это одна буква. Русской «А» соответствует число 192. Пишете транслятор который на входе смотрит 192 а на выходе отправляет на экран 8 пикселей соответствующих этой букве в массиве шрифта.
+
avatar
  • kn_dima
  • 27 марта 2021, 10:58
0
Не нравится — сделайте по своему и напишите обзор.

Как по мне, автономный дисплей, выводящий просто картинку — годное законченное решение, которое может без проблем выводить и кириллицу и любые другие иероглифы.
+
avatar
  • NeO928
  • 26 марта 2021, 07:57
0
Было интересно, если бы кто-то сделал на основе этого дисплея электронную книгу
+
avatar
  • Kabron
  • 25 марта 2021, 17:57
0
Код моей программы тут.
404 Page not found
+
avatar
+1
Ссылку поправил. Там была лишняя закрывающая скобка.
+
avatar
  • rm_
  • 25 марта 2021, 20:08
+1
А у меня так в прихожей:

Если последняя строчка выглядит непонятно, это Subject самого свежего письма в почте, сокращённый вырезанием посередине. Уже не помню про что там было, и куда Welcome.)
+
avatar
+1
Лет 7 назад такой экран и выводимая аброкадабра (информацией это трудно назвать, тк нужно курить инструкцию, что все эти CWR значат) было нормой. Других дешевых экранов и мк с большой памятью тупо не было. Сейчас не плохо было бы переписать на TFT или ePaper.
+
avatar
  • rm_
  • 25 марта 2021, 21:10
+2
Да, это сделано в ~2011, и до сих пор в строю. :)
Делалось только под себя, поэтому конечно же в курсе что значит каждая буковка, конкретно CWR — выводилось если три определённых IP-адреса в сети и интернете отвечают на пинг. Если один не отвечал, вместо его буквы был бы прочерк. Ну это так, в качестве идей, что ещё можно добавить на такой экранчик. Впрочем с тех пор переделал, и наличие подобных «проблем» теперь выводится внизу, в строке перед почтовым текстом. А наверх в освободившееся место добавил текущее время.
+
avatar
+1
Да, увы, быстрое развитие электроники, появление новых возможностей иногда заставляют переделать что-то отлично работающее, но устаревшее.
+
avatar
0
а что за bluetooth адаптер? он же в обе стороны работает, не только TX?
+
avatar
0
первый попавшийся из кассетницы. BLE имхо.

Обратно не надо было. Только смотреть отладку.
+
avatar
  • symsym
  • 25 марта 2021, 22:14
+2
Я для информера погоды, сбора данных и управления с ESP (12 шт) взял обыкновенный планшет :)
ссылка
+
avatar
+10
Вы дизайнер, да?
+
avatar
+2
Пёстро и неудобно.
+
avatar
  • GIPER
  • 26 марта 2021, 08:34
+3
Я для информера погоды, сбора данных и управления с ESP (12 шт) взял обыкновенный планшет :)
Ох еёё… шиза блин )))
+
avatar
  • Bald
  • 26 марта 2021, 11:24
-1
Можно было пувербанк за теже деньги купить на 10000 и выковырять аккумулятор. И на два года хватило бы
+
avatar
+2
Повербанки бывают с LiFePo4?
+
avatar
0
А можешь поподробнее рассказать про сопротивление АЦП, а то не очень понял, что Ты там подгонял и где бы про это почитать?
+
avatar
0
Почитать не знаю где. Думаю, никто этим не заморачивался.

Подгонял я резистор R3 (см. принципиальную схему выше).

Подгонка заключалась в подборе такого резистора, чтобы показания мультиметра и данные АЦП, измеряющего напряжение питания, совпадали. Без этого резистора АЦП выдает откровенно завышенные данные. Например, мультиметр показывает 3.3 вольта, а с АЦП приходят 3,5 вольта.

Строго говоря — можно этим не парится вовсе. Можно просто присоединить вывод А0 к питанию — и все будет ОК. Но мне было интересно использовать команду «измерить питание».
+
avatar
0
www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf
Там в разделе про ацп хитрое измерение питания, нужно оставить вход АЦП висящим как я понял и регистр нужный заинитить единичками.
+
avatar
0
достаточно в начале программы (до setup()) вставить строку

ADC_MODE(ADC_VCC); //включить измерение напряжения питания

а в теле программы использовать

upit = ESP.getVcc();

В переменной upit будет напряжение питания в милливольтах.

И да, вход А0 должен висеть в воздухе.
+
avatar
+1
Ога, ога. Все на много сложнее. Заявление Winnie_The_Pooh верно если A0 никуда не подключён. А на Wemos D1 mini он уже заведен через делитель с нюансом.
+
avatar
0
Не знаю, какие у Вас там нюансы, у меня все чудесно работает, измеряя напряжения от 3.6 до 2.7 вольта. Я специально проверял от внешнего лабораторного источника.
+
avatar
0
Но вы убрали делитель который есть на nodemcu? И как подключали дальше, можете пояснить свою схему, к чему этот резистор подцеплен, на землю?
+
avatar
+1
Верно. Штатный делитель на плате я отключил, выпайкой нижнего резистора входного делителя.
Дальше я обнаружил, что показания с АЦП завышены.
Т.е. внутри esp8266 есть еще один делитель, который напряжение питания приводит в диапазон, допустимый для АЦП.
Тогда я подобрал внешний резистор чтобы показания АЦП и вольтметра совпадали. Т.е. подкорректировал резистор нижнего плеча в делителе внутри esp8266. Мой внешний резистор и внутренний резистор в делителе включены параллельно.
Видимо ключ для подключения внутреннего делителя есть, а ключа для отключения внешних цепей нет, поэтому и возникают эти проблемы.
+
avatar
0
Ок, понятно, попробую протестировать тоже.
+
avatar
  • ACE
  • 31 марта 2021, 22:53
0
Недавно делал аккумуляторное устройство на esp8266, тоже столкнулся с точностью АЦП. Я, правда, измерял питание именно через внешний делитель (у меня голая ESP07, делитель сам добавлял). Так вот наткнулся на такую особенность, на каком-то форуме англоязычном подсказали. Для более точного измерения надо сделать 3-4 замера, между ними выждать миллисекунду (delay(1);) Из полученных значений выбрать минимальное. Там прям видно как первые одно-два значения явно завышены на пару процентов.
+
avatar
0
Любопытно. Запомню.
+
avatar
  • VLOD
  • 26 апреля 2021, 23:57
0
Скажите пожалуйста, сколько времени идет обновление экрана? Я купил трехцветный 2,13 дюйма, на нем обновление идет 17 секунд!!! Хотел сделать обновление данных раз в минуту… Да и вообще грустно — что бы увидеть информацию нужно ждать, если придется смотреть во время обновления.
+
avatar
0
Не измерял, но органолептически — примерно то же, секунд 15-20.
Вы посмотрите — возможно ваш экран поддерживает частичное обновление. Это существенно быстрее, чем обновлять весь экран.
Если Вы хотите раз в минуту обновлять экран и время обновления — 17 секунд, то ваше устройство кушает много (скважность включения — около 3) и батарейного питания надолго не хватит.
Следовательно, придется питать устройство от сети. И тогда встает вопрос — а зачем e-paper?
Т.е. тут надо решить вопрос: что Вы хотите? Или быстро и питание от сети и не обязательно e-paper или автономное устройство с e-paper и тогда обновление — сравнительно редкое. ну никак не раз в минуту.
+
avatar
  • VLOD
  • 27 апреля 2021, 08:58
0
Спасибо. Да, не знал что такое время обновления у трехцветных..., Надо было монохромный брать там две секунды. ;(

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.