Мини-метеостанция на основе ESP8266
Из-за ограничений, связанных с политикой и законодательством, данный материал предназначен только для изучения программирования Arduino и APRS. Ответственность за все последствия использования лежит на пользователе. Настоятельно рекомендуется ознакомиться с данным предупреждением.
Актуальная версия кода доступна по следующим адресам:
Это мой эксперимент по изучению ESP8266 Arduino. В нём используются распространённые экспериментальные платы ESP8266, такие как NODEMCU или WEMOS, а также внешние датчики температуры, влажности и атмосферного давления I2C для создания простой функции APRS-станции погоды (она называется простой, потому что в ней нет функций направления ветра, скорости ветра и количества осадков, и я не планирую добавлять эти функции позже, поскольку датчики для этих параметров стоят дорого и не подходят для экспериментов). Существует множество открытых проектов, которые реализуют аналогичные функции, но моя имеет несколько ключевых особенностей:
Чтобы защитить порядок работы сети APRS, необходимо соблюдать следующие меры предосторожности:
Поскольку схема очень проста, здесь представлена только простая блок-схема (обратите внимание, что солнечная панель, плата управления зарядкой и плата защиты аккумулятора не показаны):
!
Обратите особое внимание на правильную последовательность действий при подключении источника питания. Неправильное подключение может привести к повреждению чипа.
Плата управления зарядкой CN3791 обычно поставляется с сопротивлением 50 мОм по умолчанию. Это сопротивление следует заменить на 0,51 Ом для достижения тока зарядки около 235 мА.
Следует отметить, что эта схема применима только к устройствам, использующим плату управления зарядкой CN3791. Использование солнечных панелей без подключения через диоды может привести к перезарядке аккумулятора и его повреждению.
Если у вас есть доступ к источнику питания 5 В, это будет самым простым решением. Вы можете подключить источник питания к плате NODEMCU через кабель MicroUSB.
Мой модуль AHT20+BMP280 представляет собой единое целое, но даже если вы используете два отдельных модуля, проблем не возникнет, так как шина I2C поддерживает несколько устройств. SDA подключается к GPIO12 (D6), а SCL — к GPIO14 (D5). Для модуля BMP280 в зависимости от схемы подключения доступны два адреса I2C. Если ваш код не обнаруживает датчик, измените строку bmp.begin()
на bmp.begin(BMP280_ADDRESS_ALT)
. Согласно текущей ситуации, большинство модулей AHT20+BMP280, продаваемых на некоторых платформах, используют первый адрес, в то время как отдельные модули BMP280 обычно используют второй адрес.
Для автоматического пробуждения системы после перехода в режим ожидания необходимо соединить GPIO16 (D0) с RST через резистор 470 Ом. Из-за влияния существующей внешней цепи на плате RST, если значение резистора меньше 470 Ом, функция сброса по умолчанию на модуле может быть нарушена (но без других негативных эффектов). Если значение резистора превышает примерно 1 кОм, система может не выйти из режима ожидания автоматически (из-за возможных различий в параметрах компонентов между различными производителями модулей, конкретные значения могут варьироваться). Поэтому рекомендуется выбирать значение сопротивления в диапазоне от 470 до 1000 Ом, чтобы избежать нарушения функции сброса по умолчанию, хотя прямое соединение также возможно.
Опытные пользователи Arduino могут напрямую использовать Arduino IDE для компиляции и загрузки. Код уже включает функцию OTA, и после первой загрузки прошивку можно обновлять по воздуху.
Пользователи, не знакомые с Arduino, могут загрузить официальный инструмент для загрузки прошивки Espressif. Текущая последняя версия доступна по адресу:
https://www.espressif.com/sites/default/files/tools/flash_download_tool_v3.8.8_0.zip.
После загрузки и распаковки инструмента дважды щёлкните основной исполняемый файл, чтобы запустить его. В Windows 10 появится предупреждение, выберите «Продолжить». В появившемся окне выберите «ESP8266» в разделе «Тип микросхемы», «Разработка» в разделе «Режим работы» и загрузите скомпилированный файл .bin. Затем выберите порт COM, соответствующий вашему устройству, и следуйте остальным инструкциям на экране. Нажмите «Старт», чтобы начать загрузку.
Если вы хотите попробовать компиляцию и загрузку, я написал новое руководство:
Как скомпилировать исходный код и обновить прошивку по воздуху.
Надеюсь, оно будет вам полезно.
Подключение к Wi-Fi
После завершения сборки и успешной загрузки прошивки выполните следующие действия для настройки Wi-Fi:
Настройка параметров
Подготовьте программное обеспечение для сетевого мониторинга, например, следующее (бесплатное, с поддержкой китайского и английского языков):
http://free.cmsoft.cn/download/cmsoft/assistant/netassist4.3.29.zip
Настройте диапазон IP-адресов внутренней сети вашего маршрутизатора на 192.168.1.X и включите DHCP. Затем настройте IP-адрес вашего компьютера на 192.168.1.125.
(Этот адрес и диапазон можно изменить позже, но при первом использовании они должны быть такими, если только вы не измените исходный код и перекомпилируете его.)
Откройте программное обеспечение сетевого мониторинга и настройте его в соответствии с инструкциями на экране, затем нажмите «Открыть».
Если ваше устройство работает правильно, окно должно сразу же отобразить информацию, отправленную устройством ESP8266.
Подробные инструкции по настройке команд см. в окне.
Нормальная работа
После правильной настройки системы через командную строку система будет работать нормально. Если окно сетевого мониторинга открыто и устройство ESP8266 подключено, окно будет отображать текущее состояние работы. В этом состоянии устройство постоянно работает и не переходит в спящий режим. Функция OTA работает нормально, и вы можете использовать Arduino IDE для обновления прошивки.
Если вы закроете окно сетевого мониторинга на компьютере или отключите сетевое соединение, устройство немедленно перейдёт в энергосберегающий спящий режим. Как только время пробуждения истечёт, система автоматически выполнит измерение и отправит данные на сервер APRS, после чего снова перейдёт в спящий режим.
Так как система работает с перерывами, каждый период активности длится примерно 10 секунд, поэтому, если вам нужно обновить прошивку по воздуху, просто откройте окно сетевого мониторинга в режиме сервера и дождитесь следующего периода активности системы. Тогда вы сможете выполнить обновление прошивки по воздуху. В процессе практической работы для удобства понимания другими людьми были специально сделаны фотографии и записаны собственные замечания по изготовлению. Это очень ценно в качестве источника информации, за что мы выражаем ему благодарность.
[«BG4VRG написал руководство по изготовлению»] (doc/newbie-setup.md) (Примечание: после версии 0.17 больше не нужно снимать два резистора!)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )