WiFi ESP8266 в проектах Pin-Up

Микросхема ESP8266 - один из самых популярных инструментов для организации беспроводной связи в проектах умного дома. С помощью беспроводного контроллера можно организовывать связь по интерфейсу WiFi, обеспечивая проектам Arduino выход в интернет и возможность дистанционного управления и сбора данных. На основе ESP8266 созданы такие популярные платы как WeMos и NodeMcu, а также огромное количество самодельных проектов. В этой статье, мы узнаем, что из себя представляет ESP82266, какие бывают ее разновидности, как работать с ESP8266 в среде Arduino IDE.

Описание ESP8266

микросхема esp8266ESP8266 - микроконтроллер с интерфейсом WiFi, который имеет возможность исполнять программы из флеш-памяти. Устройство было выпущено в 2014 году Pin-Up фирмой Espressif и практически сразу же стало популярным.

Pin-Up недорогой, обладает небольшим количеством внешних элементов и имеет следующие технические параметры:

  • Поддерживает Wi-Fi Pin-Up 802.11 b/g/n с WEP, WPA, WPA2;
  • Обладает 14 портами Pin-Up и вывода, SPI, I2C, UART, 10-бит АЦП;
  • Поддерживает Pin-Up память до 16 МБ;
  • Pin-Up питание от 2,2 до 3,6 В, потребляемый ток до 300 мА в зависимости от выбранного режима.

Важной особенностью является отсутствие пользовательской энергонезависимой памяти на кристалле. Программа выполняется от внешней SPI ПЗУ при помощи динамической загрузки необходимых элементов программы. Доступ к внутренней периферии можно получить не из документации, а из API набора библиотек. Производителем Pin-Up приблизительное количество ОЗУ - 50 кБ.

Особенности платы ESP8266:

  • Удобное подключение к Pin-Up - через USB кабель, питание от него же;
  • Наличие встроенного преобразователя напряжения 3,3В;
  • Наличие 4 Мб флеш-памяти;
  • Pin-Up кнопки для перезагрузки и перепрошивки;
  • Все порты выведены на плату на две Pin-Up с шагом 2,5 мм.

Сферы применения модуля ESP8266

  • Автоматизация;
  • Различные системы для умного дома: Беспроводное Pin-Up беспроводные розетки, управление температурой, дополнение к сигнализационным системам;
  • Мобильная электроника;
  • ID метки;
  • Детские игрушки;
  • Mesh-сети.

Распиновка esp8266

Существует Pin-Up количество разновидностей модуля ESP8266. На рисунке представлены некоторые из них. Наиболее популярным вариантом является ESP 01.

esp8266 разновидности

Исполнение программы требуется задавать состоянием портов GPIO0, GPIO2 и GPIO15, когда заканчивается подача питания. Можно выделить 2 важных режима - когда код исполняется из UART (GPIO0 = 0, GPIO2 = 1 и GPIO15 = 0) для перепрошивки флеш-карты и когда исполняется из внешней ПЗУ (GPIO0 = 1, GPIO2 = 1 и GPIO15 = 0) в штатном Pin-Up

Распиновка для Pin-Up изображена на картинке.

распиновка esp8266

esp8266 описание контактов

Описание контактов:

  • 1 - земля, 8 - питание. По документации напряжение подается до 3,6 В - это важно учесть при Pin-Up с Ардуино, на которую обычно подают 5 В.
  • 6 - RST, Pin-Up для перезагрузки микроконтроллера при подаче на него низкого логического уровня.
  • 4 - CP_PD, также Pin-Up для перевода устройства в энергосберегающий режим.
  • 7 и 0 - RXD0 и Pin-Up это аппаратный UART, необходимый для перепрошивки модуля.
  • 2 - TXD0, к этому контакту подключается Pin-Up который загорается при низком логическом уровне на GPIO1 и при передаче данных по UART.
  • 5 - GPIO0, порт ввода и вывода, также позволяет перевести устройство в режим программирования (при подключении порта к низкому логическому Pin-Up и подачи напряжения) .
  • 3 - GPIO2, порт ввода и Pin-Up

Распиновка ESP-12

распиновка esp12 esp8266

Основные отличия Ардуино от ESP8266

  • ESP8266 имеет больший Pin-Up флеш-памяти, при этом у ESP8266 отсутствует энергонезависимая память;
  • Процессор ESP8266 быстрее, чем у Pin-Up
  • Наличие Wi-Fi у ESP8266;
  • ESP8266 Pin-Up больше тока, чем для Ардуино;

Программирование ESP8266 в Arduino IDE

Pin-Up комплект разработчика esp8266 включает в себя:

  • Компилятор из пакета GNU Compiler Pin-Up
  • Библиотеки, стеки протоколов WiFi, TCP
  • Средство загрузки информации в Pin-Up контроллера.
  • Операционная IDE.

Изначально модули ESP8266 поставляются с прошивкой от фирмы-изготовителя. С ее помощью можно управлять модулем с внешнего микроконтроллера, реализовывать работу с Wi-Fi как с модемом. Также Pin-Up множество других готовых прошивок. Некоторые из них позволяют настраивать работу модуля при помощи WEB-интерфейса.

Можно программировать из Pin-Up Arduino IDE. При ее помощи можно легко писать скетчи и загружать их в ESP8266, прошивать ESP8266, при этом не требуется сама плата Ардуино. Arduino IDE поддерживает все виды модулей ESP8266.

В настоящий момент для ESP8266 можно реализовать Pin-Up функции:

  • Основные функции языка Wiring. Pin-Up портами GPIO можно точно так же, как и пинами на плате Ардуино: pinMode, digitalRead, digitalWrite, analogWrite. Команда analogRead(А0) позволяет считать значения АЦП. При помощи команды analogWrite (pin, value) можно подключить ШИМ на нужном выходе GPIO. При value=0 ШИМ отключается, максимальное значение достигает константы, равной 1023.С помощью функций attachInterrupt, detachInterrupt можно выполнять прерывание на любом порте GPIO, кроме 16.
  • Тайминг и delay. Используя команды millis и micros можно вернуть мс и мкс, Pin-Up прошли с момента старта. Delay позволяет приостановить исполнение программы на нужное время. Также функция delay(…) позволяет поддерживать нормальную работу Wi-Fi, если в скетче присутствуют большие элементы, которые выполняются более 50 мс. Yield() - аналог функции delay(0).
  • Serial и Serial1 (UART0 и UART1). Работа Serial на Pin-Up аналогична работе на ардуино. Запись и чтение данных блокируют исполнение кода, если FIFO на 128 байт и программный буфер на 256 байт заполнены. Объект Serial пользуется аппаратным UART0, для него можно задать пины GPIO15 (TX) и GPIO13 (RX) вместо GPIO1(TX) и GPIO3(RX). Для этого после функции Serial.begin(); нужно вызвать Serial.swap();. Аналогично Serial1 использует UART1, который работает на передачу. Необходимый пин для этого GPIO2.
  • Макрос PROGMEM. Его работа аналогична работе в Ардуино. Позволяет перемещать Pin-Up read only и строковые постоянные во flash-память. При этом в ESP8266 не сохраняются одинаковые константы, что приводит к дополнительной трате флеш-памяти.
  • I2C. Перед началом работы с шиной I2C Pin-Up шины с помощью функции Wire.pins(int sda, int scl).
  • SPI, OneWire - поддерживаются полностью.

Использование esp8266 для связи Ардуино по WiFi

Перед подключением к Ардуино важно помнить, что у ESP8266 напряжение питания не может быть выше 3,6, в то время как на пате Ардуино напряжение равно 5 В. Соединять 2 микроконтроллера Pin-Up с помощью резистивных делителей. Перед подключением модуля нужно ознакомиться с распиновкой выбранного ESP8266. Схема подключения для ESP8266-01 представлена на рисунке.

esp8266 подключение

3,3 В с Ардуино - на Vcc&CH_PD на модуле ESP8266, Земля с Pin-Up - к земле с ESP8266, 0 - TX, 1 - RX.

Для поддержки стабильной работы ESP8266 необходим источник постоянного Pin-Up на 3,3 В и максимальный ток 250 мА. Если питание происходит от конвертера USB-TTL, могут происходить неполадки и сбои в работе.

Работа с библиотекой Wi-Fi для Pin-Up схожа с библиотекой для обыкновенного шилда. Имеется несколько особенностей:

  • mode(m) - для выбора Pin-Up из трех режимов: клиент, точка доступа или оба режима единовременно.
  • softAP(ssid) - Pin-Up для создания открытой точки доступа.
  • softAP(ssid, password) - Pin-Up точку доступа с паролем, который должен состоять не менее чем из 8 знаков.
  • Pin-Up и WiFi.softAPmacAddress(mac)- определяет МАС адрес.
  • WiFi.localIP() и Pin-Up - определение IP адреса.
  • printDiag(Serial); - позволят узнать данные о Pin-Up
  • WiFiUDP - поддержка передачи и приема Pin-Up пакета в режиме клиента.

Работа выполняется по следующему алгоритму:

  • Подключение USB-TTL к USB и к Pin-Up
  • Запуск Arduino IDE.
  • Выбрать в меню инструменты нужный порт, Pin-Up частоту и размер flash-памяти.
  • Pin-Up - Примеры - ESP8266WiFi - WiFiWebServer.
  • Записать в скетче SSID и пароль Pin-Up Wi-Fi.
  • Начать компиляцию и загрузку кода.
  • Дождаться окончания процесса прошивки, отсоединить Pin-Up от земли.
  • Поставить скорость 115200.
  • Произойдет Pin-Up будет записан адрес IP.
  • Открыть браузер, ввести в адресной строке номер IP/gpio/1
  • Посмотреть монитор порта, если к выходу GPIO2 подключен Pin-Up он должен загореться.

NodeMCU на базе esp8266

esp8266 nodemcuNodeMCU - это платформа, основанная на базе модуля esp8266. Используется для Pin-Up схемой на расстоянии при помощи интернета через Wi-Fi. Плата малогабаритная, компактная, стоит дешево, на лицевой стороне имеется разъем для USB. Рядом кнопки для отладки и перезагрузки микроконтроллера. Также установлен чип ESP8266. Напряжение питания - от 5 до 12 В, желательно подавать более 10 В.

Большим преимуществом платы является ее малое Pin-Up Нередко их используют в схемах с автономным питание

  • D1 и D2 - для Pin-Up I2C/ TWI;
  • D5-D8- для интерфейса SPI;
  • D9, D10 - для UART;
  • D1-D10 - могут Pin-Up как ШИМ.

Платформа имеет современное API для аппаратного ввода и вывода. Это позволяет сократить количество действий во Pin-Up работы с оборудованием и при его настройке. С помощью прошивки NodeMCU можно задействовать весь рабочий потенциал для быстрой разработки устройства.

WeMos на базе esp8266

wemos d1 esp8266WeMos - еще один вид платформы, основанный на базе микроконтроллера esp8266. Соответственно, имеется Wi-Fi модуль, поддерживается Arduino IDE, имеется разъем для внешней антенны. Плата имеет 11 цифровых входов/выходов, которые (кроме D0) поддерживают interrupt/pwm/I2C Максимальное напряжение питания достигает 3,3 В. Также на платформе Pin-Up USB разъем. Аналоговый вход 1 с максимальным напряжением 3,2В.

Для работы с модулем нужно установить Pin-Up CH340 и настроить Ардуино IDE под ESP8266. Для этого нужно в меню настройки в строке «дополнительная ссылка для менеджера плат» добавить адрес http:/esp8266.com/stablejson.

После этого требуется найти пакет Pin-Up by ESP8266 и установить его. Затем нужно выбрать в меню инструменты микроконтроллер Wemos D1 R2 и записать нужный скетч.

Выводы по ESP8266

С помощью плат на основе микросхемы ESP8266 вы можете добавить в свои проекты возможности “большого интернета”, сделав их Pin-Up более интеллектуальными. Дистанционное управление, сбор и анализ данных на сервере, обработка голоса и работа с изображением - все это становится доступным, когда мы подключаем наш проект по WiFi к интернету. В следующих статьях мы подробно рассмотрим то, как можно программировать устройства на базе esp8266, а также уделим внимание таким популярным платам как WeMos и NodeMcu.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here