8-900-374-94-44
[email protected]
Slide Image
Меню

Esp8266 wifi модуль: d0_bf_d1_80_d0_be_d0_b4_d1_83_d0_ba_d1_82_d1_8b:esp8266-wifi-module [Амперка / Вики]

Содержание

Модуль Wi-Fi реле на 1 канал esp8266 - обзор и подключение

В этой статье мы расскажем, как использовать модуль ESP8266 с реле для управления бытовой техникой.

Это модуль одноканального реле с интерфейсом WiFi выполнен на основе микросхемы ESP8266. Он контролирует работу реле посредством приложения. Идеальный инструмент, чтобы управлять всей бытовой техникой в вашем доме с помощью телефона, где бы вы ни находились.

  • Встроенный модуль WiFi с микросхемой ESP8266, работающий в режиме точки доступа, можно подключить к 5‑и клиентам одновременно.
  • У модуля реле с WiFi два режима работы:
    • 1. Смартфон напрямую подключается к модулю WiFi;
    • 2. Смартфон и модуль WiFi подключены к одному маршрутизатору.
  • Дальность передачи: На открытом пространстве максимальная дальность передачи составляет 400 м в случае, когда смартфон напрямую подключается к модулю WiFi. Если модуль WiFi и смартфон подключены к одному маршрутизатору, дальность передачи зависит от силы сигнала маршрутизатора.
  • Встроенное реле на 1 канал с входным напряжением 5 В для выходных цепей 10, А, 250 В переменного тока и 30 В постоянного тока, выдерживает до 100 000 срабатываний в непрерывном режиме, обладает малым временем срабатывания.

Блок-схема модуля представлена на чертеже ниже:

1. WiFi модуль ESP8266 имеет три режима работы:

  • STA (клиент)
  • AP (точка доступа)
  • STA + AP (точка доступа + клиент)

Режим WiFi модуля ESP8266 выбирается исходя из выбранного режима работы модуля реле.

2. Модуль настраивается посредством отладочной программы, предназначенной для работы через последовательный порт, команды на последовательный порт отправляются через конвертер USB в TTL. Для модулей ESP-01 существует специальный программатор – USB программатор Ch440G для ESP-01. Контакты TX, RX и GND конвертера подключаются к выводам RX, TX и GND модуля реле, а выводы IN+ и IN- — к источнику питания постоянного тока 3.

3В.

3. Скорость передачи данных WiFi модуля может быть 115.200 или 9600 бод. Чтобы изменить скорость, вы можете использовать АТ‑команды, например: AT+CIOBAUD=115200. В общих случаях мы рекомендуем использовать скорость 115.200, но вам будет необходимо изменить скорость на 9600, если вы используете смартфон для управления реле (так как скорость встроенного в модуль микроконтроллера STC15F104W составляет 9600 бод).

Запустите отладочную программу USR-TCP232-Test-V1.3 на ПК и отправьте следующие AT команды, одну за другой:

  • AT+CWMODE=2 — выбираем режим точки доступа AP;
  • AT+RST — перезапускаем модуль;
  • AT+CIPMUX=1 — устанавливаем несколько соединений;
  • AT+CIPSERVER=1,8080— настраиваем сервер TCP, устанавливаем номер порта;
  • AT+CIFSR — смотрим адрес IP для режима AP, примерно такой: APIP, “192.168. 4.1”;
  • AT+CIOBAUD=9600 — устанавливаем скорость передачи последовательного порта на 9600 бод.

Теперь подключаемся к точке доступа, созданной WiFi модулем, посредством смартфона с ОС Android.

Установите приложение EasyTCP_20 (ссылка на Play Market) на смартфон с ОС Android и запустите его; нажмите кнопку «CONNECT» и введите адрес устройства (IP Address) и номер порта (Port).

Нажимайте на блоки функций и вводите имена и содержимое команд, отправляемых через последовательный порт. Например, командой “A00101A2” — можно задать открытие реле, а командой “A00100A1” — закрытие реле.

Все команды должны задаваться в шестнадцатеричном виде.

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

Запустите отладочную программу USR-TCP232-Test-V1. 3 на ПК, отправьте следующие команды одну за другой:

  • AT+CWMODE=1
    — выбираем режим клиента STA;
  • AT+RST — перезапускаем модуль;
  • AT+CWJAP=<ssid>,<password> — позволяем модулю WiFi подключиться к маршрутизатору, например: AT+CWJAP=«LCTECH»,«12345678»;
  • AT+CIPMUX=1 — устанавливаем несколько соединений; Например:
    AT+CIPSERVER=1,8080 – настраиваем сервер TCP, устанавливаем номер порта;
  • AT+CIFSR — смотрим адрес IP для режима STA, примерно такой: STAIP, “192.168.1.103”;
  • AT+CIOBAUD=9600 — устанавливаем скорость передачи последовательного порта на 9600 бод.

Теперь подключитесь со смартфона к вашему маршрутизатору.

Установите приложение EasyTCP_20 на смартфон с ОС Android (ссылка на Play Market) и запустите его; нажмите кнопку «CONNECT», введите в поля адрес IP (Address) модуля и номер порта (Port).

Нажимайте на блоки функций и вводите имена и содержимое команд, отправляемых через последовательный порт . Например:

A00101A2 — открытое реле, A00100A1 — закрытое реле. Команды должны быть написаны  в шестнадцатеричном виде.

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

  1. После перезапуска, модуль реле с WiFi необходимо настроить заново. Если ваша прошивка написана на Arduino IDE, то минимальный набор необходимых при запуске команд можно поместить в функцию setup()
  2. У модуля ESP8266 есть функция простоя; если смартфон не посылает команды на модуль WiFi в течение некоторого периода времени (по умолчанию — 180 с), то он переходит в режим ожидания и отключается от вашего смартфона. Для изменения этого периода вы можете отправить с ПК команду «AT + CIPSTO = ” («время» может быть от 0 до 7200 сек), например: AT + CIPSTO = 3600.
  3. Если модуль в ответ вместо «OK» отправляет команду, которую вы послали посредством программы USR-TCP232-Test-V1.3, то модуль необходимо настроить заново. Перед отправкой команд вы можете нажать кнопку «ВВОД» (ENTER).
  4. Если нет никакого ответа при работе через программу USR-TCP232-Test-V1.3, то посмотрите на скорость при обмене с модулем — возможно, она настроена неверно. Вы можете попробовать 115200 или 9600, однако если для управления реле вы используете смартфон, то скорость обязательно должна быть 9600 бод (скорость можно изменить, отправив команду AT+CIOBAUD=9600), поскольку скорость передачи встроенного микроконтроллера STC15F104W составляет 9600 бод.
  5. Если вы хотите использовать компьютер для управления реле напрямую (скорость передачи — 9600 бод), то можно сделать следующее: отсоедините модуль WiFi с микросхемой ESP8266; выводы TX, RX и GN от USB – TTL конвертера подключите к выводам TX, RX и GND модуля реле; выводы IN+ и IN- подключите к источнику питания постоянного тока 5В. Отправьте команды на последовательный порт (A00101A2 — открытое реле, A00100A1 — закрытое реле, команды должны быть в шестнадцатеричном виде) посредством отладочной программы, установленной на ПК, чтобы управлять реле.
  6. Ели реле не открывается или не закрывается, возможно, вам необходимо убрать резистор R4 и подключить вывод питания VCC от USB – TTL конвертера к 5V выводу модуля реле.

Статья подготовлена по материалам www.hackster.io

Arduino + ESP8266 с нуля на примере Wi-Fi термометра, часть первая / Хабр

Часть 1. Подготовка ESP8266

Зачем эта статья? На хабре уже есть ряд статей про использование ESP в разных конфигурациях, но почему-то без подробностей о том, как именно все подключается, прошивается и программируется. Типа «я взял ESP, две пальчиковые батарейки, DHT22, закинул в коробку, потряс часик и термометр готов!». В итоге, получается странно: те, кто уже работают с ESP не видят в сделанном ничего необычного, а те, кто хочет научиться — не понимают с чего начать. Поэтому, я решил написать подробную статью о том, как подключается и прошивается ESP, как его связать с Arduino и внешним миром и какие проблемы мне попадались на этом пути. Ссылки на Aliexpress привожу лишь для представления порядка цен и внешнего вида компонентов.

Итак, у меня было два микроконтроллера, семь разных сенсоров, пять источников питания, температурный датчик DHT22 и целое множество проводков всех сортов и расцветок, а так же бессчетное количество сопротивлений, конденсаторов и диодов. Не то, чтобы все это было необходимо для термометра, но если уж начал заниматься микроэлектроникой, то становится трудно остановиться.



Питание

Для работы ESP8266 нужно напряжение 3.3В и ток не ниже 300мА. К сожалению, Arduino Uno не в состоянии обеспечить такой ток, как не в состоянии обеспечить его и переходники USB-UART (программаторы) типа FT232RL — их предел около 50мА. А значит придется организовать отдельное питание. И лучше бы, чтобы Arduino тоже работал от 3. 3В, чтобы избежать проблем типа «я подал пятивольтовый сигнал на вывод RX модуля ESP, почему пахнет паленой пластмассой?».

Есть три решения.

1. Купить готовый блок питания на 3.3В.

2. Купить готовый модуль с регулятором напряжения, понижающий 5В до 3.3В. Пожалуй, это самый удобный вариант.

3. Собрать модуль самому из регулятора AMS1117 и одного танталового конденсатора на 22мкФ.

Я выбрал третий пункт, поскольку мне часто нужно 3.3В, я жадный и я люблю встраивать регуляторы прямо в блоки питания.

С AMS1117 все просто: если положить его текстом вверх, то напряжение на ногах растет слева направо: 0(Gnd), 3.3В (Vout), 5В (Vin).
Между нулем и выходом нужен танталовый конденсатор на 22мкФ (так по инструкции, что будет если поставить электролитический — я не проверял). У танталового SMD-конденсатора плюс там, где полоска. Немного чудовищной пайки совершенно не предназначенных для такого варварства SMD-компонентов и:

Обязательно проверяйте выходное напряжение. Если оно значительно меньше 3.3В (например, 1.17В) — дайте регулятору остыть после пайки и проверьте контакты. Если поставите конденсатор больше, чем на 22мкФ, то мультиметр может показать более высокое напряжение.

Почему именно AMS1117? Он широко используется. Его вы можете найти почти везде, даже в Arduino Uno, как правило, стоит AMS1117-5.0.

Если вы знаете что-то схожих габаритов и цены, еще более простое в использовании — напишите, пожалуйста.

Важный момент. Не знаю уж почему, но AMS1117 крайне капризно относится к качеству соединений. Контакты должны быть надежны. Лучше — пропаяны. Иначе он на тестах выдает 3.3В, но под нагрузкой не выдает ничего.

Подключение ESP8266

Я выбрал модель 07, поскольку у нее отличный металлический экран, который работает как защита от наводок, механических воздействий и как радиатор. Последнее обеспечивает разницу между сгоревшим модулем и просто нагревшимся. Кроме того, есть гнездо под внешнюю антенну.

Чтобы чип запустился нужно соединить VCC и CH_P через резистор 10кОм. Если такого нет, то сгодится любой из диапазона 1-20кОм. Кроме того, конкретно модель 07 еще требует, чтобы GPIO15 (самый ближний к GND) был «на земле» (этого на картинке не видно, потому что соединение с другой стороны).

Теперь берем переходник USB-UART, переключаем его на 3.3В и подключаем RX к TX, TX к RX и GND к «земле» (у меня без этого передача нестабильна). Если вы не можете переключить на 3.3В, то можно использовать простейший резисторный делитель напряжения: соедините ESP RX с TX переходника через сопротивление в 1кОм, а ESP RX с «землей» через 2кОм. Существует масса более сложных и более надежных способов связать 3.3В и 5В, но в данном случае и так сойдет.

И соединяемся на скорости 9600 по нужному COM-порту (можно посмотреть в диспетчере устройств).

Я использую SecureCRT, Putty тоже подойдет, а ценители Линукса и так знают, что делать и где смотреть.

(AT+RST перезагружает чип)

Если ничего не происходит — выключите — включите питание, если все равно ничего не происходит — проверьте соответствие TX/RX, попробуйте переставить их местами или припаять к чипу.

Иногда чип в ходе издевательств экспериментов зависает и тогда его надо обесточить, в том числе отключив и переходник (например, вытащив его из USB), поскольку чипу хватает даже поступающих крох питания, чтобы упорно тупить и не работать.

Иногда фокусы с переходником вешают USB-порт. Можно в качестве временного решения использовать другой USB-порт, но вообще лучше перезагрузить компьютер.

Иногда при этом меняется номер COM-порта. Под Linux это можно решить с помощью udev.

Если вместо текста приходит мусор, то проверьте настройки скорости. Некоторые старые чипы работают на 115200.

На старте чип нагревается, но если он реально горячий и продолжает греться — отключайте и проверяйте все соединения. Чтобы на корпус не попадало +3.3В, чтобы 5В к нему вообще никуда не приходили, чтобы «земля» переходника была соединена с «землей» чипа. Модели с металлическим экраном очень трудно сжечь (но нет ничего невозможного), а на модели без экранов жалуются, мол даже небольшая ошибка может стать последней в жизни чипа. Но это я не проверял.

Прошивка

Мой выбор — NodeMCU. У нее проблемы с памятью и поддержкой железа, но это многократно окупается простотой кода и легкостью отладки.

Так же потребуются NodeMCU flasher и LuaLoader (последнее — опционально, есть и другие клиенты для работы с этой прошивкой).

Выключаем чип. Подсоединяем GPIO0 к земле и включаем чип:

Если ничего не происходит и поля AP MAC/STA MAC пустые — проверьте еще раз, чтобы GPIO0 был на «земле».
Если прошивка началась, но зависла — посмотрите в закладке Log, у меня почему-то конкретно этот чип отказался прошиваться на FT232RL, но зато без проблем прошился на PL2303HX на скорости 576000. PL2303HX в указанном варианте не имеет переключения на 3.3В, чтобы им воспользоваться нужно открыть пластиковый корпус и перепаять провод с 5V на 3.3V, есть варианты с пятью выходами: 3.3, 5, TX, RX, Gnd.


Обратите внимание: STA MAC поменялся. Подозреваю, что flasher его неправильно показывал, но требуется проверка.

Для экономии сил и нервов можно взять готовый или полуготовый вариант.

Есть одноразовые адаптеры с удобной разводкой.
Есть готовые к прошивке.
Есть варианты с простенькие кит-комплекты и посложнее — ESP8266-EVB
Есть с готовым USB-адаптером — NodeMCU Development Board. Под нее даже какие-то шилды делают.

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

Ценные ссылки из комментариев:
NodeMCU custom builds
Programming ESP8266-EVB with Arduino IDE
Объяснение про танталовый конденсатор.

Update: заменил в тексте «программатор» на «переходник USB-UART» или просто «переходник». По моему опыту термин «программатор» используется чаще, но, пожалуй, «переходник USB-UART» будет точнее.

Обзор модуля реле для ESP8266-01S – RobotChip

#include <ESP8266WiFi.h>                      // Подключаем библиотеку ESP8266WiFi

const char* ssid = "Название Вашей Сети";     // Название Вашей WiFi сети

const char* password = "Пароль от вашей сети";// Пароль от Вашей WiFi сети

 

#define RELAY 0                               // Пин к которому подключен датчик

WiFiServer server(80);                        // Указываем порт Web-сервера

void setup(){

  delay(2200);      

  Serial. begin(115200);                       // Скорость передачи 115200

  pinMode(RELAY,OUTPUT);                      // Указываем вывод RELAY как выход

  digitalWrite(RELAY, LOW);                   // Устанавливаем RELAY в LOW (0В)

  Serial.println();                           // Печать пустой строки

  Serial.print("Connecting to ");             // Печать "Подключение к:"

  Serial.println(ssid);                       // Печать "Название Вашей WiFi сети"

  WiFi.begin(ssid, password);                 // Подключение к WiFi Сети

  while (WiFi.status() != WL_CONNECTED)       // Проверка подключения к WiFi сети

  {

    delay(500);                               // Пауза 500 мкс

    Serial.print(".");                        // Печать "."

  }

  Serial.println("");                         // Печать пустой строки  

  Serial.println("WiFi connected");           // Печать "WiFi connected"

  server.begin();                             // Запуск сервера

  Serial. println("Server started");           // Печать "Server starte"

  Serial.print("Use this URL to connect: ");  // Печать "Use this URL to connect:"

  Serial.print(WiFi.localIP());               // Печать выданого IP адресса          

}

void loop(){

   WiFiClient client = server.available();    // Получаем данные, посылаемые клиентом

  if (!client)                                

  {

    return;

  }

  Serial.println("new client");               // Отправка "new client"

  while(!client.available())                  // Пока есть соединение с клиентом

  {

    delay(1);                                 // пауза 1 мс

  }

 

  String request = client.readStringUntil('\r');

  Serial.println(request);

  client.flush();

  int value = LOW;

  if (request.indexOf("/RELAY=ON") != -1)  

  {

    Serial.println("RELAY=ON");

    digitalWrite(RELAY,LOW);

    value = LOW;

  }

  if (request. indexOf("/RELAY=OFF") != -1)  

  {

    Serial.println("RELAY=OFF");

    digitalWrite(RELAY,HIGH);

    value = HIGH;

  }

 

  client.println("HTTP/1.1 200 OK");

  client.println("Content-Type: text/html");

  client.println("");

  client.println("<!DOCTYPE HTML>");

  client.println("<html>");

  client.println("<head><title>ESP8266 RELAY Control</title></head>");

  client.print("Relay is now: ");

  if(value == HIGH)

  {

    client.print("OFF");

  }

  else

  {

    client.print("ON");

  }

  client.println("<br><br>");

  client.println("Turn <a href=\"/RELAY=OFF\">OFF</a> RELAY<br>");

  client.println("Turn <a href=\"/RELAY=ON\">ON</a> RELAY<br>");

    client.println("</html>");

  delay(1);

  Serial.println("Client disonnected");

  Serial. println("");

}

ESP8266. Часть 1. Последовательный WIFIмодуль для Arduino

ЧАСТЬ 1

ПОСЛЕДОВАТЕЛЬНЫЙ WIFI МОДУЛЬ ДЛЯ ARDUINO

Это первая  из трех  инструкций, которая поможет вам использовать ESP8266 с Arduino. В этом первом руководстве вы узнаете, как установить и протестировать работу модуля, подсоединенного к Arduino.

ESP8266 – это, наверное, самый универсальный модуль с последовательным интерфейсом для соединения различных физических предметов («вещей») с интернетом, поэтому он так популярен в сфере «Интернета вещей».  Это законченный модуль, который состоит из микропроцессора, доступного для программирования напрямую через ArduinoIDE (C++), или в любой другой среде программирования (обычно используется язык  высокого уровня  “LUA”).

Для управления «вещами» не нужна сама плата Arduino в качестве интерфейса, потому что ESP8266 уже имеет 2 GPIO (Интерфейс ввода/вывода общего назначения). Множество дополнительной важной информации вы сможете найти на форуме, посвященном ESP8266.

Ссылка на форум по ESP8266:

Характеристики:

  • 802.11 b / g / n
  • Wi-FiDirect (P2P), программная точка доступа soft-AP
  • Интегрированный стек протоколов TCP / IP
  • Интегрированный TR свитч, балун, LNA, усилитель мощности  и согласующая сеть (matchingnetwork)
  • Интегрированные PLL, регуляторы, DCXO и системы управления мощностью
  • + 19.5 дБ выходная мощность в режиме  802.11b
  • Отключение при превышении утечки тока  <10uA
  • 1MB флэш память
  • Интегрированный 32-битный центральный процессор с низким энергопотреблением, может быть использован как процессор приложений
  • SDIO 1.1 / 2.0, SPI, UART STBC, 1 × 1 MIMO, MIMO 2 × 1
  • A-MPDU и A-MSDU агрегирование, 0.4 мс пустой промежуток
  • Wakeup пакеты  и передача <2мс
  • Потребление энергии в режиме ожидания <1. 0мВт (DTIM3)

Вышеуказанные данные включают в себя много технической информации, которая вам не понадобится  в большинстве ваших проектов, однако лучше, чтобы она была под рукой, на всякий случай.  

До сих пор я изучал только ESP8266 в соединении с Arduino, заменяя необходимость в более дорогих WiFi шилдах. (Шилд – это печатная плата, которую вы устанавливаете  на Arduino для увеличения его функциональности).

Шаг 1: ESP 8266 характеристики и пины

Итак,  сначала необходимо протестировать модуль AT командами, которые являются стандартными. Как правило, модуль поставляется от производителя с установленными настройками скорости передачи данных в 115200 бодов. Иногда это создает неудобства, например, в случае с ArduinoUNO, только однажды HWSerial “0” (пины 0 и 1) мог работать на такой скорости. Проблема в том, что программа SerialMonitor для PC также использует этот последовательный порт. («PC» используется здесь как усредненный термин, надеюсь, мой Macне слышит меня 😉 Решение для ArduinoUNO нашлось в виде использования библиотеки "SoftwareSerial", чтобы заставить  два других универсальных пина (GPIO) работать в режиме последовательного порта (SW). Это хорошо работает тогда, когда скорость передачи данных не превышает 19200 бодов.  Отлично! Но что делать, если ESP8266 изначально запрограммирован на  работу с более высокой скоростью? Решением может быть перепрограммирование. Но не все прошивки, которые загружены в устройство на заводе, поддерживают перепрограммирование модуля. Таким образом, сначала нужно обновить прошивку. В некоторых постах в интернете описывается, как это сделать. Я не буду загружать вас перепрошивкой, скоростью и т.д., для упрощения процесса будет использована плата ArduinoMEGA, на которой есть 4 аппаратных последовательных порта (4 HWserialports) .

Порты на плате MEGA:

  • TX0 / RX0 ==> Pin 1, 0 (то же, что UNO) ==> "Serial 0"
  • TX1 / RX1 ==> Pin 18, 19 ==> "Serial1"
  • TX2 / RX2 ==> Pin 16, 17 ==> "Serial2"
  • TX3 / RX3 ==> Pin 14, 15 ==> "Serial3"

 

Для моих тестов я буду использовать последовательный порт 2 (Serial 2)  (пины 16 и 17).

Давайте подробнее рассмотрим модуль:

  • Питание: 3.3 В. Это важно, т.к. модуль не работает с напряжением в 5 В, и может сгореть. Входные пины также не поддерживают напряжение 5 В, поэтому при получении сигнала Arduino важно использовать конвертер уровня напряжения (как раньше их называли «делитель напряжения»). Другая важная вещь – это иметь независимый источник питания на 3.3 В, т.к. не всегда Arduino выдает требуемый ток для корректной работы модуля.
  • Модуль имеет 6 пинов:
    • TX: он будет подсоединен к RX2 на плате MEGA (может быть соединен напрямую, т.к. MEGA интерпретирует 3.3 В как HIGH)
    • RX : TX2 подсоединен к MEGA через конвертер уровня напряжения
    • VCC : 3.3В
    • GND : Земля. Важно помнить, что необходимо подсоединять GND платы ESP8266 к  GND на плате MEGA.
    • CH_PD (*) : подсоединен к пину 4  последовательного порта на плате  MEGA, сброс для начала обмена данными
    • RST : Сброс, обычно подсоединяется к VCC
    • GPIO0 : свободно (Интерфейс ввода/вывода общего назначения)
    • GPIO2 : свободно (Интерфейс ввода/вывода общего назначения)

 (*)На некоторых сайтах в интернете показано, что этот пин напрямую подсоединен к VCC. В моем случае без «сброса» по последовательному порту SW (устанавливает пин  в значение LOW) ESP8266 не работает.

Продаются адаптеры для включения модуля в макетную плату, т.к. физически расстояние между пинами ESP8266 не совпадает с отверстиями на макетной плате. Для соединения я использовал обычный кабель «мама/папа» типа FTDI (см. ниже). Цвета совпадают с диаграммой соединений.

Шаг 2: Цепь, которая будет использована в тестах


Ничего особенного в диаграмме аппаратных последовательных соединений (HW). Красная пластина – это независимый источник питания 3.3 В, смонтированный на макетной плате. Обратите внимание, что желтый провод соединен с TX2 на Arduino, проходит через делитель напряжения (1K и 2.2K резисторы), таким образом TX2 – это HIGH (5В), ESP8266 получает примерно 3.3В (для него это HIGH).

ШАГ 3: ТЕСТИРОВАНИЕ ESP8266 С ПОМОЩЬЮ AT-КОМАНД

Идея этого скетча состоит в тестировании и настройке модуля, который позволяет вводить AT-команды и видеть вывод в программе SerialMonitor.

В части «комментарии» перечислены основные AT-команды. В начале загрузки программы после имени модуля вы увидите много ненужного для нас текста в окне SerialMonitor, затем слово «ready». С этого момента вы можете вводить AT-команды.

Начните с простого «АТ», модуль должен ответить «ОК», протестируйте другие команды.

Картинка показывает, что должно появляться в окне SerialMonitor после того, как вы ввели различные команды.

  • AT для тестовых примеров:
    • AT =====> ESP8266 возвращает OK
    • AT + RST =====> ESP8266 рестарт и возврат OK
    • AT + GMR =====> ESP8266 возвращает версию AT; SDK version; id; OK
    • AT + CWMODE? => ESP8266 возвращает режим работы
    • AT + CWLAP ===> ESP8266 возвращает обнаруженные точки доступа
    • AT + CIFSR ===> ESP8266 возвращает установленный IP
    • AT + CIPMUX = 1 ==> Устанавливает плате ESP8266 режим работы с несколькими соединениями
    • AT + CIOBAUD = 9600 ==> Изменить скорость обмена данными  ==> ESP8266 возвращает OK
    • AT + CIPSERVER = 1.80 ==> Устанавливает режим  SERVER порт: 4040
    • AT + CWMODE = 3 ==> Работа ESP8266 в комбинированном режиме  (точка доступа (2) и сервер (1))
    • AT + CWSAP = "Acc_Point_name", "password", wifi_Channel, cript # ==> j.
    • AT + CWSAP = "ESP_8266_AP," 1234 ", 3.0
    • AT + CWJAP = "SSID", "password" ==> Подключается к сети WiFi
    • * = AT + CWJAP "ROVAI TIMECAP", "-1 mjr747"

****************************************************************** /

Ниже представлены файлы с инструкциями для проведения тестов: скетч Arduino, и два PDF документа (один с полным списком команд и другой с более полным руководством по настройке модуля для разных режимов работы:  в качестве веб сервера, точки доступа и т.д.)

Download

Download

Download

Шаг 4: Заключение

В следующих двух инструкциях я расскажу, как использовать Arduino/ESP8266 в качестве веб-сервера и как включать/отключать светодиоды (или любое другое устройство) удаленно, используя интернет.

Всего доброго!

Для дополнительной информации посетите мой блог:

MJRoBot.org

Alex_EXE » wi-fi модуль esp8266

Думаю, что для многих не новость, что недавно появились на рынке сверх дешевые чипы esp8266 и модули на их основе. Ещё одним большим плюсом этих чипов, по мимо цены, является большая интеграция чипа, следствие чего самодостаточность, а точнее очень малое количество компонентов обвязки.

Чип esp8266 и модули на его основе

Единственным большим минусом этих модулей является секретность их ней документации. Конечно что-то уже давно просочилось в сеть, но основные документы и SDK находятся под NDA грифом. Почему так, не мне судить, но неприятно. Но в некотором скором времени производитель собирается перевести документы на свободно распространяемую лицензию.

Начнём с самого вкусного — цены модуля и чипа. Цена модуля в интернет магазинах составляет порядка 200-300р, на taobao 160р. Цена чипа в интернет магазинах и на taobao 90р, у производителя 1,5$. Цены на конец сентября 2014 года, зеленый стоит 40р.

Хоть основная документация по модулю и закрыта, но из имеющихся источников можно получить дефолтные схемы разводки модуля, краткую спецификацию и список AT команд для работе с модулем по UART (когда чип настроен на этот режим работы, родной у него, кажется, SPI). Данной документации уже будет достаточно для поверхностного ознакомления с данным модулем и построения любительских конструкций на его базе.

Краткая спецификация модуля

Частота Wi-Fi 2412-2484МГц
Стандарт 802.11 b / g / n
Мощность + 20dBm
Максимальное расстояние 100м (при идеальных условиях)
Безопасность WPA / WPA2
Встроенный TCP/IP стек
Интерфейс UART 115200
Напряжение питания 3.3В
Потребление тока 70мА (240мА пик)
Температурный режим -40 +70С

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


GND GPIO2 GPIO0 Rx
Tx CH_PD (enable) RST Vdd (3,3В)

Если обратить внимание на количество компонентов, то их всего 6 — пассивных, SPI память и PCB антенна (два светодиода с обвязкой и разъём не посчитал), что очень приятно в плане занимаемым местом, количеством паяемой обвязки и следствием трудозатрат и стоимости применения данного модуля.

В своих экспериментах подключал модуль к cp2102 через небольшую платку со стабилизатором на 3.3В и 2-мя гасящими резисторами.

Испытательный стенд для модуля esp8266

Для работы подаём на модуль питание 3,3В, подключаем UART и подтягиваем к плюсу питания Enable (CH_PD). Напомню: скорость UART 115200, стандартные настройки 8N1.

Список AT команд

Синтаксис:
<command> — выполнит команду
<command>? — запросить статус какого-либо параметра
<command>=<parametr> — задать параметры

Синтаксис Пример Описание
AT AT
OK
Тест
AT+RST AT+RST Перезагрузит модуль
AT+GMR AT+GMR
00160901
OK
Версия прошивки
AT+CWMODE=<mode> AT+CWMODE=1

OK

Режим работы модуля
<mode>:
1-клиент
2-точка доступа
3-совмещенный
AT+CWJAP = <SSID>,<PWD> AT+CWJAP="HOME","password"
OK
Присоединиться к точке доступа
<SSID> — имя точки доступа
<PWD> — ключ
AT+CWLAP AT+CWLAP
+CWLAP:(0,"",0)
+CWLAP:(4,"Sosed",-77)
+CWLAP:(1,"HOME",-54)
OK
Получить список видимых точек доступа
Первый параметр — шифрование:
0 — open
1 — WEP
2 — WPA_PSK
3 — WPA2_PSK
4 — WPA_WPA2_PSK
Второй параметр — SSID
Третий параметр — чувствительность
AT+CWQAP AT+CWQAP
OK
Отключиться от точки доступа
AT+CWSAP=<ssid>,<pwd>,<chl>, <ecn> AT+CWSAP="TEST","12345678",5,0
OK
Установить точку доступа
<ssid> — имя точки доступа
<psd> — ключ
<chl> — канал
<ecn> — шифрование, см AT+CWLAP
AT+CWLIF AT+CWLIF Список присоединённых устройств
AT+CIPSTATUS AT+CIPSTATUS
STATUS:3
+CIPSTATUS:0,"TCP","46.38.56.236",80,0

OK

Статус TCP соединения
Возвращаемый параметр — статус соединения
3 — соединение установлено
4 — нет соединения
Первый параметер — сессия
Второй параметр — соединение: TCP или UDP
Третий параметр — IP
Четвёртый параметр — порт
Пятый параметр — неизвестен
AT+CIPMUX=<mode> AT+CIPMUX=0
OK
Количество соединений
0 — одно соединение
1 — мультисоединение (до 4-х)
AT+CIPMODE=<mode> AT+CIPMODE?
+CIPMODE:0
Режим передачи данных
<mode> — неизвестно
Для одного соединения (+CIPMUX=0):
AT+CIPSTART=<type>,<adr>,<port>
Для мульти соединения (+CIPMUX=1):
AT+CIPSTART=<id>,<type>,<adr>,<port>
AT+CIPSTART="TCP","alex-exe.ru",80

OK
Linked

Unlink

Соединение TCP/UDP
<id> — идентификатор соединения
<type> — тип соединения: TCP или UDP
<adr> — адрес IP или URL
<port> — порт
Для одного соединения (+CIPMUX=0):
AT+CIPSEND=<length>
Для мульти соединения (+CIPMUX=1):
AT+CIPSTART=<id>,<length>
AT+CIPSEND=53
> GET /links/links.html HTTP/1.0
Host: alex-exe.ru
busy

SEND OK

+IPD,233:HTTP/1.1 200 OK
… обрезано …
OK

Отправить данные
<id> — идентификатор соединения
<length> — количество отправляемых данных
Передаваемые данные отправляются после приглашения > , после ввода команды.е
+IPD,1024:<html>
<head>
<title>Alex_EXE — Сайты</title>
… обрезано …
OK
Приём данных
Первый параметр <id> — идентификатор соединения (для +CIPMUX=1).
Возвращает количество прочитанных байт, после двоеточия возвращает принятые данные.
Принимает по 1024 байта, разделяя.
Для +CIPMUX=0:
AT+CIPCLOSE
Для +CIPMUX=1:
AT+CIPCLOSE=<id>
AT+CIPCLOSE
OK
Unlink
Закрыть соединение
Единственный параметр <id> для мультипоточного режима — идентификатор соединения
AT+CIFSR AT+CIFSR
192.168.1.208
Получить IP адрес модуля
AT+CIPSERVER=<mode>,<port> AT+CIPSERVER=1,8888
OK
Поднять сервер
<mode> — режим скрытности
0 — скрыт
1 — открытый
<port> — порт
AT+CIPSTO=<time> AT+CIPSTO=180
OK
Установить время одной сессии на сервере
<time> — время сессии в секундах, от 0 до 28800.


Такой перечень команд на данный момент удалось найти. Скудновато, но для минимального функционала хватит.

Пример установки точки доступа и поднятие TCP сервер на 8888 порту:

AT+CWMODE=2

OK
AT+RST

OK
...  перезагрузка   ...
AT+CWSAP="TEST","12345678",5,0

OK
AT+CIPMUX=1

OK
AT+CIPSERVER=1, 8888

OK
AT+CIFSR
192.168.4.1
Link

+IPD,0,17:Test alex-exe.ru

OK
Unlink

После поднятия сервера зашёл на него через терминал (Link — момент подсоединения) и отправил короткое тестовое сообщение, после чего отсоединился (Unlink — момент отключения).

Пример установки клиента с выполнением «ручного» GET HTTP запроса:


AT+CWMODE=1

OK
AT+RST

OK
...  перезагрузка   ...
AT+CWLAP
+CWLAP:(0,"",0)
+CWLAP:(4,"Sosed",-77)
+CWLAP:(1,"HOME",-54)
OK 
AT+CWJAP="HOME","password"

OK
AT+CIPMUX=0

OK
AT+CIPSTART="TCP","alex-exe.ru",80

OK
Linked
AT+CIPSEND=53
> GET /links/links.html HTTP/1.0
Host: alex-exe.ru
busy

SEND OK

+IPD,233:HTTP/1.1 200 OK
Server: nginx/1.6.0
Date: Tue, 14 Oct 2014 21:41:06 GMT
Content-Type: text/html
Content-Length: 1647
...   обрезано   ...

OK

+IPD,1024:<html>
<head>
 <title>Alex_EXE - Сайты</title>
...   обрезано   ...
     
 
OK

+IPD,623:    <tr>
       <td valign=top colspan=2>
         <b><p align=center><a HREF = "computer.html">Компьютер</a></p></b>		
...   обрезано   ...

</td></tr></head></html>
OK

OK
Unlink

Если в будущем смогу раздобыть больше информации и описания по модулю и чипу, причём не из засекреченных источников, — то будет продолжение.

Источники, с которых собирал информацию:
ESP8266: Революция в мире интернета вещей
nurdspace.nl/ESP8266
www.electrodragon.com/w/Wi07c
даташит Espressif AT Instruction (на Китайском)

WiFi-IoT Firmware Builder :: Конструктор прошивки ESP8266(no OS)

Определение размера памяти по вкладке ip_adr/debug:


Вкладка debug содержит разную полезную информацию, в том числе и реальный размер чипа флеш памяти в строке Flash real size, а так же размер памяти, установленный в прошивающей программе Flash set size, который важен для правильной поддержки OTA.

Если вы не зарегистрированы в конструкторе, то вы можете скачать собранные прошивки на главной странице, где доступны 2 облегченных варианта прошивки:

-Вариант с поддержкой OTA с объемом памяти чипа 1мбайт и выше.  Необходимо обязательно выбирать в прошивающей программе размер памяти 1мбайт !! Модули с размером flash памяти 512кб не поддерживаются  режимом OTA !!

-Вариант без поддержки OTA.Если размер получаемого файла(одним файлом) более 496кб, то требуется поддержка flash памяти не менее 1 мегабайта !! По сравнению с режимом OTA в этом варианте количество включенных опций можно включить значительно меньше.

Возможность дальнейшего обновления прошивки по OTA доступна только у кого есть активированные ключи !

Если у вас имеются проблемы со стартом прошивки, то обязательно смотрим ниже абзац про решение проблем с прошивкой !

Сборка прошивки в конструкторе

Конструктор позволяет собрать прошивку под свои требования, включив в прошивку только те функции и датчики, которые нужны.

Не имеет смысла включать все опции в прошивке - в этом случае прошивка может не собраться так как не влезет в модуль. Лучше прошивку пересобрать снова, если вы хотите испытать другие опции.

Некоторые опции имеют дополнительные настройки, которые находятся в значке-шестеренке. Там можно выбрать доступное количество например термостатов или других опций. При изменении количества из-за динамических настроек могут "слететь" другие опции модуля после последующего обновления. При первоначальной настройке желательно сразу выбрать нужное количество опций, чтобы таких проблем не было.

При первоначальной сборке прошивки рекомендуется воспользоваться опцией OTA , чтобы следующее обновление было возможно через интернет без использования подключения программатора. С опцией OTA количество опций можно включить больше, но требуется чтобы память на модуле была не меньше 1 мегабайта !!

Кроме OTA так же рекомендуется включать опции NVS настройки 2 и Экспорт/Импорт настроек.

При сборке прошивки можно выбирать разный SDK. Рекомендуемая версия SDK 1.3.0.  В новых версиях замечена проблема с режимом точки доступа (Safe Mode)(???) , но нет проблем с надежностью связи с роутером. SDK - это набор библиотек и функций от производителя чипа для работы устройства.

После нажатия кнопки "скомпилировать" через некоторое время конструктор прошивки выдаст ссылки для скачивания:

В режиме без OTA можно прошить файлы прошивки одним файлом - тогда все настройки модуля, если они были сбросятся. Если вы обновляете прошивку и не хотите чтобы настройки удалились, то необходимо обновлять прошивку двумя файлами по адресам, которые указаны в имени файла.

В режиме OTA достаточно залить прошивку одним файлом. Но 0x81000.bin может потребоваться, если вы хотите обновить прошивку по кабелю после использования OTA, когда загружен файл user2.bin(отображается в debug) - в этом случае обновление прошивки одним файлом не обновит активную прошивку.

Подключение модуля для прошивки

Для прошивки ESP8266 необходим USB-UART переходник или Arduino. ESP8266 необходимо обеспечить напряжение питания 3.3в и током 200..300мА. Питание 3.3в от ARDUINO или от USB-UART подключать не рекомендуется - модуль может работать не стабильно из-за нехватки тока. Рекомендуется использовать стабилизатор вида 1117.

Подключение ESP8266 к USB-UART: Необходимо подключить общие выводы GND(минус). RX у USB-UART на TX ESP, TX у USB-UART на RX ESP. Подключаем так же источник питания 3.3в.

Подключение ESP8266 к Arduino: Необходимо подключить общие выводы GND(минус).RX у Arduino на RX ESP, TX у Arduino на TX ESP. Подключаем так же источник питания 3.3в. RESET у Arduina необходимо подключить к GND.

На модуле ESP8266 вывод CH_EN необходимо подключить к +3.3в для того, чтобы включить чип.

GPIO 0 на время программирования, перед включением питания необходимо подключить к GND(земля). После успешной прошивки GPIO 0 нужно отключить от GND. Если на модуле выведен GPIO 15, то его необходимо подключить на GND через резистор 10кОм на постоянной основе !!

Если у вас модуль esp8266 имеет уже на борту USB-UART (например Wemos, NodeMCU) , то указанные выше действия проводить не требуется.

Прошивка модуля

Для начала необходимо установить драйвера для вашего USB-UART переходника или Arduinы.

Прошивка через Nodemcu Flasher: Устанавливаем на вкладке Advanced Параметр Flash size в соответствии выбранным размером flash памяти (в байтах). Режим работы flash ставим QIO (при использовании GPIO 9/10 - DIO). Остальные параметры не трогаем. Указываем на вкладке Config путь на файл прошивки с адресом 0x0000. На вкладке Operation выбираем COM порт и жмем кнопку FLASH.

Прошивка через Flash download tool: Действия аналогичны.

Прошивка через Flasher for WiFi-IoT.com http://files.wifi-iot.com/flasher/ . Программа имеет русскоязычный интерфейс и поддерживается как Windows, так и Linux системы. На данный  момент прошивка идет только по 0x0000 адресу файла "Скачать одним файлом (0x00000)". При установленном API ключе возможна автоматическая загрузка заранее собранной прошивки напрямую из конструктора(только с режимом OTA). Для очистки памяти вместо бланка можно использовать опцию "стереть чип перед прошивкой".

Для модулей ESP8285 и модулях с памятью PN25F08B требуется установка режима памяти DOUT !!

Прошивка через esptool. Пример команды esptool.py --port /dev/ttyUSB0 write_flash -fs 8m 0x00000 esp8266.bin . где -fs 8m параметр нужен только для указания размера при одномегабайтовой прошивке.

Скорость COM порта рекомендуется ставить не выше 115200.

Перед первой прошивкой рекомендуется залить в модуль blank по адресу 0x0000 , особенно, если в модуле до этого использовалась какая либо другая прошивка.

Прошивка файла ESP INIT DATA

Рекомендуется прошить в модуль файл esp_init_data_default.bin с калибровками по умолчанию, эти настройки влияют на работу wifi и adc. В большинстве случаев модули работают корректно без этого файла. Последние SDK могут вообще не запускаться без данного файла.

Адрес прошивки файла зависит от установленного размера flash памяти:

0x7c000 для 512 kB.

0xfc000 для 1 MB.

0x3fc000 для 4 MB.

0xffc000 для 16 MB.

Так же данные настройки можно загрузить подав GET команду http://[IP]/configinit?def=1 , последние SDK сами прописывают данные настройки.

Запуск модуля

При первом включении модуль включается в режим safe mode автоматически так как не содержит имени точки доступа. В режиме safe mode в эфире появится точка с именем WiFi-IoT (в прошивках до 12.10.16 homessmart) , к которой можно подключится используя смартфон или ноутбук.

В режим safe mode еще можно попасть, замкнув между собой RX и TX и перезапустив модуль или нажать 3 раза подрят (с интервалом нажатия около секунды) кнопку RESET на ESP8266. 

Далее возможны два варианта подключения к модулю:

1. Используя Captive Portal мобильное устройство выведет уведомление о подключении, при нажатии на которое происходит автоматическое открытие главной веб страницы модуля. Можно так же зайти в модуль введя в браузере адрес iot.local (или любое другое, например iot.ru). Captive Portal не поддерживается если прошивка собрана на SDK 0.9.5 !

2. После успешного коннекта заходим вручную по адресу http://192.168.4.1 используя веб браузер. 

Далее настраиваем подключение на свой роутер на вкладке main веб интерфейса.Необходимо вбить в поля WiFi options данные своей точки доступа. Для подключения к роутеру выбираем режим "Station mode". После нажатия кнопки set ниже появится IP адрес, на который можно заходить внутри своей беспроводной сети.

Далее обновляем страницу и видим внизу IP адрес, на который уже можно будет заходить внутри Вашей локальной сети.

Тут же вы можете установить свой логин и пароль на странички настроек веб интерфейса. Длинна логина и пароля не более 8 символов. Пароль затребуется на все вкладки настроек. А при установленной опции "Full Security" и на все GET запросы управления. В режиме safe mode пароль не запрашивается !

На данной вкладке можно задать имя модулю, которое будет отображаться на главной и в системе flymon, а так же в топике на MQTT сервере.

Указанные выше действия выполнять не требуется, если прошивка была собрана с опцией Настройки по умолчанию , где были заранее прописаны параметры роутера и IP адрес. После успешной прошивки и перезагрузки сразу можно заходить на указанный IP адрес модуля внутри своей wi-fi сети.

Решение проблем с прошивкой

Иногда, после сторонних прошивок или мусора модуль может не запустится и необходимо выполнить дополнительные действия. Необходимо затереть flash память пустым бланком по адресу 0x00000. Далее уже прошиваем саму прошивку снова.

У некоторых пользователей даже после зачистки бланком модуль не стартует или стартует только при установленном режиме 512 кб или 4мб, возможно это связано с низким качеством flash памяти или частичной её несовместимостью с чипом ESP8266. По некоторым сведениям от пользователей помогает замена чипа памяти.

Если на главной странице модуля выводится сообщение "Error flash size ! (code 0x1)", то это значит была прошита прошивка 1мегабайт в режиме 512кб. При этом включается режим Safe Mode и возможны сбои в работе модуля из-за таких неверных настроек. Убедитесь, что на модуле установлен необходимый размер памяти - это видно на веб вкладке ИП_АДРЕС/debug в строке Flash real size. Режим объема памяти указывается в прошивающей программе.

Если на главной странице модуля выводится сообщение "Error flash size ! (code 0x2)", то это модуль имеет всего 512кб flash памяти и это значит, что необходимо использовать прошивку без включенного режима 1 мегабайт или не использовать OTA. Можно так же перепаять микросхему flash памяти на более ёмкую.

ВАЖНО !!  Если модуль не может получить IP адрес. Висит постоянно статус connect , то рекомендуется вписать IP адрес вручную ниже. Для этого необходимо выбрать режим Static IP и вписать IP модуля и IP шлюза(IP роутера). После этого можно заходить на модуль уже внутри сети по IP адресу, который указали в настройках..

Иногда статус connect может висеть, если тип шифрования на роутере включен, который не поддерживается чипом ESP8266.

Сохранение настроек в файл

Этот метод является устаревшим, рекомендуется воспользоваться опцией Экспорт/Импорт настроек.

Настройки модуля можно сохранить в файл, исключая настройки WI-FI, состояния GPIO, список датчиков DS18B20. Файл необходимо скачать по адресу ИП_АДРЕС/configsave.bin . Записывается обратно в модуль через программатор по адресу 0x3C000 для 512кб прошивки, 0x7C000 - для 1мб. Настройки можно скачать и через esptool.py используя пример ниже подставив нужный адрес. 

Скачать настройки WI-FI можно по адресу ИП_АДРЕС/configsave.bin?pg=66 для 512кб, ИП_АДРЕС/configsave.bin?pg=130 для 1 мег. Скачать через esptool.py можно командой esptool.py read_flash 0x7E000 4096 mywifi_settings.bin для 512 кб (Для 1024кб адрес будет 0xfe000).

Полезные ссылки:

Видеоинструкция по настройке от Umka.

Видеоинструкция по настройке от Genia1no_prosto

Видеоинструкция по настройке от Sergiy (ArmoR)

Модуль ESP-01(esp8266) или WiFi для начинающих.

Рано или поздно все мы приходить к тому что нам не хватает подключения к Сети в наших проектах на платформе Ардуино. Действительно как же в 21 веке без статуса Онлайн )) И тут нам на выручку приходит  WiFI чип ESP8266 и готовые  модули на его основе. У меня в руках самый простой модуль (для новичков) ESP-01 :

Модуль устроен достаточно просто и имеет минимальный набор выводов :

  • ESP8266EX — сердце всего модуля.
  • P25Q80H (или другой чип) — Flash Memory на 1 Мбайт.
  • Кварц и обвязка со свето диодиками.
ESP8266EX

Китайский производитель Espressif сделал дешевый чип  с интерфейсом Wi-Fi и возможностью исполнять программы из внешней флеш-памяти с интерфейсом SPI. По сути это микроконтроллер и радио модуль для Wi-Fi в одном корпусе :

  • 80 MHz 32-bit процессор Tensilica.
  • IEEE 802.11 b/g/n Wi-Fi. Поддерживается WEP и WPA/WPA2.
  • 14 портов ввода-вывода(из них возможно использовать 11), SPI, I²C, I²S, UART, 10-bit АЦП. В нашем случае мы можем использовать только ограниченные выводы чипа.
  • Питание 2,2…3,6 В. Логика и питание чипа 3.3 В, будьте внимательны !  
  • Интегрированный стек TCP/IP. HTML

Выводы, подключение :

Возможности чипа очень большие, будем разбираться по степенно.

Выводы модуля :

  • VCC — плюс питания 3.3 В
  • GND — минус питания 3.3 В
  • TX — аппаратный UART.
  • RX — аппаратный UART.
  • RST — кратковременно подав на неё низкий логический уровень, модуль перезагрузиться. Лучше прижать ее через резистор 10 кОм к плюсу питания.
  • CH_PD(или по-другому EN) — служит для перевода модуля в энергосберегающий режим, в котором он потребляет очень маленький ток. Ну и снова — не будет лишним «прижать» эту ногу резистором на 10 кОм к плюсу питания.

По умолчанию во флешь-память ужа записана заводская прошивка с поддержкой АТ команд для управления чипом. Конечно можно залить и другие прошивки, но в этой статье мы будем работать именно в таком режиме с модулем. Суть проста по UART передаем команду, получаем ответ от модуля. Для этого нам потребуется  USB-to-Serial TTL конвертор что бы подключить модуль к компу. Так как у меня под рукой его нету то я буду использовать Arduino Nano в его качестве. 

Питание модуля отдельный вопрос. Пиковое потребление чипа может достигать 250 мА ( в datasheet указано 170 мА при использование Tx802.11b). Внимание! Этот модуль основан на 3.3 В логике, так что придется его питать от своего источника питания. Или через резисторный делитель(1 кОм и 2 кОм) с вывода +5 Ардуино. Выводы RX и TX надо тоже подключить через делитель  или через logic converter (например CD4050B).

Что бы Ардуино превратить в USB-to-Serial TTL конвертор зальем в контролер пустой скетч :

void setup() { }
void loop() { }

Далее Arduino нужно замкнуть RESET на GND.  Это изолирует процессор от I/O пинов. Альтернатива этому удаление микросхемы из «кроватки».  При этом выводы TX, RX устройства нужно подключить без перекрещивания. т.е. :

esp TX → ard TX
esp RX → ard RX

Подключаем все , открываем монитор портов в Arduino IDE и поехали.

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

AT-Команды.

Для на чало мы проверим  что все работает и  отправим в терминале:

AT

OK

Проверим  прошивку :

AT+GMR

AT version:1.2.0.0(Jul 1 2016 20:04:45)
SDK version:1.5.4.1(39cb9a32)
Ai-Thinker Technology Co. Ltd.
Dec 2 2016 14:21:16
OK

Для подключения Wi-Fi выберем режим модуля: доступны следующие режимы: 1 — STA, 2 — AP, 3 — Station+AP

AT+CWMODE=1

OK

Смотрим список точек доступа командой:

AT+CWLAP 
+CWLAP:(3,"MTSRouter-047188",-77,"00:1f:ce:ac:e4:de",2,-21,0)
+CWLAP:(3,"RT-WiFi_2958",-93,"78:96:82:44:29:58",4,10,0)
+CWLAP:(3,"Test",-63,"ac:f1:df:c9:a5:82",6,0,0)
+CWLAP:(3,"TP-LINK_4E54E0",-85,"f8:1a:67:4e:54:e0",6,103,0)
+CWLAP:(3,"GARNIER",-89,"60:a4:4c:df:83:38",6,-31,0)
+CWLAP:(2,"Oslik",-73,"bc:f6:85:cb:d7:53",7,-9,0)
+CWLAP:(3,"Keenetic-6619",-80,"e8:37:7a:9a:93:46",8,8,0)
+CWLAP:(2,"beeline-router_78",-90,"fc:75:16:4a:39:42",9,-26,0)
+CWLAP:(3,"ASUS",-91,"f4:6d:04:df:d3:e8",11,-14,0)
+CWLAP:(4,"Beeline_2G_F14986",-83,"78:94:b4:a3:8c:cc",11,-14,0)

OK

В скобках указывается: SECURITY, SSID, RSSI, BSSID, CHANNEL
SECURITY может принимать значения:
0 — OPEN, 1 — WEP, 2 — WPA-PSK, 3 — WPA2-PSK, 4 — MIXED (WPA-WPA2-PSK)

Подключаемся к нашей точке:

AT+CWJAP="Oslik","password"
WIFI CONNECTED
WIFI GOT IP

OK

Посмотреть какой ip получил наш модуль:

AT+CIFSR
+CIFSR:STAIP,"192.168.0.55"
+CIFSR:STAMAC,"b4:e6:2d:22:f6:61"

OK

Все настройки запоминаются во флешь память, сбросить настройки на заводские можно командой:

AT+RESTORE

Задать скорость UART :

AT+CIOBAUD=9600

OK

Перезагрузить модуль :

AT+RST

OK
?)⸮⸮⸮@H

<⸮⸮⸮⸮@H⸮⸮!`̌⸮
⸮K⸮ZHRh|$ ⸮⸮ؤ⸮
Ai-Thinker Technology Co. Ltd.

ready

Команды делятся условно на три части : системные, Wi-Fi,TCP. Полный список команд можно посмотреть в datasheep. Ну а мы перейдем к командам режима TCP-сервера. На плате ESP-01 можно запустить TCP-сервер для приема-отправки данных или она может выступать TCP-клиентом для приема-отправки данных на сервер.
Для запуска TCP-сервера выполним следующие команды:

AT+CIPMODE=0

OK

0 — not data mode (сервер может отправлять данные клиенту и может принимать данные от клиента).
1 — data mode (сервер не может отправлять данные клиенту, но может принимать данные от клиента).

Устанавливаем возможность множественных соединений:

AT+CIPMUX=1

OK

0 — single connection.
1 — multiple connection.

Запускаем сервер на порту 80:

AT+CIPSERVER=1,80 (mode,port)

OK

0 — to close server
1 — to open server

Теперь можно подключиться к ESP-01 и отправить-принять какие-нибудь данные. На потребуется telnet клиент, я использую PuTTY. При подключение модуль нам сообщает что подключился клиент и показывает нам id клиента.

0,CONNECT

+IPD,0,21:⸮⸮⸮⸮ ⸮⸮⸮⸮'⸮⸮⸮⸮⸮⸮

Посмотреть список активных подключений к ESP-01 можно командой AT+CIPSTATUS
Пример:

AT+CIPSTATUS

+CIPSTATUS:0,"TCP","192.168.0.19",57907,80,1
OK

Закрыть активное соединение можно командой

AT+CIPCLOSE=id или все соединения AT+CIPCLOSE без параметров.

AT+CIPCLOSE=0 
0,CLOSED

OK

Отправляем данные с ESP-01 на ПК. Для режима Single connection отправка идет так :AT+CIPSEND=length, для режима Multiple connection отправка идет так: AT+CIPSEND=id,length.

AT+CIPSEND=0,6  (6 байт)

OK
> 
Hellow

busy s...
Recv 6 bytes
SEND OK

WiFi-модуль

- ESP8266 (4 МБ флэш-памяти) - WRL-17146

WiFi-модуль ESP8266 - это автономный SOC со встроенным стеком протоколов TCP / IP, который может предоставить любому микроконтроллеру доступ к вашей сети WiFi. ESP8266 может либо размещать приложение, либо выгружать все сетевые функции WiFi с другого процессора приложений. Каждый модуль ESP8266 поставляется с предварительно запрограммированной прошивкой с набором команд AT, что означает, что вы можете просто подключить его к своему устройству Arduino и получить примерно столько же возможностей WiFi, сколько предлагает WiFi Shield (и это просто из коробки)! Модуль ESP8266 - чрезвычайно экономичная плата с огромным и постоянно растущим сообществом.

Этот модуль обладает достаточно мощными встроенными возможностями обработки и хранения, что позволяет интегрировать его с датчиками и другими устройствами для конкретных приложений через GPIO с минимальной предварительной разработкой и минимальной нагрузкой во время выполнения. Его высокая степень интеграции в кристалл позволяет использовать минимальные внешние схемы, включая интерфейсный модуль, который занимает минимальную площадь на печатной плате. ESP8266 поддерживает APSD для приложений VoIP и сопутствующие интерфейсы Bluetooth, он содержит самокалиброванный радиочастотный модуль, позволяющий ему работать в любых рабочих условиях, и не требует внешних радиочастотных компонентов.

Существует почти безграничный источник информации, доступной для ESP8266, и вся эта информация была предоставлена ​​замечательной поддержкой сообщества. В разделе Documents ниже вы найдете множество ресурсов, которые помогут вам в использовании ESP8266, даже инструкции о том, как преобразовать этот модуль в решение IoT (Интернет вещей)!

Примечание: Модуль ESP8266 не поддерживает логический сдвиг 5–3 В и требует внешнего преобразователя логического уровня. Пожалуйста, не подключайте его напрямую к плате разработки на 5 В.


Нужна нестандартная плата? Этот компонент можно найти в конструкторе плат SparkFun À La Carte. Вы можете изготовить индивидуальный дизайн с этим компонентом - и на ваш выбор сотни других датчиков, исполнительных механизмов и беспроводных устройств - доставить вам всего за несколько недель.

вещей, которые вы должны знать перед использованием ESP8266 WiFi-модуль

ESP8266 - это 3-вольтовый WiFi-модуль, очень популярный для приложений Интернета вещей. Максимальное рабочее напряжение ESP 8266 - 3.6V и это очень важно отметить. Вы должны знать, как включить его, как безопасно подключить его к Arduino через последовательный порт, как выполнить пинг и многое другое. Вам следует использовать такие программы, как Circuito.io, Tinkercad, Fritzing, для безопасного моделирования и работы с доской. Вы также должны использовать Logic Level Controller для использования с модулем ESP8266.

ESP 8266 Распиновка

ESP8266 имеет 8 контактов, а именно:

VCC и GND - контакты питания. RX и TX используются для связи. Вам также следует ознакомиться с таблицей данных ESP8266 по адресу https: // cdn.sparkfun.com/datasheets/Wireless/WiFi/ESP8266ModuleV1.pdf

Питание ESP 8266

Есть много способов питания модуля Wi-Fi ESP8266: вы можете использовать 2 батареи размера AA для питания, порт ПК, если у вас есть TTL-Serial-to -USB-адаптер (не пытайтесь подключить модуль к последовательному порту ПК напрямую, это может привести к повреждению модуля или компьютера!). Для питания платы ESP Dev Thing можно использовать батареи LIPO. Можно использовать регулятор напряжения LM117 3.3V.

Максимальное напряжение ESP8266 равно 3.6 В, поэтому на плате есть стабилизатор на 3,3 В, обеспечивающий безопасное и стабильное напряжение на ИС. Это означает, что контакты ввода-вывода ESP8266 также работают при напряжении 3,3 В, вам потребуется контроллер логического уровня для любых сигналов 5 В, поступающих на ИС.

В качестве альтернативы, если у вас есть внешний регулируемый источник питания, который вы хотите подавать непосредственно на ESP8266, вы можете подать это напряжение через вывод 3V3 (на разъеме I2C). Хотя это напряжение не обязательно должно быть 3,3 В, оно должно находиться в диапазоне 1.7-3,6 В .

Вы также можете запитать ESP от двух батареек AA. Плюс от батарей к VCC ESP и GND к GND ESP 8266.

Я использовал Tinkercad, чтобы показать, как плата не справляется даже с 0,1 лишним. Максимальное напряжение, которое вы можете дать, составляет 3,5 В. Вы должны использовать такое программное обеспечение для моделирования, чтобы убедиться, что мощность, которую вы доставляете в ESP, безопасна или нет.

Использование логического контроллера уровня

Преобразователь уровня очень прост в использовании. Плата должна получать питание от двух источников напряжения (высокого и низкого), которые использует ваша система.Высокое напряжение (например, 5 В) на вывод «HV», низкое напряжение (например, 3,3 В) на «LV» и заземление от системы к выводу «GND».

Обмен данными ESP 8266 через Arduino UNO

Для связи с ESP8266 через Arduino UNO вам понадобится промежуточный контроллер логического уровня для безопасной работы с ESP8266.

Подключения:

Для подключения ESP к Arduino подключите ESP8266 RX к контроллеру логического уровня 1.

  • Подключите ESP TX к контроллеру логического уровня 2.
  • ESP VCC для Arduino UNO 3,3 В
  • Контроллер логического уровня Уровень для Arduino 3,3 В.
  • Контроллер логического уровня GND к Arduino GND.
  • Контроллер логического уровня от HV до Arduino 5V.
  • Контроллер логического уровня от HV1 до 11-го контакта Arduino.
  • Контроллер логического уровня HV2 на 10-й контакт Arduino.

Код теста приведен в разделе кода ниже.

Обмен данными с модулем ESP 8266

Нажмите «Пуск», «Выполнить», введите CMD и нажмите «Ввод».Введите IPCONFIG и нажмите ввод. Введите PING и IP-адрес вашего модуля. Успешный запрос PING всегда возвращает набор чисел. Если вы получаете сообщение «Request Time Out», это означает, что что-то не обменивается данными.

Затем введите свой IP-адрес в свой веб-браузер, и теперь вы можете общаться с модулем ESP8266.

Находясь в Circuito.io

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

Вы можете найти эту программу в разделе приложений на Hackster.io. Circuito.io дает вам возможность создать свой проект. Теперь вам нужно добавить возможность подключения в виде модуля Wi-Fi ESP8266. Вы также можете добавить ввод и вывод.

Нажмите «Добавить подключение», а затем выберите модуль WiFi ESP8266. Затем нажмите кнопку «Предварительный просмотр». Вы должны получить схему, как показано ниже.

Вы также можете увидеть его Руководство по проекту. Разве это не полезно?

Лучшая плата для разработки Wi-Fi ESP8266

Вы собираетесь начать работу с ESP8266? Прочтите этот пост, чтобы выяснить, какая плата для разработки Wi-Fi ESP8266 лучше всего подходит для вашего проекта.

ESP8266 - это модуль Wi-Fi за 4 доллара (до 10 долларов). Он позволяет вам управлять входами и выходами, как если бы вы делали это с Arduino, но у него есть Wi-Fi.

Есть новая плата под названием ESP32, так что вам, возможно, понравится читать Best ESP32 Development Boards .

Если сравнивать ESP с другими решениями Wi-Fi на рынке, это отличный вариант для большинства проектов «Интернет вещей»! Легко понять, почему он так популярен: он стоит всего несколько долларов и может быть интегрирован в сложные проекты.Кроме того, он совместим с Arduino IDE. Итак, если вы раньше работали с Arduino, мы легко привыкнем к работе с ESP8266.

Мы опубликовали десятки бесплатных проектов и руководств по ESP8266. Один из лучших проектов для экспериментов с ESP8266, когда вы только начинаете, - это создание простого веб-сервера для управления выходными данными.

Рекомендуемый ресурс: Домашняя автоматизация с использованием ESP8266 eBook


Сравнение лучших плат ESP8266

В настоящее время существует множество плат для разработки с ESP8266, которые различаются количеством GPIO, стилями антенн, размером, совместимостью с макетами и т. Д.

Мы создали подробное справочное руководство по распиновке ESP8266, в котором подробно рассказывается, что делает каждый вывод и как их использовать.

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

Рекомендуемая литература: ESP8266 Распиновка Ссылка: Какие контакты GPIO следует использовать?

ESP8266 Комплект 12-E NodeMCU

Комплект ESP12-E NodeMCU Kit - одна из наиболее часто используемых плат разработки ESP8266.Он имеет 4 МБ флеш-памяти, доступ к 11 выводам GPIO и один вывод аналого-цифрового преобразователя (АЦП) с разрешением 10 бит. Плата имеет встроенный регулятор напряжения, и вы можете включить модуль с помощью разъема mini USB или контакта Vin.

Загрузить код на плату так же просто, как загрузить код в Arduino, нет необходимости в программаторе FTDI, так как он поставляется со встроенным преобразователем usb-to-serial.

Это плата, которую мы чаще всего используем в наших проектах Wi-Fi и IoT.Он очень универсален и отлично подходит для начинающих. Итак, если вы впервые используете ESP8266, этот модуль - отличный выбор. Просмотрите ссылки ниже, чтобы найти комплект ESP8266 12-E NodeMCU в вашем любимом магазине.

WeMos D1 Mini

WeMos D1 Mini предлагает 4 МБ флэш-памяти, 11GPIO, 1 вывод АЦП в минимальной и небольшой конфигурации. Так что, если вам нужно что-то, что потребляет меньше энергии для более экономичного проекта, это хороший вариант. Кроме того, сообщество разработало широкий спектр экранов для мини-платы D1, что позволяет создавать небольшие и простые установки практически без проводов.Мини-доска WeMos D1 также является отличным вариантом для новичков.

Однако на плате нет припаянных контактов разъема, поэтому вам нужно припаять их самостоятельно. Если вам нужен паяльник, вы можете проверить рекомендуемые паяльники для начинающих.

Мини-плата WeMos D1 стоит около 4 долларов в зависимости от магазина. Перейдите по ссылкам ниже, чтобы найти доску в своем любимом магазине.

ESP8266 ESP-01

ESP-01 очень маленький и помещается в любой корпус, поэтому идеально подходит для готовых проектов.В обновленной версии флеш-память составляет 1 МБ (в предыдущей версии - 512 кБ). Он предлагает четыре порта GPIO для управления и подключения периферийных устройств (два из которых - TX и RX для последовательной связи). Итак, если вам нужно больше периферийных устройств в ваших проектах, возможно, вам стоит использовать одну из предыдущих плат. На плате нет встроенного регулятора напряжения, поэтому вам нужно использовать источник питания 3 В 3 или добавить регулятор напряжения, чтобы снизить входное напряжение до 3 В 3.

Кроме того, он не имеет конвертера USB в последовательный порт, что означает, что вам понадобится программатор FTDI для загрузки пользовательской прошивки.Если вы хотите начать работу с ESP-01, прочтите наше руководство по началу работы.

ESP-01 отлично подходит для приложений, требующих небольшого количества периферийных устройств. Однако, если вы впервые используете ESP8266, мы рекомендуем приобрести одну из предыдущих плат. Они более удобны для новичков и более универсальны.

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

Рекомендуемый ресурс: Домашняя автоматизация с использованием ESP8266 eBook


Нужна помощь по началу работы с ESP8266?

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

Домашняя автоматизация с ESP8266

Это наш премиальный курс ESP8266. Узнайте, как можно использовать ESP8266 для автоматизации дома. Даже если вы абсолютный новичок, вы сможете продолжить и придумать свои собственные проекты Интернета вещей. Вы можете получить доступ к курсу здесь.

ESP8266 Проекты

У нас есть десятки бесплатных проектов с ESP8266.Вот краткий список некоторых из наших самых популярных проектов:

Вы также можете выполнить поиск по всем нашим проектам ESP8266.

Завершение

В этой статье мы рассмотрели три различных платы разработки ESP8266: ESP8266 12-E NodeMCU Kit, WeMos D1 Mini и ESP-01. Доступно гораздо больше альтернатив, но мы рассмотрели те, которые мы используем чаще, а также самые популярные.

Мы рекомендуем комплект NodeMCU или WeMos D1 Mini, поскольку обе платы имеют встроенный чип программатора, который упрощает загрузку пользовательской прошивки.Кроме того, они также предлагают разумное количество контактов GPIO. Если вы новичок, вам следует выбрать одну из этих досок. Однако, если вам нужна действительно маленькая плата для вашего проекта и нужно всего 2 GPIO, ESP-01 - лучшая и более дешевая альтернатива.

В этом посте мы показали вам и сравнили наши любимые Лучшие платы для разработки Wi-Fi ESP8266 . Они идеально подходят для использования в ваших проектах Интернета вещей (IoT). Какой из них твой любимый?

Возможно, вам понравится прочитать:

Ищете более выгодные предложения на электронику и инструменты? Обязательно подпишитесь, чтобы узнавать о предстоящих сделках и дополнительно экономить на своем любимом снаряжении!


[Рекомендуемый курс] Изучите ESP32 с Arduino IDE

Зарегистрируйтесь в нашем новом курсе ESP32 с Arduino IDE.Это наше полное руководство по программированию ESP32 с Arduino IDE, включая проекты, советы и хитрости! Регистрация открыта, поэтому зарегистрируйтесь сейчас .


Другие курсы RNT

Связанные

ESP8266 Распиновка, конфигурация контактов, характеристики, пример схемы и техническое описание

ESP8266 WiFi-модуль

ESP8266 WiFi-модуль

ESP8266 Распиновка

нажмите на картинку для увеличения

ESP8266 Конфигурация контактов

Номер контакта

Имя контакта

Альтернативное имя

Обычно используется для

Альтернативное назначение

1

Земля

Подключен к земле цепи

2

TX

GPIO - 1

Подключен к выводу Rx программатора / микроконтроллера для загрузки программы

Может действовать как контакт ввода / вывода общего назначения, когда не используется как TX

3

ГПИО-2

Контакт ввода / вывода общего назначения

4

CH_EN

Chip Enable - Активный высокий

5

GPIO - 0

Вспышка

Контакт ввода / вывода общего назначения

Переводит модуль в режим последовательного программирования при низком уровне во время запуска

6

Сброс

Сбрасывает модуль

7

RX

GPIO - 3

Контакт ввода / вывода общего назначения

Может действовать как контакт ввода / вывода общего назначения, когда не используется как RX

8

Vcc

Подключиться к +3.Только 3 В

ESP8266-01 Характеристики
  • Недорогой, компактный и мощный модуль Wi-Fi
  • Источник питания: только + 3,3 В
  • Потребление тока: 100 мА
  • Напряжение ввода / вывода: 3,6 В (макс.)
  • Ток источника ввода / вывода: 12 мА (макс.)
  • Встроенный 32-битный микроконтроллер с низким энергопотреблением @ 80 МГц
  • Флэш-память 512 КБ
  • Может использоваться как станция или точка доступа или оба вместе
  • Поддерживает глубокий сон (<10 мкА)
  • Поддерживает последовательную связь, следовательно, совместим со многими платформами разработки, такими как Arduino
  • Может быть запрограммирован с использованием Arduino IDE, AT-команд или Lua Script

ESP8266 Эквиваленты

ESP-12 (имеет больше контактов GPIO, которые поддерживают АЦП, ШИМ, SPI и т. Д.)

Альтернатива для ESP8266-01

ESP32 (более мощный и автономный модуль)

ESP8266-01 Вариант загрузки

GPIO - 0

GPIO - 2

Режим

Используется для

Высокая

Высокая

Режим вспышки

Запустить программу, которая уже загружена в модуль

Низкая

Высокая

Режим UART

Режим программирования - для программирования с использованием Arduino или любой другой последовательной связи

Где использовать ESP8266-01

ESP8266 - очень удобное и недорогое устройство, обеспечивающее подключение к Интернету для ваших проектов.Модуль может работать как точка доступа (может создавать точки доступа) и как станция (может подключаться к Wi-Fi), поэтому он может легко извлекать данные и загружать их в Интернет, что делает Internet of Things максимально простым. Он также может получать данные из Интернета с помощью API, поэтому ваш проект может получить доступ к любой информации, доступной в Интернете, что делает его умнее. Еще одна интересная особенность этого модуля - то, что он может быть запрограммирован с помощью Arduino IDE, что делает его намного более удобным для пользователя.Однако эта версия модуля имеет только 2 контакта GPIO (вы можете взломать его, чтобы использовать до 4), поэтому вам придется использовать его вместе с другим микроконтроллером, таким как Arduino, иначе вы можете посмотреть на более автономный ESP-12 или ESP -32 версии . Поэтому, если вы ищете модуль , чтобы начать работу с IOT или обеспечить подключение к Интернету для вашего проекта, этот модуль - правильный выбор для вас.

Как использовать модуль ESP8266

Существует так много методов и IDE, доступных для модулей ESP, но наиболее часто используется Arduino IDE.Так что давайте обсудим только это ниже.

Модуль ESP8266 работает только с 3,3 В, все, что превышает 3,7 В, приведет к отключению модуля, поэтому будьте осторожны с вашими схемами. Лучший способ запрограммировать ESP-01 - использовать плату FTDI, которая поддерживает программирование 3,3 В. Если у вас ее нет, рекомендуется купить ее или на время вы также можете использовать плату Arduino. Одна из распространенных проблем, с которыми каждый сталкивается при использовании ESP-01, - это проблема с включением питания. Модуль немного потребляет электроэнергию во время программирования, поэтому вы можете включить его с помощью 3.Вывод 3V на Arduino или просто используйте делитель потенциала. Поэтому важно сделать небольшой регулятор напряжения на 3,31 В, который мог бы обеспечивать минимум 500 мА. Один из рекомендуемых регуляторов - LM317, который легко справится с работой. Упрощенная принципиальная схема для использования модуля ESP8266-01 приведена ниже

.

Переключатель SW2 (переключатель программирования) должен удерживаться нажатым, чтобы удерживать контакт GPIO-0 на земле. Таким образом, мы можем войти в режим программирования и загрузить код.Как только код будет выпущен, переключатель можно будет отпустить.

Приложения
  • Проекты IOT
  • Порталы точек доступа
  • Беспроводная регистрация данных
  • Автоматизация умного дома
  • Изучите основы работы в сети
  • Портативная электроника
  • Умные лампочки и розетки

2D - Модель

WIFI-ESP8266 - Аппаратная плата с открытым исходным кодом

MOD-WIFI-ESP8266 https: // www.olimex.com/Products/IoT/ESP8266/MOD-WIFI-ESP8266/open-source-hardware
Цена 3,45 EUR
10 - 49 штук 3,28 EUR
50 - 10000 штук 3,11 EUR

MOD-WIFI-ESP8266 - это оборудование с открытым исходным кодом, сертифицированное OSHW, с UID BG000013

MOD-WIDI-ESP8266 - это модуль расширения UEXT со знаменитым ESP8266 UART to WIFI IC. С помощью этого модуля вы можете добавить возможности WIFI к другим платам разработки Olimex с разъемом UEXT.В нашем модуле установлено 2 МБ флэш-памяти SPI.

Идея MOD-WIFI-ESP8266 заключается в использовании его в качестве простого аппаратного расширения существующих плат Olimex. Поэтому у него есть разъем UEXT. Вы подключаете его к другой плате с разъемом UEXT, и аппаратные соединения завершены. На схемах видно, что MOD-WIFI-ESP8266 использует только первые 4 контакта UEXT - # 1 (3,3 В постоянного тока), # 2 (GND), # 3 (RXD), # 4 (TXD). Это означает, что доступен только интерфейс UART для передачи данных. Остальные контакты микросхемы не маршрутизированы для облегчения доступа - если вам нужно больше сигналов, рассмотрите MOD-WIFI-ESP8266-DEV или ESP8266-EVB.Чтобы обновить прошивку платы, вам необходимо изменить положение перемычек SMT.

MOD-WIFI-ESP8266 рекомендуется для людей, которые уже имеют некоторый опыт работы с ESP8266. Рассмотрите ESP8266-EVB, если вы полный новичок. Если вы хотите добавить возможности WIFI на свою плату, рассмотрите также MOD-WIFI-ESP8266-DEV.

ОСОБЕННОСТИ
  • Основной чип: EPS8266EX
  • 2 МБ (16 МБ) флэш-память SPI
  • Разъем UEXT
  • Индикатор питания
  • Программируемый пользователем светодиод
  • Перемычки SMT для разных режимов загрузки (FLASH, UART, SDO)
  • PCB антенна
  • Пэды для U.Разъем антенны FL (если вы хотите использовать внешнюю антенну)
  • OSHW дизайн
  • Размеры: (1,38 x 0,69) "~ (3,50 x 1,75) см

FAQ
  • Как отправить AT-команды на плату?

  • Вам необходимо установить соединение UART с платой (используя RX, TX, GND). Лучше всего использовать кабель USB-последовательный порт с 3.Преобразователь 3В TTL и источник питания 3,3 В. Перемычки платы должны быть в режиме FLASH по умолчанию. Вам нужно будет либо использовать кабель, который может питать цели, либо разделить линию GND. Причина в том, что блоку питания нужна линия GND, а кабелю нужна линия GND, но на плате есть только один GND на разъеме (вывод UEXT # 2). Вы можете использовать MOD-USB-RS232 для простого подключения к персональному компьютеру (вам нужно будет изменить перемычки MOD-USB-RS232, чтобы иметь возможность питать MOD-WIFI-ESP8266 и связываться с ним; как только это будет сделано становится установкой plug-and-play)

  • Я хочу отправить на плату базовые AT-команды, но не получаю ответа.Странно то, что при включении модуля я получаю "готово". В чем проблема?

  • Все AT-команды должны заканчиваться возвратом каретки и переводом строки - «/ r / n». В вашем терминальном программном обеспечении может быть такая новая опция строки - передача CR + LF в конце каждой команды. Если это не так - либо используйте другое программное обеспечение терминала, либо попробуйте отправить команды с помощью комбинации клавиш «CTRL» + «J» вместо «ENTER».

ESP8266 NodeMCU V1.0 ESP-12E WiFI модуль

Описание

WiFi-модуль ESP8266 NodeMCU V1.0 ESP-12E является последней версией этого популярного модуля и может использоваться в качестве замены Arduino с поддержкой WiFi во многих приложениях.

В ПАКЕТЕ:
  • ESP8266 NodeMCU V1.0 ESP-12E WiFi-модуль

Основные характеристики ESP8266 NodeMCU V1.0 Модуль ESP-12E:
  • Микроконтроллер: ESP-8266 32-бит
  • Тактовая частота: 80 МГц
  • USB-преобразователь: CP2102
  • Разъем USB: Micro USB
  • Рабочее напряжение: 3.3В
  • Флэш-память: 4 МБ
  • Цифровой ввод / вывод: 11
  • Аналоговые входы: 1
  • Связь: Последовательный, SPI. I2C и 1-Wire через программные библиотеки
  • WiFi: встроенный 802.11 b / g / n

Помимо добавления возможности Wi-Fi, основная претензия к процессору ESP8266 по сравнению с процессором AVR стандартного Arduino заключается в том, что он имеет больший объем флэш-памяти 4 МБ и работает с тактовой частотой 80 МГц и иногда может быть дополнительно разогнан до 160 МГц и, следовательно, имеет очень высокую скорость обработки.

Все цифровые входы / выходы поддерживают ШИМ и прерывания. Кроме того, они могут быть оснащены подтягивающими или понижающими резисторами. Хотя имеется 11 цифровых контактов ввода / вывода, 2 обычно зарезервированы для использования в качестве линий TX / RX, если используется последовательная связь, которая оставляет 9 цифровых входов / выходов.

С другой стороны, он имеет только 1 аналоговый вход, что, вероятно, является наиболее значительным ограничением для некоторых типов датчиков. Это всегда можно преодолеть, используя внешний модуль аналогового мультиплексирования, такой как наш 16-канальный 74HC4067 или наш 4-канальный 16-разрядный модуль АЦП ADS1115, указанный ниже, если требуется больше аналоговых входов / выходов.

Модуль может получать питание через порт USB или от внешнего источника питания 7–12 В, подключенного к выводу VIN. Модуль работает от 3,3 В, так что имейте это в виду при работе с вводом-выводом. Цифровой ввод / вывод заявлен как устойчивый к 5 В, но аналоговый ввод должен быть ограничен до <3,3 В.

Синий встроенный светодиод подключен к D0 (GPIO16) и доступен с помощью константы LED_BUILTIN.

Модуль имеет типичную кнопку «Сброс», а также кнопку «Вспышка». Кнопка Flash используется при программировании с использованием оригинальной прошивки NodeMCU.Если модуль используется с Arduino IDE, кнопку Flash не нужно использовать для программирования платы, и она будет программироваться так же, как любая плата Arduino.

Модуль поставляется с программным обеспечением NodeMCU, которое принимает стандартный набор AT-команд. Первоначально модуль был разработан для программирования с использованием Lua, который является интерпретируемым языком, но от Lua в основном отказались, поскольку он занимает много памяти и работает медленно, потому что интерпретируется, и, что более важно, обычно содержит ошибки.

Его также можно запрограммировать на C с помощью Arduino IDE, и именно так модули используются чаще всего. Пример программы показан ниже. Если программа загружается через IDE, она перезапишет программное обеспечение NodeMCU или все, что было загружено ранее. Если это проблема для того, что вы хотите сделать, программное обеспечение NodeMCU всегда можно перезагрузить.

Существует множество инструкций по установке и использованию плат на базе ESP8266 с Arduino IDE, но вот краткая версия.Обратите внимание, что после добавления типа платы ESP8266 в IDE в раскрывающееся меню «Инструменты» будет добавлено еще много элементов.

  1. Откройте окно настроек и введите следующее в поле «Дополнительные URL-адреса Board Manager»: « http://arduino.esp8266.com/stable/package_esp8266com_index.json ».
  2. В Boards Manager установите ESP8266 от сообщества ESP8266 .
  3. В разделе «Инструменты / Платы» выберите « NodeMCU 1.0 (модуль ESP-12E) ».
  4. Установите скорость загрузки на « 115200 ».
  5. Выберите порт, к которому подключена плата. В моем случае это оказалось COM19
  6. В окне Serial Monitor установите скорость связи 115200 и конец строки Оба NL и CR

Вот как это выглядит на моей установке.

Результаты нашей оценки:

Это фирменные сборки Amica с хорошим качеством сборки

Чтобы проверить, работает ли плата в основном с помощью предварительно загруженного программного обеспечения, вы можете открыть окно последовательного монитора и просто ввести « AT » в верхнее окно последовательного монитора и нажать ENTER .Плата должна вернуться с надписью « OK ». Это означает, что плата жива и установка работает. Если вы не получили ОК, убедитесь, что у вас выбран правильный коммуникационный порт, в окне последовательного монитора установлена ​​скорость передачи 115200 бод, а окончание строки установлено на NL и CR.

У NodeMCU есть несколько особенностей, о которых следует помнить по сравнению со стандартным Arduino.

Во-первых, время компиляции при использовании IDE обычно больше, чем для типичных плат Arduino.Это особенно верно при первой компиляции программы или при изменении параметров сборки, требующих полной перекомпиляции. Последующие компиляции выполняются быстрее.

Модуль не любит длительных задержек кода, и это может привести к сбросу программного обеспечения сторожевого таймера. Это связано с тем, что у модуля есть сетевой стек для обработки Wi-Fi, который должен регулярно обслуживаться процессором. Примером того, чего не следует делать, может быть использование чего-то вроде плотного цикла DO / WHILE, ожидающего нажатия кнопки.

Например, в приведенной ниже программе, если вы должны были проверить кнопку с помощью кода, подобного этому, который блокирует программу до тех пор, пока кнопка не будет нажата, вы столкнетесь с этой проблемой, поскольку она не позволяет процессору отключиться и время от времени сбрасывать сторожевой таймер, поэтому он считает, что он заблокирован, и сбрасывается сам.

 Do {
btn_Status = digitalRead (BUTTON_PIN)
} while (btn_Status == HIGH) 

Если модуль перезагружается каждые пару секунд, ищите проблему этого типа блокировки.Эту проблему можно решить, вставив в цикл функцию yield (), поскольку эта функция позволяет процессору отключиться и позаботиться о других делах, прежде чем вернуться в цикл.

Использование функции delay () не создает такой же проблемы с блокировкой, потому что функция delay () внутренне время от времени вызывает функцию yield ().

Приведенная ниже программа основана на одной из программ-примеров «WiFiScan», которая доступна после загрузки плат ESP8266 в среду IDE. Версия здесь также добавляет кнопку для запуска сканирования любых доступных сетей Wi-Fi и включает встроенный светодиод, пока выполняется сканирование, чтобы показать использование некоторых общих операций ввода-вывода.

В нашем примере кнопка подключена к выводу D6, но можно использовать и другой цифровой вывод. Обязательно заземлите другую сторону кнопки. На этом выводе включен внутренний подтягивающий резистор, поэтому внешний резистор не требуется.

 / *
 * Этот эскиз демонстрирует, как искать доступные сети Wi-Fi.
 * Кнопка ввода используется для запуска сканирования и встроенного светодиода.
 * Горит, чтобы указать, что сканирование находится в процессе
 * Подключите одну сторону кнопки к земле, а другую сторону к
 * Вывод D6 или любой другой вывод цифрового входа.* /
#include "ESP8266WiFi.h"

const int BUTTON_PIN = D6; // Определяем контакт, к которому подключена кнопка
// ================================================ ===============================
// Инициализация
// ================================================ ===============================
void setup () {
 pinMode (LED_BUILTIN, ВЫХОД); // Инициализируем вывод LED_BUILTIN как выход
 pinMode (BUTTON_PIN, INPUT_PULLUP); // Инициализируем вывод кнопки с помощью встроенного подтягивания.digitalWrite (LED_BUILTIN, HIGH); // Убедитесь, что светодиод выключен
  Серийный . Начало (115200); // Устанавливаем скорость связи 115200

 // Установите WiFi в режим станции и отключитесь от точки доступа, если она была ранее подключена
  WiFi . Режим (WIFI_STA);
  WiFi . Отключить ();
 задержка (100);

  Серийный номер  .println («Настройка завершена»);
}
// ================================================ ===============================
//  Основной
// ================================================ ===============================
void loop () {
 int btn_Status = ВЫСОКИЙ;
 btn_Status = digitalRead (BUTTON_PIN); // Проверяем статус кнопки
 if (btn_Status == LOW) {// Кнопка нажата, так что сделайте что-нибудь
  Серийный .println ("запуск сканирования");
 digitalWrite (LED_BUILTIN, LOW); // Включаем светодиод
 // WiFi.scanNetworks вернет количество найденных сетей
 int n =  WiFi  .scanNetworks ();
  Серийный  .println ("сканирование выполнено");
 если (n == 0)
  Serial  .println («сети не найдены»);
 еще
 {
  Серийный номер  .print (n);
  Серийный номер  .println («сети найдены»);
 для (int i = 0; i  Серийный .печать (я + 1);
  Серийный номер  .print (":");
  Серийный номер  .print ( WiFi  .SSID (i));
  Серийный номер  .print ("(");
  Серийный  .print ( WiFi  .RSSI (i));
  Серийный номер  .print (")");
  Последовательный  .println (( WiFi  .encryptionType (i) == ENC_TYPE_NONE)? ": Небезопасно": ": Зашифровано");
 задержка (10);
 }
 }
  Серийный номер  .println ("");
 digitalWrite (LED_BUILTIN, HIGH); // Выключить светодиод
 }
}
 

Перед отправкой это модули:
  • Проверено
  • Включено, проверено командой «AT»
  • Переупакован в высококачественный герметичный пакет ESD для безопасного хранения.

Примечания:

  1. Нет

Технические характеристики
Микроконтроллер ESP8266 Tensilica 32-разрядная
Преобразователь последовательного порта в USB CP2102
Рабочее напряжение 3,3 В
Входное напряжение (рекомендуемое) 7-12В
Цифровые контакты ввода / вывода 11
Контакты ввода / вывода ШИМ (совместно с цифровым вводом / выводом) 10
Аналоговые входные контакты 1 (10 бит)
Постоянный ток на контакт ввода / вывода 12 мА (макс.)
Аппаратные последовательные порты 1
Флэш-память 4 Мбайта
RAM команд 64 Кбайт
ОЗУ данных 96 Кбайт
Тактовая частота 80 МГц
Сеть IEEE 802.11 б / г / п WiF
Встроенный светодиод Присоединен к цифровому выводу 13
Тип разъема USB Micro-B Женский
Размеры платы (PCB) 69 x 53 мм (2,7 x 2,1 дюйма)
Лист данных ESP8266EX

ДОПОЛНИТЕЛЬНОЕ ЧТЕНИЕ

Мартин Карри написал отличную серию статей, связанных с использованием беспроводной связи, особенно с Arduino.Это ссылка на серию его статей, связанных с ESP8266

.

ESP8266 Последовательный модуль WiFi ESP-01 для приложений IOT ESP8266 Последовательный модуль WiFi ESP-01 для приложений IOT [RKI-1450]

WiFi-модуль ESP8266 - это автономный SOC со встроенным стеком протоколов TCP / IP, который может предоставить любому микроконтроллеру доступ к вашей сети WiFi. ESP8266 может либо размещать приложение, либо выгружать все сетевые функции Wi-Fi с другого процессора приложений.Этот модуль поставляется с прошивкой AT-команд, которая позволяет вам использовать такие функции, как Arduino Wi-Fi Shield, однако вы можете загружать различные прошивки, чтобы создавать свои собственные приложения для памяти и процессора модулей. Это очень экономичный модуль, пользующийся огромной и растущей поддержкой сообщества.

Этот модуль имеет встроенный 32-разрядный процессор с низким энергопотреблением 80 МГц, который можно использовать для пользовательских прошивок. Это также означает, что вы можете размещать небольшие веб-страницы без внешнего контроллера.Подробнее см .: NODEMCU. ESP8266 поддерживает APSD для приложений VoIP и интерфейсов сосуществования Bluetooth, он содержит самокалиброванный радиочастотный модуль, позволяющий ему работать в любых условиях эксплуатации, и не требует внешних радиочастотных компонентов.

ESP8266 меняет мир своей низкой стоимостью и широкими возможностями, что делает его идеальным модулем для Интернета вещей (IOT). Его можно использовать в любом приложении, где вам нужно подключить устройство к локальной сети или Интернету.

Примечание: Модуль ESP8266 совместим только с логическим уровнем 3,3 В и не будет работать напрямую с устройствами 5 В (как для последовательного доступа, так и для доступа через GPIO). Вам нужно устройство, совместимое с напряжением 3,3 В, или вам нужно будет преобразовать уровни перед его использованием.

Посетите наш рекомендуемый учебник по этому модулю на сайте Instructables.com

- http://www.instructables.com/id/WiFi-Internet-Controlled-Relays-using-ESP8266-Quic/

Характеристики: