суббота, 13 января 2018 г.

Прошивка ESPEasy для ESP8266

Открыл для себя прошивку ESPEasy от Let's Control It для ESP8266. ESPEasy собирается с разным набором модулей и доступна для различных объемов flash памяти. Я буду заливать прошивку в ESP-12S, который купил ранее и мне нужно узнать какой объем flash памяти установлен на моих чипах.

$ ./esptool.py --port /dev/ttyUSB0 --baud 115200 flash_id
Connecting...
Manufacturer: ef
Device: 4016

Согласно информации проекта CoreBoot в модуле установлен чип Winbond W25Q32, содержащий 4MB памяти.

Если проверить модули ESP-01, с которых я начинал знакомство с ESP8266, то выдает следуещее:

$ ./esptool.py --port /dev/ttyUSB0 --baud 115200 flash_id
Connecting...
Manufacturer: c8
Device: 4013

Если верить CoreBoot, то должна быть установлена GigaDevice GD25Q40, и в подтверждение тому на плате стоит GD25Q41BT, имеющая объем flash памяти 4Mb или 512kB.

Скачать прошивку с GitHub можно здесь. Я брал ESP_Easy_v2.0-20180113_test_ESP8266_4096.bin чтобы была поддержка датчика углекислого газа MH-Z19.

Для заливки прошивки можно использовать esptool из Arduino или esptool.py. Я использую первый из них.

$ ~/.arduino15/packages/esp8266/tools/esptool/0.4.8/esptool -vv -cd nodemcu -cb 115200 -cp /dev/ttyUSB0 -ca 0x00000 -cf ~/tmp/ESP_Easy_v2.0-20180113_test_ESP8266_4096.bin
esptool v0.4.8 - (c) 2014 Ch. Klippel
 setting board to nodemcu
 setting baudrate from 115200 to 115200
 setting port from /dev/ttyUSB0 to /dev/ttyUSB0
 setting address from 0x00000000 to 0x00000000
 espcomm_upload_file
 espcomm_upload_mem
opening port /dev/ttyUSB0 at 115200
 tcgetattr
 tcsetattr
 serial open
opening bootloader
resetting board
trying to connect
 setting character timeout 0
 done
 setting character timeout 1
 done
 espcomm_send_command: sending command header
 espcomm_send_command: sending command payload
trying to connect
 setting character timeout 0
 done
 setting character timeout 1
 done
 espcomm_send_command: sending command header
 espcomm_send_command: sending command payload
 espcomm_send_command: receiving 2 bytes of data
 espcomm_send_command: receiving 2 bytes of data
 espcomm_send_command: receiving 2 bytes of data
 espcomm_send_command: receiving 2 bytes of data
 espcomm_send_command: receiving 2 bytes of data
 espcomm_send_command: receiving 2 bytes of data
 espcomm_send_command: receiving 2 bytes of data
 espcomm_send_command: receiving 2 bytes of data
Uploading 566528 bytes from to flash at 0x00000000
 erasing flash
 size: 08a500 address: 000000
 first_sector_index: 0
 total_sector_count: 139
 head_sector_count: 16
 adjusted_sector_count: 123
 erase_size: 07b000
 espcomm_send_command: sending command header
 espcomm_send_command: sending command payload
 setting timeout 15000
 setting character timeout 150
 done
 setting timeout 1
 setting character timeout 1
 done
 espcomm_send_command: receiving 2 bytes of data
 writing flash
..................................................
starting app without reboot
 espcomm_send_command: sending command header
 espcomm_send_command: sending command payload
 espcomm_send_command: receiving 2 bytes of data
closing bootloader

После сброса в сети появится новая точка доступа с именем "ESP_Easy_0" (пароль "configesp"). При подключении к ней телефон определил captivate portal в котором предлагается настроить подключение к WiFi.

К одному из модулей у меня подключены BME280 и MH-Z19, а ко второму SI7021. Оба датчика показывают очень близкие значения температуры и влажности, когда находятся рядом, но BME280 примерно в два раза дороже.

К обоим модулям подключены OLED экраны разрешением 128x64 на базе контроллера SSD1306. Данные передаются по MQTT в Mosquitto из которого Munin забирает их для построения графиков. В дальнейшем хочу перейти на что-то вроде MajorDomo, OpenHAD или Domoticz.


Для защиты от выгорания экран включается на 15 секунд по нажатию на кнопку flash (подключена к gpio-0).


На экран выводятся значения температуры, влажности и концентрации углекислого газа в воздухе.

Основная информация по работе прошивки.


Настройки прошивки: название юнита, настройки WiFi, статическая конфигурация сети (если нужно).


Настройки контроллеров. Я использую MQTT брокер Mosquitto.


Настройки выходов при загрузке.


Конфигурация подключенных датчиков. На этом модуле сконфигурирован экран SSD1306, BME280 и MH-Z19.


Нотификации я не использую, т.к. для этого у меня есть Nagios и Munin.


Раздел с инструментами. Из интересного /log и /json. Оба можно использовать для мониторинга устройства.


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

Комментариев нет:

Отправить комментарий