Оглавление:

Метеостанция ESP32 на солнечной энергии: 9 шагов
Метеостанция ESP32 на солнечной энергии: 9 шагов

Видео: Метеостанция ESP32 на солнечной энергии: 9 шагов

Видео: Метеостанция ESP32 на солнечной энергии: 9 шагов
Видео: ⛅️Погодная станция на Arduino своими руками 2024, Июнь
Anonim
Image
Image
Метеостанция ESP32 на солнечной энергии
Метеостанция ESP32 на солнечной энергии
Метеостанция ESP32 на солнечной энергии
Метеостанция ESP32 на солнечной энергии

В этом уроке мы собираемся создать проект метеостанции с поддержкой Wi-Fi.

Задача состоит в том, чтобы спроектировать метеостанцию практически со всеми возможными характеристиками:

  • Показать текущие условия, время, температуру, влажность, давление
  • Показать прогноз на ближайшие дни
  • Обновление в эфире
  • Встроенный веб-сайт для настройки и представления данных
  • Выгрузка данных в облако для исторической статистики
  • Интегрирован с Aple Home Kit или MQTT
  • Независимое питание от Accu с возможностью подзарядки или подключения к солнечной панели

Я не могу добавить больше и не больше воображения, что еще должно или может быть

Шаг 1. Необходимые детали

Необходимые детали
Необходимые детали
Необходимые детали
Необходимые детали
Необходимые детали
Необходимые детали
  • ESP32 (я использовал модуль разработчика)
  • 2,8 "240x320 TFT LCD SPI ILI9341
  • Пластиковый корпус
  • 3 x 18650 Акку
  • Датчик погоды BME280 для измерения температуры, влажности и давления
  • USB-модуль литиевого зарядного устройства
  • DC-DC ступень UP18650
  • держатель батареи (3 шт.)
  • HC-SR505 Детектор движения
  • Резистор 220 Ом
  • 2 резистора по 10 кОм
  • Транзистор TIP120 NPN (Дарлингтон) можно использовать любой другой совместимый
  • ButtonWires, выключатель, припаянная плата….

Шаг 2: Подключение и сборка

Электромонтаж и сборка
Электромонтаж и сборка
Электромонтаж и сборка
Электромонтаж и сборка
Электромонтаж и сборка
Электромонтаж и сборка
Электромонтаж и сборка
Электромонтаж и сборка

Первый шаг - это монтаж электростанций.

Я разделил пластиковый корпус на две части, одна из которых используется для батареи, переключателя, зарядного устройства USB и выхода DC-DC. В эту часть я помещаю держатель батареи и делаю окна для переключателя и зарядного устройства USB. Имейте в виду, что модуль зарядного устройства USB довольно опасен, поэтому я использовал алюминиевую пластину и надел на нее зарядное устройство USB с помощью клея Star 922.

Второй шаг - это сборка части контроллера.

См. Схему подключения, как это должно быть подключено

Для этой цели я использовал Хлебную доску, выполнив следующие действия.

  • Припаять плату разработчика ESP32
  • Паяльный экран для сохранения TFT-дисплея
  • Припой другие электронные компоненты: BME280, резисторы, кнопки
  • Припаяйте проводку между компонентами согласно схеме

Третий шаг - подготовить монтаж макета ко второй части пластикового корпуса. Я распечатал на своем 3D-принтере две планки, прикрепил их к монтажной плате винтами и сделал прямоугольный вырез для экрана дисплея.

К корпусу пластикового корпуса приклеил пластиковые штанги. Теперь, когда клей высохнет, кабину макета открутить винтами.

Следующий шаг:

  • Паяльная проводка для источника питания
  • Припаяйте проводку для определения напряжения батареи
  • Припаять и установить детектор движения

Заключительный этап:

  • настроить преобразователь постоянного тока в постоянный, настроив выходное напряжение 5 В
  • подключить к питанию две части контроллера станции: провода питания и считывание напряжения

Для датчика движения и кнопки проделал дополнительные отверстия на лицевой стороне.

Шаг 3: загрузка прошивки в ESP32

Для этого проекта я использовал универсальное программное обеспечение, разработанное мной.

Пожалуйста, посмотрите страницу GitHub ESPHomeController. Она содержит полную инструкцию по компиляции и настройке.

! Если вы не знакомы с компиляцией и Arduino, посмотрите этап загрузки готовой прошивки.

Как только вы загрузите прошивку в первый раз, ESP32 запустится в режиме настройки (режим точки доступа)

Вы должны их настроить. Для этого откройте в любом устройстве список доступных WiFi. Найдите HomeController и подключитесь к нему. Портал авторизации должен запуститься автоматически. Если нет, введите адрес вашего браузера: 192.168.4.1, и вы увидите экран конфигурации.

Следуйте инструкциям и настройте учетные данные WiFi для своей сети Wi-Fi.

После этого ESP перезапустится как клиент WiFi и подключится к вашему Wi-Fi.

При первом подключении sson автоматически монтирует файловую систему Spiffs и загружает необходимые файлы для веб-портала:

  • index.html
  • filebrowse.html
  • js / bundle.min.js.gz

Скачивание происходит из папки

Теперь вы можете просматривать содержимое файла через веб-браузер. для этого вы должны теперь IP-адрес вашего ESP32

Найти его можно одним из следующих способов:

  • Использование монитора последовательного порта для просмотра журналов ESP32
  • Использование любого tcp-сканера для сканирования ваших сетевых устройств
  • Нажмите кнопку на метеостанции, и вы увидите системную информацию.

Поместите в браузере https://192.168.0. XX/browse, и вы увидите список файлов вашего ESP.

(192.168.0. XX - это IP-адрес вашего устройства.

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

Шаг 4: Загрузка готовой прошивки

Загрузка готовой прошивки
Загрузка готовой прошивки

Этот раздел специально для тех, кто не собирается делать прошивки самостоятельно. Вам просто нужно загрузить "готовую" прошивку

1. Загрузите инструменты для загрузки флеш-файлов с этой страницы.

2. Загрузите прикрепленные (извлеченные из архивов) файлы HomeController.bin и bootloader_qio_80m.bin на свой жесткий диск.

3. Запустите инструмент загрузки ESP32 и введите значения в соответствии со снимком экрана.

4. Нажмите "Пуск".

Шаг 5: Конфигурация

Перед тем, как начать подготовку конфигурации, вам необходимо:

  1. Создайте свой канал о вещах и ключевом для вас канале. Подготовьте 4 поля и назовите их правильно: Температура, Влажность, Давление, Напряжение.
  2. Зарегистрируйтесь на Weather.com, чтобы получить ключ API

Thingspeak необходимы для загрузки ваших данных и отслеживания тенденций и значений.

Погода необходима для получения данных прогноза.

Хорошо, наконец, вам нужно создать файл services.json со следующим содержимым

[{"service": "TimeController", "name": "Time", "enabled": true, «interval»: 1000, «timeoffs»: 7200, «dayloffs»: 3600, «server»: «pool.ntp»).org "," enableleep ": true," sleeptype ": 1," sleepinterval ": 900000," restartinterval ": 18000000}, {" service ":" BME280Controller "," name ":" BME "," enabled ": true, "interval": 900000, "i2caddr": 118, "uselegacy": true, "temp_corr": - 3.0, "hum_corr": 10.0}, {"service": "WeatherClientController", "name": "WeatherForecast", "enabled": true, "interval": 500000, "uri": "https://api.weather.com/v3/wx/forecast/daily/5day?geocode=50.30, 30.70 & format = json & units = m & language = en" -US & apiKey = weatherapi "}, {" service ":" WeatherDisplayController "," name ":" WeatherDisplay "," enabled ": true," interval ": 500}, {" enabled ":" true "," interval ": 600000, «pin»: 36, «service»: «LDRController», «name»: «LDR», «cvalmin»: 0.0, «cvalmax»: 7.2, «cfmt»: «%. 2f V», «acctype»: 10}, {"service": "ThingSpeakController", "name": "ThingSpeak", "enabled": true, "interval": 1200000, "value": [1, 1, 1, 1, 0, 0, 0, 0], "apiKey": "thingspea kapi "}, {" enabled ": true," interval ": 1," pin ":" "," service ":" ButtonController "," name ":" Button "," pins ": [27]}]

! Пожалуйста, замените

  • thingspeakapi с ключом api thingspeak
  • weatherapi с вашим ключом API погоды
  • геокодируйте с вашим местоположением, для которого вы хотите получить прогноз

Затем подготовьте второй файл triggers.json

[{"тип": "BMEToWeatherDisplay", "источник": "BME", "пункт назначения": "WeatherDisplay"}, {"тип": "TimeToWeatherDisplay", "источник": "Время", "пункт назначения": "WeatherDisplay "}, {" type ":" WeatherForecastToWeatherDisplay "," source ":" WeatherForecast "," destination ":" WeatherDisplay "}, {" type ":" BMEToThingSpeak "," source ":" BME "," destination ": "ThingSpeak", "t_ch": 1, "h_ch": 2, "p_ch": 3}, {"type": "ButtonToWeatherDisplay", "source": "Button", "destination": "WeatherDisplay"}, { "type": "LDRToThingSpeak", "source": "LDR", "destination": "ThingSpeak", "ch": 4}]

Оба файла необходимо загрузить в корень esp.

Вы можете сделать это через браузер https://192.168.0. XX/browse, где https://192.168.0. XX - IP-адрес вашего устройства.

После загрузки ESP необходимо перезапустить и все было сделано правильно. Esp покажет правильный экран, как на фото и видео выше.

Шаг 6: настройка и энергопотребление

Настройка и энергопотребление
Настройка и энергопотребление

Я использую свое устройство с подключением к панели солнечных батарей, чтобы убедиться, что оно может работать "бесконечно"

потребляемая мощность важна, и после нескольких экспериментов я использовал два основных трюка

Уменьшите потребление заднего светодиода TFT-экрана

По измерениям он потребляет 15-20 мА (много), поэтому я использовал тактику с детектором движения. Он отлично работает. Детекторы движения способны распознавать любое обнаружение на расстоянии до 8-10 метров и повышать напряжение на сигнальном кабеле. Это отверстия транзистора и фонового светодиода, на который подается питание. Обычно извещатель сохраняет это состояние до 10 секунд, что более чем достаточно, чтобы увидеть монитор, но если вы продолжите движение, сигнал все равно будет высоким, а светодиод горит.

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

2. Снижение энергопотребления за счет ESP32.

Когда ESP подключен к WiFi, он постоянно ест 7-10 мА, я говорю о постоянном времени, а не о запуске и первом подключении. Это может быть приемлемо, если вы всегда видите актуальную дату и время, получаете доступ к своей системе из домашнего комплекта Apple.

Что касается моей солнечной энергии в зимнее время, она должна была соответствовать работе без дополнительных источников энергии, Поэтому решил периодически переводить ESP32 в спящий режим (питание меньше 1 мА). Для меня это нормально, например, ESP спит 20 минут, затем просыпается, обновляет экран (фактические данные и прогноз), отправляет данные в Thingspeak и снова возвращается в спящий режим

Минусы:

  • Экран погоды отображает устаревшие значения времени
  • Станция недоступна из браузера и Apple Home Kit во время сна.

Вам решать, что важнее, вы можете просто перенастроить это.

Пожалуйста, посмотрите файл services.json и строку

[{"service": "TimeController", "name": "Time", "enabled": true, «interval»: 1000, «timeoffs»: 7200, «dayloffs»: 3600, «server»: «pool.ntp»).org "," includesleep ": true," sleeptype ": 1," sleepinterval ": 900000," restartinterval ": 18000000}

"enableleep": true включает спящий режим вообще, если поставить false или удалить параметр (false по умолчанию) ESP никогда не спит

"интервал сна": 900000 это миллис, или 15 минут, означает, что каждые 15 минут ESP будет просыпаться и выполнять необходимые действия.

Итак, теперь каждый может легко играть в соответствии с необходимостью.

Шаг 7: настройка датчиков

Чтобы свести к минимуму воздействие внутреннего нагрева на датчик температуры BME280

Сначала я сделал трубку вокруг датчика и отверстий. Hovewer в моем режиме, когда светодиод обычно выключен, а ESP спит, не так важен. В остальных случаях датчик BME280 должен куда-нибудь переместиться, чтобы исключить влияние внутреннего нагрева. Как бы то ни было, я обнаружил небольшое влияние, поэтому есть два параметра, которые нужно компенсировать.

"hum_corr": 10.0

что означает, что эти значения будут добавлены после измерения

Во-вторых, откалибруйте измерение напряжения батареи, {"enabled": "true", "interval": 600000, "pin": 36, "service": "LDRController", "name": "LDR", "cvalmin": 0.0, "cvalmax": 7.2, " cfmt ":"%. 2f V "," acctype ": 10}, «cvalmin»: 0,0

«cvalmax»: 7,2

предназначены для этих целей, поскольку напряжение измеряется после резисторов-делителей и сравнивается с 3,3 В, играя со значением cvalmax, вы можете достичь точной настройки напряжения с помощью значения мультиметра.

Шаг 8: Добавление устройства в Apple Home Kit

Добавление устройства в Apple Home Kit
Добавление устройства в Apple Home Kit

Наконец, когда ваше устройство заработает правильно, его можно добавить в Apple Home Kit, и вы сможете увидеть

значения датчиков на главном экране Apple.

Сначала вам нужно перезагрузить устройство, так как вскоре после запуска устройство не перейдет в спящий режим. 20 минут более чем достаточно.

Затем откройте приложение Home Kit на своем устройстве iOS и выберите или создайте новый Home1. Нажмите Добавить (+)

2. Выберите Добавить аксессуар.

3. Нажмите «У меня нет кода» или «Не могу сканировать» (в дальнейшем сканирование будет добавлено).

4. Если все в порядке, вы должны увидеть свое новое устройство esp в списке (см. Рисунок)

5. Выберите устройство и подтвердите добавление без официальной сертификации.

6. Введите пароль 11111111

7. Все! Вы должны увидеть, что сопряжение с устройством выполнено успешно, в противном случае начните процесс сопряжения снова.

В зависимости от настройки вы увидите два устройства на Apple.

1. Датчик температуры и датчик шума, если углубиться, они будут отображать значения в полноэкранном режиме.

2. Датчик освещенности:) На самом деле Apple может показывать световую атмосферу, но не напряжение, поэтому напряжение батареи отображается в люксах.

Шаг 9: OTA: обновления по воздуху

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

Есть две возможности обновить

  1. Конфигурация с помощью https://192.168.0. XX/browse, вы можете получить доступ к своей файловой системе через ESP и изменить файлы конфигурации.
  2. Вы можете полностью обновить прошивку. для этого сначала нужно создать новый. Это можно сделать через Arduino или Visual Studio IDE. Затем введите в браузере https://192.168.0. XX/update, выберите свою прошивку и нажмите «Обновить». Подождите, пока процесс не будет завершен, и вы получите ответ ОК, в противном случае повторите шаг еще раз.

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