ESP8266:Примеры/Программирование GPIO-контактов: различия между версиями
Myagkij (обсуждение | вклад) |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 100: | Строка 100: | ||
=См.также= | =См.также= | ||
{{ | {{ads}} | ||
=Внешние ссылки= | =Внешние ссылки= | ||
<references /> | <references /> | ||
{{Навигационная таблица/ESP8266}} | |||
{{Навигационная таблица/ESP8266 AT-команды}} | |||
{{Навигационная таблица/Телепорт}} | |||
[[Категория:ESP8266]] | [[Категория:ESP8266]] |
Версия от 18:10, 10 мая 2022
Черновик |
Гайд по ESP8266: Программирование GPIO-контактов[1]
Чип ESP8266 – это отличный инструмент для проектов, где используется управление через интернет, т.е. позволяющих управлять электронными устройствами из любой точки мира! Данное руководство рассказывает, как собрать такой проект при помощи платы Arduino.
Чип ESP8266 – это очень дешевый модуль, который поставляется с прошивкой, состоящей из AT-команд. Это значит, что вы можете подключить его к Arduino, фактически получив полнофункциональный WiFi-шилд. Кроме того, благодаря мощным вычислительным ресурсам и встроенной памяти модуль ESP8266 можно интегрировать в системы с датчиками и прочими электронными устройствами, считывающими или передающими данные при помощи GPIO-контактов.
Это руководство объясняет азы работы с WiFi-модулем ESP-01 – рассказывает о том, как он работает, как его настраивать, а также о том, как без помощи чипа FTDI проверять, установлено ли соединение между ESP-01 и другим устройством.
Как это работает?
Чип ESP8266 коммуницирует с платой Arduino через последовательный интерфейс. То есть, чтобы получать команды и отправлять ответные данные, он использует контакты RX и TX на Arduino (т.е. цифровые контакты 0 и 1). Модуль имеет полную поддержку стека TCP/UDP, благодаря чему его можно настроить как веб-сервер.
Чип ESP-01 также оснащен двумя GPIO-контактами, которые можно использовать для прямого управления устройствами вроде светодиодов или реле. Чип ESP8266, встроенный в ESP-01, питается от 3,3 вольт, поэтому если у вашей Arduino нет контакта для выдачи 3,3 вольт, вам нужно будет воспользоваться регулятором напряжения вроде 78R33, чтобы понизить 5 вольт, идущие от Arduino, до 3,3 вольт, которыми питается ESP8266.
Настройка Arduino
Во-первых, загрузите самую последнюю версию IDE Arduino (некоторые старые версии работать попросту не будут). Сделать это можно отсюда.
Загрузите на плату Arduino скетч BareMinimum. Это нужно для того, чтобы на Arduino не было никаких других программ, использующих канал для последовательной коммуникации. В данном руководстве мы воспользуемся AT-прошивкой, т.к. она совместима с IDE Arduino.
Теперь подключаем ESP8266, следуя инструкциям ниже:
- Контакт VCC – к 3,3-вольтовому источнику питания.
- Контакты GPIO0 и GPIO1 – это цифровые контакты общего назначения. Контакт GPIO0 переключает режим, в котором функционирует модуль (режим программирования или режим обычного функционирования). В нашем случае (т.е. в случае обычного функционирования) GPIO0 должен быть подключен к 3,3 вольтам (HIGH). GPIO2 в данном случае не используется.
- Контакт RX – к контакту 0 на Arduino (но потребуется отрегулировать напряжение).
- Контакт CH_PD – это контакт для выбора устройства. Для функционирования в обычном режиме подключите его к 3,3 вольтам (HIGH).
- Контакт RST – это контакт для сброса. Для функционирования в обычном режиме подключите его к 3,3 вольтам (HIGH). Чтобы сбросить чип, подключите его к GND (т.е. к 0 вольтам).
- Контакт GND – к GND.
- Контакт TX – к контакту 1 на Arduino.
Режимы ESP8266
Откройте монитор порта. В правом нижнем углу будет два выпадающих меню. В первом выберите пункт «NL & CR», а во втором – «115200 бод». Затем впишите в самом верхнем поле «AT». Монитор порта должен ответить словом «OK». Если после этого на экране начали появляться какие-то мусорные данные, попробуйте сбросить модуль или проверить скорость передачи данных (имеются в виду боды). Также убедитесь, что в первом выпадающем меню стоит пункт «NL & CR».
Кроме того, модуль ESP8266 может работать в 3 разных режимах:
Точка доступа (AP)
В этом режиме ESP8266 выступает в качестве WiFi-сети, т.е. точки доступа. Благодаря этому к модулю могут подключаться другие устройства. Кроме того, в режиме AP возможна двусторонняя связь между ESP8266 и устройством, подключенному через WiFi.
Стационарный (STA)
В этом режиме ESP-01 может подключаться к точке доступа (вроде WiFi-сети, имеющейся в вашем доме). В результате любое устройство может подключиться к этой WiFi-сети, а затем нее коммуницировать с модулем ESP8266.
Комбинированный
Этот режим совмещает в себе оба первых режима – AP и STA.
Об AT-командах для ESP8266 читайте по этой ссылке.
Установка ядра ESP8266
Во-первых, IDE Arduino нужно настроить на совместимость с модулем ESP-01, и для этого в IDE Arduino нужно будет установить ядро ESP8266. Обратите внимание, что вам понадобится IDE Arduino версии 1.6.4 или выше.
- Откройте в IDE Arduino окно Файл > Настройки (File > Preferences).
- Введите в поле Дополнительные ссылки для Менеджера плат (Additional Board Manager URL) ссылку «http://arduino.esp8266.com/stable/package_esp8266com_index.json», а затем кликните на кнопку «OK».
- Откройте меню Инструменты > Плата > Менеджер плат... (Tools > Board > Boards Manager…).
- Впишите в поле поиска «esp» – внизу должен появиться пункт «esp8266». Установите его, нажав на кнопку «Установка».
- Выберите пункт Инструменты > Плата > Generic ESP8266 Module (Tools > Board > Generic ESP8266 Module).
Управление входными/выходными контактами
Зайдите в IDE Arduino и откройте скетч-пример «Blink». Для этого кликните по Файл > Примеры > 01.Basics > Blink (File > Examples > 01.Basics > Blink). Номер контакта в скетче поменяйте с «13» на «2», потому что на ESP8266 есть только два GPIO-контакта – GPIO0 и GPIO2.
Подключите модуль ESP-01 согласно картинке выше, а затем загрузите скетч, показанный ниже. Светодиод мигает? Значит, все работает!
Примечание: Во-время загрузки кода убедитесь, что контакт GPIO0 подключен к «земле».
См.также
Внешние ссылки
ESP8266 AT-команды | |
---|---|
Список AT-команд | |
Базовые команды |
|
Команды для WiFi |
|
Команды для TCP/IP |
|