Что такое ESP8266 NodeMCU. Какие бывают версии плат NodeMCU. Как выглядит распиновка NodeMCU v3. Как программировать ESP8266 на Arduino IDE и Lua. Какие есть альтернативы NodeMCU.
Что такое ESP8266 NodeMCU?
NodeMCU — это популярная платформа для разработки IoT-устройств на базе модуля ESP8266. Она объединяет в себе мощный Wi-Fi чип ESP8266, Flash-память, стабилизатор напряжения и USB-UART мост на одной плате, что значительно упрощает создание прототипов.
Основные преимущества NodeMCU:
- Встроенный Wi-Fi модуль ESP8266
- Большое количество GPIO для подключения периферии
- Низкая стоимость (около $5)
- Простота программирования через Arduino IDE или Lua
- Компактные размеры
- Открытая аппаратная платформа
Благодаря этим качествам NodeMCU стал очень популярным решением для быстрого прототипирования IoT-устройств.
Версии и модификации плат NodeMCU
На рынке представлено несколько версий и модификаций плат NodeMCU от разных производителей. Основные из них:
- NodeMCU v0.9 (первое поколение)
- NodeMCU v1.0 (второе поколение)
- NodeMCU v1.0 «V3» (улучшенная версия от LoLin)
- WeMos D1 Mini (компактная версия)
Рассмотрим особенности каждой версии подробнее.
NodeMCU v0.9 (V1)
Это самая первая версия платы NodeMCU. Её основные характеристики:
- Размеры: 47 x 31 мм
- Модуль: ESP-12
- Flash-память: 4 МБ
- Широкое расположение пинов, неудобное для макетных плат
Эта версия уже считается устаревшей и практически не используется в новых проектах.
NodeMCU v1.0 (V2)
Вторая версия платформы, которая получила ряд улучшений:
- Уменьшенные размеры: 30 x 57 мм
- Обновленный модуль ESP-12E
- Удобное расположение пинов для макетных плат
- Улучшенная стабильность работы
Эта версия стала стандартом де-факто и широко используется в проектах.
NodeMCU v1.0 «V3» (LoLin)
Неофициальная модификация от производителя LoLin, часто маркируется как V3. Основные отличия:
- Увеличенные размеры платы
- Улучшенный USB-порт
- Дополнительный пин питания 5В
- Дополнительный пин GND
Хотя эта версия не является официальной, она довольно распространена на рынке.
WeMos D1 Mini
Компактная альтернатива стандартному NodeMCU:
- Размеры: 34.2 x 25.6 мм
- Модуль ESP-8266EX
- 4 МБ Flash-памяти
- 9 GPIO пинов
- Поддержка шилдов расширения
Отличный выбор для проектов, где важны минимальные размеры.
Распиновка NodeMCU v3
Рассмотрим подробнее распиновку одной из самых популярных версий — NodeMCU v3 (LoLin):
- A0 — аналоговый вход (0-3.3В)
- D0-D8 — цифровые входы/выходы общего назначения (GPIO)
- SD1-SD3 — дополнительные GPIO для SPI Flash
- RX, TX — UART
- RST — сброс
- EN — включение модуля
- 3V3 — выход 3.3В
- GND — земля
- Vin — вход питания 5В
Важно отметить, что не все GPIO равнозначны. Некоторые имеют особые функции:
- D1, D2 — I2C (SCL, SDA)
- D5, D6, D7 — SPI (CLK, MISO, MOSI)
- D4 — подключен к встроенному светодиоду
- D0 — подключен к кнопке FLASH
При разработке устройства важно учитывать эти особенности и выбирать подходящие пины для конкретных задач.
Как программировать ESP8266 NodeMCU?
Существует два основных способа программирования NodeMCU:
- С помощью Arduino IDE
- На языке Lua
Рассмотрим оба варианта подробнее.
Программирование в Arduino IDE
Для программирования NodeMCU в привычной среде Arduino IDE необходимо выполнить следующие шаги:
- Установить Arduino IDE (если еще не установлена)
- Добавить поддержку ESP8266 в менеджере плат
- Выбрать нужную плату NodeMCU в меню «Инструменты» -> «Плата»
- Написать скетч на C++ с использованием библиотек для ESP8266
- Загрузить скетч в плату
Этот способ удобен для тех, кто уже знаком с Arduino и хочет использовать привычные инструменты разработки.
Программирование на Lua
NodeMCU изначально разрабатывался для программирования на языке Lua. Для этого используется специальная прошивка с интерпретатором Lua. Процесс разработки выглядит так:
- Установить прошивку NodeMCU с поддержкой Lua
- Написать скрипт на Lua
- Загрузить скрипт в файловую систему модуля
- Запустить скрипт на выполнение
Преимущества этого подхода:
- Простой и выразительный язык Lua
- Возможность изменять код «на лету» без перепрошивки
- Встроенная файловая система для хранения скриптов
Выбор между Arduino IDE и Lua зависит от предпочтений разработчика и требований проекта.
Альтернативы NodeMCU на базе ESP8266
Хотя NodeMCU очень популярен, существуют и другие платформы на базе ESP8266, которые могут подойти для определенных задач:
- Adafruit HUZZAH ESP8266 — качественная плата с дополнительными функциями
- SparkFun ESP8266 Thing — компактное решение с возможностью подключения LiPo аккумулятора
- ESP-01 — самый простой и дешевый модуль для базового функционала
- ESP-12E/F — модуль с большим количеством GPIO для сложных проектов
- ESP32 — более мощный преемник ESP8266 с дополнительными возможностями
При выборе платформы стоит учитывать требования к размерам, энергопотреблению, количеству GPIO и стоимости устройства.
Применение ESP8266 NodeMCU в проектах
Благодаря своей универсальности, NodeMCU находит применение в самых разных областях:
- Умный дом — управление освещением, климатом, безопасностью
- Мониторинг окружающей среды — сбор данных с датчиков температуры, влажности, загрязнения воздуха
- Промышленный IoT — контроль производственных процессов, удаленная диагностика оборудования
- Носимая электроника — фитнес-трекеры, умные часы
- Робототехника — управление моторами, сервоприводами, получение данных с сенсоров
Возможности применения ограничены только фантазией разработчика. NodeMCU предоставляет мощную и гибкую платформу для реализации самых разных идей в области IoT.
Советы по работе с ESP8266 NodeMCU
При разработке устройств на базе NodeMCU стоит учитывать несколько важных моментов:
- Питание — модуль требует стабильного питания 3.3В. При питании от USB рекомендуется использовать качественный кабель.
- Энергопотребление — в активном режиме модуль потребляет около 70мА. Для автономных устройств необходимо использовать режимы глубокого сна.
- Загрузка кода — при загрузке нового кода убедитесь, что модуль находится в режиме прошивки (GPIO0 подтянут к земле).
- Отладка — используйте серийный монитор для отладки. Не забудьте установить правильную скорость соединения (обычно 115200 бод).
- Стабильность Wi-Fi — для надежного соединения используйте внешнюю антенну и располагайте устройство подальше от источников помех.
Соблюдение этих рекомендаций поможет избежать многих проблем при разработке и эксплуатации устройств на базе NodeMCU.
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
|
Опубликовать вашу статью на нашем сайте можно тут!
Начало работы с платой NodeMcu ESP8266 v3 Lua
NodeMcu – платформа на основе ESP8266 для создания различных устройств интернета вещей (IoT). Модуль умеет отправлять и получать информацию в локальную сеть либо в интернет при помощи Wi-Fi. Недорогой модуль часто используется для создания систем умного дома или роботов Arduino, управляемых на расстоянии. В этой статье мы рассмотрим описание платы, отличие версий и распиновку последней версии модуля Esp8266 NodeMcu v3. Также мы коротко рассмотрим язык Lua, на котором нужно писать программы для NodeMcu.
Описание ESP8266 NodeMcu v3
Технические характеристики модуля:
- Поддерживает Wi-Fi протокол 802.11 b/g/n;
- Поддерживаемые режимы Wi-Fi – точка доступа, клиент;
- Входное напряжение 3,7В – 20 В;
- Рабочее напряжение 3В-3,6В;
- Максимальный ток 220мА;
- Встроенный стек TCP/IP;
- Диапазон рабочих температур от -40С до 125С;
- 80 МГц, 32-битный процессор;
- Время пробуждения и отправки пакетов 22мс;
- Встроенные TR переключатель и PLL;
- Наличие усилителей мощности, регуляторов, систем управления питанием.
Существует несколько поколений плат NodeMcu – V1(версия 0.9), V2(версия 1.0) и V3 (версия 1.0). Обозначения V1, V2, V3 используются при продаже в интернет-магазинах. Нередко происходит путаница в платах – например, V3 внешне идентична V2. Также все платы работают по принципу open-source, поэтому их могут производить любые фирмы. Но в настоящее время производством плат NodeMcu занимаются Amica, DOIT и LoLin/Wemos.
Отличия от других модификаций
Платы поколения V1 и V2 легко отличить – они обладают различным размером. Также второе поколение оснащено улучшенной модификацией чипа ESP-12 и 4 Мб флэш-памяти. Первая версия, устаревшая, выполнена в виде яркой желтой платформы. Использовать ее неудобно, так как она покрывает собой 10 выходов макетной платы. Плата второго поколения сделана с исправлением этого недостатка – она стала более узкой, выходы хорошо подходят к контактам платы. Платы V3 внешне ничем не отличаются от V2, они обладают более надежным USB-выходом. Выпускает плату V3 фирма LoLin, из отличий от предыдущей платы можно отметить то, что один из двух зарезервированных выходов используется для дополнительной земли, а второй – для подачи USB питания. Также плата отличается большим размером, чем предыдущие виды.
Где купить модули NodeMCU и ESP8266
Сегодня на рынке доступно множество достаточно недорогих модификаций плат на базе ESP8266. Мы сделали небольшую подборку наиболее интересных вариантов:
Питание модуля NodeMcu
Подавать питание на модуль можно несколькими способами:
- Подавать 5-18 В через контакт Vin;
- 5В через USB-разъем или контакт VUSB;
- 3,3В через вывод 3V.
Преимущества NodeMcu v3
- Наличие интерфейса UART-USB с разъемом micro USB позволяет легко подключить плату к компьютеру.
- Наличие флэш-памяти на 4 Мбайт.
- Возможность обновлять прошивку через USB.
- Возможность создавать скрипты на LUA и сохранять их в файловой системе.
Недостатки модуля NodeMcu
Основным недостатком является возможность исполнять только LUA скрипты, расположенные в оперативной памяти. Этого типа памяти мало, объем составляет всего 20 Кбайт, поэтому написание больших скриптов вызывает ряд трудностей. В первую очередь, весь алгоритм придется разделять на линейные блоки. Эти блоки необходимо записать в отдельные файлы системы. Все эти модули исполняются при помощи оператора dofile.
При написании нужно соблюдать правило – при обмене данными между модулями нужно пользоваться глобальными переменными, а при вычислении внутри модулей – локальными. Также важно в конце каждого написанного скрипта вызывать функцию collectgarbage (сборщик мусора).
Распиновка NodeMcu v3
Модуль V3 имеет 11 контактов ввода-вывода общего назначения. Помимо этого некоторые из выводов обладают дополнительными функциями:
- D1-D10 – выводы с широтно-импульсной модуляцией;
- D1, D2– выводы для интерфейса I²C/TWI;
- D5–D8 – выводы для интерфейса SPI;
- D9, D10 – UART;
- A0 – вход с АЦП.
Подключение NodeMCU к компьютеру
Для начала работы с NodeMcu нужно подключить плату к компьютеру. Первым шагом будет установка драйвера CP2102 и открытие Arduino IDE. Затем нужно найти в «Файл» – «Настройки» и в окно «дополнительные ссылки для менеджера плат» вставить ссылку http://arduino.esp8266.com/versions/2.3.0/package_esp8266com_index.json.
После этого в меню «документы» – «плата» «менеджер плат» выбрать «esp8266» и установить последнюю версию. После проделанных действий в меню «инструменты» – «плата» нужно найти NodeMCU.
После того, как все необходимые данные будут установлены и скопированы, можно будет начать работать.
Пример подключения светодиода к NodeMCU
Принципиальная схема подключения представлена на рисунке.
Итоговый макет макет выглядит следующим образом:
Сама плата работает от напряжения 3.3 В, поэтому для подключения светодиода нужно использовать резистор. В данном примере для красного светодиода берется резистор номиналом 65 Ом.
Похожим способом к плате подключается и фотодиод:
Плату NodeMCU можно использовать и для управления по ИК каналу. Для управления нужен пульт дистанционного управления с ИК приемником и сама платформа. Инфракрасный приемник подключается по схеме, представленной ниже:
Прошивки для esp8266 NodeMcu
В основу платформы загружена стандартная прошивка Node MCU, в которую встроен интерпретатор языка Lua. При помощи Lua-команд можно выполнять следующие действия:
- Подключение к Wi-Fi точке доступа;
- Работа в роли Wi-Fi точки доступа;
- Переход в режим глубокого сна для уменьшения потребления энергии;
- Включение или выключения светодиода на выходе GPIO16;
- Выполнение различные операции с файлами во флэш-памяти;
- Поиск открытой Wi-Fi сети, подключение к ней;
- Вывод MAC адреса;
- Управление пользовательскими таймерами.
Для программирования NodeMCU можно использовать Arduino IDE или комплекс средств разработки SDK – ESPlorer. Этот комплекс обладает рядом отличий:
- Он может работать на множестве различных платформ;
- Обладает поддержкой нескольких открытых файлов;
- Позволяет подсвечивать код языка Lua;
- Возможность умной отправки файлов;
- Возможность поддержки нескольких видов прошивки одновременно.
Для обеспечения корректной и стабильной работы нужно обновить прошивку до последней версии. Существует несколько способов обновления – облачный сервис, Docker Image и компилирование в Linux. Каждый из этих способов обладает своими плюсами и минусами. Наиболее простым и понятным является первый способ.
Сбор прошивки в облачном сервисе
Облачный сервис обладает простым и удобным интерфейсом. Работа начинается с ввода email. Далее будет предложено выбрать тип прошивки – стабильная прошивка или тестируемая. Первая используется для обучения и создания большого количества объектов, поэтому рекомендуется выбирать именно ее. Следующим шагом будет подключение нужных модулей. По умолчанию уже записано несколько основных пунктов, остальные нужно включать только по необходимости. Затем выбираются дополнительные опции. Среди них есть поддержка FatFS для чтения sd-карты или включение режима отладки.
После начала сборки придет письмо на почту, сигнализирующее о начале запуска процесса. Через некоторое время придет и второе письмо – будет предложено выбрать версию float (дробные числа) или integer (целые числа).
После перехода по полученной ссылке нужно будет скачать файл bin и поместить его в Resources – Binaries. Там будет расположен файл nodemcu_integer_0.9.5_20150318.bin, который нужно удалить. В итоге содержимое папки будет выглядеть следующим образом.
Обновление прошивки Node Mcu
Для правильной и стабильной работы платы требуется перезаписать esp_init_data_default.bin. Скачать его можно на официальном сайте. Нужный файл нужно поместить снова в систему для прошивки NodeMCU Flasher по пути Resources – Binaries, предварительно удалив из него старый файл.
Затем можно подключать NodeMCU и приступить к обновлению. Для начала нужно поменять настройки – в NodeMCU Flasher во вкладке Config нужно выбрать файл собранной прошивки вместо INTERNAL://NODEMCU.
Остальное оставить без изменений, перейти на Operations и нажать Flash. Как только окончится прошивка, нужно снова перейти на Config и в первой строке указать путь esp_init_data_default.bin. Также дополнительно указывается адрес, куда нужно переместить этот файл. Для модуля NodeMCU следует выбрать адрес 0x3FC000. После этого нужно снова вернуться на Operations и нажать Flash.
После этого нужно переформатировать всю файловую систему млаты. Для этого нужно запустить ESPlorer, обязательно поставить скорость обмена 115200 и перезагрузить NodeMCU. После всех вышеописанных действий будет новая версия прошивки. Отладочная плата полностью перепрошита и готова к работе.
Краткое описание языка Lua
Язык Lua обладает простым синтаксисом и мощными конструкциями описания данных, которые основаны на массивах и расширяемой семантике. Этот мощный язык программирования используется для создания программного обеспечения, расширения различных игр. В отличие от остальных языков Lua обладает более гибкими и более мощными конструкциями.
Мигание светодиодами на Lua
Можно рассмотреть простейшую схему – мигание светодиодом. Этот пример поможет изучить работы с контактами GPIO. Светодиод нужно подключить как показано на схеме.
Затем нужно записать следующий скетч в левое окно ESPlorer:
pin_number = 1
gpio.mode (pin_number, gpio.OUTPUT) // установка рабочего режима на выход
gpio.write (pin_number, gpio.HIGH)// установка высокого уровня
gpio.write (pin_number, gpio.LOW)// установка низкого уровня
gpio.serout (1, gpio.HIGH, {+990000,990000}, 10, 1) // установка мигания светодиодом 10 раз
После нужно сохранить скрипт с названием init.lua. Сразу после этого начнется автоматическая загрузка написанного кода в отладочную плату и его выполнение. Если операция выполнена успешно, отладочная плата начнет мигать светодиодом.
Важно отметить, что плата самостоятельно выполняет скрипт, подключение к компьютеру нужно только для подачи питания.
Сравнение NodeMCU-совместимых плат с чипом ESP8266 | arm
Сравнение друг с другом плат разработчика, совместимых с NodeMCU [2], неизбежно приводит к сравнению между собой ESP8266-совместимых чипов и модулей, установленных на этих платах. Сравнивать довольно сложно не столько потому, что подобных плат множество (по сути их только 3 вида), потому, что под разными именами выпускаются одни и те же платы.
К сожалению, есть некая путаница в обозначении версий и поколений плат.
Generation (поколение) | Версия NodeMCU | Common Name |
1 | 0.9 | V1 |
2 | 1.0 | V2 |
2 | 1.0 | V3 |
Содержимое третьего столбца (Common Name) этой таблицы чаще всего встречается в маркировке изделий, доступных в продаже в китайских Интернет-магазинах, таких как Banggood, AliExpress и dx.com. Причем на AliExpress часто попадаются платы с маркировкой V3, хотя они выглядят точно так же, как платы V2.
Дополнительно усиливает путаницу именований тот факт, что аппаратура открыта (open hardware), и фактически любое предприятие может производить и выпускать на рынок свои собственные NoduMCU-совместимые платы. В настоящий момент есть 3 главных производителя таких плат: Amica [3], DOIT/SmartArduino [4], and LoLin/WeMos [5].
Платы 1 и 2 поколения удобно отделять друг от друга, потому их размер отличается. Оба этих поколения используют чипы ESP-12 с памятью 4MB flash, однако 2 поколение использует более новый улучшенный чип ESP-12E.
[1 поколение / v0.9 / V1]
Оригинальный и уже устаревший dev kit обычно продается в виде платы с желтой маской размером 47 x 31 мм. По краям модуля расположены штырьковые коннекторы со стандартным шагом 2.54 мм, однако ряды расположены друг от друга на большом расстоянии, что делает неудобным установку этих модулей в обычные платы макетирования bread board. Обзор [6] дает очень хорошее представление об этих платах.
Плата разработчика ESP8266 NodeMCU первого поколения |
Цоколевка выводов платы NodeMCU первого поколения |
Платы поставляются с модулем ESP-12 и flash-памятью 4MB.
[2 поколение / v1.0 / V2]
Эти модули быстро заменили 1 поколение, они уже, и поэтому их удобнее устанавливать в плату bread board. Модуль ESP-12 был заменен на более новый ESP-12E.
Плата разработчика ESP8266 NodeMCU второго поколения |
Цоколевка выводов платы NodeMCU второго поколения |
[V3]
Что же нового появилось у V3? Пока что проект NodeMCU не выпустил новой спецификации, поэтому официально нет никаких плат 3-го поколения. Таким образом, V3 это всего лишь «версия», изобретенная производителем LoLin, чтобы показать незначительные улучшения плат V2. Среди остальных улучшений утверждается, что порт USB стал более надежным.
Цоколевка выводов платы NodeMCU «третьего» поколения |
Если Вы сравните цоколевку плат V2 и V3, то найдете очень мало различий. Компания LoLin приняла решение использовать один из двух зарезервированных выводов для вывода напряжения питания USB, и второй использует как дополнительный контакт GND.
Обратите внимание на различия в размерах, эта плата LoLin значительно больше плат Amica и DOIT V2.
Сравнение габаритов плат Amica и LoLin |
В чем отличие «официальных» плат от «не официальных»? Вероятно, никакого существенного отличия нет. Компания Amica выглядит как единственный производитель плат, на 100% совместимых со спецификацией аппаратуры V2 NodeMCU. Такие платы можно найти на AliExpress или у Seed Studio [7]. Имейте в виду, что сейчас множество плат имеют маркировку «NodeMCU V2», хотя они не соответствуют этой спецификации.
[Альтернативы]
WeMos D1 mini. В конце 2015 года стала доступной интересная плата WeMos D1 mini. Она имеет приблизительно ту же ширину (25.6 мм), что и V2 NodeMCU devkit, но почти на треть короче (длина 34.2 мм). Плата работает на ESP-8266EX MCU, и предоставляет 4MB flash. 9 выводов GPIO делают плату D1 mini подходящей для множества целевых применений IoT. Плата поддерживается средами разработки Arduino и NodeMCU.
Компания WeMos также продает некоторое количество шилдов для платы D1 mini, которые хорошо стыкуются, в результате получаются отличные малогабаритные устройства.
Небольшой недостаток в том, что припаять коннекторы Вам придется самому. Некоторые пользователи жалуются, что бывает сложно получить корректно работающие драйвера для микросхемы преобразователя Ch44x USB-UART [8], которая установлена на D1 mini. Такая же микросхема стоит на дешевых клонах плат Arduino.
Также очевидно, что у D1 mini немного меньше контактов, чем у обычной платы NodeMCU (см. рисунки с цоколевкой). Понятно, что не было другого способа уменьшить размеры платы, кроме уменьшения количества контактов на разъемах. Но все-таки контакт с напряжением 5V был оставлен, в этом плата похожа на LoLin V3.
Радует невысокая цена на плату D1 mini, её можно найти на AliExpress всего лишь за $4.
WiFiMCU. У DOIT/SmartArduino, производителя плат V2, также есть альтернативный dev kit с чипом Cortex-M4 [9].
Adafruit/SparkFun. Еще 2 быстро появившиеся альтернативы — SparkFun ESP8266 Thing [10] и Adafruit HUZZAH ESP8266 Breakout [11].
SparkFun ESP8266 Thing |
Плата Adafruit выглядит довольно привлекательно, она немного меньше, чем NodeMCU dev kit, однако для её подключения требуется отдельный переходник USB — TTL UART вместо стандартного кабеля USB.
Adafruit HUZZAH ESP8266 Breakout |
Также Adafruit продает полноформатную плату, подобную NodeMCU v2, на которой есть дополнительный коннектор для подключения аккумулятора LiPo [12].
Плата ESP8285. В статье [13] описывается, как использовать firmware NodeMCU на маленькой платке ESP8285 Tindie. Этот кристалл SoC (System On Chip) очень похож на ESP8266, отличие только в том, что в нем имеется память 1 MB SPI flash, встроенная прямо в SoC.
ESP8285 Development Board |
[Ссылки]
1. Comparison of ESP8266 NodeMCU development boards site:frightanic.com.
2. NodeMCU site:nodemcu-build.com.
3. Amica ESP8266 site:twitter.com.
4. WiFi ESP site:doit.am.
5. LOLIN32 site:wemos.cc.
6. ESP8266: NodeMCU Dev Kit Review site:squix.org.
7. NodeMCU v2 — Lua based ESP8266 development kit site:seeedstudio.com.
8. How To Use Cheap Chinese Arduinos That Come With With Ch440G / Ch441G Serial/USB Chip (Windows & Mac OS-X) site:kig.re.
9. WiFiMCU: a NodeMCU dev kit with a Cortex-M4 chip site:frightanic.com.
10. SparkFun ESP8266 Thing site:sparkfun.com.
11. Adafruit HUZZAH ESP8266 Breakout site:adafruit.com.
12. New Adafruit ESP8266 development board with LiPo connector site:frightanic.com.
13. NodeMCU on ESP8285 site:frightanic.com.
14. espressif.com FAQ ESP8266.
ESP8266 и Arduino, подключение, распиновка / Хабр
Привет
geektimes. Тема ESP8266, как и
IoT(интернет вещей), всё больше набирает популярности, и уже Arduino подхватывает инициативу — добавляя эти Wi-Fi модули в список поддерживаемых плат.
Но как же его подключить к ардуино? И возможно как-то обойтись вообще без ардуино? Сегодня именно об этом и пойдёт речь в этой статье.
Забегая наперёд, скажу, что будет вторая статья, уже более практическая, по теме прошивки и программирования модуля ESP8266 в среде разработки Arduino IDE. Но, обо всём по порядку.
Этот видеоролик, полностью дублирует материал, представленный в статье.
На данный момент, существует много разновидностей этого модуля, вот некоторые из них:
А вот распиновка ESP01, ESP03, ESP12:
* Данную картинку можно посмотреть в хорошем качестве на офф. сайте pighixxx.com.
Лично мне, больше всего нравится версия ESP07. Как минимум за то, что тут есть металлический экран (он защищает микросхемы от внешних наводок, тем самым обеспечивает более стабильную работу), своя керамическая антенна, разъём для внешней антенны. Получается, подключив к нему внешнюю антенну, например типа биквадрат, то можно добиться неплохой дальности. К тому же, тут есть немало портов ввода вывода, так называемых GPIO(General Purpose Input Output — порты ввода-вывода общего назначения), по аналогии с ардуино — пинов.
Давайте вернёмся к нашим баранам Wi-Fi модулям и Arduino. В этой статье, я буду рассматривать подключение ESP8266(модели ESP01) к Arduino Nano V3.
Но, данная информация будет актуальна для большинства модулей ESP8266 и так же разных Arduino плат, например самой популярной Arduino UNO.
Пару слов по ножкам ESP01:
Vcc и GND(на картинке выше это 8 и 1) — питание, на ножку Vcc можно подавать, судя по документации, от 3 до 3.6 В, а GND — земля (минус питания). Я видел, как один человек подключал этот модуль к двум AA аккумуляторам (напряжение питания в этом случае было примерно 2.7 В) и модуль был работоспособным. Но всё же разработчики указали диапазон напряжений, в котором модуль должен гарантированно работать, если вы используете другой — ваши проблемы.
Внимание! Этот модуль основан на 3.3 В логике, а Arduino в основном — 5 В логика. 5 В запросто могут вывести из строя ESP8266, потому на него нужно отдельно от ардуино подавать питание.
— На моей ардуинке есть ножка, где написано 3.3 В, почему бы не использовать её?
Наверное подумаете вы. Дело в том, что ESP8266 довольно таки прожорливый модуль, и в пиках может потреблять токи до 200 мА, и почти никакая ардуинка по умолчанию не способна выдать такой ток, разве что исключением является Arduino Due, у которой ток по линии 3.3 В может достигать 800 мА, чего с запасом хватит, в других же случаях советую использовать дополнительный стабилизатор на 3.3 В, например AMS1117 3.3 В. Таких валом как в Китае, так и у нас.
Ножка RST 6 — предназначена «железной» для перезагрузки модуля, кратковременно подав на неё низкий логический уровень, модуль перезагрузиться. Хоть и на видео я этим пренебрёг, но всё же вам советую «прижимать» данную ногу резистором на 10 кОм к плюсу питания, дабы добиться лучшей стабильности в работе модуля, а то у меня перезагружался от малейших наводок.
Ножка CP_PD 4(или по-другому EN) — служит, опять же, для «железного» перевода модуля в энергосберегающий режим, в котором он потребляет очень маленький ток. Ну и снова — не будет лишним «прижать» эту ногу резистором на 10 кОм к плюсу питалова. На видео я тупо закоротил эту ногу на Vcc, потому как под рукой не оказалось такого резистора.
Ноги RXD0 7 TXD0 2 — аппаратный UART, который используется для перепрошивки, но ведь никто не запрещает использовать эти порты как GPIO(GPIO3 и GPIO1 соотвественно). GPIO3 на картинке почему-то не размечен, но в даташите он есть:
К стати, к ножке TXD0 2 подключен светодиод «Connect», и горит он при низком логическом уровне на GPIO1, ну или когда модуль отправляет что-то по UART.
GPIO0 5 — может быть не только портом ввода/вывода, но и переводить модуль в режим программирования. Делается это подключив этот порт к низкому логическому уровню(«прижав» к GND) и подав питание на модуль. На видео я делаю это обычной кнопкой. После перепрошивки — не забудьте вытащить перемычку/отжать кнопку(кнопку во время перепрошивки держать не обязательно, модуль при включении переходит в режим программирования, и остаётся в нём до перезагрузки).
GPIO2 3 — порт ввода/вывода.
И ещё один немаловажный момент, каждый GPIO Wi-Fi модуля может безопасно выдавать ток до 6 мА, чтобы его не спалить, обязательно ставьте резисторы последовательно портам ввода/вывода на… Вспоминаем закон Ома R = U/I = 3.3В / 0.006 А = 550 Ом, то есть, на 560 Ом. Или же пренебрегайте этим, и потом удивляйтесь почему оно не работает.
В ESP01 все GPIO поддерживают ШИМ, так что к нашим четырём GPIO, то есть GPIO0-3 можно подключить драйвер двигателя, аля L293 / L298 и рулить двумя двигателями, например катера, или же сделать RGB Wi-Fi приблуду. Да, да, данный модуль имеет на борту много чего, и для простеньких проектов скрипач Arduino не нужен, только для перепрошивки. А если использовать ESP07 то там вообще портов почти как у Uno, что даёт возможность уже уверенно обходиться без ардуино. Правда есть один неприятный момент, аналоговых портов у ESP01 вообще нет, а у ESP07 только один, ADC зовётся. Это конечно усугубляет работу с аналоговыми датчиками. В таком случае ардуино аналоговый мультиплексор в помощь.
Всё вроде как по распиновке пояснил, и вот схема подключения ESP8266 к Arduino Nano:
Видите на Arduino Nano перемычка на ножках RST и GND? Это нужно для того, чтобы ардуинка не мешала прошивке модуля, в случае подключения ESP8266 при помощи Arduino — обязательное условие.
Так же если подключаете к Arduino — RX модуля должен идти к RX ардуинки, TX — TX. Это потому, что микросхема преобразователь уже подключена к ножкам ардуино в перекрестном порядке.
Так же немаловажен резистивный делитель, состоящий из резисторов на 1 кОм и 2 кОм (можно сделать из двух резисторов на 1 кОм последовательно соединив их) по линии RX модуля. Потому как ардуино это 5 В логика а модуль 3.3. Получается примитивный преобразователь уровней. Он обязательно должен быть, потому что ноги RXD TXD модуля не толерантные к 5 В.
Ну и можно вообще обойтись без ардуино, подключив ESP8266 через обычный USB-UART преобразователь. В случае подключения к ардуино, мы, по сути, используем штатный конвертер интерфейсов usb и uart, минуя мозги. Так зачем тратиться лишний раз, если можно обойтись и без ардуино вообще? Только в этом случае, мы подключаем RXD модуля к TXD конвертора, TXD — RXD.
Если вам лениво заморачиваться с подключением, возится с резисторами и стабилизаторами — есть готовые решения NodeMcu:
Тут всё значительно проще, воткнул кабель в компьютер, установил драйвера и программируй, только не забывай задействовать перемычку/кнопку на GPIO0 для перевода модуля в режим прошивки.
Ну вот, с теорией наверное всё, статья получилась пожалуй довольно таки большая, и практическую часть, аля прошивка и программирование модуля, я опубликую немного позже.
Я, у себя на ютуб канале, открыл целый плейлист посвящённый моим видео по теме этого Wi-Fi модуля. В планах построили машинку, или лодку, на Wi-Fi управлении, где вместо пульта ДУ будет обычный смарт. Но пока что я к этому ещё не пришёл, так что это всего лишь планы на будущее.
Продолжение этой статьи.
Даташиты на:
ASM1117 3.3 B;
ESP8266EX(микроконтроллер, что стоит в модуле);
Ещё ссылки:
Русскоязычное сообщество по ESP8266;
Схемы рисовал в программе Fritzing;
Почему многие не любят Arduino;
Все мои публикации на geektimes.
By Сергей ПоделкинЦ ака MrПоделкинЦ.
Обзор ESP8266. Знакомство с моделями NodeMCU, WeMos, ESP-01
Всем, кто увлекается Arduino неоднократно слышал про ESP8266. Что это такое и какие распространение модели отладочных плат (NodeMCU, WeMos, ESP-01) использую в проектах, расскажу в данной статье.
ESP8266 – это микроконтроллер, аналогичный Arduino и оснащенный Wi-Fi. Что позволяет управлять пинами через беспроводную сеть Wi-Fi, а также получать из интернета или локальной сети различные параметры: температуру, влажность, стояние исполнительных механизмов и прочую информацию. Это отлично подходит для реализации домашней автоматизации.
Что можно делать, используя модуль ESP8266?
- Отправлять электронную почту;
- Публиковать твиты;
- Создать веб-сервер;
- Отправлять HTTP-запросы;
- Получать информацию из интернета о погоде, курсе волют, количестве подписчиков на youtube и прочее
На моем сайте вы можете найти уроки и проекты с использованием ESP8266.
Технические характеристики ESP8266:
- 02.11 b/g/n;
- встроенный 32-битный MCU с низким энергопотреблением;
- встроенный 10-битный АЦП;
- встроенный стек протоколов TCP/IP;
- встроенный РЧ коммутатор, РЧ трансформатор сопротивлений, LNA, усилитель мощности;
- встроенные блоки ФАПЧ и управления мощностью;
- Wi-Fi 2,4 ГГц, поддержка WPA/WPA2;
- SDIO 2.0, (H) SPI, UART, I2C, I2S, IRDA, PWM, GPIO;
- STBC, 1×1 MIMO, 2×1 MIMO;
- потребление в режиме глубокого сна <10 мкА, ток утечки в выключенном режиме < 5 мкА;
- просыпание и передача пакетов через < 2 мс;
- выходная мощность +20 дБм в режиме 802.11b;
- диапазон рабочей температуры: -40 – 125 ºC.
Сравнивая ESP8266 с другими платами Wi-Fi на рынке – это отличный вариант для большинства проектов «Интернета вещей»! Легко понять, почему он так популярен: он стоит всего несколько долларов и может быть интегрирован в сложные проекты.
Версии ESP8266
ESP8266 выпускается в виде различных отладочных плат (как показано на рисунке ниже). По-моему мнению, ESP-12E NodeMCU в настоящее время является наиболее практичной версией. Но и версии WeMos и ESP-01 также достаточно популярны в проектах, где нужна небольшая плата и не требуется много пинов для подключения.
Распиновка ESP8266.
Распиновка ESP-12E NodeMCU.
Распиновка WeMos D1 Mini.
Распиновка ESP-01.
Подробнее распиновку ESP8266 рассмотрим в следующей статье. А также посмотрим, как правильно использовать GPIO отладочных плат.
Программирование ESP8266 с использованием Arduino IDE.
Есть несколько способов запрограммировать ESP8266. Можно использовать Arduino IDE или MicroPython. В следующей статье рассмотрим, как настроить Arduino IDE и загрузить скетч в NodeMCU.Понравилась статья
Обзор
ESP8266. Знакомство с моделями NodeMCU, WeMos, ESP-01? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Спасибо за внимание!
Технологии начинаются с простого!
Фотографии к статье
NodeMCU ESP8266 Распиновка, характеристики, характеристики и лист данных
NodeMCU — это прошивка на основе Lua с открытым исходным кодом и плата разработки , специально предназначенная для приложений на основе Интернета вещей. Он включает в себя прошивку, которая работает на ESP8266 Wi-Fi SoC от Espressif Systems, и оборудование, основанное на модуле ESP-12.
Конфигурация выводов платы разработки NodeMCUКатегория контактов | Имя | Описание |
Мощность | Micro-USB, 3.3 В, ЗЕМЛЯ, Вин | Micro-USB: NodeMCU может получать питание через порт USB 3,3 В: Регулируемое 3,3 В может подаваться на этот контакт для питания платы GND: Контакты заземления Vin: Внешний источник питания |
Пины управления | EN, РСТ | Штифт и кнопка сбрасывают микроконтроллер |
Аналоговый вывод | A0 | Используется для измерения аналогового напряжения в диапазоне 0-3.3В |
Контакты GPIO | GPIO1 — GPIO16 | NodeMCU имеет 16 контактов ввода-вывода общего назначения на своей плате |
Контакты SPI | SD1, CMD, SD0, CLK | NodeMCU имеет четыре контакта, доступных для связи SPI. |
Контакты UART | TXD0, RXD0, TXD2, RXD2 | NodeMCU имеет два интерфейса UART: UART0 (RXD0 и TXD0) и UART1 (RXD1 и TXD1). UART1 используется для загрузки прошивки / программы. |
Выводы I2C | NodeMCU поддерживает функциональность I2C, но из-за внутренней функциональности этих контактов вы должны определить, какой из контактов является I2C. |
- Микроконтроллер: 32-разрядный RISC-процессор Tensilica Xtensa LX106
- Рабочее напряжение: 3,3 В
- Входное напряжение: 7-12 В
- Цифровые контакты ввода / вывода (DIO): 16
- Аналоговые входные контакты (АЦП): 1
- UART: 1
- SPI: 1
- I2C: 1
- Флэш-память: 4 МБ
- SRAM: 64 КБ
- Тактовая частота: 80 МГц
- USB-TTL на базе CP2102 включен в комплект поставки, что позволяет использовать Plug n Play
- Антенна на печатную плату
- Модуль малого размера для удобного использования в ваших проектах Интернета вещей
Примечание: Полную техническую информацию можно найти в NodeMCU ESP8266 Datasheet, , ссылка на который находится внизу этой страницы.
Другие доски для эспрессиона
ESP8266, ESP12E, ESP32
Другие макетные платы
Arduino, Raspberry Pi, PIC Development Board, AVR Development Board, MSP430 Launchpad, Intel Edison, Beagle Bone
Краткая информация о NodeMCU ESP8266
Плата разработки NodeMCU ESP8266 поставляется с модулем ESP-12E, содержащим микросхему ESP8266 с 32-разрядным RISC-микропроцессором Tensilica Xtensa LX106.Этот микропроцессор поддерживает RTOS и работает на регулируемой тактовой частоте от 80 МГц до 160 МГц. NodeMCU имеет 128 КБ ОЗУ и 4 МБ флэш-памяти для хранения данных и программ. Его высокая вычислительная мощность со встроенными функциями Wi-Fi / Bluetooth и Deep Sleep Operating делает его идеальным для проектов IoT.
NodeMCU может получать питание через разъем Micro USB и вывод VIN (внешний вывод питания). Он поддерживает интерфейсы UART, SPI и I2C.
Программирование NodeMCU ESP8266 с Arduino IDEПлату разработки NodeMCU можно легко запрограммировать с помощью Arduino IDE, поскольку она проста в использовании.
Программирование NodeMCU с помощью Arduino IDE вряд ли займет 5-10 минут. Все, что вам нужно, это IDE Arduino, USB-кабель и сама плата NodeMCU. Вы можете проверить это руководство по началу работы для NodeMCU, чтобы подготовить свою Arduino IDE для NodeMCU.
Загрузка вашей первой программыПосле установки Arduino IDE на компьютер подключите плату к компьютеру с помощью кабеля USB. Теперь откройте IDE Arduino и выберите правильную плату, выбрав Инструменты > Платы> NodeMCU1.0 (модуль ESP-12E) и выберите правильный порт, выбрав Инструменты > Порт . Чтобы начать работу с платой NodeMCU и мигать встроенным светодиодом, загрузите пример кода, выбрав Files> Примеры> Basics> Blink . После того, как пример кода загружен в вашу среду IDE, нажмите кнопку «Загрузить» на верхней панели. После завершения загрузки вы должны увидеть, как мигает встроенный светодиод на плате.
Приложения- Прототипирование устройств Интернета вещей
- Приложения с низким энергопотреблением, работающие от батарей
- Сетевые проекты
- Проекты, требующие нескольких интерфейсов ввода-вывода с функциями Wi-Fi и Bluetooth
ESP8266 Распиновка: какие контакты GPIO следует использовать?
Эта статья представляет собой руководство для GPIO ESP8266: схемы распиновки, их функции и способы их использования.
Микросхема ESP8266 12-E имеет 17 контактов GPIO. Не все GPIO доступны на всех платах разработки ESP8266, некоторые GPIO использовать не рекомендуется, а другие имеют очень специфические функции.
Из этого руководства вы узнаете, как правильно использовать GPIO ESP8266 и избежать многих часов разочарований, используя наиболее подходящие контакты для ваших проектов.
У нас также есть руководство для ESP32 GPIO: ESP32 Pinout Reference: Какие контакты GPIO следует использовать?
ESP8266 Распиновка 12-E микросхемы
На следующем рисунке показана распиновка микросхемы ESP8266 12-E.Используйте эту схему, если вы используете в своих проектах голый чип ESP8266.
Примечание. не все GPIO доступны на всех платах для разработки, но каждый конкретный GPIO работает одинаково, независимо от используемой вами платы для разработки. Если вы только начинаете работать с ESP8266, мы рекомендуем прочитать наше руководство: Начало работы с ESP8266.
На данный момент существует множество плат для разработки с чипом ESP8266, которые различаются количеством доступных GPIO, размером, форм-фактором и т. Д.
Наиболее широко используемыми платами ESP8266 являются ESP-01, ESP8266-12E NodeMCU Kit и Wemos D1 Mini.Для сравнения этих плат вы можете прочитать это руководство: Сравнение плат для разработки Wi-Fi ESP8266.
ESP8266-01 Распиновка
Если вы используете плату ESP8266-01, вы можете использовать следующую схему GPIO в качестве справочной.
ESP8266 Комплект 12-E NodeMCU
Распиновка комплекта ESP8266 12-E NodeMCU показана ниже.
Распиновка Wemos D1 Mini
На следующем рисунке показана распиновка WeMos D1 Mini.
Скачать PDF со схемами расположения выводов ESP8266
Мы подготовили удобный PDF-файл, который вы можете скачать и распечатать, поэтому диаграммы ESP8266 всегда будут рядом с вами:
Скачать PDF Схема распиновки »
ESP8266 Периферийные устройства
Периферийные устройства ESP8266 включают:
- 17 GPIO
- SPI
- I2C (реализовано в программном обеспечении)
- Интерфейсы I2S с DMA
- UART
- 10-битный АЦП
Лучшие контакты для использования — ESP8266
Одна важная вещь, которую следует отметить в ESP8266, заключается в том, что номер GPIO не соответствует этикетке на шелкографии платы.Например, D0 соответствует GPIO16, а D1 соответствует GPIO5.
В следующей таблице показано соответствие между метками на шелкографии и номером GPIO, а также то, какие контакты лучше всего использовать в ваших проектах, а какие следует соблюдать осторожность.
Контакты, выделенные зеленым цветом, можно использовать. Те, которые выделены желтым, подходят для использования, но вам нужно обратить внимание, потому что они могут иметь неожиданное поведение, в основном, при загрузке. Контакты, выделенные красным, не рекомендуется использовать в качестве входов или выходов.
Этикетка | GPIO | Вход | Выход | Примечания | ||
D0 | GPIO16 | нет поддержки прерывания 900 | HIGH при загрузке используется для пробуждения из глубокого сна | |||
D1 | GPIO5 | OK | OK | часто используется как SCL (I2C) | ||
D2 | GPIO4 | OK | OK | часто используется как SDA (I2C) | ||
D3 | GPIO0 | поднят | OK | подключен к кнопке FLASH, загрузка не выполняется при нажатии LOW | ||
D4 | GPIO2 | поднято | OK | ВЫСОКОЕ при загрузке 90 285 подключен к встроенному светодиоду, загрузка не выполняется при нажатии LOW | ||
D5 | GPIO14 | OK | OK | SPI (SCLK) | ||
D6 | GPIO12 900 | OK | OK | SPI (MISO) | ||
D7 | GPIO13 | OK | OK | SPI (MOSI) | ||
D8 | D8 | | GPIO15 к GND | OK | SPI (CS) | Ошибка загрузки при нажатии HIGH |
RX | GPIO3 | OK | RX pin | HIGH при загрузке | ||
TX | GPIO1 | Контакт TX | OK | ВЫСОКИЙ при загрузке вывод отладки при загрузке, загрузка не выполняется при нажатии НИЗКОЕ | ||
A0 | ADC0 | Аналоговый вход | X |
Продолжайте читать, чтобы получить более подробный и глубокий анализ ESP8266 GPIO и его функций.
GPIO, подключенных к Flash Chip
GPIO6 — GPIO11 обычно подключаются к микросхеме флэш-памяти на платах ESP8266. Так что эти булавки использовать не рекомендуется.
контактов, используемых во время загрузки
ESP8266 может быть заблокирован от загрузки, если некоторые контакты потянуты в НИЗКОЕ или ВЫСОКОЕ. В следующем списке показано состояние следующих контактов при загрузке:
- GPIO16: высокий вывод при загрузке
- GPIO0: сбой загрузки при нажатии LOW
- GPIO2 : высокий вывод при загрузке, сбой загрузки при нажатии LOW
- GPIO15 : сбой загрузки при нажатии HIGH
- GPIO3 : высокий уровень на контакте при загрузке
- GPIO1 : высокий уровень на контакте при загрузке, ошибка загрузки при нажатии LOW
- GPIO10 : высокий уровень на контакте при загрузке
- GPIO9 : высокий уровень на выходе BOOT
ВЫСОКИЙ ПИН при загрузке
Есть определенные контакты, которые выводят 3.Сигнал 3В при загрузке ESP8266. Это может быть проблематично, если к этим GPIO подключены реле или другие периферийные устройства. Следующие GPIO выводят сигнал HIGH при загрузке:
- GPIO16
- GPIO3
- GPIO1
- GPIO10
- GPIO9
Кроме того, другие GPIO, кроме GPIO5 и GPIO4, могут выводить низковольтный сигнал при загрузке, что может быть проблематичным, если они подключены к транзисторам или реле. Вы можете прочитать эту статью, в которой исследуется состояние и поведение каждого GPIO при загрузке.
GPIO4 и GPIO5 являются наиболее безопасными для использования GPIO, если вы хотите управлять реле.
Аналоговый вход
ESP8266 поддерживает аналоговое чтение только в одном GPIO. Этот GPIO называется ADC0 и обычно обозначается на шелкографии как A0 .
Максимальное входное напряжение на выводе ADC0 составляет от 0 до 1 В, если вы используете голый чип ESP8266. Если вы используете отладочную плату, такую как комплект ESP8266 12-E NodeMCU, диапазон входного напряжения составляет от 0 до 3.3 В, потому что эти платы содержат внутренний делитель напряжения.
Вы можете узнать, как использовать аналоговое считывание с ESP8266, с помощью следующего руководства:
Встроенный светодиод
Большинство плат разработки ESP8266 имеют встроенный светодиод. Этот светодиод обычно подключен к GPIO2.
Светодиод работает с инвертированной логикой. Отправьте ВЫСОКИЙ сигнал, чтобы выключить его, и НИЗКИЙ сигнал, чтобы включить его.
Штифт RST
Когда на выводе RST тянут НИЗКОЕ значение, ESP8266 сбрасывается.Это то же самое, что и нажатие кнопки RESET на плате.
GPIO0
Когда GPIO0 получает низкий уровень, ESP8266 переводится в режим загрузчика. Это то же самое, что и нажатие встроенной кнопки FLASH / BOOT.
GPIO16
GPIO16 можно использовать для вывода ESP8266 из глубокого сна. Чтобы вывести ESP8266 из глубокого сна, GPIO16 должен быть подключен к выводу RST. Узнайте, как перевести ESP8266 в режим глубокого сна:
I2C
ESP8266 не имеет аппаратных выводов I2C, но может быть реализован программно.Таким образом, вы можете использовать любые GPIO в качестве I2C. Обычно в качестве контактов I2C используются следующие GPIO:
SPI
Контакты, используемые в качестве SPI в ESP8266:
- GPIO12 : MISO
- GPIO13 : MOSI
- GPIO14 : SCLK
- GPIO15 : CS
Штифты ШИМ
ESP8266 позволяет использовать программную ШИМ на всех выводах ввода / вывода: от GPIO0 до GPIO16. Сигналы ШИМ на ESP8266 имеют 10-битное разрешение. Узнайте, как использовать контакты ESP8266 PWM:
Контакты прерывания
ESP8266 поддерживает прерывания в любом GPIO, кроме GPIO16.
Заключение
Мы надеемся, что вы нашли это руководство для GPIO ESP8266 полезным. Если у вас есть несколько советов о том, как правильно использовать ESP8266 GPIO, вы можете написать комментарий ниже.
У нас также есть аналогичное руководство для ESP32 GPIO, которое вы можете прочитать.
Если вы только начинаете работать с ESP8266, у нас есть отличный контент, который может вас заинтересовать:
Спасибо за чтение.
РаспиновкаNodeMCU и распиновка ESP-12E
В этом руководстве мы увидим выводы как платы NodeMCU, так и модуля ESP-12E, который является базовой платой для NodeMCU.Распиновка ESP12-E будет полезна, если вы разрабатываете собственное оборудование, и понимание схемы расположения выводов NodeMCU очень полезно, если вы работаете с платой ESP8266 NodeMCU.
Введение
Несмотря на то, что концепция Интернета вещей (IoT) существует уже несколько лет, она действительно стала популярной, когда сообщество DIY начало инвестировать в нее. Чтобы помочь недорогим и простым в реализации системам Интернета вещей, вам потребуется как поддерживающее оборудование, так и хорошее программное обеспечение.
Именно здесь компания Espressif Systems произвела фурор.ESP8266 SoC, выпущенный еще в 2014 году, был основным чипом для проектов, связанных с Интернетом вещей, в сообществе DIY.
Несколько сторонних производителей взяли ESP8266 SoC и начали разработку небольших модулей и плат, которые можно легко интегрировать в существующую установку для любителей, состоящую в основном из Arduino.
Одним из популярных модулей на базе ESP8266 является ESP-01, разработанный Ai-Thinker. Это простая плата с SoC ESP8266, флэш-памятью и несколькими выводами для подключения к другим устройствам, таким как Arduino.
Это отличная плата для начала с ESP8266, но есть несколько ограничений, например, контакты не подходят для макетной платы, всего два контакта GPIO, требуется модуль преобразователя USB в UART для программирования и т. Д.
Итак, какие производители начали делать, вместо того, чтобы использовать ванильную версию модуля ESP8266, то есть ESP-01, они начали использовать слегка продвинутую версию под названием ESP-12E, которая также принадлежит Ai-Thinker.
Преимущество ESP-12E в том, что в нем больше контактов GPIO, а на печатной плате имеются зубчатые края, так что вы можете легко припаять эту плату к своей собственной конструкции.
Модуль ESP-12E
Ai-Thinker ESP-12E — это модуль Wi-Fi на базе ESP8266EX SoC. ESP8266EX SoC — это чип Wi-Fi, основанный на 32-битном процессоре Tensilica L106 Diamond и интегрированном MAC-адресе Wi-Fi с поддержкой полного стека TCP / IP.
Модуль ESP-12E с боковыми зубцамиПоскольку он имеет микроконтроллер (в форме Tensilica L106 Diamond), ESP-12E может использоваться как автономное устройство с возможностью подключения к Wi-Fi и контактами GPIO, либо как он может использоваться как адаптер Wi-Fi для других микроконтроллеров, таких как Arduino, например, через интерфейс UART.
Модуль ESP-12E состоит из ESP8266 SoC, 4 МБ флэш-памяти SPI, кристалла 26 МГц, антенны на печатной плате и некоторых компонентов, связанных с радиочастотами. Как вы можете видеть на изображении, у ESP-12E намного больше контактов, чем у модуля ESP-01, и все контакты на печатной плате имеют зубчатые края.
Распиновка ESP-12E
Если вы заинтересованы в разработке собственной коммутационной платы для модуля ESP-12E, то следующий образ выводов ESP-12E будет вам очень полезен. Как видите, на модуле ESP-12E 22 контакта.
На приведенной выше схеме выводов модуля ESP-12E описаны все контакты, а также их альтернативные функции. В следующей таблице описаны контакты модуля ESP-12E.
Pin | Функция |
RST | Сброс модуля |
ADC0 | Вывод ADC с 10-битным разрешением |
EN | Chip Enable Pin (активный ВЫСОКИЙ ) |
GPIO16 | Вывод GPIO16 (вывод пробуждения из режима глубокого сна) |
GPIO14 | Вывод GPIO14 (HSPI_CLK) |
GPIO12 | Вывод GPIO12 (HSPI_MISO) |
GPIO13 | |
GPIO13 900 штифт (HSPI_MOSI) | |
VCC | 3.Источник питания 3 В (макс. 3,6 В) |
SDCMD | SDIO CMD (GPIO11) |
SDD0 | SDIO Data 0 (GPIO7) |
SDD2 | SDIO Data 2 (GPIO9) |
SDD3 | SDIO Data 3 (GPIO10) |
SDD1 | SDIO Data 1 (GPIO8) |
SCCLK | SDIO CLK (GPIO6) |
GND | Контакт заземления |
GPIO15 | Вывод GPIO15 (HSPI_CS) |
GPIO2 | Вывод GPIO2 (TXD1) |
Вспышка | Вывод вспышки (GPIO0) |
GPIO4 | Вывод GPIO4 (SDA — программное обеспечение I2C) | GPIO5 | GPIO5 | Вывод GPIO5 (SCL — программный I2C) |
RXD0 | Вывод UART0 RXD (GPIO3) |
TXD0 | UART0 TXD (GPIO1) |
ESP8266 Узел MCU B reakout Board
Используя модуль ESP-12E в качестве базовой платы, команда NodeMCU разработала коммутационную плату для своего проекта прошивки NodeMCU и сделала проект открытым.Я уже обсуждал периферийные устройства на плате ESP-12E NodeMCU в руководстве « Начало работы с NodeMCU ».
Плата NodeMCU (ESP-12E)В этом руководстве я просто дал простой образ распиновки NodeMCU без каких-либо подробных объяснений. Это то, для чего предназначен этот учебник. Сначала мы увидим распиновку, а затем разберемся с функциями каждого вывода.
Распиновка NodeMCU
На следующем изображении показана распиновка платы NodeMCU. Типичная плата NodeMCU (если она основана на оригинальном дизайне NodeMCU Devkit) имеет 30 контактов.В нем 8 контактов относятся к питанию, а 2 зарезервированы. Остальные 20 контактов связаны с контактами модуля ESP-12E.
Краткое описание контактов приведено в следующей таблице.
Контакт | Описание | Альтернативные функции | По умолчанию | ||||
ADC0 | 0 | Аналоговый вход0 | |||||
Зарезервировано | |||||||
SDD3 | Данные SDIO 3 | GPIO10 | SDD3 | ||||
SDD2 | GPIO SDIOSDD2 | SDIO Данные||||||
SDD1 | Данные SDIO 1 | GPIO8 | SDD1 | ||||
SDDCMD | SDIO CMD | GPIO11 | SDDCMD | ||||
SDD0 | 15 SDIO ДанныеSDD0 | SDCLK | SDIO CLK | GPIO6 | SDCLK | ||
GND | Земля | ||||||
3.3 В | Выход 3,3 В | ||||||
EN | Включение микросхемы (активный высокий) | ||||||
RST | Сброс (активный низкий уровень) | ||||||
GND | 5 Заземление | ||||||
VIN | Вход 5 В для регулятора 3,3 В | ||||||
3,3 В | Выход 3,3 В | ||||||
GND | Земля | 9055 TXD | UART0 TXD | GPIO1 | TXD0 | ||
RXD0 | USRT0 RXD | GPIO3 | RXD0 | ||||
GPIO15 | GPIO15 | RSPI_CS0 | 5 GPIO13 | GPIO13 | HSPI_MOSI / CTS0 | GPIO13 900 20 | |
GPIO12 | GPIO12 | HSPI_MISO | GPIO12 | ||||
GPIO14 | GPIO14 | HSPI_SCK | GPIO14 | ||||
GND20 | GPIO14 | ||||||
GND20 | 9055 3 | Заземление3 В | Выход 3,3 В | ||||
GPIO2 | GPIO2 | UART1 TXD | GPIO2 | ||||
Вспышка | GPIO0 | GPIO | Программный SDA (I2C) | GPIO4 | |||
GPIO5 | GPIO5 | Программный SCL (I2C) | GPIO5 | ||||
GPIO16 | GPIO160 | Пробуждение (глубокий сон) 9 GPIO16 |
Я расскажу обо всех доступных периферийных устройствах, о том, какие контакты использовать, как запитать плату и т. Д.в следующем разделе.
Питание, периферия и контакты
Как подключить NodeMCU?
Есть два способа питания платы NodeMCU. Один через порт micro-USB, а другой через вывод VIN. Обратите внимание, что ESP8266EX SoC совместим только с 3,3 В. Итак, на плате NodeMCU установлена микросхема регулятора напряжения 3.3В (AMS1117 — 3.3).
Если вы отрегулировали питание 5 В, вы можете применить это к выводу VIN. Есть три контакта 3.3V, которые подключены к выходу 3.3V регулятора.
Какие периферийные устройства доступны на NodeMCU?
Строго говоря, это относится к SoC ESP8266EX. Имея это в виду, давайте посмотрим все периферийные устройства, доступные на NodeMCU.
GPIO
ESP8266EX имеет 17 контактов GPIO. Но не все они доступны для пользователя, поскольку некоторые из них используются для своих альтернативных функций (например, UART, SDIO, SPI и т. Д.) В NodeMCU (модуль ESP-12E).
Мы увидим доступные выводы GPIO на NodeMCU, посмотрев на все остальные периферийные устройства.
SPI
На ESP8266EX SoC есть два интерфейса SPI (SPI и HSPI). Оба поддерживают ведущие и ведомые операции. Тактовая частота в ведущем режиме может быть настроена на 80 МГц, а частота в ведомом режиме — до 20 МГц.
- SCLK — GPIO6 (Недоступно)
- MISO — GPIO7 (Недоступно)
- MOSI — GPIO8 (Недоступно)
- CS — GPIO11 (Недоступно) _ GPIO14
- HSPI_MISO — GPIO12
- HSPI_MOSI — GPIO13
- HSPI_CS — GPIO15
Контакты GPIO для SPI мультиплексированы с некоторыми выводами SDIO для SPI.Кроме того, на модуле ESP-12E есть флэш-память SPI 4 МБ, подключенная через контакты SPI. Итак, у вас нет доступа к выводам SPI. Для связи по SPI можно использовать только выводы HSPI.
I2C
Аппаратный I2C недоступен в ESP8266, но может быть реализован с помощью программного обеспечения. GPIO4 и GPIO5 можно использовать как SDA и SCL, поскольку у них нет других альтернативных функций.
UART
ESP8266EX имеет два аппаратных UART (UART0 и UART1) со скоростью передачи до 115200 бод. При этом UART0 может использоваться для связи, а также имеет управление потоком данных.UART1 имеет только вывод TX (его вывод RX используется SDD1), поэтому его можно использовать для регистрации данных.
- UART0 TX — GPIO3
- UART0 RX — GPIO1
- UART0 RTS — GPIO15
- UART0 CTS — GPIO13
- UART (не Доступно)
Дополнительные функции
Все выводы GPIO, кроме GPIO16, поддерживают прерывания.
На плате NodeMCU есть два встроенных светодиода.Один светодиод находится на модуле ESP-12E и подключен к GPIO2, а другой светодиод находится на плате NodeMCU, и он подключен к GPIO16.
Итак, какие выводы GPIO на NodeMCU доступны?
Если вы рассмотрите всю информацию, представленную до сих пор, вы можете вывести количество контактов GPIO, доступных для пользователя. Прежде всего, GPIO6 — GPIO11 используются для SPI Flash. Таким образом, они недоступны для пользователя.
Кроме того, GPIO1 и GPIO3 используются как контакты UART TX и RX, что также исключает их.Итак, из 17 контактов GPIO 8 уже используются для других целей. Остается 9 контактов. Эти контакты помечены как D0 — D8 на плате NodeMCU.
В следующей таблице показаны доступные выводы GPIO на NodeMCU.
Вывод GPIO | Вывод NodeMCU | Информация | ||
0 | D3 | 1 ВЫСОКИЙ | подключен к кнопке вспышки TX | Не использовать во время передачи |
2 | D4 | |||
3 | RX | Не использовать во время приема | ||
4 | D2 | I 2 C SDA | ||
5 | D1 | I 2 C SCL | ||
6-11 | — | Подключено к SPI Flash | ||
12 | D6 | |||
13 | D7 | |||
14 | D5 | |||
15 | D8 | Низкий | ||
16 | D0 | Используется для выхода из глубокого сна.Без прерывания, I2C, PWM |
Контакты выбора режима загрузки
Следующие контакты для выбора режима загрузки.
GPIO 0 | GPIO 2 | GPIO 15 | Режим загрузки |
LOW | HIGH | LOW | |
U HIGH | HIGH | LOW | Загрузка с SPI Flash |
x | x | HIGH | Загрузка с SDIO |
Заключение
Модуль ESP-12E -12E Распиновка, Плата NodeMCU, Распиновка NodeMCU, важная информация, относящаяся к контактам NodeMCU.
Распиновка ESP8266 NodeMCU для Arduino IDE
Полезно? распространить слово!
к. in Computer Science / Solar Thermal Energy Researcher
Последние сообщения Хавьера Бониллы (увидеть все)Этот короткий пост представляет собой шпаргалку , которую вы можете использовать для проверки распиновки ESP8266 NodeMCU (платы NodeMCU V2 и V3 ESP8266) для ваших программ Arduino IDE .
Распиновка NodeMCU
Для практических целей Платы ESP8266 NodeMCU V2 и V3 имеют идентичных выводов .Для наших проектов в области мехатроники нас в основном интересуют следующие выводы:
- Выводы питания (3,3 В).
- Контакты заземления (GND).
- Аналоговые контакты (A0).
- Цифровые выводы (D0 — D8, SD2, SD3, RX и TX — GPIO XX)
Большинство плат ESP8266 NodeMCU имеют один вывод входного напряжения (Vin), три вывода питания (3,3 В), четыре контакта заземления (GND), один аналоговый контакт (A0) и несколько цифровых контактов (GPIO XX).
ESP8266 Схема NodeMCU
Распиновка NodeMCU ESP8266Это партнерские ссылки. Это означает, что если вы нажмете на ссылки и купите продвигаемый товар, мы получим небольшую партнерскую комиссию без каких-либо дополнительных затрат для вас, цена продукта такая же. Мы были бы очень признательны за вашу поддержку нашей работы и веб-сайта, если вам это подходит.
Если мы хотим взаимодействовать с цифровым выводом в Arduino IDE, мы должны запомнить номер GPIO (0..16), тогда как для аналогового вывода используется псевдоним ( A0 ). Цифровые выводы могут использоваться как входы или выходы , однако аналоговый вывод может использоваться только как вход .