ESP8266:Примеры/Программирование GPIO-контактов

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 1837 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


Гайд по ESP8266: Программирование GPIO-контактов[1]

Esp1-min 1.jpg

Чип ESP8266 – это отличный инструмент для проектов, где используется управление через интернет, т.е. позволяющих управлять электронными устройствами из любой точки мира! Данное руководство рассказывает, как собрать такой проект при помощи платы Arduino.

Чип ESP8266 – это очень дешевый модуль, который поставляется с прошивкой, состоящей из AT-команд. Это значит, что вы можете подключить его к Arduino, фактически получив полнофункциональный WiFi-шилд. Кроме того, благодаря мощным вычислительным ресурсам и встроенной памяти модуль ESP8266 можно интегрировать в системы с датчиками и прочими электронными устройствами, считывающими или передающими данные при помощи GPIO-контактов.

Это руководство объясняет азы работы с WiFi-модулем ESP-01 – рассказывает о том, как он работает, как его настраивать, а также о том, как без помощи чипа FTDI проверять, установлено ли соединение между ESP-01 и другим устройством.

Как это работает?

Чип ESP8266 коммуницирует с платой Arduino через последовательный интерфейс. То есть, чтобы получать команды и отправлять ответные данные, он использует контакты RX и TX на Arduino (т.е. цифровые контакты 0 и 1). Модуль имеет полную поддержку стека TCP/UDP, благодаря чему его можно настроить как веб-сервер.

Esp8266 pinout-min 2.png

Чип 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.

BareMin-min 3.jpg

Теперь подключаем 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.
Conn-min-1 4.jpg

Режимы 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).
Pref-min 5.jpg
Pref2-min 6.jpg
  • Откройте меню Инструменты > Плата > Менеджер плат... (Tools > Board > Boards Manager…).
Pref3-min 7.jpg
  • Впишите в поле поиска «esp» – внизу должен появиться пункт «esp8266». Установите его, нажав на кнопку «Установка».
Pref4-min 8.jpg
  • Выберите пункт Инструменты > Плата > Generic ESP8266 Module (Tools > Board > Generic ESP8266 Module).
Pref5-min 9.jpg

Управление входными/выходными контактами

Зайдите в IDE Arduino и откройте скетч-пример «Blink». Для этого кликните по Файл > Примеры > 01.Basics > Blink (File > Examples > 01.Basics > Blink). Номер контакта в скетче поменяйте с «13» на «2», потому что на ESP8266 есть только два GPIO-контакта – GPIO0 и GPIO2.

Pref5-min 9.jpg

Подключите модуль ESP-01 согласно картинке выше, а затем загрузите скетч, показанный ниже. Светодиод мигает? Значит, все работает!

Примечание: Во-время загрузки кода убедитесь, что контакт GPIO0 подключен к «земле».

Program-min 11.jpg

См.также

Внешние ссылки

  1. diyhacking.com - ESP8266 Tutorial: Programming the Onboard GPIO Pins