Esp 01 сколько свободных gpio

ESP-01 и ESP-01S как правильно запускать?

Не могу понять, как все-таки должно быть. Здесь на сайте написано, что GPIO0 можно никуда не подключать, а на англоязычных сайтах пишут, что через 2k-10k резистор нужно соединять с VCC. Как же на самом деле должно быть, чтобы гарантированно всё работало?

И сразу из этого вытекает второй вопрос. Если GPIO0 должен быть подключен к VCC, то это ведь только для старта (пишут, что так задается загрузка с флеш-памяти). А дальше, после загрузки, он, получается может использовать как угодно? И сразу хочется подцепить к нему Data-ногу DS18B20, в котором требуется соединить Data и питание с помощью резистора 4.7K. Можно ли подключить Data от DS18B20 к GPIO0, соединить VCC с GPIO0 с помощью резистора 4.7K? Вроде как убить двух зайцев. Или так работать не будет?

Другие свободные GPIO пригодятся для I2C, поэтому и возник вопрос про нулевой. Но дальше следует третий вопрос: а модули, которые общаются через I2C не имеют случайно какого-нибудь резистора между SCL/SDA и VCC? То есть не получится ли тут автоматического "запитывания", если подключить SCL или SDA к GPIO0? К примеру, модуль с датчиком BMP180 подключаем к GPIO0 и GPIO2 и там все само собой "законтачивается" на VCC через резисторы, которые стоят на модуле (самый простой возьмем: GY-68 BMP180)? Резисторы там вроде есть, вроде бы даже по номиналу между 2K и 10K.

d18b20-4k7-connect.jpg shema-BMP180.jpgGY-68 BM180.jpg

Member

Еще:
RST через 10K к VCC (если сбрасывать не планируется и никакого deepsleep не будет)
CP_PD через 10K к VCC

Это информация из нескольких источников. Где-то написано, что работает без каких-либо манипуляций. Кто-то пишет, что наводки сбивают работу и эти соединения решают эту проблему.

CodeNameHawk
Moderator
Member
Ildarmustafin86
Active member
CodeNameHawk
Moderator

Прочтите название темы.

Важно, что бы на GPIO0 и GPIO2, гарантированно был нужный уровень во время подачи питания.

Купите плату NodeMcu V3 на CP2102, на ней удобно отладить программу, а потом ее записать в реальное железо.

Member

Спасибо. А что касается вопроса про дополнительные модули? Я так понимаю, что многие из них имеют какой-либо резистор, который увязывает GPIO с питанием, и выходит, что такой модуль будет выполнять все нужные функции — на GPIO0 и GPIO2, гарантированно был нужный уровень во время подачи питания, если к ним подключить GY-68 (BMP180)?

По самой концепции "работа/прошивка" исхожу из идеи сменного модуля. То есть впаивать ESP-01 не планирую, буду просто вставлять в гребенку в два ряда (или сокет 4х2 куплю), а когда надо — вытащу и вставлю в программатор. В принципе NodeMCU v3 таким макаром уже попробовал использовать — ничего не сбоит, всегда можно вытащить и заменить.

NodeMCU v3 есть, правда с CH340, еще Wemos D1 Mini заказал. Но хочется попробовать ESP-01, чтобы помещалось в более компактные корпуса (есть идея по утилизации сломанных БП с евровилкой). Так как другого содержимого там практически нет, только термометр выносной да какой-нибудь датчик влажности, то места много не надо, а сломанных "зарядников" полно.

Дружимся с ESP

Последние пару лет практически все прототипирование несложных IoT-устройств я делаю на NodeMCU, хотя зачастую она и великовата по размеру, и дороговата, и избыточна по функционалу. А все потому, что имела неудачный опыт с ESP-01, которая совершенно не поддавалась прошивке. Сейчас пришло время преодолеть этот барьер и освоить другие железки, от которых мне нужно следующее — Wi-Fi и пины для подключения периферии.

В этой статье разберем подключение к платформе Интернета вещей наиболее популярных плат с интерфейсом Wi-Fi. Их можно использовать, чтобы управлять своим устройством дистанционно или чтобы снимать показания с сенсоров через интернет.

Несколько представленных в статье модулей (ESP-01, ESP-07, ESP-12E, ESP-12F) и плат (Goouuu Mini-S1, WeMos D1 mini и NodeMCU V2) базируются на контроллере ESP8266, использование которого позволяет простым и дешевым способом добавить в своё устройство беспроводную связь через Wi-Fi.

Так выглядит модельный ряд модулей на базе чипа ESP8266.

Последняя плата из тех, о которых я расскажу (ESP32 WROOM DevKit v1), построена на контроллере семейства ESP32 — более продвинутой по своим возможностям версии ESP8266.

Все представленные модели можно программировать и загружать прошивки через Arduino IDE точно так же, как при работе с Arduino.

Настройка среды программирования Arduino IDE

По умолчанию среда IDE настроена только на AVR-платы. Для платформ, представленных ниже, необходимо добавить в менеджере плат дополнительную поддержку.

1) Открываем среду программирования Arduino IDE.

4) В пункте меню Tools (Инструменты) -> Board (Плата) выбираем Boards manager (Менеджер плат).

Находим в списке платформы на ESP8266 и нажимаем на кнопку Install (Установить).

6) Надпись INSTALLED сообщает, что дополнения успешно установлены.

7) Аналогичным образом устанавливаем дополнение для ESP32.

8) Теперь нам доступны к программированию платформы с модулем ESP8266 и ESP32.

9) Для подключения плат к платформе Интернета вещей используем библиотеку EspMQTTClient. Чтобы ее установить, в пункте меню Tools (Инструменты) выбираем Manage Libraries (Управлять библиотеками). Находим и устанавливаем библиотеку EspMQTTClient. Может появиться сообщение об установке дополнительных библиотек. Выбираем “Install all”.

Примечание — Также для работы с платами понадобится установить драйверы CH340 (WeMos и Goouuu) и CP2102 (для остальных). Их отсутствие повлияет на то, найдет ли Arduino IDE COM-порт, к которому подключена плата.

Код прошивки

Для прошивки всех используемых ниже модулей используем один и тот же код.

Установка Wi-Fi соединения

Подключение к объекту на платформе Rightech IoT Cloud по протоколу MQTT

Отправка рандомных значений по температуре («base/state/temperature») и влажности («base/state/humidity») каждые 5 секунд (PUB_DELAY)

Получение сообщений о переключении света («base/relay/led1»)

Работоспособность кода будем проверять на платформе Rightech IoT Cloud, именно поэтому в качестве адреса MQTT-брокера указан dev.rightech.io. Идентификаторами клиентов служат идентификаторы объектов, созданных на платформе. Под каждую проверку я завела на платформе отдельный объект, именно поэтому во всех скринах кодов, которые будут далее представлены, отличается только строка <ric-mqtt-client-id>.

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

Модули на базе ESP8266

Для работы с модулями на базе ESP8266 есть два варианта:

Работа с AT командами (в стандартной прошивке Wi-Fi модуль общается с управляющей платой через «AT-команды» по протоколу UART);

Wi-Fi модуль как самостоятельный контроллер (все представленные модули очень умные: внутри чипа прячется целый микроконтроллер, который можно программировать на языке C++ через Arduino IDE).

В статье будем рассматривать второй вариант — прошивка модулей в виде самостоятельного полноценного устройства. Здесь также есть два варианта прошивки с точки зрения железа:

Через плату Arduino;

Через USB-Serial адаптер.

Рассмотрим второй вариант — использовать адаптер на базе чипа CP2102 (например, такой https://www.chipdip.ru/product/cp2102-usb-uart-board-type-a?frommarket=https%3A%2F%2Fmarket.yandex.ru%2Fsearch%3Frs%3DeJwzSvKS4xKzLI&ymclid=16146772489486451735000001). Обязательно обратите внимание на то, чтобы адаптер позволял выдавать выходное напряжение 3.3 В, не больше!

1. ESP-01

ESP-01 — самый популярный модуль на ESP8266. PCB антенна обеспечивает дальность до 400 м на открытом пространстве.

Внешний вид

Питание

Родное напряжение модуля — 3,3 В. Его пины не толерантны к 5 В. Если вы подадите напряжение выше, чем 3,3 В на пин питания, коммуникации или ввода-вывода, модуль выйдет из строя.

Esp 01 сколько свободных gpio

vk

Вы здесь: Home Железо Без проводов (WI-FI) Работа с GPIO (VGPIO) на ESP8266

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. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.

Назначение выводов и схема
модуля ESP-01/ESP-01S

Wi-Fi модуль ESP-01/ESP-01S на чипе ESP8266 — не только самый популярный, но и самый дешевый модуль серии ESP.

На фото ниже представлены три варианта модуля ESP-01. Вариант на синей плате на данный момент не выпускается.

Смаконт. Варианты исполнения модулей ESP-01

Варианты исполнения модулей ESP-01

Основное отличие модулей ESP-01 и ESP-01S заключается в светодиодных индикаторах. На модуле ESP-01 установлено два светодиода: один по питанию 3.3В, второй на выводе GPIO1 (линия TX-связи). На модуле ESP-01S установлен один светодиод — на выводе GPIO2. Также, на модуле ESP-01S, добавлено несколько компонентов фильтрования внутрисхемного питания, не влияющих на общую производительность и функциональность. В остальном, модули ESP-01 и ESP-01S, полностью повторяют друг друга.

Достоинства модулей:
• малые размеры;
• низкая стоимость;
• монтажные отверстия обеспечивают удобное подключение электрических сигналов.

К недостаткам следует отнести:
• отсутствие экрана для защиты от внешних наводок;
• малое количество портов ввода-вывода;
• расположение монтажных отверстий для подключения не позволяет устанавливать модули в беспаечные макетные платы (для устранения этого недостатка можно приобрести соответствующий переходник).

Назначение выводов

Т.к. нет единой нумерации выводом модуля, ниже приведены некоторые комбинации нумерации.

Смаконт. Назначение выводов модулей ESP-01/ESP-01S

Назначение выводов модулей ESP-01/ESP-01S

Смаконт. Назначение выводов модулей ESP-01/ESP-01S

Назначение выводов модулей ESP-01/ESP-01S

• EXT_RSTB (RST, RESET) — контакт перезапуска модуля, активен при низкоуровневом сигнале
• CHIP_EN (CH_PD, CH_PU) — контакт включения модуля в рабочий режим. Активен при высокоуровневом сигнале
• GPIO0, GPIO1, GPIO2, GPIO3 — контакт общего назначения, ввод/вывод данных
• VCC — контакт питания модуля, напряжение 3.0-3.6 В
• GND — общий, заземление

Схема модуля

Смаконт. Схема модуля ESP-01S

Схема модуля ESP-01S

Схема подключение модуля

Схема подключения модуля ESP-01, при его питании от стабилизированного источника питания, показана на рисунке ниже.

Смаконт. Подключение модуля ESP-01

Подключение модуля ESP-01

Для питания модуля необходимо стабильное напряжение 3,0. 3,6 В. В схеме, для понижения входного напряжения, например, от адаптера питания от сотового телефона, используется линейный стабилизатор напряжения AMS1117 (3,3В). Стабилизатор AMS1117 имеет допустимое значение входного напряжения питания 20В. Т.к. ток потребления модулей ESP-01 доходит до 220мА, то желательно входное напряжение ограничить до 7В, иначе, на стабилизаторе напряжения будет выделяться слишком большое количества тепла.

В момент подачи питания на схему, следует выполнить ряд правил, а именно — не подавать низкий уровень на GPIO0 и GPIO2, иначе модуль ESP-01 перейдет в режим программирования и будет находиться в этом режиме до сброса напряжения питания.

Добавление дополнительных портов ввода-вывода модуля

Как уже было сказано выше, одним из недостатков модуля ESP-01 является наличие только четырех портов ввода-вывода. Данный недостаток можно устранить путем вывода необходимых портов, «подпаявшись» непосредственно к микроконтроллеру ESP8266EX.

Несколько вариантов добавления дополнительных портов ввода-вывода показано на рисунках ниже.

Смаконт. Добавление GPIO4, GPIO5

Добавление GPIO4, GPIO5

Смаконт. Добавление GPIO12, GPIO13, GPIO14 и GPIO15

Добавление GPIO12, GPIO13, GPIO14 и GPIO15

Смаконт. Добавление GPIO12, GPIO14

Добавление GPIO12, GPIO14

Смаконт. Добавление GPIO14

Смаконт. Добавление GPIO4, GPIO5, GPIO12, GPIO13, GPIO14 и GPIO15

Добавление GPIO4, GPIO5, GPIO12, GPIO13, GPIO14 и GPIO15

Смаконт. Добавление ADC (аналоговый порт)

Добавление ADC (аналоговый порт)

Программы

«Программа Конфигурирования» для управления прошивкой «Smacont-ESP»:
online (только браузер Firefox)
zip-архив

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *