Схема esp8266: ESP8266:Модули — Онлайн справочник
NodeMCU v3 распиновка | Технохрень
Есть несколько как минимум два типа плат NodeMCU v3:
Распиновка и характеристики NodeMCU v3 таких плат немного отличаются.
Схема NodeMCU v3
Страшная тайна NodeMCU и Arduino
Пришло время открыть самую страшную тайну ардуино. К NodeMCU это тоже относится. У нее есть защитный диод Шоттки, на схеме обозначен как D1. У него много всяких функций, в частности защита USB компа.
Так вот этот поганец периодически сгорает, но не полностью, а наполовину, и выдает маленький ток после себя. И если ваш девайс питается от MicroUSB провода, то все может начать глючить и тупить. Можно его убрать в конечном устройстве и заменить на перемычку. В конечном итоге у USB компа полно всяких защит и без этого диода.
Характеристики NodeMCU
Они плавно вытекают из используемого чипа ESP8266.
Рабочее напряжение | Производитель заявляет поддержку от 3. 6 до 20 вольт. Ну-ну, можно попробовать конечно 20 вольт в нее воткнуть, если есть парочка лишних, попробуйте, напишите что получится 🙂 |
Напряжение питания | 3.3 вольта. Хотя на практике подать 5 вольт на цифровую ногу можно |
Цифровой вход/выход | 11 (все с поддержкой ШИМ)
|
Аналоговые выходы | 1 |
Максимальный потребляемый ток | 220 мА |
Wi-Fi | Встроенный 802.11 b/g/n
|
Опубликовать вашу статью на нашем сайте можно тут!
Модули на базе ESP8266 | Академия робототехники
Микроконтроллер привлек внимание в 2014 году в связи с выходом первых продуктов на его базе и их необыкновенно низкой цене. Весной 2016 года началось производство ESP8285, совмещающей ESP8266 и флеш-память на 1 МБайт. Осенью 2015 года Espressif представила развитие линейки — микросхему ESP32.[1]
На сегодняшний день выпускается огромное количество модулей на микроконтроллере ESP8266, поэтому мы не будем делать обзора существующих конструкций так как они все в той или иной мере похожи друг на друга.
Для простоты изучения изделия мы возьмём оптимальный модуль по цене/качество от фирмы WeMos D1 Mini Pro, как наиболее удачную конструкцию в этом сегменте модулей на ESP8266EX.
Особенности:
Руководство:
Технические данные
микроконтроллер | ESP-8266EX |
Рабочее напряжение | 3.3V |
Цифровые входы-выходы (Pins) | 11 |
Аналоговый вход | 1 (Max вход: 3.2V) |
Тактовая частота | 80МГц / 160 МГц |
Флеш-память | 16М байтов |
Длина | 34. 2mm |
Ширина | 25.6mm |
Вес | 2.5g |
Вывод | функция | ESP-8266 Pin |
TX | TXD | TXD |
RX | RXD | RXD |
A0 | Аналоговый вход, макс 3.3V вход | A0 |
Д0 | IO | GPIO16 |
D1 | IO, SCL | GPIO5 |
D2 | IO, SDA | GPIO4 |
D3 | IO, 10k подтягивающий | GPIO0 |
D4 | IO, 10k подтягивающий, BUILTIN_LED | GPIO2 |
Д5 | IO, SCK | GPIO14 |
D6 | IO, MISO | GPIO12 |
D7 | IO, MOSI | GPIO13 |
D8 | IO, 10k Pull-вниз, SS | GPIO15 |
г | земля | GND |
5V | 5V | — |
3V3 | 3. 3V | 3.3V |
RST | Сброс | RST |
Все цифровые входы-выходы ( IO ) имеют поддержку прерываний / ШИМ / I2C / однопроводный интерфейс 1-Wire, кроме цифрового входа-выхода D0
Прерывание (англ. interrupt) — сигнал от программного или аппаратного обеспечения, сообщающий процессору о наступлении какого-либо события, требующего немедленного внимания. Прерывание извещает процессор о наступлении высокоприоритетного события, требующего прерывания текущего кода, выполняемого процессором.
Все цифровые входы-выходы ( IO ) работают при напряжении 3.3 Вольт.
- CP2104 USB драйвер для UART
U1 RT9013 — Стабилизатор напряжения, преобразует напряжение 5 Вольт в 3.3 Вольт
RT9013 Технический паспорт
U2 UMh4N — два биполярных высокочастотных npn транзистора
UMh4N Технический паспорт
Наименование | UMh4N | ROHM SemiconductorЦентральный Semiconductor |
Описание | Два биполярных высокочастотных NPN транзистор общего назначения | |
UMh4N Технический паспорт PDF : | ||
U3 CP2104
CP2104 Технический паспорт
Наименование | CP2104 | Silicon Laboratories | ||
описание | USB DRIVER CUSTOMIZATION | |||
CP2104 Технический паспорт PDF | ||||
|
U4 ESP8266EX
U5 W25Q128F
W25Q128FV Технический паспорт |
mini_pro
U5 W25Q128F — Последовательная флеш-память (NOR Flash)
SpiFlash ® Memories с SPI, Dual-SPI, Quad-SPI и QPI
Области применения ESP8266EX:
1 Интеллектуальные электрические соединители (розетки)
2 Домашняя автоматизация
3 Mesh сети
4 Промышленное беспроводное управление
5 Детские игрушки
6 IP-камеры
7 Сенсорные сети
8 Мобильная электроника
9 Wi-Fi на расположение устройства
10 ID метки безопасности
11 Wi-Fi маяки систем позиционирования
40c-esp_smart_plug_user_guide_en_v1. 2_20160413 (1)
Стабилизатор напряжения для микроконтроллера ESP8266
Хорошо известно, что микроконтроллер ESP8266 довольно прожорлив во время работы интерфейса Wi-Fi. Он может потреблять от 50 мА до 170 мА. Во многих случаях трудно применять такое устройство совместно с аккумулятором.
Лучше подойдёт блок питания, подключённый к электросети, чтобы не приходилось волноваться о потреблении энергии или зарядке аккумуляторов.
Однако для некоторых проектов с микроконтроллером ESP8266, где используется режим глубокого сна и нет необходимости в постоянной работе интерфейса Wi-Fi, применение перезаряжаемых литий-полимерных аккумуляторов станет прекрасным решением.
Если используется питания от аккумуляторов рекомендуется плата ESP-01, так как на ней установлено небольшое количество компонентов.
Платы, подобные ESP8266 NodeMCU, используют много энергии, поскольку оснащены дополнительными элементами, такими как резисторы, конденсаторы, микросхемы и т. д.
Так как литий-полимерные аккумуляторы широко распространены, покажем как обеспечить питание микроконтроллера ESP8266 с их помощью.
В этом руководстве не объясняется как устроены и работают различные типы аккумуляторов. Здесь даётся лишь информация необходимая для реализации описываемой схемы.
Полностью заряженный аккумулятор имеет на выходе напряжение 4,2 В
Со временем оно снижается.
Рекомендуемое рабочее напряжение микроконтроллера ESP — 3,3 В, но он может функционировать в диапазоне 3—3,6 В. Так что нельзя просто подключить литий-полимерный аккумулятор напрямую к микроконтроллеру ESP8266 — вам потребуется стабилизатор напряжения.
Использование стандартного линейного стабилизатора для снижения напряжения с 4,2 до 3,3 В — не очень хорошее решение.
Например: если аккумулятор разрядится до выходного напряжения 3,7 В, ваш стабилизатор перестанет работать, так как у него высокое напряжение отсечки
Чтобы эффективно понизить напряжение аккумулятора, вам необходим стабилизатор с малым падением напряжения известный также как LDO-стабилизатор, который может регулировать выходное напряжение.
Малое падение напряжения означает, что даже если аккумулятор будет выдавать лишь 3,4 В, стабилизатор всё рано продолжит работать. Помните, что никогда не стоит полностью разряжать литий-полимерный аккумулятор, так как это повредит его или сократит срок службы.
Один из самых лучших LDO-стабилизаторов – MCP1700-3302E.
Он довольно компактный и выглядит как транзистор.
Есть также хороший вариант в виде HT7333-A.
Любой LDO-стабилизатор с характеристиками, аналогичными приведённым в документе ниже, также является хорошим вариантом. Ваш LDO-стабилизатор должен иметь такие же показатели для следующих параметров:
- Выходное напряжение (3,3 В).
- Ток в рабочей точке (~1,6 мкА).
- Выходной ток (~250 мА).
- Малое падение напряжения (~178 мВ).
Назначение выводов стабилизатора MCP1700-3302E. Есть выводы GND, Vin и Vout (земля, вход и выход):
У других LDO-стабилизаторов должно быть такое же назначение выводов, но обязательно найдите техническое описание вашего стабилизатора, чтобы проверить это.
Для стабилизатора нам понадобятся следующие компоненты:
Внимательно ознакомившись со схемой вы сможете самостоятельно собрать стабилизатор.
Или посмотрите схему, созданную с помощью ПО Fritzing (керамический и электролитический конденсатор подключены параллельно выводам GND и Vout стабилизатора).
Кнопка подключена к выводу RESET (СБРОС) платы ESP-01, сейчас в этом нет необходимости, однако это пригодится в будущих руководствах.
Готовое устройство.
Для LDO-стабилизаторов необходимо подключать керамический и электролитический конденсатор параллельно выводам GND и Vout, для сглаживания скачков напряжения. Конденсаторы не допускают неожиданный перезапуск и нестабильную работу микроконтроллера ESP8266.
Давайте подключим питание к схеме и проверим её. Измеряя мультиметром входное напряжение Vin от литий-полимерного аккумулятора, вы сможете увидеть приблизительно 4,2 В, поскольку сейчас аккумулятор полностью заряжен.
Теперь подключим щуп мультиметра к выводу Vout. Мультиметр показывает приблизительно 3,3 В — это рекомендуемое напряжение для микроконтроллера ESP8266.
Вы припаиваете конденсаторы к LDO-стабилизатору, так что получается стабилизатор напряжения в компактном исполнении, который можно легко применить в ваших проектах.
Надеемся, это руководство было полезным. Эта схема очень пригодится для питания в будущих проектах.
ESP8266-01 подключение USB-UART
Модуль ESP8266-01 с интерфейсом Wi-Fi укомплектован 1 Mb Flash памяти с прошитым интерпретатором AT-команд. Управлять модулем ESP8266-01 можно через последовательный порт непосредственно с компьютера или с другого микроконтроллера.
Источник исполняемой программы ESP8266 задается состоянием портов GPIO0, GPIO2 и GPIO15 в момент окончания сигнала Reset (то есть подачи питания). Наиболее интересны два режима: исполнение кода из UART (GPIO0 = 0, GPIO2 = 1 и GPIO15 = 0) и из внешней ПЗУ (GPIO0 = 1, GPIO2 = 1 и GPIO15 = 0). Режим исполнения кода из UART используется для перепрошивки подключенной флеш-памяти, а второй режим — штатный рабочий.
В этой статье мы предлагаем схему подключения модуля ESP8266-01 к компьютеру через микросхему PL2303 Serial Port встроенную в DATA кабель от старого сотового телефона. В этой схеме питание на модуль ESP8266-01 подаётся с USB порта компьютера через стабилизатор напряжения AMS1117 на 3,3 Вольта. Данные с компьютера на модуль ESP8266-01 (вход RX) поступают через делитель напряжения (резисторы R1, R2). На вход CH_PD (выбор модуля) подана логическая 1. Кнопка RESET служит для перезагрузки модуля ESP8266-01. А RESET вместе с кнопкой Prog переводят модуль в режим программирования (перепрошивка).
Рис. 1. Схема подключения модуля ESP8266-01 к компьютеру.
Цоколёвку разъёма модуля ESP8266-01 вы можете видеть на следующей картинке.
Подключение к компьютеру.
Подключаем USB интерфейс DATA кабеля с микросхемой ESP8266-01 к компьютеру. Запускаем Arduino IDE. В программе выбираем порт, какая выбрана плата Arduino не важно. Запускаем монитор порта, например, CuteCom. В мониторе выставляем скорость 74880 бод и NL/CR. Нажимаем кнопку RESET. На мониторе появится стартовая информация с модуля ESP8266-01.
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
load 0x40100000, len 2408, room 16
tail 8
chksum 0xe5
load 0x3ffe8000, len 776, room 0
tail 8
chksum 0x84
load 0x3ffe8310, len 632, room 0
tail 8
chksum 0xd8
csum 0xd8
2nd boot version : 1.6
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000
rf cal sector: 249
rf[112] : 00
rf[113] : 00
rf[114] : 01
SDK ver: 2.0.0(5a875ba) compiled @ Aug 9 2016 15:12:27
phy ver: 1055, pp ver: 10.2
Выставляем в мониторе порта скорость 11520 бод. Даём команду AT+GMR, принимаем:
AT+GMR
AT version:1. 3.0.0(Jul 14 2016 18:54:01)
SDK version:2.0.0(5a875ba)
Farylink Technology Co., Ltd. v1.0.0.2
May 11 2017 22:23:58
OK
Замечание, ESP8266-01 передаёт в последовательный интерфейс отладочную информацию и информацию после старта или перезагрузки на скорости 74880 бод, а работает в командном режиме на скорости 11520 бод.
<<< ESP8266-01 подключение Ω CuteCom монитор порта >>>
ESP8266 применение в проектах | Catcatcat electronics
(Актуально только для версий прошивки 1.хх)
ESP8266 показала себя как надежное и безотказное устройство для обмена данными с применением WIFI.
Я использую ESP8266 исключительно через UART, с применением AT команд. Все требования по обмену данными, между устройствами, она полностью удовлетворяет.
Здесь я хочу показать основную схемотехнику для подключения и сам адаптер, для обновления версий ПО модуля. Дело в том, что приобретая модуль чаще всего вы получаете его с заводской прошивной, а вам необходимо, как обычно, иметь последнюю версию, с новейшими возможностями. Смена версии, часто бывает, вызывает небольшие танцы с бубном, но я хочу показать вариант, как от этого можно полностью избавиться. Частенько обновлять модуль приходиться, тогда, когда он уже находиться запаянным в изделие и для облегчения этого процесса, необходимо соблюсти некоторые требования и схемотехнику для выполнения этой задачи.
Схема по которой я рекомендую подключать модуль в готовое изделие.
Для управления модулем используется три порта микроконтроллера, вход и выход UART и вывод управления физическим сбросом модуля. Все резисторы 10 kOhm можно заменить в пределах -20 – +50%. Резисторы R8 и R9 нужны для развязки модуля с MCU с адаптером, в момент обновления прошивки.
Схема для адаптера USB-UART с доработкой, которая позволяет перевести автоматически модуль в режим бутлоадера и обновить прошивку.
В качестве моста мне нравиться использовать готовые заготовки типа, на CP2102:
такой я приобретал в Вороне https://voron.ua/catalog/024405
Добавляем пару транзисторов и резисторов и адаптер готов (резистор R12 можно не устанавливать, всё будет зависеть от схемы в которой используется модуль ESP8266). Теперь не надо предварительно устанавливать перемычку на бутлоадер, делать сброс, чтобы модуль перешел в режим бутлоадера, достаточно просто подключить к соединителю и перепрошить.
Я в плате просто оставляю отверстия для программирования.
Из межплатного соединителя сделан переходник, вставляешь и обновляешь прошивку.
Внешний вид, доработанного адаптера
Схема в Altium Designer:
Это может быть интересно
- MPLAB® Code Configurator
MPLAB ® Code конфигуратор (MCC) является свободно распространяемым плагином, это графическая среда программирования, которая генерирует бесшовный, легкий для понимания кода на Cи, чтобы вставить его в свой проект. Метки:MPLAB® Code …
- Moving average – скользящее среднее
Скользящая средняя, скользящее среднее (англ. moving average, MA) — общее название для семейства функций, значения которых в каждой точке определения равны среднему значению исходной функции за предыдущий период. Скользящие средние обычно используются с данными временных рядов для сглаживания краткосрочных колебаний …
- ch-светомузыка от теории до реализации
Сразу оговоримся технология или теория ch-светомузыки, это постоянно развивающийся процесс и то что будет сказано сегодня завтра может быть опровергнуто и считаться ошибочным. Назовем само решение проблемы автоматического преобразования или …
- LATINO – открытый проект ch-светомузыки
Проект построенный на некоторых принципах ch-светомузыка. Проект ознакомительный предназначен, для самостоятельного построения простого и эффективного светосинтезатора. Вывод осуществляется на ВОУ собранной на драйверах HL1606. Для этого была применена светодиодная …
- Проблемы классической светомузыки
Светомузыка – что это такое? Определение: Светомузыка (жаргонное: цветомузыка) — вид искусства, основанный на способности человека ассоциировать звуковые ощущения со световыми восприятиями. Такое явление в неврологии получило название – синестезии. …
- Светодиоды со встроенным драйвером WS2812B
Производитель http://www.world-semi.com Краткое описание продукции фирмы Каталог продукции” catcatcat_ws_19 catcatcat_ws_15 catcatcat_ws_11 catcatcat_ws_07 catcatcat_ws_03 catcatcat_ws_18 catcatcat_ws_14 catcatcat_ws_10 catcatcat_ws_06 catcatcat_ws_02 catcatcat_ws_05 catcatcat_ws_09 catcatcat_ws_13 catcatcat_ws_17 catcatcat_ws_16 catcatcat_ws_12 catcatcat_ws_08 catcatcat_ws_04 catcatcat_ws_01 This jQuery slider was …
- ch-светомузыка и AK4113
Пришло время вернуться к светомузыке. На сегодня использование аналогового входа стало непрактичным, на сегодня необходимо использовать S/PDIF и Toslink. С этим надо было как то разобрать, что это такое, так …
- УКВ – радиоприем, часть 2
Пришло свободное время решил вторую часть проекта реализовать (правда есть мысль и третью с использование цветного OLED и функцией ch-светомузыки, но это только задумка… Для понимания функций интегрального приемника RDA5807FP читайте …
- PIC32MZ – Core Timer (библиотека)
Переработанные файлы от Microchip, библиотека для работы с Core Timer. Метки:PIC32MZ
- VU Meter Tower ART – part 2
Проект – VU Meter Tower ART получил продолжение в своем развитии. Теперь можно заказать набор деталей из акрила для самостоятельной сборки. В проект корпуса внесено целый ряд доработок, позволяющие улучшить …
Навигация по записям
MicroPython на ESP8266: отправка данных на ThingSpeak
Традиционным “Hello World!” в мире микроконтроллеров можно по праву назвать мигание светодиодом. Это и было сделано после установки MicroPython на ESP8266. Но время идти двигаться дальше и реализовать второй традиционный проект для микроконтроллера – измерение температуры и влажности со всеми любимым датчиком DHT22. Но мы не ограничимся тихими измерениями, а вместе с этим будем отсылать эти важные данные в интернеты. Для этого у нас есть, например, прекрасный сервис ThingSpeak. Пополним армию Internet of Shit!
English version – MicroPython on ESP8266: sending data to ThingSpeak
За основу возьмем предыдущий пост – как запустить MicroPython на ESP8266. Все описанное в том посте вполне применимо и к этому.
Так же отметим, что лучше использовать ESP8266, у которых объем памяти превышает 512K, потому что можно использовать полные версии MicroPython. Похоже, что урезанные версии MicroPython могут не всегда хорошо работать на ESP8266.
Будем опять использовать ESP-07, хотя можно использовать и ESP-12 без внесения изменений в схему ниже. С другими версиями ESP8266 возможно придется что-то поменять.
Схема похожа на ту, что была в предыдущем посте. Вот, что было добавлено
- Датчик DHT22 и сопротивление R6.
- Переключатель на GPIO5, который используется для перевода устройства в конфигурационный режим, о котором ниже.
- Переключатель на GPIO4, который в результате не использовался. Он был добавлен просто на всякий случай, потому что у меня были лишь сдвоенные переключатели.
Как уже говорилось ранее, для измерения температуры и влажности будем использовать датчик DHT22. Можно также использовать DHT11. Это довольно популярные датчики, и MicroPython любезно умеет работать с ними. Вот так выглядит DHT22, если кто-то еще не видел:
Так все выглядело в результате:
С железной частью мы разобрались, перейдем к программной. Весь код лежит на GitHub:
https://github.com/artem-smotrakov/yellow-duck
git clone https://github.com/artem-smotrakov/yellow-duck
Так как мы собираемся отсылать температуру и влажность на ThingSpeak, нам надо подключить нашу ESP8266 к существующей (скажем, домашней) Wi-Fi сети для доступа в интернеты. Для этого нашей ESP8266 надо знать SSID и пароль к Wi-Fi сети. Вот так можно подключиться к Wi-Fi сети с помощью MicroPython:
import network nic = network.WLAN(network.STA_IF) nic.active(True) nic.connect(ssid, password)
Но это не совсем хорошо и удобно, когда мы прописали пароли-явки прямо в код. Если SSID и пароль изменятся, то надо надо будет поправить исходники, а потом залить их опять на устройство. Вместо прописывания паролей и явок прямо в коде мы может сделать следующее:
- Добавить на пин GPIO5 переключатель в конфигурационный режим.
- При старте устройство проверяет, находится ли оно в конфигурационном режиме (функция
is_config_mode
). - Если включен конфигурационный режим, то устройство поднимает Wi-Fi точку доступа и стартует локальный web-сервер (функции
start_access_point
иstart_local_server
). - Когда пользователь подключается к этой точке доступа, web-сервер предлагает ему ввести SSID и пароль от Wi-Fi сети, которая должна использоваться в обычном режиме.
- После того, как пользователь введет SSID и пароль, web-сервер сохраняет их в конфигурационном файле и перезагружает устройство (функции
write_wifi_config
иreboot
). - До перезагрузки, пользователь должен переключить устройство из конфигурационного режима в обычный.
- После перезагрузки устройство подключается к Wi-Fi сети, SSID и пароль которой был указан (функция
connect_to_wifi
). - В случае успешного подключения зажигается светодиод LD1 (функция
turn_on_wifi_led
).
Таким образом, если мы захотим использовать устройство с другими Wi-Fi сетями, или просто поменялся пароль, нам не надо будет заливать поправленные исходники.
После успешного подключения к Wi-Fi устройство начинает героически измерять температуру и влажность с определенным интервалом:
while True: current_time = time.time() if current_time - last_mesurement_time > MESUREMENT_INTERVAL: mesure_temperature_and_humidity() last_mesurement_time = current_time time.sleep(DELAY)
Как уже упоминалось ранее, MicroPython поддерживает как DHT22, так и DHT11. Вот как мы используем функцию dht.DHT22
для измерения нужных нам характеристик агрессивной окружающей среды:
def mesure_temperature_and_humidity(): import dht import machine d = dht. DHT22(machine.Pin(DHT22_PIN)) d.measure() t = d.temperature() h = d.humidity() print('temperature = %.2f' % t) print('humidity = %.2f' % h)
Пока вроде бы довольно просто. Дальше нам надо отправить ценные данные в интернеты. Данные эти будем отправлять на ThingSpeak, который любезно и безвозмездно предлагает зарегистрироваться, чтобы потом можно было туда отсылать всякие важные данные вроде температуры и влажности воздуха, и более того, анализировать эти самые данные и даже рисовать по ним картинки. ThingSpeak для этих целей предоставляет RestFUL API для IoT устройств. Сначала регистрируемся. Дальше надо создать канал. Потом для этого канала получаем API-ключ, который будет использоваться устройством для отправки данных в этот канал. Не забываем включить два поля в нашем канале: одно для температуры, другое для влажности.
Вот так мы отправляем данные в ThingSpeak:
global THINGSPEAK_WRITE_KEY if not THINGSPEAK_WRITE_KEY: print('not ThingSpeak key specified, skip sending data') return print('send data to ThingSpeak') s = socket. socket() ai = socket.getaddrinfo(API_THINGSPEAK_HOST, API_THINGSPEAK_PORT) addr = ai[0][-1] s.connect(addr) s = ssl.wrap_socket(s) data = 'field1=%.2f&field2=%.2f' % (t, h) http_data = THINGSPEAK_POST_TEMPLATE % (THINGSPEAK_WRITE_KEY, len(data), data) s.write(http_data.encode()) s.close()
Здесь у нас возникает та же самая проблема, что и с SSID и паролем от Wi-Fi. Нам надо как-то рассказать устройству о API ключе, который оно должно использовать. Решение точно такое же: устройство предлагает указать API-ключ в конфигурационном режиме.
Как можно заметить, мы используем TLS, о чем говорит вызов функции ssl.wrap_socket
, который заворачивает обычный socket в TLS socket. Признаться, я был немножко, но приятно удивлен, когда обнаружил, что MicroPython для ESP8266 умеет работать с TLS. Но есть один нюанс. Даже если TLS и используется, MicroPython на ESP8266 не поддерживает проверку серверного сертификата. (во всяком случае, версия 1. 8.7 это не поддерживает). Это означает, что мы в относительной безопасности, пока злобные злоумышленники могут просто читать наши зашифрованные сообщения в рамках TLS-соединения. Расшифровать эти сообщения будет немного проблематично (но если во благо времени, то в общем случае это все равно возможно). Но вот если хитрые злоумышленники могут модифицировать передаваемые данные, то это уже беда, потому что они могут запросто подменить сертификат сервера с заранее известными ключами, и в результате они смогут спокойно расшифровать все наши сообщения.
Внимательный читатель кода мог заметить разные вызовы функции print
. Это просто отладочная информация. Можно подсоединиться к ESP8266 через USB-Serial адаптер и увидеть эти самые отладочные сообщения.
Если все прошло гладко, то устройство начнет отсылать данные на ThingSpeak. Дальше ThingSpeak великодушно предоставляет нам разные способы визуализации наших важных данных. И даже более того, ThingSpeak щедро позволяет нам анализировать эти данные с помощью MatLab. Самое простое, что приходит в голову, это нарисовать график:
Эти графики показывают температуру и влажность в моей комнате. Вот и канал на ThingSpeak, который целиком и полностью посвящен этим важным показателям:
https://thingspeak.com/channels/230189
Ссылки
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
ESP8266 / ESP8266 / stD
Описание, подключение, настройка и работа.
Что такое ESP8266
ESP8266 — это высокоинтегрированный, микроконтроллер с интерфейсами WiFi, SPI, UART и GPIO, производства китайской компании Espressif.
Схема чипа
Характеристики
поддержка WiFi протоколов 802.11 b/g/n
Wi-Fi Direct (P2P), soft-AP
встроенный стек TCP/IP
встроенный TR переключатель, balun, LNA, усилитель мощности и соответствие сети
встроенный PLL, регуляторы, и система управления питанием
выходная мощность +20. 5 дБм в режиме 802.11b
ток утечки в выключенном состоянии до 10 мкА
SDIO 2.0, SPI, UART
STBC, 1×1 MIMO, 2×1 MIMO
пробуждение и отправка пакетов за время до 22 мс
потребление в режиме Standby до 1.0 мВт (DTIM3)
Распиновка чипа
В данное время на этом чипе реализовано несколько модификаций плат (ESP01 — ESP12) различающихся только формой, количеством выведенных GPIO и вариантами антенн.
ESP01 — 12ESP-01 — самый распространённый, выведены два GPIO, дальность действия — до 400м на открытом пространстве.
ESP-02 — тоже самое, только с возможностью подключения внешней антенны.
ESP-03 — керамическая антенна, выведены все GPIO.
ESP-04 — без внешней антенны, выведены все GPIO.
ESP-05 — выведены только VCC, GND, TX, RX, RST и внешняя антенна.
ESP-06 — контакты расположены снизу, сверху металлический экран.
ESP-07 — керамическая антенна + разъем для внешней антенны, металлический экран.
ESP-08 — тоже самое, но без антенн.
ESP-09 — крохотный модуль — 10х10мм, контакты расположены снизу.
ESP-10 — тоже маленький модуль, выведены только два GPIO.
ESP-11 — с керамической антенной.
ESP-12 — с flash-памятью 512 кбайт.
Схема модуля
Что может модуль ESP
Описание будет вестись на основе популярной модели ESP-01.
Всё написанное ниже, за исключением номеров GPIO, применительно к любой модификаций.
С базовой прошивкой модуль ESP используется в виде моста UART <-> WIFI.
Например:
ESP подключается к ардуине (UART <-> UART) и взаимодействует с ней при помощи AT-команд, а по каналу WIFI соединяется с любым wifi-устройством (планшет, роутер) при этом может работать в разных режимах — клиента, точки доступа, одновременно оба режима.
ESP подключается к ПК через конвертер usb-uart. Можно с ПК посылать АТ-команды модулю, а модуль в свою очередь будет пересылать их какому-то wifi-устройству.
С альтернативными прошивками, ESP может работать автономно. То есть использовать свои пины для управления чем-либо, например светом в комнате, а управляется по каналу WIFI, выступая в роли сервера.
(О прошивках ниже.)
Подключение
В первую очередь надо обеспечить надёжное питание. Внимание! ESP работает от напряжения 3,3v.
Модуль потребляет довольно-таки большой ток (до 300мА), и если подключить модуль к пину 3,3v на ардуине, то он будет постоянно перегружаться (красный и синий диоды будут моргать).
Чтобы всё хорошо работало потребуется DC-DC преобразователь (5v > 3,3v), что-то типа этого:
Схема подключения:
Подключите питание — загорится красный диод.
Подключите пин CH_PD на 3,3v — мигнёт синий диод. Это пин включения/отключения модуля (chip power-down).
В списке сетей wifi на Вашем телефоне/планшете, появится новое устройство с именем «AI-THINKER…».
Можно подключится к нему, но толку от этого пока никакого не будет.
Кратковременное замыкание пина RST на GND перезагрузит модуль.
Свободные GPIO (0, 2) подключать не надо.
Если у Вас модуль не ESP-01, то надо подключить GPIO15 к GND.
Примечание. В дальнейшем, для повышения стабильности работы, нужно пин CH_PD подключать к 3,3v через резистор 10 кОм., RESET, GPIO (0, 2) тоже подтянуть к 3,3v резисторами 10 кОм., по питанию поставить электролит на 100-220 мкФ и керамику 0.1 мкФ.
И таки да, модуль сильно греется, так что можно какой-нибудь теплоотвод организовать.
Теперь надо подключить ESP-модуль к компьютеру посредством UARTа (RX, TX), выяснить скорость порта (может различаться для разных прошивок) и пообщаться с модулем АТ-командами.
Для этого подойдёт любой преобразователь USB-UART, можно воспользоваться например вот таким:
Нужно соединить RX и TX модуля с TX и RX преобразователя.
Уровни напряжения на пинах TX <-> RX можно не согласовывать, как показывает практика, всё отлично работает и так.
Если это покажется неубедительным, то можно организовать простой резистивный делитель:
Если под рукой нет преобразователя (USB-UART), то его можно сделать из любой ардуины. Для этого надо соединить на ардуине RST и GND, а сигнальные линии соединить вот так:
TX <-> TX
RX <-> RX
GND <-> GND
Терминал
Далее нам потребуется программа-терминал, можно использовать бесплатную программу CoolTerm. (Lin & Win)
CoolTermСкачать, установить и запустить:
Нажать Options
Выбрать порт и скорость.
Нажать слева Terminal
Terminal Mode: Line Mode. Нажать ОК.
Нажать Connect
В нижнем поле ввести AT и Enter
Либо воспользоваться Serial Monitor из IDE Arduino.
Открываем Serial Monitor, выбираем Both NL & CR (последняя строчка), устанавливаем скорость 115200 и отправляем команду проверки связи — AT:
Вводите команды без пустых символов.
Модуль должен ответить ОК. Если ответа нет, то попробуйте другие скорости (9600, 57600), если ответа попрежнему нет, то проверьте правильность подключения (rx-tx).
Когда модуль начнёт откликаться, дайте команду перезагрузки — AT+RST
Модуль расскажет о себе.
Теперь нужно проверить версию «заводской» прошивки командой — AT+GMR
В «заводских» прошивках, от версии к версии, меняется функционал и могут не работать некоторые команды. Поэтому прежде чем продолжать знакомство с модулем, нужно залить в него свежую прошивку. Делается это очень просто…
Прошивка
Сейчас речь пойдёт о «заводской» прошивке, альтернативные будут рассмотрены позже.
Скачиваем прошивку, я брал её здесь.
И скачиваем утилиту XTCOM для прошивки ESP.
Пользователи Linux, для работы с XTCOM, могут воспользоваться виртуальной машиной с установленой Windows. (В wine я не пробовал запускать.)
Отключаем питание платы, выводGPIO0 соединяем с GND, включаем питание.Именно так.
Запускаем XTCOM_UTIL.exe, переходим в Tools ⇨ Config Device:
Выбираем COM-порт к которому подключена плата, ставим скорость порта 57600, это скорость заливки прошивки, к дальнейшей работе модуля не имеет отношения.
Нажимаем Open
OK…
Нажимаем Connect
Программа должна сказать Connect with target OK!
Если не коннектится, то закройте программу, отключите/включите питание модуля и повторите.
Жмём ОК, закрываем окно настроек, переходим в меню API TEST и выбираем Flash Image Download.
Указываем путь к скаченому файлу v0.9.5.2 AT Firmware.bin, адрес оставляем 0x00000, жмем DownLoad.
Загрузка…
Готово…
Если что-то пошло не так, то отключаем/включаем питание и проделываем процедуру заново.
Отключаем питание платы, отключаем GPIO0, включаем питание, запускаем терминал (115200), проверяем готовность платы командой AT и версию прошивки командой AT+GMR.
АТ-команды
Список АТ-команд работающих с данной прошивкой и их применение.
——————————————————————————
AT — проверка работы, ответ ОК.
——————————————————————————
ATE0 — отключение эхо (повторение команды).
ATE1 — включение эхо.
——————————————————————————
AT+RST — перезагрузка модуля.
——————————————————————————
AT+RESTORE — сброс модуля к заводским настройкам.
Полезная команда на случай если Вы донастраивались до потери работоспособности модуля ))).
——————————————————————————
AT+GMR — версия прошивки.
——————————————————————————
AT+GSLP=3000 — переход в режим пониженного энергопотребления. (3 сек)
Время задаётся в мс.
Для выхода из режима необходимо замкнуть выводы XPD_DCDC и EXT_RSTB (см. распиновка чипа) либо откл/вкл питание.
——————————————————————————
AT+CIOBAUD=115200 — установить скорость UART. (9600-921600)
После изменения переключите терминал.
——————————————————————————
AT+UART=115200,8,1,0,0 — специфичная настройка UART.
(baudrate,databits,stopbits,parity,flow control)
——————————————————————————
AT+CSYSWDTENABLE — активировать Watchdog.
AT+CSYSWDTDISABLE — деактивировать.
——————————————————————————
Установка режима WIFI:
AT+CWMODE=1 — клиент, подключается к другим точкам доступа.
AT+CWMODE=2 — точка доступа, к модулю подключаются клиенты.
AT+CWMODE=3 — оба режима одновременно, модуль подключается к существующим точкам (например к роутеру) и сам является точкой доступа. (смешанный режим)
AT+CWMODE? — узнать текущий режим.
AT+CWMODE=? — узнать возможные режимы.
——————————————————————————
AT+CIFSR — узнать ip-адрес и мас-адрес. В зависимости от режимов (AT+CWMODE) показывает один или два ip-адреса.
——————————————————————————
AT+CIPSTA? — посмотреть ip-адрес для режима «клиент» (AT+CWMODE=1)
AT+CIPSTA=«192.168.3.20» — установить ip-адрес для режима «клиент» (AT+CWMODE=1)
Необходимо исправить кавычки, вот так:
AT+CIPSTA="192.168.3.20"
AT+CIPSTAMAC? — посмотреть мас-адрес для режима «клиент» (AT+CWMODE=1)
AT+CIPSTAMAC=«1a:fe:34:fe:55:55» — установить мас-адрес для режима «клиент» (AT+CWMODE=1). Требуется перезагрузка (AT+RST).
AT+CIPSTAMAC="1a:fe:34:fe:55:55"
——————————————————————————
AT+CIPAP? — посмотреть ip-адрес для режима «точка доступа» (AT+CWMODE=2)
AT+CIPAP=«192. 168.3.35» — установить ip-адрес для режима «точка доступа» (AT+CWMODE=2)
AT+CIPAPMAC? — посмотреть мас-адрес для режима «точка доступа» (AT+CWMODE=2)
AT+CIPAPMAC=«1a:fe:34:fe:33:33» — установить мас-адрес для режима «точка доступа» (AT+CWMODE=2). Требуется перезагрузка (AT+RST).
——————————————————————————
AT+CWDHCP= — включает/выключает DHCP сервер.
Пример: AT+CWDHCP=0,0 — DHCP включён для режима «точка доступа».
Первый параметр — режимы: 0 — для точки доступа, 1 — для клиента, 2 — для смешаного режима.
То есть можно для каждого режима (в отдельности) включать/отключать DHCP сервер, либо если модуль работает в «смешаном режиме» (AT+CWMODE=3), то можно.!!!
Второй параметр — вкл/откл: 0 — включить, 1 — отключить.
——————————————————————————
AT+CWLIF — показать ip-адреса подключенных клиентов (только для режимов AT+CWMODE=2 и AT+CWMODE=3).
——————————————————————————
AT+CWLAP — посмотреть доступные wifi-сети. (работает в режимах AT+CWMODE=1 и AT+CWMODE=3)
Значения в скобках — тип шифрования, имя точки, уровень сигнала, мас-адрес, канал.
Типы шифрования: 0 — без шифрования, 1 — WEP, 2 — WPA-PSK, 3 — WPA2-PSK, 4 — MIXED (WPA-WPA2-PSK).
——————————————————————————
AT+CWJAP= — подключение к точке доступа:
На всякий случай перегрузите модуль — AT+RST
Установите режим AT+CWMODE=1 или AT+CWMODE=3.
AT+CWJAP=«nameap»,«parolparol» — подключение к роутеру (имя точки, пароль). (кавычки необходимо исправить)
AT+CWJAP="nameap","parolparol"
Подключение длится 5-6 секунд.
AT+CWJAP? — узнать подключён или нет, и к какой точке.
——————————————————————————
AT+CWQAP — отключиться от точки доступа (роутера).
——————————————————————————
Создание своей точки доступа с паролем (по дефолту точка открытая).
На всякий случай перегрузите модуль — AT+RST
Предварительно нужно отключиться от каких-либо точек доступа (например от роутера) — AT+CWQAP и установить режим — AT+CWMODE=2 или AT+CWMODE=3.
Даём команду:
AT+CWSAP=«myAP»,«parolmyap»,9,4 — где первое значение — имя будущей точки, второе — пароль, третье — канал и четвёртое — тип шифрования (0 — без шифрования, 1 — WEP, 2 — WPA-PSK, 3 — WPA2-PSK, 4 — MIXED (WPA-WPA2-PSK)).
AT+CWSAP="myAP","parolmyap",9,4
Посмотреть какой адрес у нашей точки — AT+CIFSR
Подключите Ваш «гаджет» к созданой точке и посмотрите какой он получил адрес — AT+CWLIF
——————————————————————————
Ниже описаны команды относящиеся к настройке TCP-сервера или TCP-клиента.
AT+CIPMODE= — устанавливается режим передачи данных для TCP-сервера или TCP-клиента.
В режиме TCP-сервера:
AT+CIPMODE=0 — TCP-сервер может отправлять данные клиенту и может принимать данные от клиента.
AT+CIPMODE=1 — TCP-сервер НЕ может отправлять данные клиенту, но может принимать данные от клиента.
В режиме TCP-клиента:
AT+CIPMODE=0 — TCP-клиент может отправлять данные серверу и может принимать данные от сервера.
AT+CIPMODE=1 — TCP-клиент НЕ может отправлять данные серверу, но может принимать данные от сервера.
AT+CIPMODE? — узнать режим.
——————————————————————————
AT+CIPMUX= — выбор режима одиночного или множественного соединения.
Зависит от AT+CIPMODE.
AT+CIPMUX=0 — с ESP, может соединится только один клиент. (single connection)
Если в этот момент другой клиент запросит соединение, то получит таймаут.
AT+CIPMUX=1 — с ESP, могут одновременно соединяться несколько клиентов (до четырёх). (multiple connection)
AT+CIPMUX? — узнать режим.
——————————————————————————
AT+CIPSTO — таймаут сервера. Команда даётся после старта сервера.
AT+CIPSTO=180 — таймаут 180 секунд. (от 0 до 7200)
AT+CIPSTO? — узнать таймаут.
——————————————————————————
Запуск TCP-сервера:
Предварительно нужно:
На всякий случай делать ресет — AT+RST, или сброс (если Вы что-то там на настраивали) к заводским настройкам AT+RESTORE
Установим «смешанный режим» — AT+CWMODE=3
Установить сквозной режим передачи данных — AT+CIPMODE=0
Установить режим подключения — AT+CIPMUX=1 (multiple connection)
И запустить сервер:
AT+CIPSERVER=1,88 — сервер будет запущен на 88-ом порту.
Чтобы изменить номер порта, нужно остановить сервер — AT+CIPSERVER=0 и запустить с новыми параметрами.
Теперь можно посмотреть как работает сервер, для этого…
Узнаем адрес — AT+CIFSR
Далее подключаемся к ESP по Wifi с какого-нибудь гаджета, открываем браузер и заходим по адресу — 192.168.4.1:88
На странице конечно ничего не отобразится, но в терминале появятся строки запроса:
Активные соединения можно посмотреть командой — AT+CIPSTATUS
Принудительно закрыть соединение — AT+CIPCLOSE=0
Если соединений несколько, то указываем его id — AT+CIPCLOSE=1
Если модуль работает в режиме — AT+CIPMUX=0 (single connection), то команда закрытия соединения даётся без параметров — AT+CIPCLOSE
Это ещё не всё, хотелось бы увидеть полноценный обмен данными с нашим сервером. В этом поможет бесплатная программа (для Linux и Win) — SocketTest, скачайте её.
Далее нужно соединить компьютер и ESP по каналу wifi. У меня компьютер подключён к роутеру, поэтому ESP тоже подключается к этому роутеру.
Подключаем: (на всякий случай, подробности описаны выше)
AT+CWJAP="nameap","parolparol"
Имя «точки» и пароль.
Смотрим какой адрес получил модуль ESP — AT+CIFSR
Теперь сервер будет работать на адресе — 192.168.1.87:88
Это адрес будем использовать в программе SocketTest.
Запустите её:
На вкладке «Client» вводим адрес 192.168.1.87 и порт 88, нажимаем «Connect».
Пользователям Win наверно придётся отключить файрволы.
В терминале будет будет написано «CONNECT».
Отправим в ESP какой-нибудь текст. Нажмите «Connect», в поле «Message» введите «Hello» и нажмите «Send».
В терминале увидим наш запрос:
+IPD — это признак полученных данных, 0 — это id клиента, 7 — это длина пакета, ну и содержимое пакета.
Соединение будет длиться 180 сек, это таймаут сервера по умолчанию. По истечении времени, оно будет разорвано.
Изменить таймаут можно командой — AT+CIPSTO
Теперь отправим данные с ESP в SocketTest.
Нажмите «Connect» и в терминале введите команду:
AT+CIPSEND=0,13 — id соединения, длина пакета.
В терминале появится символ ввода >
Введите и отправьте строку «Hi Soket Test»:
В программе «SocketTest» появится наше сообщение.
С TCP-сервером разобрались, перейдём к TCP-клиенту…
——————————————————————————
Запуск TCP-клиента:
Сбросим все настройки — AT+RESTORE
Устанавливаем режимы:
AT+CWMODE=3
AT+CIPMODE=0
Подключаемся к Вашему роутеру:
AT+CWJAP="nameap","parolparol"
В программе SocketTest открываем вкладку «Server», вписываем ip-адрес Вашего компьютера, порт 88 и нажимаем кнопку «Start Listening»:
Переходим в терминал, устанавливаем режим — AT+CIPMUX=0 (single connection) и запускаем клиента:
AT+CIPSTART=«TCP»,«192. 168.1.49»,88 — для протокола TCP.
Параметры: протокол — может быть TCP или UDP, адрес сервера с которым будем соединятся, порт.
Отправим серверу данные:
Даём команду — AT+CIPSEND=12 (указывается только длина пакета)
Появится символ — >
Введите и отправьте — Hello Server
Чтоб послать серверу ещё одно сообщение, нужно заново ввести AT+CIPSEND=12 и т.д.
SocketTest получил наше сообщение.
В поле «Message» введите «Hello Client» и нажмите «Send».
ESP получил сообщение.
Теперь поменяем режим клиента с AT+CIPMUX=0 (single connection) на AT+CIPMUX=1 (multiple connection)
Нажимаем «Disconnect» в программе SocketTest (или в терминале командуем — AT+CIPCLOSE).
В терминале и даём команду AT+CIPMUX=1
Запускаем клиента:
AT+CIPSTART=0,«TCP»,«192. 168.1.49»,88 — для протокола TCP. (добавился ещё один параметр — id соединения)
Параметры: id — от 0 до 4, протокол — может быть TCP или UDP, адрес сервера с которым будем соединятся, порт.
Отправляем данные серверу — AT+CIPSEND=0,12 (id соединения, длина пакета)
Появится символ — >
Введите и отправьте — Hello Server
Собственно всё то же самое, что и для «single connection», только появилась возможность нескольких соединений (до четырёх) одновременно.
——————————————————————————
Команды для управления GPIO
AT+CIOREAD=0 — читать ножку GPIO0
AT+CIOREAD=2 — читать ножку GPIO2
AT+CIOWRITE=0,1 — подать напряжение на GPIO0
AT+CIOWRITE=0,0 — снять напряжение с GPIO0
AT+CIOWRITE=2,1 — подать напряжение на GPIO2
AT+CIOWRITE=2,0 — снять напряжение с GPIO2
Можно подключить светодиоды к GPIO через резисторы ~1kOm и помигать.
AT-команды.pdf
Спецификация.pdf
Пример подключения:
Настраиваем работу модуля в режиме клиента, подключаемся к роутеру и запускаем TCP-сервер.
AT+RESTORE — к заводским настройкам.
AT+CWMODE=1 — режим клиента.
AT+CWJAP=«nameap»,«parolparol» — подключение к роутеру.
AT+CIPMODE=0 — Установить сквозной режим передачи данных.
AT+CIPMUX=1 — Мultiple connection.
AT+CIPSERVER=1,88 — запустить сервер.
AT+CIPSTO=3 — таймаут сервера 3 секунды.
AT+CIFSR — смотрим адрес который получил ESP от роутера.
Сервер работает на 192.168.1.87:88
И таки да, модуль может зависать (прошивка пока ещё «сыровата»), помогает обесточивание.
Статья получилась большая, поэтому описание подключения Ардуины к ESP читайте в следующей части.
Обсудить на форуме…
ESP8266 Распиновка, конфигурация контактов, характеристики, пример схемы и техническое описание
Конфигурация контактов ESP8266
Номер контакта | Имя контакта | Альтернативное имя | Обычно используется для | Альтернативное назначение |
1 | Земля | – | Подключен к земле цепи | – |
2 | Техас | GPIO — 1 | Подключен к выводу Rx программатора / микроконтроллера для загрузки программы | Может действовать как контакт ввода / вывода общего назначения, если не используется как TX |
3 | GPIO-2 | – | Контакт ввода / вывода общего назначения | – |
4 | CH_EN | – | Chip Enable — Активный высокий | – |
5 | GPIO — 0 | Вспышка | Контакт входа / выхода общего назначения | Переводит модуль в режим последовательного программирования при низком уровне во время запуска |
6 | Сброс | – | Сбрасывает модуль | – |
7 | Прием | 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), поэтому он может легко извлекать данные и загружать их в Интернет, что делает Интернет вещей максимально простым. Он также может получать данные из Интернета с помощью 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 — Модель
Начало работы с ESP8266 и Arduino: ESP8266 Интерфейс Arduino
Если вы занимаетесь IoT (Интернетом вещей), возможно, вы слышали о модуле ESP8266 WiFi. Если нет, не волнуйтесь. Это руководство посвящено началу работы с WiFi-модулем Esp8266 и тому, как пару ESP8266 Arduino можно использовать в ваших проектах IoT.
Итак, прежде чем вдаваться в подробности того, как взаимодействовать с парой ESP8266 Arduino, давайте сначала начнем с WiFi-модуля ESP8266.
Взгляните на эти ПРОЕКТЫ ИНТЕРНЕТ ВЕЩЕЙ (IOT) .
Что такое ESP8266?
ESP8266 (технически ESP8266EX) — это WiFi-модуль на базе 32-битного микроконтроллера Cadence Tensilica L106 производства Espressif Systems.SoC ESP8266 содержит полнофункциональный стек WiFi и стек TCP / IP, который позволяет любому микроконтроллеру подключаться к сети WiFi.
С помощью комплектов для разработки программного обеспечения (SDK) вы можете напрямую программировать микроконтроллер ESP8266 на кристалле, без необходимости использования внешнего микроконтроллера.
На основе ESP8266 SoC несколько сторонних производителей начали производство специализированных плат, и одним из таких производителей является Ai-Thinker. Первой платой, выпущенной Ai-Thinker, является ESP-01 (та же плата, что использовалась в этом проекте), и она стала довольно популярной.
Основываясь на успехе модуля ESP-01, компания Ai-Thinker выпустила несколько других модулей, таких как ESP-02, ESP-07, ESP-12 и т. Д. Все эти платы основаны на ESP8266 SoC, но основное различие заключается в количестве контактов GPIO.
Существуют и другие модули, такие как ESP-WROOM от Espressif Systems, NodeMCU, WeMOS, SparkFun ESP8266 и т. Д.
ESP8266 ESP-01
В этом проекте мы будем использовать модуль ESP-01 от Ai-Thinker. Он состоит из 8 контактов, а на следующем изображении показаны различные компоненты платы.
Переходя к конфигурации контактов, как упоминалось выше, модуль ESP-01 состоит из 8 контактов, и это контакты VCC, GND, TX, RX, RST, CH_PD, GPIO0 и GPIO2. На следующем изображении показана схема контактов модуля ESP-01.
Описание контактов модуля ESP8266 ESP-01
- VCC : это вывод питания, через который подается напряжение 3,3 В.
- GND : Это контакт заземления.
- TX : Этот вывод используется для передачи последовательных данных на другие устройства.
- RX : Вывод RX используется для приема последовательных данных от других устройств.
- RST : Это вывод сброса и активный вывод LOW. (ESP8266 сбрасывается, если вывод RST получит сигнал LOW).
- CH_PD : Это вывод включения микросхемы, и это активный вывод HIGH. Обычно подключается к 3,3 В.
- GPIO0 : Контакт GPIO0 (ввод / вывод общего назначения) имеет двойную функцию — одну для нормальной работы GPIO, а другую для включения режима программирования ESP8266.
- GPIO2 : Это вывод GPIO.
ВАЖНОЕ ПРИМЕЧАНИЕ : ESP8266 несовместим с 5 В, а модуль ESP-01 не имеет встроенных регуляторов напряжения. Убедитесь, что питание ESP8266 составляет 3,3 В, желательно от специального источника питания, а не от вывода 3,3 В на Arduino.
ESP8266 Интерфейс Arduino
Прежде чем увидеть интерфейс ESP8266 Arduino, вам нужно кое-что узнать о модуле ESP8266.Модуль WiFi ESP8266 поставляется с прошивкой по умолчанию, которая поддерживает AT-команды.
После подключения WiFi-модуля ESP8266 к Arduino и загрузки нашей собственной программы исходная прошивка будет стерта. В отдельном проекте мы увидим, как взаимодействовать с модулем ESP8266 для AT-команд, а также как прошивать оригинальную прошивку с помощью Arduino.
Теперь мы увидим, как запрограммировать ESP8266 с помощью Arduino и получить доступ к его контактам GPIO. Сначала мы увидим принципиальную схему интерфейса.
Принципиальная схема интерфейса ESP8266 Arduino
Если модуль ESP8266 на принципиальной схеме нечеткий, вам может помочь следующее изображение. Это просто личное представление принципиальной схемы. Вы уже видели настоящую схему контактов в предыдущем разделе.
Необходимые компоненты
- Arduino UNO [Купить здесь]
- ESP8266 ESP-01
- Резистор 1 кОм
- Резистор 2,2 кОм
- Конденсатор 100 пФ (код конденсатора — 104)
- Макетная мини-плата
- Соединительные провода
Подготовка модуля ESP8266 ESP-01 для монтажа на макетной плате
Если вы посмотрите на контакты модуля ESP8266 ESP-01, вы увидите, что он не подходит для макетной платы. Итак, я сделал небольшую перфокарту с контактами, подходящими для макетной платы, на дне и гнездовыми разъемами, чтобы установить на нее модуль ESP8266 ESP-01.
На этой печатной плате я также подключил резисторы преобразователя уровня для вывода RX ESP8266, а также байпасный конденсатор 100 пФ между VCC (3,3 В) и GND. На следующем изображении показан монтаж модуля ESP8266 ESP-01 на мини-макетной плате.
Подготовка Arduino IDE для программирования ESP8266
WiFi-модуль
ESP8266 может быть запрограммирован с помощью Arduino IDE, и для этого вам необходимо внести несколько изменений в Arduino IDE.Сначала перейдите в меню «Файл» -> «Настройки» в среде Arduino IDE и в разделе «URL-адреса диспетчера дополнительных плат» введите следующий URL-адрес.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
ПРИМЕЧАНИЕ : Вы можете добавить много таких URL, но они должны быть разделены запятыми.
Теперь перейдите в Инструменты -> Плата -> Менеджер плат и найдите ESP8266 в поле поиска. Выберите ESP8266 от сообщества ESP8266 и нажмите «Установить».
ПРИМЕЧАНИЕ : Эта функция добавления сторонних плат через менеджер плат доступна для Arduino IDE версии 1.6.4 и выше. Итак, убедитесь, что у вас установлена последняя версия Arduino IDE.
Подготовка Arduino UNO к программированию ESP8266
Чтобы запрограммировать модуль ESP8266, нам необходимо подключить его к компьютеру. Поскольку последовательная связь является единственной доступной связью на модуле ESP8266 ESP-01, нам нужен USB-последовательный адаптер, такой как FTDI, Ch440 или FT232RL.
Если у вас нет выделенного адаптера USB для последовательного порта, не беспокойтесь. Arduino UNO имеет встроенный USB-последовательный адаптер (который используется для программирования Arduino). Мы собираемся использовать это для программирования ESP8266.
Мы будем использовать контакты TX и RX Arduino для подключения к модулю ESP8266, и, чтобы убедиться, что Arduino не использует эти контакты, мы можем загрузить минимальный эскиз в Arduino.
ПРИМЕЧАНИЕ : Минимальный эскиз состоит только из функций настройки и цикла без каких-либо данных.
В моем случае у меня есть дополнительная плата Arduino UNO с нефункционирующей микросхемой ATmega328p. Итак, я удалил микросхему микроконтроллера из Arduino UNO и начал использовать ее как преобразователь USB в последовательный порт.
Схема
для программирования ESP8266 с использованием Arduino
Вы уже видели необходимые компоненты и принципиальную схему проекта. Теперь давайте попробуем разобраться в конструкции схемы.
Прежде всего, модуль ESP8266 работает от источника питания 3,3 В, и все, что выше, например 5 В, убьет SoC.Итак, выводы VCC и CH_PD модуля ESP8266 ESP-01 подключены к источнику питания 3,3 В.
Следующее важное обстоятельство, о котором следует помнить, это то, что модуль WiFi ESP8266 имеет два режима работы: режим программирования и нормальный режим.
В режиме программирования вы можете загрузить программу или прошивку в модуль ESP8266, а в нормальном режиме загруженная программа или прошивка будут работать нормально.
Для включения режима программирования вывод GPIO0 должен быть подключен к GND. На принципиальной схеме я подключил переключатель SPDT к выводу GPIO0.Переключение рычага SPDT переключает ESP8266 между режимом программирования (GPIO0 подключен к GND) и нормальным режимом (GPIO0 действует как контакт GPIO).
Кроме того, RST (сброс) будет играть важную роль в включении режима программирования. Вывод RST является активным выводом LOW и, следовательно, он подключен к GND через кнопку. Таким образом, всякий раз, когда нажимается кнопка, модуль ESP8266 сбрасывается.
Контакты RX и TX модуля ESP8266 подключены к контактам RX и TX на плате Arduino.Поскольку SoC ESP8266 не может выдерживать напряжение 5 В, вывод RX Arduino подключается через преобразователь уровня, состоящий из резистора 1 кОм и резистора 2,2 кОм.
Наконец, вывод GPIO2 подключается к светодиоду для проверки работы программы. Все необходимые подключения для включения режима программирования в ESP8266 указаны ниже.
- VCC — -> 3,3 В
- земля — -> земля
- CH_PD — -> 3,3 В
- RST — -> нормально открытый; GND для сброса
- GPIO0 — -> GND
- TX — -> TX Arduino
- RX — -> RX Arduino (через преобразователь уровня)
Работа интерфейса ESP8266 Arduino
Убедитесь, что все вышеупомянутые соединения выполнены правильно.После подключения и настройки ESP8266 в режиме программирования (GPIO0 подключен к GND) подключите Arduino к системе.
После включения модуля ESP8266 нажмите кнопку RST и откройте Arduino IDE. В параметрах платы (Инструменты -> Плата) выберите плату «Generic ESP8266». Выберите соответствующий номер порта в среде IDE.
Теперь откройте скетч Blink и измените вывод светодиода на 2. Здесь 2 означает вывод GPIO2 модуля ESP8266. Прежде чем начать загрузку, убедитесь, что GPIO0 подключен к GND, а затем нажмите кнопку RST.
Нажмите кнопку загрузки, и код займет некоторое время для компиляции и загрузки. Вы можете увидеть прогресс в нижней части IDE. После успешной загрузки программы вы можете удалить GPIO0 из GND. Светодиод, подключенный к GPIO2, будет мигать.
В этом проекте мы увидели, как будет работать интерфейс ESP8266 Arduino, как загрузить программу в модуль ESP8266 WiFi и получить доступ к контактам ввода / вывода модуля ESP8266.
Макетная плата
и программирование схемы ESP-01 с помощью Arduino IDE
ESP8266 Микроконтроллер / интегральная схема Wi-Fi
Новый микроконтроллер привлек внимание профессиональных дизайнеров и любителей, и он может стать форс-мажором в Интернете вещей.Эта высокоинтегрированная схема, носящая непонятное название «ESP8266», состоит из 32-битного процессора RISC со всеми наворотами, которые можно ожидать от полнофункционального микроконтроллера, но это еще не все. ESP8266 также включает в себя встроенную схему Wi-Fi 802.11 b / g / n, которая готова к прямому подключению к антенне.
ESP8266 в настоящее время доступен только в 32-выводном корпусе QFN, и в этом семействе всего одна микросхема. Разработчик, Espressif, из Шанхая, Китай, решил в полной мере воспользоваться производственной эффективностью масштаба и предложить единую ИС, которая подходит для использования на различных сборках печатных плат.В настоящее время существует более десятка модулей печатных плат ESP, которые различаются в первую очередь стилями антенн и количеством доступных входов / выходов. Из-за пакета QFN ESP8266 большинство любителей будут довольны этим решением, особенно с учетом того, что рыночные цены начинаются от менее 5 долларов США за недорогую модель, получившую название ESP-01 и изображенную ниже. Щелкните фото, чтобы увеличить изображение.
Существует очень активный форум поддержки сообщества по ESP8266, который является отличным источником идей и информации.Первоначально документация была доступна только на китайском языке, и до сих пор трудно найти информацию о приложении. В настоящее время многие проекты DIY работают в режиме «проб и ошибок», но есть много поставщиков послепродажного обслуживания, которые продают платформы для разработки и аксессуары. Однако, как вы увидите позже в этой статье, нетрудно запустить ESP8266 на макетной плате без пайки.
Опции программирования
От поставщика многие (возможно, все) модули ESP8266 загружаются с микропрограммным обеспечением «AT» и могут быть запрограммированы с помощью простой терминальной программы.Если вы используете модуль в первую очередь для использования его возможностей Wi-Fi и управления им с помощью другого микроконтроллера, это может быть все, что вам нужно.
Более сложный вариант доступен от NodeLua, который предлагает прошивку с открытым исходным кодом на основе языка программирования Lua. NodeLua все еще находится в разработке, но уже содержит обширные возможности. Другие варианты включают Python, BASIC и Arduino IDE, о которых рассказывается в этой статье.
Входы и выходы ESP-01
Модуль ESP-01 содержит микроконтроллер ESP8266 и микросхему флэш-памяти.Есть два светодиода: красный, который указывает на то, что к модулю подключено питание, и синий, который указывает на поток данных, также может управляться с помощью пользовательского программирования. Антенна Wi-Fi — это дорожка на печатной плате, которая покрывает верхнюю часть модуля; она называется «меандрированная перевернутая F-антенна» (MIFA), она на удивление эффективна и имеет лишь умеренную направленность.
Внизу модуля есть восемь контактных площадок; на рисунке выше указаны их функции.Обычно два 4-контактных штекерных разъема вставляются в заднюю часть модуля и припаиваются к передней. Это делает доступными входы / выходы, но не подходят для макетных плат и требуют проложенных проводов от ESP-01 к макетной плате без пайки. Этот метод работает, но он беспорядочный. Альтернативный способ показан ниже.
Заголовок на передней части печатной платы использует стандартные прямоугольные штифты без каких-либо изменений. В задней части жатки используются удлиненные штифты, которые согнуты под прямым углом.3 дюйма между рядами. Этот метод позволяет вставлять ESP-01 в макетную плату без пайки в вертикальной ориентации, охватывая центральный зазор, и обеспечивает независимый доступ ко всем восьми контактам.
Соединяем вещи вместе
Схематическая диаграмма ниже показаны соединения, необходимые для ESP-01, а на фотографиях показана готовая беспаечная макетная плата.Цвета проводов на схеме соответствуют цветам проводов на фотографиях.
Соберите сборку, как показано, но не подключайте кабель от преобразователя USB к TTL к ПК, пока не установите шунт на плате преобразователя в положение 3.Положение 3V и дважды проверил всю проводку. Использование 5 В для питания ESP-01 может привести к невозможности ремонта.
Примечание редактора: здесь доступна более надежная схема перепрошивки, которую следует использовать вместо схемы, описанной в этой статье.
Между схематической диаграммой и фотографиями у вас должна быть большая часть информации, необходимой для сборки беспаечной макетной платы.Приведенные ниже примечания также помогут.
- Преобразователь USB в TTL, показанный на фотографиях, использует микросхему FTDI 232 UART и хорошо работает с операционными системами Windows, Mac и Linux. Он также обеспечивает источник питания 3,3 В постоянного тока для ESP-01. Убедитесь, что шунт на плате преобразователя настроен на выход 3,3 В; Это гарантирует, что и напряжение питания, и сигнал TxD будут иметь правильное напряжение. Использование более высокого напряжения может повредить ESP-01.
- Какой бы преобразователь USB в TTL вы ни выбрали, его следует установить и протестировать перед его использованием с макетной платой ESP-01.Драйверы для устройств FTDI находятся на сайте FTDI.
- Расчетный ток, необходимый для ESP-01 во время работы Wi-Fi, варьируется от 250 мА до 750 мА. Ток, подаваемый преобразователем USB в TTL, должен быть достаточным для программирования ESP-01, но может оказаться недостаточным для длительного использования. Лучшим выбором является стабилизированный источник питания 3,3 В постоянного тока с фильтром, рассчитанный на ток 1 А или более.
- Провода DTR и CTS от преобразователя USB в TTL не требуются и не подключаются.
- Два показанных переключателя представляют собой нормально разомкнутые (NO) однополюсные кнопки с мгновенным контактом.
- Одно из расхождений в информации, доступной для ESP-01, заключается в том, следует ли подключать CH_PD напрямую к + 3,3 В или через подтягивающий резистор 10 кОм. Автор протестировал оба метода и обнаружил, что оба работают. После того, как вы построите и протестируете схему, как показано здесь (с CH_PD, подключенным непосредственно к + 3,3 В), попробуйте использовать резистор 10 кОм вместо прямого подключения. Если схема работает с подтягивающим резистором 10 кОм, оставьте его в цепи.
Как видно на фотографиях выше, использование подвесных проводов от преобразователя USB в TTL не является оптимальным.Лучшим вариантом является замена шести прямоугольных штырей на преобразователе шестью прямыми штырями в нижней части печатной платы. Модификация позволит подключить преобразователь USB к TTL к беспаечной макетной плате и приведет к более аккуратной и менее хрупкой сборке, как показано на следующей фотографии.
Включение питания
Перед подключением преобразователя USB к TTL к вашему ПК убедитесь, что шунт выбора напряжения находится в положении 3,3 В и что вся проводка на макетной плате ESP-01 правильная и надежная. .Затем подключите USB-кабель; красный светодиод на ESP-01 должен гореть и оставаться включенным, а синий светодиод должен мигать всякий раз, когда есть сигнал между EXP-01 и ПК. Затем проверьте переключатель сброса, нажав и удерживая его. Посмотрите на ESP-01; когда вы отпустите кнопку сброса, синий светодиод должен дважды мигнуть. Если на этом этапе все в порядке, отключите схему от ПК и перейдите к следующему разделу.
Arduino IDE
Рекомендуемая версия Arduino IDE для использования с модулями ESP8266 — это версия 1.6.5. Если у вас более ранняя версия, вы можете попробовать ее и посмотреть, работает ли она, или вы можете обновить ее до 1.6.5.
- После установки надлежащей Arduino IDE запустите программу и нажмите «Файл», «Настройки» и найдите поле ввода дополнительных URL-адресов Board Manager. Введите следующий URL-адрес точно в том виде, в котором он написан, а затем нажмите OK.
- http://arduino.esp8266.com/stable/package_esp8266com_index.json
- Затем щелкните «Инструменты», «Менеджер доски» и прокрутите список вниз, чтобы найти «esp8266 от сообщества ESP8266. «Выберите эту запись и нажмите кнопку» Установить «; загрузка и установка начнутся и продолжатся в течение нескольких минут. Во время установки обратите внимание на различные поддерживаемые платформы. В дополнение к общему модулю ESP8266, поддержка предоставляется для NodeMCU , Huzzah и SweetPea. К тому времени, как вы это прочтете, вероятно, будет добавлено больше.
- Когда установка будет завершена, нажмите кнопку «Закрыть».
- Теперь щелкните «Инструменты», выделите переключатель «Плата» и выберите «Стандартный модуль ESP8266».«
- Снова нажмите «Инструменты» и визуально подтвердите, что выбранная плата является универсальным модулем ESP8266.
- Щелкните Файл, Примеры и прокрутите список вниз, пока не дойдете до ESP8266WiFi, а затем щелкните WiFiScan. Должно открыться новое окно IDE, содержащее эскиз WiFiScan.
Подключите цепь к ПК и убедитесь, что красный светодиод на ESP-01 горит. Щелкните Инструменты, Порт и выберите порт, к которому подключен ESP-01. Наконец, вы готовы программировать ESP-01.
Нажмите и удерживайте кнопку сброса, а затем нажмите и удерживайте кнопку Flash. Отпустите кнопку Reset и, удерживая кнопку Flash нажатой, щелкните стрелку «Загрузить» в среде Arduino IDE. Скетч должен скомпилироваться примерно через минуту, и когда он будет готов, отпустите кнопку Flash. Скомпилированный код будет отправлен на ESP-01; во время отправки синий светодиод на ESP-01 будет мигать.
Чтобы увидеть результаты всех этих щелчков и выбора, щелкните Инструменты, Serial Monitor и установите скорость передачи в правом нижнем углу окна Serial Monitor на 115200.Если у вас более ранняя версия ESP-01 (вероятно, построенная на синей печатной плате), скорость передачи, скорее всего, составляет 9600 бод.
ESP-01 должен сканировать сети Wi-Fi и сообщать результаты в окне Serial Monitor, как показано в примере ниже.
В отчете должна отображаться ваша собственная сеть, а также все другие сети, которые находятся в зоне действия ESP-01. Цифры в скобках показывают мощность сигнала каждой сети, а поскольку числа отрицательные, меньшие числа представляют более сильные сигналы.
Дверь открыта
Возможность программирования ESP8266 с помощью Arduino IDE значительно расширяет пользовательскую базу для этих чипов с поддержкой Wi-Fi. ESP-01 и его более крупные собратья предоставляют чрезвычайно функциональную аппаратную платформу по невысокой цене. Добавьте к этому простоту использования Arduino IDE, и создание приложений для Интернета вещей станет доступным практически для всех.
Что вы будете подключать к Интернету?
Попробуйте этот проект сами! Получите спецификацию.
DIY PCB для ESP8266 WiFi-модуля
Обзор
В этом проекте / руководстве я покажу вам, как спроектировать и разработать печатную плату для модуля ESP8266 WiFi. Если вы помните, в проекте « НАЧАЛО РАБОТЫ С ESP8266 И ARDUINO » я упоминал, что контакты WiFi-модуля ESP8266 не подходят для макетов.
Вот, я сделал небольшую перфокарту для WiFi-модуля ESP8266, чтобы вставить его в макетную плату, вы можете назвать это адаптером макетной платы.
Несмотря на то, что эта перфокарта служила для использования ESP8266 на макетной плате, мне все же пришлось подключить резисторы преобразователя уровня, нажимая кнопку для отдельного сброса модуля.
Итак, вместо того, чтобы делать печатную плату для адаптера макетной платы, я решил сделать печатную плату для модуля WiFi ESP8266 со всеми необходимыми компонентами, такими как разъемы для питания, контакты GPIO и связи (RX и TX), ползунковый переключатель для выбора режима программирования. или нормальный режим, кнопка для сброса, заголовки для вставки модуля Wi-Fi ESP8266 и резисторы преобразователя уровня для вывода RX модуля.
Давайте начнем печатную плату WiFi-модуля ESP8266, взглянув на принципиальную схему со всеми необходимыми компонентами.
Принципиальная схема
Прежде чем приступить к проектированию печатной платы платы ESP8266, вам необходимо разработать принципиальную схему со всеми компонентами и соединениями.
На следующем изображении показаны схемы подключения WiFi-модуля ESP8266 ESP-01.
Я объясню конструкцию схемы позже, но сначала давайте рассмотрим все компоненты, которые используются в конструкции схемы.
Необходимые компоненты
Ниже приведен список всех компонентов, используемых для разработки схемы печатной платы модуля WiFi ESP8266.
- ESP8266 WiFi-модуль (ESP-01)
- Женский заголовок (несколько полосок)
- Кнопка
- Резистор 1 кОм (1/4 Вт)
- Резистор 2,2 кОм (1/4 Вт)
- Конденсатор 100 нФ
- Двухпозиционный ползунковый переключатель
Схемотехника
Прежде всего, нам нужно вспомнить конфигурацию контактов WiFi-модуля ESP8266.Вариант ESP8266 ESP-01 имеет 8 контактов, а именно: VCC, GND, RX, TX, GPIO0, GPIO2, RST и CH_PD. Описание вывода уже упоминалось в предыдущих руководствах.
Что касается конструкции схемы, выводы VCC и CH_PD модуля подключены к клемме VCC заголовка источника питания, а контакт GND подключен к клемме GND.
Керамический дисковый конденсатор емкостью 100 нФ подключен между гнездовыми разъемами VCC и GND.
Вывод RST (сброса) подключен к одному концу кнопки, а другой конец кнопки подключен к GND.
GPIO2 подключается непосредственно к одному из выводов в розетке для GPIO. Вывод GPIO0 подключен к центральному выводу двустороннего ползункового переключателя. Один конец переключателя подключен ко второму выводу разъема-розетки для GPIO, а другой конец подключен к GND.
Далее идут контакты связи, то есть TX и RX. Контакт TX WiFi-модуля ESP8266 напрямую подключен к клемме TX разъема «мама». Вывод RX, с другой стороны, подключен через преобразователь уровня, состоящий из 1 кОм и 2.Резистор 2кОм.
Разработка печатной платы для модуля WiFi ESP8266
После понимания требований и разработки принципиальной схемы можно переходить к проектированию печатной платы для модуля ESP8266 WiFi. Для этой цели я использовал программу Autodesk Eagle PCB.
На следующем рисунке показана простая компоновка схемной части проекта печатной платы. Это изображение является всего лишь справкой, и вы можете нарисовать схему в соответствии с вашим удобством, используя принципиальную схему.
После того, как схема будет завершена, следующим шагом будет переход к собственному дизайну печатной платы.Поскольку это печатная плата «сделай сам», я использовал однослойную конструкцию (хотя в одном месте мне пришлось использовать перемычку).
Компоновка платы
для WiFi-модуля ESP8266 показана на изображении ниже. Опять же, это не лучший дизайн, но он служит цели.
Изготовление печатной платы и сборка компонентов
В руководстве « КАК СДЕЛАТЬ СОБСТВЕННУЮ ПЛАТУ ДОМА » я уже упоминал необходимые шаги, которые необходимо выполнить для создания собственной печатной платы. Я бы не стал повторять эти шаги и инструкции, как вы следуете им из этого руководства.
После разработки печатной платы вы можете собрать компоненты и припаять их к плате. Окончательная плата со всеми размещенными и припаянными компонентами показана на изображении ниже.
Работа печатной платы для модуля WiFi ESP8266
После сборки компонентов подключите источник питания 3,3 В к контактам VCC и GND на плате. Если вы хотите запрограммировать ESP8266 или прошить на него прошивку, переведите переключатель в положение «Режим программирования» и один раз нажмите кнопку сброса.
Теперь режим программирования активирован, и вы можете приступить к прошивке прошивки, как показано в этом руководстве « КАК ОБНОВИТЬ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ FLASH ESP8266 » или просто загрузите мигающий эскиз, чтобы мигал светодиод.
Когда вы закончите загрузку программы / прошивки, переведите переключатель в нормальный режим и нажмите кнопку сброса. Теперь загруженная программа / прошивка запустится.
Как программировать ESP8266 с Arduino UNO
Здесь вы узнаете, как программировать ESP8266 с платой Arduino.Вам просто нужно установить плату ESP8266 и собрать схему в соответствии с приведенными ниже инструкциями. В качестве примера программы мы используем программу Blink LED.
Шаг 1: Установка платы в Arduino IDE
Сначала установите ESP8266 в Arduino IDE. Если вы уже установили плату в менеджер плат Arduino IDE, пропустите этот шаг, иначе выполните шаги
- Перейдите в Инструменты > Платы> Диспетчер плат …
- Поиск ESP8266
- Нажмите Установить Кнопка для установки платы ESP8266
- Теперь закройте окно Boards Manager и выберите универсальный модуль ESP8266 из списка выбора платы
- Установка ESP8266 в Arduino IDE завершена.
Шаг 2: Время контура
Создайте контур в соответствии с данной схемой. Подключите линии CH_PD и VCC к выходу регулятора напряжения, GND и GPIO_0 к земле. Также подключите линии RX и TX обоих. GPIO_0 заземлен для включения режима программирования ESP8266.
Шаг 3: Запрограммируйте ESP8266 с использованием Arduino
Создайте схему в соответствии с приведенной выше схемой. Включите плату Arduino UNO и дождитесь успешной загрузки платы Arduino. (Это займет около 5 секунд) Подключите контакт сброса Arduino к земле.Вывод сброса заземлен для обхода Arduino. Это отключит плату Arduino и загрузит код непосредственно в ESP8266. Пример программы для светодиода Blink:
После того, как Arduino IDE покажет, что загрузка программы светодиода Blink завершена, подключите светодиод к контакту GPIO_2 ESP8266. Пожалуйста, не подключайте светодиод до или во время загрузки программы, это может вызвать некоторые проблемы при загрузке программы.
Примечание: Если индикатор L горит перед загрузкой программы, отключите питание на одну минуту, иначе будет отображаться ошибка при загрузке программы в ESP8266.
См. Оригинал по адресу: https://iot-guider. com/esp8266/how-to-program-esp8266-with-arduino-uno/
Чтобы ознакомиться со статьей об аппаратном обеспечении и особенностях WiFi-модуля ESP8266, нажмите здесь.
3 простых способа программирования модуля ESP8266 12X
Если вы не знакомы с микроконтроллером ESP8266, я действительно чувствую, что вы упускаете его! Это невероятные вещи: они дешевые, мощные и, что самое главное, имеют встроенный Wi-Fi!
ESP8266 начал свое путешествие как добавление Wi-Fi для более традиционных плат Arduino, но вскоре после этого сообщество осознало их силу и добавило поддержку, позволяющую программировать напрямую с помощью Arduino IDE.
В наши дни, если вы хотите использовать ESP8266 для своего проекта, я бы порекомендовал использовать плату для разработки, такую как Wemos D1 Mini * (2,50 доллара США!) Или Adafruit Feather Huzzah. На этих платах выломаны все используемые контакты, они легко программируются через разъем micro USB и имеют встроенный регулятор 3,3 В.
Но что, если вы хотите использовать ESP8266 в проекте с настраиваемой печатной платой? Самый простой способ — использовать модуль ESP12, и в этом руководстве я покажу вам несколько простых способов их программирования.
Посмотрите видео!Вот видео со всей информацией, содержащейся в руководстве, если вы хотите его проверить. На моем канале я много работаю с ESP8266, так что мой канал в целом, возможно, стоит проверить, если такие вещи вас интересуют!
Предварительный этап: настройка для программирования ESP8266Если вы никогда раньше не использовали ESP8266 или Arduino, нам потребуется небольшая настройка программного обеспечения. У меня есть для этого специальный ролик. Он длится всего 5 минут и включает все, что вам нужно для настройки.
Перед тем, как перейти к следующему разделу, вы должны иметь возможность загрузить простой скетч в ESP8266 (например, пример мигания).
Метод 1: Программатор пинов «лягушка»Это, вероятно, самый простой способ запрограммировать модуль ESP12. Вы просто вставляете модуль в плату, а затем он ведет себя точно так же, как одна из упомянутых ранее плат для разработки. Я выбрал плату Wemos D1 Mini из раскрывающегося списка плат при программировании. У этого метода есть недостатки:
- Программатор стоит немного дороже, если вы делаете только несколько плат.
- Платы можно запрограммировать только таким образом до того, как они будут припаяны к вашей печатной плате
Я купил на Aliexpress, но я считаю, что первоначальным дизайнером является пользователь Tindie по имени Фред. В то время они были распроданы, поэтому я остановился на Aliexpress, но я свяжусь с обоими.
- Aliexpress Программатор модуля ESP Pop-in *
- Программатор модуля ESP Fred’s Frog Pin
Для следующего метода мы собираемся вручную перевести модуль ESP в режим программирования и затем используйте в основном любой USB-последовательный преобразователь для программирования ESP8266, даже этот PL2303 *, который стоит 50 центов, работает!
Основные операции:
Прежде чем мы начнем программировать, нам сначала нужно взглянуть на то, какие внешние компоненты должны запускаться ESP8266. Для нормальной работы модулю ESP-12 необходимо следующее:
- EN, RST и GPIO 0 необходимо подтянуть высоко с помощью резистора 10 кОм
- GPIO 15 необходимо подтянуть к заземлению с помощью резистора 10 кОм
- источник питания 3,3 В около 250 мА тока (рекомендуется ограничитель между VCC и GND)
С приведенной выше конфигурацией ESP8266 при включении будет находиться в нормальном рабочем режиме, поэтому он будет запускать все наброски, которые вы ему запрограммировали. Вы можете купить коммутационные платы для модулей ESP-12 *, которые действительно полезны для тестирования различных настроек.В модулях установлены резисторы для 15 контактов EN и GPIO, поэтому вам все равно потребуется добавить подтягивающий резистор для RST и GPIO 0,
Включение режима программирования:
Чтобы перевести его в режим программирования, необходимо установить низкий уровень GPIO 0 при запуске ESP. Самый простой способ сделать это — добавить кнопки к GPIO 0 и контакту RST, которые подключаются к земле при нажатии. Затем, чтобы включить режим вспышки, вы просто
- Удерживайте кнопку GPIO 0
- Нажмите кнопку RST
- Затем отпустите обе кнопки
Вам не нужно выполнять эту последовательность в любой конкретный момент во время загрузки процесса или чего-либо еще, как только ESP находится в режиме программирования, он останется там до следующего сброса, поэтому просто выполняйте шаги в любое время перед загрузкой.
Программирование с помощью адаптера USB-последовательный порт:
Включение программного режима — это только половина дела, теперь нам нужно фактически запрограммировать модуль. Большинство адаптеров USB-последовательный порт не могут обеспечить достаточный ток для ESP8266, поэтому рекомендуется запитать ESP8266 от внешнего источника 3,3 В.
Чтобы подключить программатор, вам необходимо подключить следующие контакты (также показаны на изображении выше):
- Подключите TX программатора к RX ESP8266 (это не опечатка, подключения поменяны местами)
- Connect RX программатора к TX ESP8266
- Подключите заземление программатора к земле ESP8266
Чтобы загрузить свой скетч, выполните следующие действия:
- Выберите номер порта вашего последовательного адаптера (Инструменты-> Порт)
- Включите режим программирования на ESP8266, как описано выше.
- Нажмите кнопку загрузки.(Если это не удается, дважды проверьте вашу проводку и попробуйте снова перевести плату в режим программирования)
- Нажмите кнопку сброса после завершения загрузки
Вот настройки платы, которые я использовал при загрузке этим методом:
- Плата: Стандартный модуль ESP8266
- Режим вспышки: DIO
- Размер вспышки: 4M (3M Spiffs)
- Метод сброса: ck
- Частота вспышки: 40 МГц
- Скорость загрузки: 115200
Последнее, что нужно отметить, это 9036IL2_BU Определение для универсального модуля ESP8266 указывает на контакт 1, но встроенный светодиод модуля ESP12 подключен к контакту 2 (он также активен на низком уровне, как и FYI).Поэтому, если вы тестируете скетч мигания, вам нужно будет использовать номер 2 , а не LED_BUILTIN
* = Партнерская ссылка
Метод 3: Автоматический сброс программатора с помощью NodeMCUЕсли вы использовали какие-либо платы разработки ESP, вы наверняка заметили, что в основном все они не требуют, чтобы вы вручную включали режим программирования с помощью кнопок, так как же они это делают?
Большинство микросхем USB на последовательный порт имеют дополнительные контакты, которые выводят сигналы на разных этапах процесса загрузки, и с помощью некоторых внешних схем можно вызвать низкий уровень GPIO 0 и необходимые сбросы. У RuiMoteiro есть руководство по этой теме с использованием платы FTDI и ESP8266.
Но я думаю, что есть более простой подход к этому, и что еще лучше, есть большая вероятность, что у вас уже есть все, что вам нужно для этого! Вы можете использовать отладочную плату ESP8266, такую как NodeMCU, в качестве программатора *.
В чем преимущество использования NodeMCU?
Основными преимуществами использования NodeMCU в качестве программиста являются следующие:
- Вы можете запитать ESP8266 непосредственно от контактов 3V NodeMCU
- Будет выполнять автоматический сброс / включение режима программирования
- Стоит около 2 долларов .50 (и может использоваться как обычная плата разработчика, если не программирует другие!)
Вы можете использовать тот же подход с любой платой разработчика, которая открывает контакт включения микросхемы ESP8266.
Как это работает?
Я получил идею от YouTuber по имени Мика Куркела, в своем видео он использовал NodeMCU для программирования модуля ESP-01, но мы можем использовать ту же идею для модуля ESP12.
В основном мы собираемся отключить ESP8266 на NodeMCU, установив низкий уровень на контакте EN, это предотвратит загрузку модуля ESP8266 на NodeMCU.Затем мы собираемся подключить все соответствующие контакты платы NodeMCU к нашему внешнему ESP8266.
Подключение
Чтобы подключить его, вам понадобится стандартная проводка ESP8266, как показано на предыдущем шаге, а затем добавить следующие подключения (также показанные на изображении выше):
- Подключите 3V NodeMCU к VCC из ESP8266
- Подключите GND к GND
- Подключите TX NodeMCU к TX ESP8266 (это отличается от предыдущего шага)
- Подключите RX из NodeMCU к ESP8266
- Подключите D3 NodeMCU к GPIO 0 ESP8266 (D3 — GPIO 0 ESP8266)
- Подключите RST узла NodeMCU к RST ESP8266
NodeMCU к GND
Загрузка эскиза
После подключения ESP8266 необходимо сделать следующее:
- Выбрать номер порта сервер NodeMCU (Инструменты-> Порт)
- Выберите тип платы «NodeMCU 1. 0 (ESP12-E Module) «
- Нажмите кнопку загрузки
И готово! Он автоматически включит режим программирования и автоматически сбросится после завершения загрузки, чтобы начать выполнение эскиза.
Использование этого в дизайне ваших плат
Чтобы использовать этот метод в конструкции платы, вам просто нужно выломать следующие контакты:
И когда вы хотите запрограммировать свои платы, подключите его, как указано выше.
Надеюсь, это руководство окажется для вас полезным. Если у вас есть вопросы, не стесняйтесь их задавать!
* = Партнерские ссылки
ESP8266 12F Автономный модуль WiFi
ВВЕДЕНИЕ В МОДУЛЬ WIFI ESP8266
Микросхема ESP8266 упакована в серию модулей, а также в отладочные платы.
Они предлагают «SOC» — систему на кристалле — решение для обеспечения возможности подключения WiFi наряду с функциями микроконтроллера. Их также можно использовать для добавления функциональности WiFI к другим схемам и платам, таким как Arduino.
НАЖМИТЕ ЗДЕСЬ, ЧТОБЫ ПРОСМОТРЕТЬ НАШЕ ВИДЕО-РУКОВОДСТВО, ЧАСТЬ 1 НА YOUTUBE
НАЖМИТЕ ЗДЕСЬ, ЧТОБЫ ПРОСМОТРЕТЬ НАШЕ ВИДЕО-РУКОВОДСТВО, ЧАСТЬ 2 НА YOUTUBE
НАЖМИТЕ ЗДЕСЬ
ДЛЯ ПРОШИВКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 9034 (документ ) ОСНОВНАЯ НАСТРОЙКА
Модули представляют собой небольшую плату с антенной вверху и выступами smd по бокам и на одном конце.Табуляторы расположены в миллиметрах, поэтому они несовместимы с общими выводами заголовков, макетными платами и т. Д. Таким образом, если вы не устанавливаете их на поверхность на настраиваемую печатную плату, лучшим вариантом будет использование модуля с коммутационной платой, которая затем оснастит его стандартными разъемами. Для этого купите модуль с комплектом коммутационной платы, который вы также можете припаять и протестировать для использования. Контактные штыри вставляются в макетную плату, или вы можете подключиться к Dupont Leads.
НАЖМИТЕ ЗДЕСЬ, ЧТОБЫ ПОЛУЧИТЬ ESP8266 с BREAKOUT BOARD
ESP8266 можно использовать во многом так же, как Arduino.Он имеет входные и выходные контакты и, используя библиотеки, которые были бесплатно доступны на Github, может быть запрограммирован с помощью Arduino IDE. Вы можете использовать хорошо известные интерфейсы SPI и I2C, а также множество языков программирования, поэтому возможные варианты использования варьируются от простого проекта с минимальными необходимыми знаниями программирования до полноценных устройств IoT промышленного уровня. Прокрутите вниз, чтобы получить дополнительную информацию об установке библиотек и настроек Arduino, а также ссылки на необходимые файлы.
ПЕРЕДАЧА И ЗАГРУЗКА ДАННЫХ
Выгрузка данных, таких как программа Arduino (эскиз), в ESP8266 выполняется с использованием последовательных данных.Это означает, что для подключения его к компьютеру (ПК или MAC) вам необходимо использовать USB-порт для последовательного порта, такой как коммутационная плата FTDI. Когда вы подключите его к ПК, вы увидите его как виртуальный COM-порт в диспетчере устройств, и он появится в меню Arduino / Tools / Ports. (например, COM3, COM12 и т. д.). (Примечание: FTDI — не единственный тип микросхемы для последовательной передачи данных на USB — есть и другие, например Ch440G, и вам может потребоваться установить драйверы, если они не работают автоматически).
Для программирования ESP8266 необходимо перевести его в режим программирования UART.Это включает в себя опускание контакта 0 GPIO на землю через резистор. Во время загрузки модуль должен будет перезагрузиться, перейти в режим программирования, а затем вернуться в нормальный рабочий режим. Это можно сделать либо вручную с помощью пары кнопок, либо автоматизировать с помощью подключения адаптера USB-Serial и нескольких дополнительных компонентов.
Чтобы загрузить данные, подключите Rx к Tx и Tx к Rx между двумя платами. Также подключите Gnd модуля программирования к Gnd ESP8266.Для программирования автоматического сброса подключите RTS и DTR от программатора к ESP8266, как показано на схеме ниже — если они недоступны, вам нужно будет использовать схему и метод ручного сброса. Какой бы метод вы ни выбрали, рекомендуется также подключить кнопку сброса, чтобы при необходимости можно было просто запустить программу снова.
Совет: на эскизы arduino могут влиять последовательные скорости — скорость вашего соединения будет 115200, что обычно нормально, но вы можете обнаружить, что Serial.Команда begin (115200) в скетчах, которые вы копируете и вставляете, повлияет на поток данных. Если возникнут проблемы, попробуйте использовать Serial.begin (9600).
ПОДКЛЮЧЕНИЯ И НАСТРОЙКА
Чтобы настроить ESP8266 для использования в качестве микроконтроллера / решения WiFi, ему потребуются некоторые дополнительные компоненты, такие как резисторы, чтобы установить высокий или низкий уровень некоторых контактов. Вот основные подключения:
Vcc 3,3 В
Gnd
CH-PD подключается с помощью резистора 10 кОм к 3,3 В
Reset подключается с резистором 10 кОм к 3.3 В
GPIO0 подключается с резистором 10 кОм к 3,3 В
GPIO15 подключается с резистором 10 кОм к Gnd
Ручной сброс:
GPIO0 к Gnd через резистор 470R и кнопочный переключатель (программная кнопка)
Сброс на Gnd с помощью кнопки переключатель (кнопка сброса)
Метод:
Удерживайте кнопку сброса
Удерживайте нажатой кнопку Program
Отпустите кнопку сброса
Отпустите кнопку программы
Нажмите Загрузить на компьютере
(Чтобы это сработало, необходимо использовать «метод сброса» в Arduino / Tools быть установлен на ‘ck’)
Вот как вы его подключаете:
Автоматический сброс
Существует также автоматический метод загрузки и сброса.
Чтобы использовать это, потребуются дополнительные схемы с использованием пары небольших NPN-транзисторов.
(Для того, чтобы это работало, в Arduino / Tools для «метода сброса» должно быть установлено значение «nodemcu») как показано выше, вы можете использовать цифровые контакты:
0 | 1 | 2 | 3 | 4 | 5 | 12 | 13 | 14 | 15 | 16
и аналоговый вход / выход:
АЦП с диапазоном от 0 В до 1 В
Контакты 12 | 13 | 14 имеют возможность ШИМ.
Для использования SPI:
CLK 14 | 12 MISO | 13 MOSI
Для использования I2C:
12 SDA | 14 SCL
БИБЛИОТЕКИ И ИНФОРМАЦИЯ ДЛЯ ARDUINO IDE
Перейдите в свою Arduino IDE и выберите File> Preferences
Где написано Дополнительные URL-адреса Board Manager, скопируйте и вставьте эту ссылку:
https://arduino.esp8266.com/stable/package_esp8266com_index .json
Нажмите OK
Затем перейдите в Инструменты> Плата> Диспетчер плат и прокрутите вниз, чтобы найти ESP8266
Убедитесь, что вы нашли последнюю версию, и нажмите Установить
Когда все будет установлено, вы должны найти множество вариантов для ESP8266 в меню платы Arduino.Модуль, который у нас есть, — это ESP8266 ESP12F, который имеет большую флэш-память и некоторые улучшенные функции по сравнению с некоторыми другими предыдущими платами.
Выберите свой com-порт, а затем плату — либо «ESPino (модуль ESP-12)», либо «Стандартный модуль ESP8266»
Затем вам нужно будет проверить еще несколько параметров, например скорость соединения (вероятно, 115200) и сбросить режим (ck для ручного и nodemcu для автоматического), а затем вы готовы загрузить свой первый скетч (убедитесь, что у вас есть схема сброса, ручная или автоматическая).
Рекомендуется сначала попробовать что-нибудь простое, например, скетч Blink, чтобы убедиться, что все работает и ваше соединение / передача данных работает. Примечание: функция LED_BUILTIN на ESP8266 инвертирована — горит, когда НИЗКИЙ, и выключен, когда ВЫСОКИЙ.
Следующим шагом будет просмотр «примеров» скетчей, которые будут установлены при загрузке библиотек Arduino. Сначала можно попробовать сканирование WiFi, измените Serial.