После первой победы, сразу хочется чего-то большего. На фото показан макет, реализующий управление четырьмя выходами GPIO (светодиодами). Использованы выводы GPIO0…GPIO3.
Схема включения светодиодов показана ниже.
Подключение светодиода к GPIO2 описано выше и не вызывает трудностей. Иное дело GPIO0 и GPIO1: если светодиоды подключить катодом на GND, то можно столкнуться с проблемой: при включении питания модуль будет воспринимать уровень сигнала на этих линиях как LOW и «не запускать» загруженную программу, а выходить в режим тестирования (GPIO1 = LOW), либо загрузки по UART (GPIO0 = LOW). Поэтому светодиоды лучше подключать анодом к VCC через токоограничивающий резистор (на GPIO1 (UTXD) такой светодиод уже распаян в модуле ESP-01). К GPIO3 (URXD) можно светодиод подключать любым способом. Следует только помнить, что к этому выводу в режиме загрузки программы подключен выход TxD переходника UART-USB — как бы его «не подпалить» когда GPIO3 будет настроен на вывод!
Т.к. линии UART заняты светодиодами, нам не удастся «промониторить» IP адрес устройства, поэтому «подразумеваем», что адрес остался тем же…
Используем подправленный для нашей задачи скетч WiFiWebServer_4pin.
Назначение GPIO:
int pin01 = 1; //TxD GPIO1 VD to VCC
int pin23 = 2; //GPIO2 VD to GND
int pin45 = 3; //RxD GPIO3 VD to GND (перед включением надо отключить от UART-USB)
int pin67 = 0; //GPIO0 VD to VCC
Управление из адресной строки браузера:
http://192.168.1.10/gpio/0 … /1 — управление GPIO1
http://192.168.1.10/gpio/2 … /3 — управление GPIO2
http://192.168.1.10/gpio/4 … /5 — управление GPIO3
http://192.168.1.10/gpio/6 … /7 — управление GPIO0
Несколько слов о подаче уровней LOW и HIGH на выводы GPIO. Порты GPIO в процессе запуска модуля могут иметь разное направление работы. Может получиться так, что «запаянная на землю» линия GPIO при инициализации настраивается на вывод, да еще по ней выдается уровень HIGH — в результате выходные каскады модуля могут быть повреждены. «Обезопасить» себя можно подключением выводов к цепям питания через резисторы номиналом 1К..10К.