ESP8266 MegaD api

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
llams
Сообщения: 191
Зарегистрирован: 23 ноя 2015, 04:20

ESP8266 MegaD api

Сообщение llams » 23 янв 2016, 16:17

Всех приветствую.
Да простит меня Андрей, уж очень заманчив его api для мегадевайса, решил частично позаимствовать для организации исполнительного модуля на базе ESP-12f (можно и другие ESP8266).

Собственно небольшой итог по проделанной работе. По возможностям устройство практически приблизилось к MegaD, основные отличия:
- в первую очередь стабильность работы, Wi-Fi есть Wi-Fi, время отклика отстает от оригинального устройства,
- некоторый функционал связанный с использованием портов в режиме raw у MegaD, естественно упирается в пункт см. выше. :-)

Поддерживаемые микросхемы:
Датчики:
- DS18B20 - температура;
- DHT11/DHT2x(AM2302, AM2303) - температура, влажность;
- BMP085/180 - температура, давление;
- BME280 - температура, влажность, давление;
- Si7021 - температура, влажность;
- BH1750 - освещенность;
Расширители портов IO:
- PCA9685 - выход PWM;
- MCP23017 - IN и OUT;
- WS281x - RGB;
Дисплеи:
- PCF8574 - i2c->HD44780
- SSD1306 - OLED

Список изменений:

03.06.2017 - 0.34b12
- мелкие правки,
- исправлены проблемы с возвратом статуса обновления прошивки,
- временно отключен MQTT,
07.02.2017 - 0.34b10
- оптимизированная разметка EEPROM,
- добавлен механизм первоначальной инициализации устройства, в дальнейшем позволит избежать проблем с EEPROM при переходе на новые версии прошивок со значительными изменениями в коде,
- мелкие правки,
- после прошивки ВСЕ параметры кроме SSID и пароля сети будут сброшены,
05.02.2017 - 0.34b9
- под хранение ID выделено 4 байта,
- добавлена поддержка MQTT, минимально:
* устройство подключается к брокеру по IP сервера,
* подписывается на топик равный ID устройства, в который возможна отправка стандартных команд для мегаД "3:2",
* идентификатор устройства MQTT соответствует "MD_id", где id соответственно ID устройства,
* для набортных портов io появилась возможность обработки событий Act&MQTT при этом пропадает поле Net. Пример команды для MQTT следующий "9oiy_3:2" где 9oiy - id устройства, в этот топик будет отправлено сообщение (команда - 3:2),
01.02.2017 - 0.34b7
- добавлена поддержка датчика Si7021, возможно будет работать HTU21 не проверял,
- изменён адрес для PCA9685 (теперь 0x41), пин A0 притянуть к VCC, на устройствах от rvv необходимо передвинуть перемычку рядом с микросхемой,
- мелкие правки.
04.01.2017 - 0.34b5
- добавлен термостат для шины 1-wire (работает пока только Act),
- организован пул команд Act и NetAct для термостатов на шине 1-wire, MCP, в планах для прочих i2c_DSen.
02.01.2017 - 0.34b4
- добавлен гистерезис для каждого порта, а также для ADC, для DSen "значение" * 0.1 градус, для ADC максимальный суммарный гистерезис в 510 пунктов т.е. +-255,
- для модулей ESP-01 выделен порт для DSenBUS (функция аппаратного сброса отключена), прочие варианты не убирал, у кого есть модуль могут проверить IN, OUT и остальные,
- исправлен выбор режимов работы порта io2 для модуля ESP-01,
- имеется проблема с отображением статуса прошивки, не возвращает результат обновления по OTA.
17.12.2016 - 0.34b2
- возможность определения количества датчиков на шине, максимум 10 штук поле Count,
- возможность сохранения порядка датчиков,
- имеется проблема с отображением статуса прошивки, не возвращает результат обновления по OTA.
15.12.2016 - 0.34b1
- поддержка шины для DS18B20 только на P0 (io5).
есть поддержка:
* 10 датчиков,
* получение значений по ?pt=0&cmd=get и ?cmd=all,
* периодическая отправки данных на сервер,
* опрос датчиков по заданному периоду, как и для DSen.
- имеется проблема с отображением статуса прошивки, не возвращает результат обновления по OTA.
06.12.2016 - 0.33
- отображение SSID в поле ввода,
- отображение номера IO на закладке порта во всех режимах работы,
- мелкие правки,
- имеется проблема с отображением статуса прошивки, не возвращает результат обновления по OTA.
29.08.2016 - 0.33b4
- исправлен локальный PWM (ранее игнорировалось значение больше 127),
- OLED: отображение прогресса и статуса сброса SSID,
- новый SDK 1.5.4,
- имеется проблема с отображением статуса прошивки, не возвращает результат обновления по OTA.
27.08.2016 - 0.33b3
- исправлен режим работы PCA9685 для совместимости с модулями Андрея,
- OLED: отображение FW, IP, RSSID,
- на вкладке INF под Up: отображается информация по какому событию был сброс устройства,
- мелкие правки.
20.07.2016 - 0.32
- поддержка датчика BME280, адрес 0x76,
- сброс настроек Wi-Fi сети при замыкании GPIO1 на GND в течении 5 секунд, затем происходит перезагрузка устройства. При использовании нужно учесть тот факт, что на GPIO1 при перезапуске появляется мусор с UART, поэтому для защиты порта ESP нужно использовать ограничительный резистор,
- заглушка на http://IPEsp/favicon.ico, некоторые браузеры постоянно перезапрашивают иконку сайта до получения 404,
- для датчика BMP085/180 убрал значение, а также параметры для калибровки высоты, из-за этого сдвинулась область в EEPROM в которой хранятся параметры для MCP23017. Придётся настроить заново,
14.07.2016 - 0.31
- оптимизация, значительное увеличение производительности, уменьшение времени отклика на запросы,
- для MCP23017 добавлена возможность выбора режима работы с сервером:
Default - отправка команд на сервер при отсутствии ответа выполняется Act если прописан,
Act - локальное действие, соответственно,
сохранение параметров по кнопке Save,
- для PCA9685 снята инверсия, теперь логика работы аналогична MegaD,
12.07.2016 - 0.31b3
- для PCA9685, меню приведено к общему виду,
- исправлена ошибка в работе с портами PCA9685,
- опрос состояния ADC только по таймеру, т.е. значение будет обновлять с периодом заданным в настройках порта, ранее значение при отправке на сервер, в web и по наличию модификаторов "<" или ">" в Act проверялось по запросу,
- версия для модулей ESP-01 (нет выводов не распаянных на гребёнке платы),
- добавлен аппаратный сброс конфигурации Wi-Fi сети, только в нормальном режиме работы (не AP), по однократному замыканию GPIO1(uart-Tx) на GND,
11.07.2016 - 0.31b2
- изменения для расширителя портов MCP23017:
поддержка режимов P, R и P&R для портов IN микросхемы MCP,
меню для портов MCP как для внутренних,
отправка модификатора при размыкании контакта на сервер в режимах R и P&R, как для внутренних портов,
возможность маскирования прерывания от MCP, любой вход может быть использован независимо от остальных,
сохранение параметров для MCP производится только по Set Default,
10.07.2016 - 0.31b1
- добавлена возможность настройки портов MCP23017:
любой порт может быть IN и OUT,
события от порта IN отправляются только на сервер,
работа возможна только в режиме Pulse,
одновременно возможна обработка прерывания только от одного порта (т.е. пока не будет отпущена кнопка сработавшего порта, статус следующей кнопки будет игнорироваться),
для работы с портами в режиме IN необходимо подключить вывод INTA или INTB микросхемы к GPIO3 ESP,
направление режима работы порта отображается символами ">" - выход и "<" - вход,
08.07.2016 - 0.30
- поддержка датчиков DHT11, просьба проверить, в наличии нет,
- инициализация GPIO после изменения типа порта без перезагрузки устройства,
- немного изменен алгоритм сброса настроек, возможно решит проблему смены Wi-Fi сети,
- сквозная нумерация для i2c датчиков, доступ к значению возможен по /sec/?cmd=get&pt=X где X номер порта/пина как на устройстве, так и внешнего датчика. Номер "виртуального" порта можно узнать на закладке самого датчика, также он будет совпадать с порядковым номером параметра в запросе к серверу или в ответе на /sec/?cmd=all,
06.07.2016 - 0.29
- поддержка датчика BH1750, также устройство отправляет значение интенсивности света на сервер megad.php?mdid=130&all=......;light:2800 в люксах,
- возможность указать гистерезис для датчиков температуры (одно значение для всех), с шагом в 0,1 градус С, значение одно как в + так и в -,
20.06.2016 - 0.28
- исправлена ошибка при опросе датчика 1W,
- добавлено динамическое заполнение портов при подключении MCP и PCA (если одна микросхема то нумерация внешних портов 10-25, если обе то 10-25 MCP и 26-41 PCA).
17.06.2016 - 0.27
- исправлено отображение температуры при отсутствии датчиков 1W, было temp: -0.06, теперь при ошибках с датчиками temp: и hum: будут возвращать nan,
- добавлена отправка состояния портов PCA9685 на сервер, а также проверка таковых GET запросами, (/sec/?cmd=all, /sec/?pt=41&cmd=get),
- мелкие правки, оптимизация.
11.06.2016 - 0.26
- поддержка PCA9685, пока только управление + статус в web, состояния по умолчанию еще нет,
- отображение версии SDK в Info.
08.06.2016 - 0.25
- отправка состояния датчика BMP на сервер: /megad.php?mdid=35&all=OFF;OFF/0;OFF;RGB;temp:22.31;OFF/0;.......;OFF;temp:21.80/pres:745.66 если подключен,
- возможность опроса датчика BMP GET запросом: /sec/?bmp=1,
- оптимизирована работа с MCP23017.
29.05.2016 - 0.24
- исправлена ошибка в работе с командами a:0 и a:1 из Act,
- MCP23017 - все порты на выход, возможность сохранения состояния по умолчанию.
22.05.2016 - 0.23


Что имеем на данном этапе:

0 - Прошивка и первое включение.

Для прошивки необходима программа nodemcu-flasher, более подробно есть тут mysku.ru со всеми ссылками. По десять раз расписывать как подключать и как прошивать не вижу смысла.
После прошивки и первого включения устройство создаст открытую Wi-Fi сеть SID: ESPap. Необходимо подключиться к этой сети и набрать в браузере адрес http://192.168.4.1/, если все верно откроется страничка Config.

1 - Config.

- закладка Wi-Fi:
PIN: 123 - не знаю нужен ли кастомный,
SID: - имя сети,
PaS: - пароль сети,
- закладка IP:
Ip cfg: - выпадающий список, два варианта Static/DHCP, устройство имеет постоянные настройки IP, MASK, GW или получает их с DHCP сервера локальной сети пользователя, ну и параметры EspIp, Mask, DGW.
- закладка SRV:
DSen P: период опроса цифровых датчиков аргумент *0.1s (20*0.1s = 2s),
BMCal: параметр для калибровки высоты над уровнем моря,
Srv: IP адрес сервера,
Scr: скрипт на сервере,
Eid: ID устройства,
Srv loop: период отправки состояния портов на сервер *10s.
- закладка Reset:
различные варианты сброса настроек устройства, перезагрузка,
- закладка Info:
информация о устройстве, uptime, обновление прошивки, конфигурация и режим работы памяти, адреса подключенных устройств на шине I2C.

config.JPG
config.JPG (62.11 КБ) 18074 просмотра


2 - Главная страница устройства:

Доступная по адресу http://ESPip/sec/ отображает список портов и устройств подключенных к ESP.

main.JPG
main.JPG (22.31 КБ) 18074 просмотра


3 - соответствия портов:

P0 - GPIO5
P1 - GPIO4
P2 - GPIO15 - не может быть DSen, либо входом с внешним резистором подтяжки,
P3 - GPIO13
P4 - GPIO12
P5 - GPIO14
P6 - GPIO16
P7 - GPIO0 - не может быть прямым выходом, (нельзя подключать прямую нагрузку),
P8 - GPIO2 - не может быть прямым выходом, (нельзя подключать прямую нагрузку),
P9 - ADC

4 - режимы работы портов, Type:

- IN - дискретный вход.
P1/OFF/1 - статус порта, где:
P1 - номер порта,
OFF - состояние, контакт разомкнут,
1 - счетчик.
mod - аналогично MegaD (есть дополнительный параметр M)
P - только при замыкании контакта,
R - только при размыкании контакта,
P&R - как на замыкание, так и на размыкание,
M - пока контакт замкнут выполняется команда Act, Net и сервер при этом игнорируются, необходим для совместного использования с модификатором ~.

Action (Act) - локальное действие,
Формат поля Action аналогичен MegaD: X:Y;X:Y;X:Y
где, X - номер порта, а Y (0 - выключить, 1 - включить, 2 - изменить состояние на противоположное, 3 - выставить состояние порта OUT в соответствии с портом IN, 4 - аналогично параметру 3 но инверсно).
Поддерживаются параметры:
p - значение параметра задаётся в десятых долях секунды, т.е. при значении 100 задержка составит 10 с. например команда 0:1;p100;0:0 включит 0-й порт на 10 секунд, параметр доступен только для локальных портов ESP,
a:0 - выключить все выходы,
a:1 - включить все входы (порт PWM примет значение 255),
* - модификатор отвечающий за изменение состояния порта PWM, если указать явное значение параметра (например 0:*255) порт при очередном выполнении команды будет принимать противоположное состояние, если не указывать значение после модификатора (например 0:*) порт при очередном выполнении команды примет предыдущее состояние (например было 120 примет 0 при повторной команде примет 120),
~ - модификатор плавного изменения состояния порта PWM должен иметь значение шага (например 0:~5). Изменение состояния порта происходит от 0 -> 255 -> 0 с заданным шагом,
< > - модификаторы условия для проверки состояния датчиков температуры и значения ADC, команда 5:<25;0:2 проверит значение температуры на датчике подключенном к 5 порту и при удовлетворении условию сменит состояние на 0-м порту.

NetAction (Net) - URL вызываемый по событию, аналогично MegaD.
Поддерживаются аргументы 3 и 4.
Возможности указать порт нет, всегда использует 80-й.

Для каждого порта с типом IN, DSen, ADC имеется возможность выбора одного из вариантов выполнения команд:
Default:
- сервер -> если сервер не отвечает Act,
- Net.
Act - только Act, что прописано в конфиге для сервера и Net значения не имеет.
Net - аналогично Act.
Net&Act - соответственно Net и Act,
Net>Act - Act выполняется при отсутствии ответа на Net.

- OutSW - дискретный выход, аналогично MegaD,
P2/OFF - состояние порта, где:
P2 - номер порта,
OFF - текущее состояние порта, в данном случае выключен,
Ниже ссылка которая имеет вид "ON" или "OFF" в зависимости от текущего состояния порта.
Default - состояние порта после перезагрузки устройства.

- OutSL - ведомый дискретный выход,
Mast - позволяет выбрать один из локальных портов с типом OUT,
Может работать в 4-х режимах:
Same - повторяет состояние,
Invert - инвертирует,
Flicker - при состоянии "Master" порта ON на SL_OUT подаётся периодический сигнал,
Pulse - срабатывает один раз при изменении состояния "Master" порта 0->1.

- OutPWM - выход с функцией PWM, аналогично MegaD.
P0 - номер порта,
PWM (0-255) - поле для установки значения порта, Set применяет параметры.
Default: - значение 0-255 которое будет выставлено на порту при запуске.

- DSen - вход для подключения цифровых датчиков. Функционал Act и Net аналогичен порту IN.
Sen - выбор типа датчика, поддерживаются DS18B20, DHT22.
mod - режим работы порта
Norm - значения не проверяются,
Для температуры:
T> - считается активным, если значение больше заданного порога (в момент перехода),
T< - считается активным, если значение меньше заданного порога (в момент перехода),
T<> - считается активным, если значение проходит порог как в меньшую, так и в большую сторону,
Аналогично для влажности:
H>, H<, H<> - при использовании датчика DHT22.
val - пороговое значение температуры или влажности.

- ADC - вход АЦП (аналого-цифровой преобразователь) может принимать значение в диапазоне от 0 до 1023. Функционал Act и Net аналогичен порту IN.
Period - частота опроса порта, значение от 0 (не будет опрашиваться) до 255 * 0.1 с. т.е. при значении 100 порт будет опрашиваться раз в 10 секунд.
mod - режим работы АЦП порта
Norm - значения не проверяются,
> - считается активным, если значение больше заданного порога (в момент перехода),
< - считается активным, если значение меньше заданного порога (в момент перехода),
<> - считается активным, если значение проходит порог как в меньшую, так и в большую сторону.
val - пороговое значение

- WS281x - используется для подключения светодиодных RGB лент на чипах серии WS281x.
Параметры R G B соответствуют значениям цветов.
Count - количество пикселей в ленте, максимальное значение 1023,
URL для управления http://espIP/sec/?pt=3&r=25&g=25&b=25

- I2C - порты используемые для шины I2C, только GPIO0 и GPIO2, любой может быть использован как SDA и SCL соответственно.
Устройства:
MCP23017 - с адресом 0x20:
Поддерживается:
- управление портами как для OutSW, нумерация портов начинается с 10, например /sec/?cmd=10:x,
- все порты на вывод,
- есть возможность задать состояние по умолчанию,
PCF8574 - I2C LCD пока только 16x2, адрес 0x27, параметры для управления дисплеем /sec/?lcd=1&row=0&col=0&cmd=ESP где:
lcd=1 - выбор дисплея,
row=0 - номер строки,
col=0 - номер столбца,
cmd=ESP - значение для вывода,
bl=1 - включить подсветку,
bl=2 - выключить подсветку,
cl=1 - очистить дисплей.
BMP085/180 - датчик температуры и атмосферного давления.

port.JPG
port.JPG (94.97 КБ) 18074 просмотра


5 - URL для управления и получения статусов портов, аналогично MegaD:

получение состояния порта - http://espIP/sec/?pt=4&cmd=get
изменение состояния порта - http://espIP/sec/?cmd=2:1 для PWM http://espIP/sec/?cmd=3:150
установка значения счетчика для порта IN - http://espIP/sec/?pt=4&cnt=12
получение состояния всех портов - http://espIP/sec/?cmd=all

6 - отправка данных на сервер , аналогично MegaD:

сообщения вида - http://ip-address/script?pt=n&m=1&cnt=12
Где:
ip-address - адрес сервера,
scipt - скрипт,
pt=n - номер активного порта,
m=1 - направление перехода через значение для ADC и DSen, определение отпускания кнопки для IN.
Последний раз редактировалось llams 03 июн 2017, 17:02, всего редактировалось 67 раз.

Sergey Borovkov
Сообщения: 77
Зарегистрирован: 22 ноя 2013, 03:17

Re: ESP8266 MegaD api

Сообщение Sergey Borovkov » 24 янв 2016, 00:14

Уже заметное количество просмотров и тишина.
А имхо - прикольная идея!
Вопрос для меня только в том - удастся ли сделать так, чтобы 8266 работала стабильно. Я уже много раз сталкивался с мнением, что эта железка не самая стабильная.

kod.begemot
Сообщения: 384
Зарегистрирован: 21 сен 2013, 00:38

Re: ESP8266 MegaD api

Сообщение kod.begemot » 24 янв 2016, 01:10

У себя использую несколько ESP для управления шторами - уже около года, довольно стабильно работают.
А так - идея неплоха, особенно для не критических направлений. В критически - важных предпочту всё-же медь. Тем более всё равно питание кидать )

Acid_Reptile
Сообщения: 21
Зарегистрирован: 15 окт 2013, 09:04

Re: ESP8266 MegaD api

Сообщение Acid_Reptile » 24 янв 2016, 01:11

Идея интересная, особенно с WS2812. Спасибо, на работе как-нибудь попробую.
Sergey Borovkov писал(а):Вопрос для меня только в том - удастся ли сделать так, чтобы 8266 работала стабильно. Я уже много раз сталкивался с мнением, что эта железка не самая стабильная.

Ну конкретно у моей ESP-07 аптайм уже 32 дня. Правда прошивка в среде Arduino писана. Эти модули вообще капризные к питанию.
Последний раз редактировалось Acid_Reptile 24 янв 2016, 10:57, всего редактировалось 2 раза.

VGor
Сообщения: 2
Зарегистрирован: 11 ноя 2011, 09:13

Re: ESP8266 MegaD api

Сообщение VGor » 24 янв 2016, 05:38

llams, обязательно изгаляться с установкой настройки сети через 192.168.4.1.
Или это нужно чтобы вынести мозг, потенциальным пользователям?
Вообще если что-то хочешь выложить то выкладывай и сырцы, а не пудри могз тем, что
только знакомишся с Ардуино.

llams
Сообщения: 191
Зарегистрирован: 23 ноя 2015, 04:20

Re: ESP8266 MegaD api

Сообщение llams » 24 янв 2016, 07:17

VGer, наоборот все проще некуда. Без настройки сети через 192.168.4.1 потенциальному пользователю придётся изгаляться с Arduino IDE для ESP8266. Проще пару раз перегрузить устройство, чем разбираться в актуальности библиотек.

llams
Сообщения: 191
Зарегистрирован: 23 ноя 2015, 04:20

Re: ESP8266 MegaD api

Сообщение llams » 24 янв 2016, 16:16

Теперь есть:
- поддержка DHT22 и DHT11,
- для сценариев на порты PWM модификатор "*" работает как на меге,
- счетчики для входов, аналогично..... /sec/?pt=3&cnt=200,
- перезапись ячеек памяти при сохранении настроек только при изменении (может будет жить дольше).
Последний раз редактировалось llams 05 фев 2016, 02:25, всего редактировалось 2 раза.

aurodionov
Сообщения: 203
Зарегистрирован: 16 авг 2011, 14:07
Откуда: Россия,Тюмень
Контактная информация:

Re: ESP8266 MegaD api

Сообщение aurodionov » 24 янв 2016, 16:30

Молодца, плюс один девайс будет

alex946
Сообщения: 91
Зарегистрирован: 05 дек 2015, 22:48
Контактная информация:

Re: ESP8266 MegaD api

Сообщение alex946 » 24 янв 2016, 16:43

Без исходников это всё пустое.

alexsis_76
Сообщения: 1011
Зарегистрирован: 26 авг 2011, 05:09
Откуда: Забайкальский край п Оловянная

Re: ESP8266 MegaD api

Сообщение alexsis_76 » 24 янв 2016, 17:00

Без исходников это всё пустое.
набираете
http://iarduino.ru/file/
там все исходники

MSapogov
Сообщения: 282
Зарегистрирован: 13 май 2015, 08:44
Откуда: г. Томск

Re: ESP8266 MegaD api

Сообщение MSapogov » 24 янв 2016, 18:44

Снимаю свою шляпу...
На неделе буду тестить на такой штуковинке http://ru.aliexpress.com/item/ESP8266-serial-WIFI-Witty-cloud-Development-Board-ESP-12F-module-MINI-nodemcu/32577398010.html

Чем обусловлено задействование именно этих портов?
P0 - GIPO4
P1 - GIPO2
P2 - GIPO15
P3 - GIPO13
P4 - GIPO12
P5 - GIPO14
P5 - GIPO16
А куда дели GIPO5, GIPO0? (Я бы его заменил GPIO16 на GPIO5). А порты 2 и 0 можно использывать для подключения I2C устройств и в том числе расширителей MCP23017 и получим еще 16 портов.
Т.К. GPIO16 судя по рекомендациям может используется для SleepMode.

А еще можно и ADC использывать...

Вообще судя по другим форумам были рекомендации по использыванию GPIO... http://homes-smart.ru/index.php/oborudovanie/bez-provodov-wi-fi/66-rabota-s-gpio-vgpio-na-esp8266. Конечно может это касается только для проекта homes-smart ?

PS: Хочу чтобы и MQTT еще было (ну когда нибудь... в будующем) . Как правило брокер всегда используется свой.
Только вот с топиками и метриками нужно всем миром (конечно не без помощи Андрея), названия придумать.

llams
Сообщения: 191
Зарегистрирован: 23 ноя 2015, 04:20

Re: ESP8266 MegaD api

Сообщение llams » 25 янв 2016, 13:28

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

Пара правок и моментов:
- переделал страничку привязки устройства к сети, теперь так:
0.JPG
0.JPG (14.88 КБ) 22154 просмотра

поле PIN для защиты конфига от случайного сброса. Пока PIN: 123 потом подумаю как лучше реализовать.
- Reset сброс всех настроек, затирает весь EEPROM,
- при включении ожидание Wi-Fi, при отсутствии в течении 15 секунд (примерно) правильный перевод в режим AP.
- cоответствие портов GPIO:
P0 - GIPO5
P1 - GIPO4
P2 - GIPO2
P3 - GIPO15
P4 - GIPO13
P5 - GIPO12
P6 - GIPO14
P7 - GIPO16

На данный момент ту.ду. следующий:
- переподключение к Wi-Fi при потере сети (при перезагрузке роутера),
- статический IP,
- возможность выбора частоты ШИМ в web-морде,
- АЦП,
- возможность выбора частоты опроса датчиков в web-морде.

Словил забавный глюк с Wi-Fi, иногда не подключается после изменения настроек сети, хотя sid и пароль верны. Изменение их на произвольные, перезагрузка и выставление верных помогает (возможно это косяк браузера, пока отловить закономерность не могу).
Последний раз редактировалось llams 05 фев 2016, 02:24, всего редактировалось 1 раз.

MSapogov
Сообщения: 282
Зарегистрирован: 13 май 2015, 08:44
Откуда: г. Томск

Re: ESP8266 MegaD api

Сообщение MSapogov » 25 янв 2016, 22:04

Пока заметил, что при отсутствии датчика 1W - выдает temp: -0.06.
При DHT-шках выдает: nan

- при включении ожидание Wi-Fi, при отсутствии в течении 15 секунд (примерно) правильный перевод в режим AP.

Это только при включении модуля?
Не будет так, что при временом пропадании WiFi (или минимальном сигнале), он сам перейдет в режим AP?

Тесты продолжаются.

PS: Добавить в ту.ду:
Обновление по воздуху (при флеше от 1Мб).
Индикация уровня сигнала в ДБм. (rssi -49 dBm)

Evgeniy
Сообщения: 32
Зарегистрирован: 14 ноя 2014, 10:25

Re: ESP8266 MegaD api

Сообщение Evgeniy » 25 янв 2016, 23:46

А если немного заморочится то можно расширить кол во портов I/O до ... с помощью например той же PCF8574 или MCP23017. Шим там не пролезет конечно, но дискретные ввод/вывод волне

MSapogov
Сообщения: 282
Зарегистрирован: 13 май 2015, 08:44
Откуда: г. Томск

Re: ESP8266 MegaD api

Сообщение MSapogov » 26 янв 2016, 07:03

Evgeniy писал(а):А если немного заморочится то можно расширить кол во портов I/O до ... с помощью например той же PCF8574 или MCP23017. Шим там не пролезет конечно, но дискретные ввод/вывод волне

Я про это и говорил уже...
Может 0 и 2 GPIO (Они по умолчанию как-раз должны быть притянуты к Vcc через 10К) зарезервировать для I2C MCP23017 (i2c адрес 0x20 (A0,A1,A2 на GND)), на ней хоть можно читать состояния выводов или входов (вроде) и PWM. Так-же на эту шину можно ой.... сколько всего по навешать...
Только Вот с MegaD API совместимость нарушится...

nevkon
Сообщения: 205
Зарегистрирован: 23 апр 2014, 14:48

Re: ESP8266 MegaD api

Сообщение nevkon » 26 янв 2016, 09:04

Почему нарушится? Если будет прописано изначально использование расширителя портов, то все будет работать также, только портов будет больше и некоторые не будут работать пока не подключите микросхему.

llams
Сообщения: 191
Зарегистрирован: 23 ноя 2015, 04:20

Re: ESP8266 MegaD api

Сообщение llams » 26 янв 2016, 11:57

MSapogov
По вашему ту.ду:
- с размером памяти может быть трабл... пока для разных модулей свои прошивки, как собрать в одну не знаю, возможно в этом нет необходимости.
- 0 и 2 действительно оставлю под I2C, 2 пока нужен для отладки.
Последний раз редактировалось llams 05 фев 2016, 02:23, всего редактировалось 2 раза.

llams
Сообщения: 191
Зарегистрирован: 23 ноя 2015, 04:20

Re: ESP8266 MegaD api

Сообщение llams » 26 янв 2016, 13:25

MSapogov писал(а):Это только при включении модуля?
Не будет так, что при временом пропадании WiFi (или минимальном сигнале), он сам перейдет в режим AP?

Да, только при включении модуля, позже добавлю возврат в режим клиента по истечении определённого времени (выключили свет, роутер стартует дольше чем ESP).
На данный момент при пропадании сигнала ничего не меняется, при появлении в эфире нужной Wi-Fi ESP нормально возвращается сеть без перезагрузок и сбросов статусов пинов.

nevkon
Сообщения: 205
Зарегистрирован: 23 апр 2014, 14:48

Re: ESP8266 MegaD api

Сообщение nevkon » 26 янв 2016, 13:32

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

MSapogov
Сообщения: 282
Зарегистрирован: 13 май 2015, 08:44
Откуда: г. Томск

Re: ESP8266 MegaD api

Сообщение MSapogov » 26 янв 2016, 15:51

nevkon писал(а):Лучше сделать возврат в режим точки доступа при определенной комбинации состояния портов например, т.е. принудительно, но внешним воздействием, можно наверное и порт выделить отдельный на это и повесить на него кнопку ресета.

В одном из проектов это реализовано или тройной ресет с интервалом примерно 1 сек... или замыканием TX+RX между собой при подаче питания.
Только как это в программном виде, я не знаю.


Вернуться в «Умный Дом своими руками»

Кто сейчас на конференции

Сейчас этот форум просматривают: nkh, Prokol, Yandex [Bot] и 9 гостей