Оглавление:

Tweerstationneke A.k.a. Голландская метеостанция: 4 шага
Tweerstationneke A.k.a. Голландская метеостанция: 4 шага

Видео: Tweerstationneke A.k.a. Голландская метеостанция: 4 шага

Видео: Tweerstationneke A.k.a. Голландская метеостанция: 4 шага
Видео: Безымянная звезда (1 серия) (1978) фильм 2024, Ноябрь
Anonim
Tweerstationneke A.k.a. Голландская метеостанция
Tweerstationneke A.k.a. Голландская метеостанция

Мой папа всегда интересуется последними новостями и свежей информацией о погоде. Так что это привело меня к идеальному подарку на день рождения, когда ему исполнилось 76 лет: небольшая постоянно работающая метеостанция без всякой ерунды, она просто тихо сидит в углу весь день и дает краткое изложение последних прогнозов.

Он разработан на основе двух голландских веб-сайтов. Наверное, это видно по забавному местному названию этой темы! Один дает местный прогноз для каждого города каждые 10 минут в формате json. Другой дает прогноз дождя на ближайшие два часа в текстовом формате, который всегда удобно знать. Я уверен, что если вы не живете в Нидерландах, вы легко сможете адаптировать эту тему к любому другому сервису.

Запасы

  • Плата ESP8266; Предлагаем использовать Wemos D1 mini
  • 1,8-дюймовый TFT-экран с разрешением 128 * 160 точек; 16-битный цвет
  • Несколько кабелей
  • Программа как есть или для начала создайте свою
  • Хорошая коробка, чтобы собрать все вместе. Используйте стандартный или распечатайте свой с прикрепленным дизайном

Шаг 1. Создайте прототип

Сделать прототип
Сделать прототип

Подключение экрана и контроллера

С помощью небольшого плоского кабеля припаяйте плату и экран TFT вместе. Используйте список, чтобы правильно соединить детали

TFT ЭКРАН ------------------ WEMOS

Светодиод ------------------------------- D8 SCK ---------------- --------------- D5SDA ------------------------------- D7A0 - -------------------------------- D3RESET ----------------- ----------- D2CS ---------------------------------- D4GND --- ---------------------------- GNDVCC --------------------- ---------- 3V3

В качестве альтернативы вы можете поставить светодиод на 3v3 вместо контакта D8. Я использовал контакт D8, чтобы устройство засыпало около 23:00 ночи и снова просыпалось около 07:00. Фактически, это будет первый момент, когда он прочитает сводку погоды после этого времени, поскольку он читает заголовок, чтобы проверить время. В этом устройстве нет часов реального времени.

Если все работает, подключите USB-кабель к Wemos и загрузите программное обеспечение. Если все работает, вы можете приступить к сборке коробки.

Шаг 2: Разработка программы

Дизайн программы
Дизайн программы

Мои представления об этом погодном приборе, где

  • Легко адаптируется к другой среде Wi-Fi
  • Отображение прогноза погоды и прогноза дождя
  • Нет кнопок
  • Нет звука, просто qui, без пуха

Имея это в виду, я создал программу, которая запускается с кодом WifiManager, когда он не может обнаружить известную сеть Wi-Fi. Он создает свою собственную сеть и отображает имя на дисплее. Это дает вам возможность установить параметры Wi-Fi в вашей собственной домашней сети.

После этой настройки каждые 20 секунд он показывает прогноз погоды и осадки поочередно. Если по какой-либо причине невозможно прочитать следующий прогноз, в правой части дисплея будет отображаться небольшой номер ошибки; и будет показано предыдущее изображение. При следующем запуске делается новая попытка получить информацию.

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

Получить дождевые осадки еще проще. Он подается в текстовом формате с ожидаемым количеством дождя в виде значения 0..255; вертикальная полоса; время на каждой строке. Это каждые 5 минут в течение следующих 2 часов. Значение дождя передается разумно, когда небольшие значения дают больше места для отображения разницы в больших значениях. Используемая формула выглядит следующим образом:

мм час = круглый (pow (10, (rainvalue - 109) / 32) * 10) / 10;

Обратите внимание, что «умножить на 10, разделить на 10» - это уловка, позволяющая гарантировать, что за точкой стоит 1 десятичный знак. В зависимости от ожидаемого максимального количества дождя в ближайшие 2 часа для графика используются 3 шкалы;

  1. Ожидается макс. 5 мм / час
  2. Ожидается макс.20 мм / час
  3. Макс берется из максимального значения прогноза.

Здесь, в Нидерландах, наш рекордный показатель составляет около 80 мм / час; так что эта шкала отлично подойдет. Для других стран было бы разумно изменить это.

Шаг 3: Программный код

Программный код
Программный код

Настройки редактора

Программное обеспечение для этого погодного прибора создано в среде программирования Arduino. Вы найдете его здесь для вашего удобства. Используйте его как есть; или измените его по своему усмотрению. Весь текст, который может отображаться на экране TFT, ОПРЕДЕЛЯЕТСЯ поверх программы; Это означает, что вы можете легко изменить его на свой родной язык, если хотите. Я использовал Wemos D1 mini, но подойдут и аналогичные платы.

В среде Arduino я использовал следующие настройки;

  • Доска: LOLIN (WEMOS) D1 RA & Mini
  • Скорость загрузки: 115200
  • Частота процессора: 80 МГц
  • Размер флэш-памяти: 4 МБ (без SPIFFS) V2 Нижняя память отключена

Программные таймеры используются для упрощения и чтения цикла loop (). Отображение информации отделено от загрузки информации. Таким образом, мы можем использовать другие размеры экрана и т. Д. Без необходимости изменять всю программу.

Используйте файл.ino и загрузите его в редактор Arduino. Настройте свою доску в редакторе. Прикрепите файл заголовка, который гарантирует, что необходимые массивы PROGMEM в стиле C включены в программу.

SD Card

Обратите внимание, что большинство доступных 1,8-дюймовых дисплеев имеют слот для SD-карты на задней стороне экрана. Это удобная функция, которая помогает хранить на карте изображения большого размера. У большинства микроконтроллеров не так много памяти, так что это помогает.

Хотя я трачу много времени, пытаясь заставить SD-карту работать с дисплеем, у меня не было работоспособной ситуации. Я мог бы использовать дисплей; успешно получить файл с SD-карты, но после этого я больше не мог добраться до экрана TFT. Изменение библиотек, изменение порядка библиотек и «раздевание» программы до наименьшего размера, чтобы исключить другие возможности, мне не помогли.

Чтобы добавить к моему разочарованию; в Интернете есть масса примеров того, как люди делают похожие вещи с положительным результатом, хммм. Может быть проблема с оборудованием на моем TFT-экране? Или я о чем-то не подумал? Любые предложения приветствуются для следующей попытки. В конце, потратив на это несколько вечеров; Я решил сойти с этого пути. Поскольку изображения имеют размер всего 50x50 пикселей (что дает 5000 байтов каждое при 16-битном цвете), ESP может легко сохранить это в PROGMEM. Вот какой трюк я использовал.

Этот выбор привел к еще одной проблеме. Как преобразовать изображение BMP в читаемый формат. После непродолжительных поисков я обнаружил сайт Хеннинга Карлсена, который ранее решил эту головоломку. Он создал программу, которая конвертирует файлы типа-p.webp

Шаг 4: Создайте коробку

Создать коробку
Создать коробку
Создать коробку
Создать коробку
Создать коробку
Создать коробку

Это не первая коробка, которая мне нужна. Многие стандартные коробки доступны от поставщиков. Используя небольшую пилу, нож, дрель и т. Д., Легко проделать отверстие для дисплея в коробке. Но мне так и не удалось сделать точный красивый прямоугольник. Наверное не хватило навыков и / или терпения;-)

Решение: мне повезло. У меня есть колледж, который похож на супермена, если нужно возиться с техническими вещами. Это также касается 3D-дизайна и печати. Поэтому он решил посвятить много своего свободного времени измерению TFT-дисплея и микроконтроллера и создать вокруг него рамку. Все отлично сочетается, посмотрите картинки. В нем даже есть защелки для дисплея, отверстие для USB-разъема и место для крепления микроконтроллера.

Спасибо, Арьян за эту супер работу !!! Более того, он был так добр, что предоставил всем доступ к своей работе, поэтому, если вы загрузите его файлы по ссылке и используете их для своего собственного 3D-принтера, вы сможете создать такую же коробку с контентом.

Рекомендуемые: