ESP8266

ЧАСТЬ 2

ARDUINO ВЕБ-СЕРВЕР

В моей предыдущей инструкции ESP8266 Часть1 - Последовательный WIFI Модуль для Arduino, я попытался объяснить, что такое ESP8266, как устанавливать соединение, тестировать и конфигурировать ESP8266 (далее по тексту - ESP). В этой инструкции мы разберемся в том, как ESP может нам помочь взаимодействовать с Arduino GPIO (Интерфейс ввода/вывода общего назначения) удаленно через интернет. Когда вы включаете светодиод от сигнала, сгенерированного на одном из выходов Arduino, или считываете статус переключателя или сенсора, то фактически происходит взаимодействие «мира электроники» с «физическим миром»!  Возможность такого взаимодействия через интернет и есть смысл «Интернета вещей».

Первая конфигурация, которая будет тестироваться – это работа ESP8266 в качестве локального веб-сервера, соединенного с Arduino. Мы установим кнопки в два цифровых GPIO на плате Arduino (пины 8, 9), чтобы смоделировать состояние цифровых сенсоров и потенциометра в аналоговом порте А0, а также смоделировать данные, исходящие от аналогового сенсора, как, например, температура или влажность (см. “System Inputs" «системные входы» на диаграмме вверху). Arduino/ESP8266 будет считывать эти сигналы, генерируя простую HTMLстраницу и публикуя её в реальном времени в сети. Круто!!!!

ШАГ 1: СХЕМА

Обратите внимание, что схема цепи в основном такая же, как и в предыдущей статье, я только добавил две кнопки (обычно выключенные), соединенные с входами Arduino и с VCC (через резистор 10кОм, чтобы не вызвать короткое замыкание). Нажатием кнопки мы посылаем сигнал HIGH на цифровой вход Arduino. Потенциометр (тоже 10кОм) будет размещен между VCC (5В) и «землей» с центральным контактом, соединенным с аналоговым входом А0 на плате MEGA. Потенциометром мы будем регулировать напряжение на аналоговом входе А0, которое будет в диапазоне от 0 до 5 В. MEGA будет считывать напряжение на пине А0, преобразовывая его с помощью встроенного АЦП (Аналогово-цифровой преобразователь) в значение в диапазоне от 0 до 1023.

ШАГ 2: КОД

В первую очередь после основной настройки необходимо запустить ESP в качестве сервера. Для этого используется функция InitWifiModule () (см. прилагаемый код).

Во время установки соединения Serial monitor отображает информацию, как показано на рисунке. Очень важен второй IPадрес, который появляется на экране: 10.0.1.2 (у вас, конечно, будет другой IPадрес).

Разберем код подробно:

  • В главном цикле первое, на что нужно обратить внимание, это то, посылает ли ESP что-либо, и есть  ли строка «+IPD». Если все это есть, то страница идентифицирована (см. скриншот с Seria lmonitor ниже).
  • Нужно подождать 300 миллисекунд, чтобы убедиться, что в буфер попали все данные.
  • Т.к. функция read() возвращает ASCII, важно, чтобы при загрузке ID соединения значение «48» было вычтено из прочитанных данных. «48» - это ASC код первой цифры 0. Если, например, число 49 (ASCII код «1») получено путем вычитания 48, результатом будет цифра  («1»).
  • HTMLкод сформирован в Arduino Code и передан в браузер для создания и отображения страницы.
  •  ESP8266_WebServer_Final_MEGA.ino

Download

ШАГ 3: СТРАНИЦА

Введите IP адрес в браузере. После этого ESP создает HTMLстраницу, которая была подготовлена ранее, и начинает передачу информации, полученной с входов платы MEGA.

На снимке экрана Serial monitor (см. выше), вы можете видеть данные, которые постоянно обновляются в процессе выполнения программы.