ESP8266 имеет 15 полноценных GPIO выходов. 6 из которых заняты микросхемой flash памяти. При этом GPIO 0,1,2,3,15 имеют системные функции и имеют ограничения при использовании - не рекомендуется их использовать для сухого контакта, кнопок, прерываний (хотя в некоторых случаях работать будет).  Для штатной работы модуля ESP8266 GPIO 0 и 2 не должны быть подтянуты к минусу при старте модуля. GPIO 15 для старта должен подтянут к минусу через резистор 10кОм. GPIO 1 соотвествует вывод TXD. GPIO 3 - RXD.

Так же ESP8266 имеет отдельный GPIO16 , который управляется через RTC регистры, этот GPIO имеет ограничения при использовании и в прошивке используется только для режима OUTPUT (выход). Подключение датчиков к этому выводу невозможно. GPIO16 используется для пробуждения модуля при использовании спящего режима, если подключить его к выводу RESET.

 Карта GPIO модуля

GPIO Описание
0-5,12-16 GPIO самого модуля.
6-11 GPIO заняты под flash память.
20-79 VGPIO удаленных ESP8266 (только управление)
80-199 Зарезервирировано. Может быть расширено для VGPIO
200-215 Ремап MCP23017
220-227 Ремап PCF8574 
230-245 Ремап 74HC595

Настройка GPIO

gpio optНа вкладке GPIO можно установить назначение выводов: Можно выбрать как INPUT (для сухого контакта) так и OUTPUT, INVERT OUTPUT (для реле, управляемые по минусу). Состояние INPUT у GPIO можно отследить на страничке http://IP_ADRESS/gpioprintinput , в MQTT, а так же на серверах narodmon, flymon.net, MajorDoMo. Аналогично можно посмотреть состояние GPIO и для режима OUTPUT на вкладке http://IP_ADRESS/gpioprint .

Управлять состоянием gpio можно командой вида http://IP_ADRES/gpio?st=1&pin=12 - этим Вы установите на 12 GPIO логическую единицу. При установке st=2 будет проихсодить инвертирование GPIO. Если дописать к команде &flash=1 ,то настройка запишется в энергонезависимую память. &click=10 - инвертирует состояние через указанный промежуток времени в секундах. Например http://IP_ADRES/gpio?st=1&pin=5&click=10 включит GPIO 5 на 10 секунд.

GET запросы на данные адреса модуля требует ввод логина/пароля, если включена опция "Full Security".

При подключении устройств, датчиков на данной вкладке настройка этих GPIO не требуется.

Обратите внимание, что на некоторых китайских модулях GPIO 5 и 4 могут быть перепутаны.

Настройка VGPIO

vgpio optПри установке данного модуля на вкладке VGPIO можно настроить назначение GPIO, расположенных на других ESP8266 находящихся в данной локальной сети. Необходимо указать последнюю цифру IP адреса. Например локальный  номер GPIO 21 будет соотвествовать удаленному GPIO 1 находящийся на модуле с IP адресом 192.168.1.154 на (см.скриншот). 

Управление данными VGPIO поддерживается из модуля планировщика заданий, термостата, логического модуля, IR управления, а так же у функции KEY(прерывания). Назначить VGPIO для подключения датчиков и устройств невозможно.

В данный момент для работы VGPIO на удаленных модулях функция Full Security должна быть отключена (но в планах добавить её поддержку)

Remap( переназначение GPIO) c MCP23017, PCF8574 и 74HC595.

Для удобства управления из функций прошивки было добавлено переназначение(ремап) GPIO находящихся на микросхемах-расширителях портов MCP23017, PCF8574 и 74HC595. Возможности и ограничения аналогичны VGPIO.

Использование расширителей портов

Прошивка поддерживает микросхемы PCF8574(8 GPIO) , MCP23017(16 GPIO) и 74HC595 (до 16 GPIO).

Микрохсема PCF8574 по умолчанию должна иметь i2c адрес 0x20 (возможно включение изменения адреса в конструкторе прошивки по запросу). Возможно управление/чтение через MQTT.

Микросхема MCP23017 по умолчанию должна иметь i2c адрес 0x20 (A0,A1,A2 на GND).  Настройка режима input/output настраивается на соотвествующей веб вкладке. Возможно управление/чтение через MQTT.

Микросхема 74HC595 - сдвиговый регистр на 8 дополнительных выходов.  Занимает 3 выхода ESP8266:  GPIO 14 -pin 14 (DS) у 75HC595, GPIO 12 -pin 12 (ST_CP) у 75HC595, GPIO 13 - pin 11 (SH_CP) у 75HC595, MR(10) на +V, OE(13) на GND. Микросхемы возможно подключенить каскадом две штуки , получив 16 выводов. Возможно управление/чтение через MQTT.

Управление микросхемами осуществляется через remap внутри модуля - смотрите таблицу выше.

В данный момент сохранение состояния GPIO во flash не реализовано, но это в планах.

Работа с прерываниями

int optПрошивка поддерживает 3 режима работы с прерываниями:

Counter - подсчет импульсов с счетчиков воды, газа, электричества. Данные отправляются на все сервера. При установке модуля "Сбрасываемый счетчик" отправляются данные импульсов за каждый период отправки данных. В поле "Impulse divider" возможна установка делителя.

Active send - Немедленная отправка факта изменения состояния прерывания на сервера. Может использоватся для датчиков движения или датчиков открытия/вскрытия двери.

Key - Управление GPIO по нажатию кнопки. Включение/ выключение GPIO , указанного в поле "GPIO For Key". Изменение состояния GPIO отправляется на сервера. 

Time Key - Включение установленного GPIO на заданный промежуток времени, например по прерыванию с датчика движения. Функция доступна только на первом прерывании.

Прерывание может настраивается в пункте Mode. Оно может происходить при отрицательном импульсе (Neg) , при положительном (Pos) или при любом (Any). Например при замыкании входа прерывания на GND необходимо выбрать режим Neg.

В данный момент доступен новый модуль прерываний в конструкторе прошивки, который поддерживает до 4 счетчиков или кнопок. Старый модуль  упразнен 11.10.15.

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.