Esp8266 nodemcu v3 распиновка: Nodemcu v3 lua распиновка — Вэб-шпаргалка для интернет предпринимателей!

Содержание

Начало работы с ESP8266 NodeMcu v3 Lua с WiFi | АмперКО

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

Подавать питание на модуль можно несколькими способами:

  • Подавать 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. Сразу после этого начнется автоматическая загрузка написанного кода в отладочную плату и его выполнение. Если операция выполнена успешно, отладочная плата начнет мигать светодиодом.

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

Распиновка микроконтроллеров и плат на их основе — Espressif Systems

Всем привет, в этой статье поговорим об уже надоевшей всем теме — «Метеостанция». Каждый пытается сделать что-то свое, вот и я не стал исключением и попытался материализовать свои эротические фантазии на контроллере ESP8266. Тема задумывалась уже давно как некое обновление для предыдущего проекта этой тематики, но из-за своей неспешности переросла в нечто самостоятельное.

При всей привлекательности микроконтроллера ESP8266 с его большим объемом памяти, железной поддержкой Wi-Fi и массой разных плюшек, он не лишен недостатков. Самый основной — ограниченное количество поддерживаемых одновременных TCP соединений равное 5. Если превысить этот лимит, то контроллер потеряет связь с окружающим миром, при этом watchdog будет думать, что все в порядке, а следовательно, даже не попытается нам помочь. Будем стараться это помнить!
Стоит начать с концепции
Доступ к данным метеостанции нужно получать без установки внешних приложений и под любой операционной системой. Для этих целей подойдет практически любой современный браузер. Меня всем устраивает Chrome. Раз уж за основу взят HTTP протокол, стоит озаботиться экономией трафика и ограничением числа TCP соединений. Хорошим тоном будет передача всего необходимого для формирования страницы контента только при первом обращении, а все последующие операции, такие как отображение показаний с датчиков или настройку контроллера, производить через API. В этом нам поможет JQuery. А вот, чтобы ослабить болевые ощущения от передачи файлов с SPI Flash в браузер, стоит предусмотреть систему кэширования, например, Etag. Это позволит отдавать тяжелый контент единожды, а при последующих загрузках страницы просто подтверждать его актуальность на уровне Web сервера микроконтроллера и кэш браузера вступит в игру, неимоверно уменьшив время загрузки страницы! «Вы были правы в одном, Мастер: переговоры были недолгими.» © Звездные войны. Эпизод 1 Из-за того, что метеостанция с датчиками и контроллером должна располагаться на улице, жизненно необходимо предусмотреть возможность обновлять прошивку ESP через Web интерфейс. Аналогичным образом должны обновляться файлы Web сервера расположенные на SPI Flash. Этот и предыдущий пункт вкупе позволят обновлять функционал микроконтроллера из домашней сети или из интернета, если конечно в этом возникнет острая необходимость. Чтобы никто посторонний не могу вмешаться в работу устройства или изменить файлы Web сервера, последний должен хотя бы как-то себя защищать. Пускать в панель управления только после авторизации, блокировать доступ при попытках брутфорса пароля. В конце концов, контроллер обязан самостоятельно генерировать ключи (salt) для авторизации, дабы сделать алгоритм непредсказуемым и исключить потенциальный взлом, в случае если злодей завладеет исходниками проекта. Понятно, что кому она там нужна, эта метеостанция, если её не завязывать с умным домом, если только из-за спортивного интереса, но как говориться “Береженого Бог бережет”. Датчики стоит расположить по уму — в метеобудке, а вот контроллер в сухом и закрытом боксе. Объединить их между собой, как мне кажется, удобнее по I2C шине — минимум проводов, максимум удобства. Практически на всех вариантах плат ESP-xx имеется штатный светодиод, можно воспользоваться им как для индикации режимов и состояния микроконтроллера, так и для вывода какой-либо промежуточной информации. Что касаемо режимов работы ESP8266, как ни странно, но он должен находить домашнюю Wi-Fi сеть и подключаться к ней. Если вдруг звезды не были к нам благосклонны, и домашняя беспроводная сеть приказала долго жить, контроллер обязан перейти в режим точки доступа (AP) дабы к нему можно было подключиться с какого-либо устройства и перенастроить его на другую сеть. А вот пока последнее не произошло, ESP должен периодически сканировать эфир в поисках долгожданной домашней точки доступа и, если боги были к нам милосердны, и домашняя сеть появилась в эфире, незамедлительно переключиться в режим клиента (STA) и в пылу страсти воссоединиться с ней. Ну и естественно, как же без отправки данных на внешние ресурсы, сейчас без этого не обходится ни одна уважающая себя кофеварка, не говоря уже о метеостанции. Думаю, что основным блюдом станет протокол MQTT, это уже облегчает возможность интеграции с умным домом, стулом или той же кофеваркой. Ну а на закуску добавим поддержку «ThingSpeak» и «Народного мониторинга». При желании можно нарастить функционал, благо памяти у микроконтроллера еще много. Как я себе это представляю

Учтите, что на видео, данные с датчиков, эмитируются самим микроконтроллером, это нужно для наглядности. В жизни метеорологическая обстановка намного спокойнее слава Богу.
Перейдем к физической сборки устройства
Как по мне, так самый оптимальный вариант, это воспользоваться отладочной платой NodeMCU V3 и базой для неё. Таким образом, мы получим отличный комплект с разведенной на его борту всей необходимой обвязкой и возможностью питать устройство от 5 до 24 Вольт.

Отладочная плата на базе, и смотрится хорошо, и удобства хоть отбавляй.

Заливаем прошивку, образ SPI Flash и подключаем четырьмя проводами датчики. Справится даже ребенок.
Ссылки:
Базовая плата для NodeMCU V3 с преобразователем питания 5-24V в 5V Отладочная плата ESP8266 от NodeMCU Естественно никто не запрещает Вам развести свою плату. Если Вы это сделаете, скиньте нам свое творение, возможно мы перейдем на него. В идеале, все должно размещаться в метеобудке.
Датчики взятые за основу
Теперь настал момент озаботиться, где описанные выше ребята будут жить. В прошлый раз мы использовали для этих целей, найденную в подножном корме, электрическую распределительную коробку. Кроме дешевизны в этом решении нет ничего положительного.
В этот раз мы воспользуемся более серьезным вариантом – «Метеорологическая будка Стивенсона». Она способна защитить датчики от прямых воздействий окружающей среды, но при этом имеет открытую структуру со стенками в виде жалюзи. Удобно, красиво и самое главное – правильно!

Будка печатается на 3D принтере по эскизам опубликованным на Thingiverse неким kowomike, спасибо добрый человек! Архив с эскизами можно будет скачать в конце поста.

Фото готовой будки

Шпилька М8 крепится через зажимной хомут к мачте уличной антенны.
Примерка. Шпилька практически не укорачивалась, чтобы не закрывать будку параболической Wi-Fi антенной.
Хотя в моем случае все это сделано не правильно т.к это солнечная сторона дома. Доступа на теневую сторону дома у меня нет, поэтому приходиться довольствоваться тем, что имеем. По прошлой метеостанции мне говорили «на солнечной стороне все эти измерения — сферический конь в вакууме, слепи %описание-многА-букАв% и закрепи на теневой стороне дома».
Я пока живу в панельном многоквартирном доме, как и не малая часть нашей страны. Доступ к теневой стороне дома (а для меня, по факту, это окна в подъезде) — прямой вызов всем гопникам района трущимся рядом, любопытным соседям с бегающими глазками и всей элите человечества скрашивающей фоном мою унылую и слишком простую, по их мнению, жизнь. Думаю, что мысль я донес.

Датчики располагаются на разных уровнях. В основании находится датчик освещенности Bh2750 и смотрит ровно вниз. Мне кажется, так он будет меньше пачкаться и покрываться пылью и при этом смотреть наружу сквозь минимальное количество препятствий для солнечного света. Вообще размещение этого датчика, это целая головная боль. Как не крути, все будет не то. Оставил так, ведь по сути важны не сами показания, а тенденция изменения. Хотя кого я пытаюсь обмануть, точность важна всегда! Предлагайте свои варианты.
Намного проще обстоят дела с датчиком атмосферного давления BMP180 и влажности SI7021, кстати, с последнего мы также будем забирать данные о температуре. Их размещаем в оставшемся свободном пространстве будки, благо его там с избытком, но не в конусе т.к пространство в нем менее проветриваемое.

Все хозяйство подключается между собой следующим образом
NodeMCU | ESP 07/12 | Датчики —————————— D2 | GPIO 4 | SDA D1 | GPIO 5 | SCL 3.3V | 3.3V | 3.3V GND | GND | GND ВАЖНО: при финальном монтаже устройства на его место службы, обязательно установите перемычку между пинами GPIO 0 (D3) и питанием 3.3 Вольта. Причины её установки описаны в закрепленном сообщении с описание обновления от 12.08.2017.
Сам микроконтроллер будет спрятан в уже знаменитую распределительную коробку, закрепленную на шпильке, чуть ниже будки Стивенсона. У меня все находится на стадии неторопливой сборки с попутным поиском более удачных идей.
Плата расширения, на которой будет установлена плата NodeMCU, закреплена через ножки для крепления компьютерных материнских плат в корпусах.

Разъемы для подключения внешних датчиков и питающей линии установил на местах где была пара штатных заглушек. Закрепил все через переходную пластину, выпиленную из куска фольгированного текстолита. Естественно, предварительно пластина была протравлена, а вся медь искоренена, ибо в этом случае она нам не друг.

Также была предусмотрена проставка из полиэтиленового поролона (используется в качестве упаковочного материала при транспортировке грузов) между текстолитом и корпусом, общей толщиной 5мм, а после затяжки крепежных винтов, его толщина не превышает 1мм. Это было сделано из-за опыта эксплуатации предыдущего (временного) бокса для этой метеостанции. Без проставки влага быстро найдет путь вовнутрь, и срок службы устройства снизится.
Производим примерку.
При окончательном монтаже обязательно необходимо удалить все не плотно прилегающие части полиэтиленового поролона, то есть те части, которые располагаются снаружи и не сдавлены крепежной текстолитовой пластиной. Это необходимо сделать для препятствования накоплению влаги в доступных для неё полостях. Также пришлось увеличить число крепежных болтов для более надежного прилегания текстолита, в противном случае он может выгибаться.
Все самое сложное позади, остается только вывести на один разъем шину i2c с питание 3.3 Вольта, а на другой подвести пины питания платы расширения. Но т.к у меня валялся «хвост» отрезанный когда-то от не рабочего блока питания маршрутизатора, и я не побрезговал им воспользоваться по прямому назначению.

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

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

Требования (!!!Читать обязательно!!!)
Arduino IDE с поддержкой контроллера ESP8266, версия 2.6.2 (на версиях выше работоспособность не проверялась) Установленный модуль в Arduino IDE для загрузки файлов во Flash память микроконтроллера. Как установить описано тут. Для работы модуля загрузки файлов во Flash может понадобится последняя версия Python https://www.python.org/downloads/ Любой модуль на базе ESP8266 c Flash 4MB (3MB выделяем под SPIFFS) В параметрах выставляем lwIP версии 2 и максимальную производительность (lwIP v2 Higher Bandwidth) Сам архив с последней версией проекта. Скачать можно в конце статьи или по этой ссылке.   
Обязательные библиотеки (!!!Читать обязательно!!!)
ArduinoJson (v5.13.5) PubSubClient Ссылки на библиотеки сенсоров указаны в комментариях к коду. Сами библиотеки, как и обслуживаемые ими сенсоры, не являются обязательными. Вы вольны использовать любые датчики, как физические, так и программные.
Порядок установки (!!!Читать обязательно!!!)
Изучите файлы проекта с примерами использования тех или иных сенсоров. Все файлы с примерами начинаются с префикса users_, это users_auto.h, users_bme280_x2.h и т.д. Загрузите необходимые Вам библиотеки или используйте эти файлы как пример для добавления иных датчиков. Выставите необходимые настройки для контроллера в среде разработки Arduino IDE. Пример настроек указан на скриншоте выше. Обязательно убедитесь, что выбрано правильное распределение места для внутренней файловой системы, это значит, что 3MB должно быть выделено под файловую систему. Также проверяем, чтобы использовался lwIP v2 в режиме максимальной производительности (lwIP v2 Higher Bandwidth). Произведите загрузку программы с помощью среды разработки (Ctrl + U). Произведите загрузку содержимого каталога data в файловую систему. Меню/Инструменты/ESP8266 Sketch Data Upload Перед тем как устанавливать метеостанцию на постоянное место жительства, подтянуть GPIO-0 (пин D3 на плате NodeMCU) к питанию 3.3V. Во время данной процедуры, питание на контроллере должно отсутствовать. Первый запуск (!!!Читать обязательно!!!)
Помните, что вся конфигурация микроконтроллера производится исключительно через web интерфейс. Никаких изменений значений тех или иных параметров в коде не требуется, а подобную практику будем считать плохим тоном.
И так, после запуска микроконтроллера он сразу перейдет в аварийный режим и поднимет собственную точку доступа с именем WeatherStation. Это нормальное поведение т.к подразумевается использование метеостанции в домашней беспроводной сети, ну а раз о ней пока ничего не известно, то и подключаться не к чему.
Подключитесь к данной сети с любого удобного устройства и перейдите в панель управления (для этого имеется соответствующая иконка, запутаться невозможно), контроллер будет доступен по адресу http://espws.local или http://192.168.4.1 При попытке входа в панель управления будет запрошено имя пользователя и пароль, по умолчанию admin/admin. После входа в панель управления перейдите в раздел «Основные настройки WiFi» и укажите имя и пароль Вашей домашней сети, а также, при необходимости, укажите пароль для подключения к точке доступа поднимаемой контроллером в аварийном режиме. Если все сделано правильно, то контроллер подключится к домашней сети в течении 5-и минут.
Если Ваша домашняя сеть скрыта, то после первоначальной настройки необходимо перезагрузить контроллер. Это необходимо из-за частичной поддержки работы со скрытыми сетями. После перезагрузки контроллер увидит Вашу сеть и запомнит её MAC адрес. Помните об этом если захотите сменить домашний маршрутизатор.
Хотите помочь проекту или спонсировать новый?
Yandex.Money PayPal.me Файлы
 

NodeMCU V3 Lua WIFI модуль интеграции ESP8266 + память 32M Flash, USB-serial Ch440G — RadioMart.kz

Подробнее

Платы V3 внешне ничем не отличаются от V2, они обладают более надежным USB-выходом. Выпускает плату V3 фирма LoLin, из отличий от предыдущей платы можно отметить то, что один из двух зарезервированных выходов используется для дополнительной земли, а второй – для подачи USB питания. Также плата отличается большим размером, чем предыдущие виды.

Питание модуля NodeMcu
Подавать питание на модуль можно несколькими способами:

  • Подавать 5-18 В через контакт Vin;
  • 5В через USB-разъем или контакт VUSB;
  • 3,3В через вывод 3V.

Преимущества NodeMcu v3:

  • Наличие интерфейса UART-USB с разъемом micro USB позволяет легко подключить плату к компьютеру.
  • Наличие флэш-памяти на 4 Мбайт.
  • Возможность обновлять прошивку через USB.
  • Возможность создавать скрипты на LUA и сохранять их в файловой системе.

Спецификация:

  • Поддерживает 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;
  • Наличие усилителей мощности, регуляторов, систем управления питанием.

Основным недостатком является возможность исполнять только LUA скрипты, расположенные в оперативной памяти. Этого типа памяти мало, объем составляет всего 20 Кбайт, поэтому написание больших скриптов вызывает ряд трудностей. В первую очередь, весь алгоритм придется разделять на линейные блоки. Эти блоки необходимо записать в отдельные файлы системы. Все эти модули исполняются при помощи оператора dofile.

Распиновка NodeMcu v3
Модуль V3 имеет 11 контактов ввода-вывода общего назначения. Помимо этого некоторые из выводов обладают дополнительными функциями:

  • D1-D10 – выводы с широтно-импульсной модуляцией;
  • D1, D2– выводы для интерфейса I²C/TWI;
  • D5–D8 – выводы для интерфейса SPI;
  • D9, D10 – UART;
  • A0 – вход с АЦП.


Комплект поставки и внешний вид данного товара могут отличаться от указанных на фотографиях в каталоге интернет-магазина.

Wi-Fi плата NodeMCU v3 ESP8266 (Ch440)

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

Используйте NodeMCU вместо или вместе с Arduino, чтобы сделать умный дом, проекты интернета вещей или удалённый мониторинг сенсоров.

Ножки платы расположены на стандартном расстоянии 2,54 мм, поэтому модуль легко установить на макетной плате.

Родное напряжение модуля — 3,3 В. На плате есть регулятор напряжения, поэтому питать её можно через USB или подвести питание от 3,7 до 20 В к пину 5V.

Существуют разные версии ESP8266, но почти для всех используется один и тот же способ настройки среды разработки Arduino IDE.


Настройка ESP8266 в Arduino IDE

Для этой процедуры необходим доступ в интернет, так как Arduino IDE требуется скачать дополнительные пакеты.

Заходим в настройки Arduino IDE:


 

В поле Дополнительные ссылки для Менеджера плат пишем такую ссылку:

http://arduino.esp8266.com/stable/package_esp8266com_index.json


 

Жмем ОК и переходим в окно менеджера плат:


 

В строке поиска менеджера плат пишем «esp».


 

В самом низу будет нужный нам пакет «esp8266 by ESP8266 Community». Выбираем его и жмем кнопку «Установка».


 

Спустя некоторое время пакет скопирует необходимые файлы и в Arduino IDE можно будет выбрать нужную нам плату.

Если возникает «Ошибка при загрузке http://downloads.arduino.cc/packages/package_index.json», зайдите в папку

C:\Users\%UserName%\AppData\Local\Arduino15

удалите все файлы, кроме preferences.txt. Перезапустите среду разработки Arduino и снова установите в Менеджере плат пакет «esp8266 by ESP8266 Community».


Распиновка


Скачать драйвера Ch440 для всех операционных систем

В чем разница между ESP32 и ESP8266?

В чем разница между ESP32 и ESP8266? Что следует использовать в своих проектах: ESP32 или ESP8266? В этой статье мы сравним ESP32 с ESP8266 и рассмотрим плюсы и минусы каждой платы.

ESP32 и ESP8266 — это недорогие Wi-Fi модули, идеально подходящие для любительских проектов в области интернета вещей (IoT) и домашней автоматизации.

Цифровой мультиметр AN8009

Большой ЖК-дисплей с подсветкой, 9999 отсчетов, измерение TrueRMS…

Оба чипа имеют 32-битный процессор. ESP32 — это двухъядерный процессор с частотой 160…240 МГц, в то время как ESP8266 — это одноядерный процессор, работающий на частоте 80 МГц.

Эти модули поставляются с выводами GPIO (интерфейс ввода/вывода), которые поддерживают широкий спектр протоколов, таких как SPI, I2C, UART, ADC, DAC, PWM.

Самое приятное то, что эти платы поставляются с интегрированной беспроводной сетью, что отличает их от других микроконтроллеров, таких как Arduino. Это означает, что вы можете легко управлять и контролировать устройства удаленно через Wi-Fi или Bluetooth (в случае ESP32) по очень низкой цене.

Кроме того, если вам не нужно использовать его беспроводные возможности, вы можете использовать ESP32/ESP8266 для управления входами и выходами, как это было бы с Arduino. Однако вы должны принять во внимание, что в то время как Arduino работает с логикой 5 В, ESP32 и ESP8266 работают только с 3,3 В.

Технические характеристики: ESP32 против ESP8266

ESP32 является преемником ESP8266. Он имеет дополнительное ядро ​​процессора, более быстрый Wi-Fi, больше GPIO и поддерживает Bluetooth 4.2 и Bluetooth с низким энергопотреблением. Кроме того, ESP32 поставляется с сенсорными контактами, которые можно использовать для пробуждения ESP32 из глубокого сна, встроенным датчиком эффекта Холла и встроенным датчиком температуры (последние версии ESP32 больше не поставляются со встроенным датчиком температуры).

Обе платы очень дешевы, но ESP32 стоит немного дороже. В то время как ESP32 может стоить от 6 до 12 долларов, ESP8266 может стоить от 4 до 6 долларов (но это зависит от того, где вы их приобретаете).

В следующей таблице показаны основные различия между чипами ESP8266 и ESP32:

Стенд для пайки со светодиодной подсветкой

Материал: АБС + металл + акриловые линзы. Светодиодная подсветка…

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

Платы для разработки ESP32 и ESP8266, которые мы используем чаще, — это плата разработки ESP32 DEVKIT DOIT и комплект ESP8266 ESP-12E NodeMCU Kit. Однако есть много других моделей плат для разработки, из которых вы можете выбирать.

Большее количество GPIO на ESP32

ESP32 имеет большее количество GPIO чем ESP8266. Вы можете сами решать, какими выводами будут UART, I2C, SPI – для этого вам просто нужно прописать их в коде. Это возможно благодаря функции мультиплексирования микросхемы ESP32, которая позволяет назначать несколько функций одному и тому же выводу. Если вы не установите их в коде, они будут на выводах, определенных по умолчанию, как показано на следующем рисунке (это пример для платы ESP32 DEVKIT V1 DOIT — расположение выводов может меняться в зависимости от производителя).

Для сравнения приведем распиновку для комплекта ESP8266 ESP-12E NodeMCU Kit.

ШИМ, АЦП и многое другое

Вы можете установить сигналы PWM в любом GPIO с настраиваемыми частотами и рабочим циклом, установленными в коде.

Что касается аналоговых выводов, то они статичны. ESP32 поддерживает измерения на 18 каналах (выводы с аналоговой поддержкой) по сравнению с одним 10-битным выводом АЦП на ESP8266. ESP32 также поддерживает два 8-битных канала ЦАП.

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

Arduino IDE — ESP32 против ESP8266

Есть много способов запрограммировать платы ESP32 и ESP8266. В настоящее время обе платы можно программировать с помощью среды программирования Arduino IDE.

Это хорошая вещь, особенно для тех, кто привык программировать Arduino.  Хотя вы можете запрограммировать обе платы с помощью Arduino IDE, они могут быть несовместимы с одними и теми же библиотеками и функциями.

Некоторые библиотеки только совместимы с одной из плат. Это означает, что в большинстве случаев ваш код для ESP8266 не будет совместим с ESP32. Однако для адаптации вам будет достаточно внести несколько изменений.

MicroPython Firwmare — ESP32 против ESP8266

Еще один популярный способ программирования плат ESP32 и ESP8266 — использование программы MicroPython.

 

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

В MicroPython большинство скриптов Python совместимы с обеими платами (в отличие от использования Arduino IDE). Это означает, что в большинстве случаев вы можете использовать один и тот же сценарий для ESP32 и ESP8266.

Что выбрать: ESP32 или ESP8266?

Итак, на этом этапе вы можете спросить: что мне купить: ESP8266 или ESP32?

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

ESP8266 дешевле, чем ESP32. Хотя у ESP8266 не так много функций, он отлично будет работать в большинстве простых проектов IoT. Однако у него есть некоторые ограничения. Когда дело доходит до использования GPIO у него просто может не хватить контактов для более сложных проектов. Если это так, вы должны использовать ESP32.

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

Многие думают, что с ESP32 труднее иметь дело, чем с ESP8266, потому что он более сложный. На наш взгляд, ESP32 так же просто запрограммировать, как и ESP8266, особенно если вы собираетесь программировать его с использованием «языка Arduino» или MicroPython. У ESP32 тоже есть минусы. ESP32 дороже, чем ESP8266.

Итак, если вы создаете простой проект IoT, ESP8266 может помочь вам из-за более низкой цене. Кроме того, поскольку ESP8266 «старше», чем ESP32, некоторые библиотеки и функции лучше разработаны для ESP8266, и вы найдете больше ресурсов (форумы, люди с такими же проблемами и способы их решения и т. д.). Однако со временем ESP32 получит более широкое распространение, и эти различия в плане разработки и библиотек не будут заметны.

Для проектов IoT все же лучше перейти на модуль ESP32. Он более универсален и имеет гораздо больше функций, таких как Bluetooth, различные источники пробуждения, множество периферийных устройств и многое другое. К тому же разница в цене, на наш взгляд, не имеет большого значения. Мы думаем, что как только вы перейдете на ESP32, вы больше не захотите возвращаться к ESP8266.

Esp8266 — подключение и обновление прошивки

node.dsleep()¶

Enters deep sleep mode, wakes up when timed out.

Theoretical maximum deep sleep duration can be found with . «Max deep sleep for ESP8266» claims the realistic maximum be around 3.5h.

Caution

This function can only be used in the condition that esp8266 PIN32(RST) and PIN8(XPD_DCDC aka GPIO16) are connected together. Using sleep(0) will set no wake up timer, connect a GPIO to pin RST, the chip will wake up by a falling-edge on pin RST.

Parameters

  • number (integer) or , sleep time in micro second. If , it will sleep forever. If , will not set sleep time.

  • number (integer) or . If , it will use last alive setting as default option.

    • 0, init data byte 108 is valuable
    • > 0, init data byte 108 is valueless
    • 0, RF_CAL or not after deep-sleep wake up, depends on init data byte 108
    • 1, RF_CAL after deep-sleep wake up, there will be large current
    • 2, no RF_CAL after deep-sleep wake up, there will only be small current
    • 4, disable RF after deep-sleep wake up, just like modem sleep, there will be the smallest current
  • number (integer) or . If present and non-zero, the chip will enter Deep-sleep immediately and will not wait for the Wi-Fi core to be shutdown.

ESP8266 Development Platforms

Now, let’s move on to the interesting stuff!

There are a variety of development platforms that can be equipped to program the ESP8266. You can go with Espruino – JavaScript SDK and firmware closely emulating Node.js, or use Mongoose OS – An operating system for IoT devices (recommended platform by Espressif Systems and Google Cloud IoT) or use a software development kit (SDK) provided by Espressif or one of the platforms listed on .

Fortunately, the amazing ESP8266 community took the IDE selection a step further by creating an Arduino add-on. If you’re just getting started programming the ESP8266, this is the environment we recommend beginning with, and the one we’ll document in this tutorial.

This ESP8266 add-on for Arduino is based on the amazing work by Ivan Grokhotkov and the rest of the ESP8266 community. Check out the ESP8266 Arduino GitHub repository for more information.

Принципиальная схема

Вариант для сайта — Принципиальная схема в формате pdf доступна для скачивания в секции загрузок, оригинал проекта доступен в онлайн среде проектирования электроники EasyEDA.

Как я заметил в первой части статьи, схемотехника устройства на NodeMCU несколько отличается от подобного устройства на Arduino (Рисунок 13). Во-первых, это обусловлено тем, что номинальное напряжение питания СнК ESP8266 равно 3.3 В. Во-вторых, техническая документация на СнК, практические руководства и тематические форумы не дают однозначного ответа на вопрос о совместимости Wi-Fi модулей на ESP8266 с 5-вольтовыми устройствами.

Рисунок 13.Принципиальная схема контроллера подсветки (версия на NodeMCU).

Кроме того, в модулях типа NodeMCU для питания СнК установлена микросхема линейного регулятора напряжения 3.3 В (обычно из серии AMS1117-3.3), для которой максимальное входное напряжение составляет 15 В (в некоторых модификациях до 18 В). В этом случае модуль NodeMCU можно было запитать непосредственно от блока питания 12 В. Однако, по ряду очевидных причин я решил установить дополнительный регулятор напряжения 5 В с соответствующим фильтрующими конденсаторами. Напряжение питания 5 В с выхода регулятора подается на вход Vin Wi-Fi модуля.

Cхема ШИМ управления светодиодной лентой не изменилась. Затвор силового MOSFET подключен к порту D5 NodeMCU.

Диапазон входных напряжений интегрированного в СнК ESP8266 аналого-цифрового преобразователя составляет 0 – 1 В, поэтому немного изменена схема подключения датчика освещенности (фоторезистора). В зависимости от типа используемого фоторезистора, возможно, потребуется включить в измерительную цепь дополнительный резистивный делитель. В моем случае (фоторезистор VT93N1 номиналом 12 кОм) в делителе напряжения нет необходимости – даже в условиях высокой яркости напряжение на входе АЦП не достигало 0.9 В, поэтому резистор R7 не устанавливается, а вместо R6 ставится перемычка (SMD резистор 0 Ом).

Датчик температуры DS18B20 подключается к разъему P3. Напряжение питания 3.3 В для датчика температуры поступает с модуля NodeMCU, сигнальный вывод датчика с подтягивающим резистором R5 подключается к порту D3.

Разъем P4 и контакт 3 разъема P3 предусмотрены для возможности дальнейшего расширения функционала.

Для подключения датчика движения используется аналогичный сдвоенный разъем TB1-TB2. Выходная линия датчика движения подключается к порту D2 через схему согласования логических уровней (5 В/3.3 В), выполненную на резисторе R3 и диоде Шоттки D1. При текущем способе подключения датчика движения (как и в случае с контроллером на Arduino) схема согласования логических уровней не нужна, и ее можно исключить. Однако, в зависимости от типа используемого датчика движения и способа его подключения, указанная цепь может оказаться обязательной, так как СнК ESP8266 может выйти из строя при работе с 5-вольтовыми сигналами.

Замечу, что примененная схема согласования логических уровней является односторонней. Желательно в схеме использовать диоды Шоттки – они имеют низкое прямое падение напряжения.

Arduino Example: Blink

To make sure ESP8266 Arduino core and the NodeMCU are properly set up, we’ll upload the simplest sketch of all – The Blink!

We will use the on-board LED for this test. As mentioned earlier in this tutorial, D0 pin of the board is connected to on-board Blue LED & is user programmable. Perfect!

Before we get to uploading sketch & playing with LED, we need to make sure that the board is selected properly in Arduino IDE. Open Arduino IDE and select NodeMCU 0.9 (ESP-12 Module) option under your Arduino IDE > Tools > Board menu.

Now, plug your ESP8266 NodeMCU into your computer via micro-B USB cable. Once the board is plugged in, it should be assigned a unique COM port. On Windows machines, this will be something like COM#, and on Mac/Linux computers it will come in the form of /dev/tty.usbserial-XXXXXX. Select this serial port under the Arduino IDE > Tools > Port menu. Also select the Upload Speed : 115200

Warning:

More attention needs to be given to selecting board, choosing COM port and selecting Upload speed. You may get espcomm_upload_mem error while uploading new sketches, if failed to do so.

Once you are done, try the example sketch below.

Once the code is uploaded, LED will start blinking. You may need to tap the RST button to get your ESP8266 to begin running the sketch.

Печатная плата

разработан в EasyEDA; Gerber-файлы доступны для загрузки (Рисунок 14). Компоненты и разъемы старался расположить так же как на плате для Arduino версии контроллера, однако размеры платы получились чуть больше. также можно оналйн при помощи GerberViewer.

На верхнем и нижнем слое выполнена заливка Copper Area (GND, земля) и шелкография. Как и в случае с платами для Arduino-версии контроллера, минимальный заказ (5 шт.) на изготовление печатных плат был выполнен в кратчайшие сроки, но в итоге я получил 6 плат.

Рисунок 14.Проект печатной платы контроллера на NodeMCU в среде EasyEDA.

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

Рисунок 15.Комплект печатных плат, изготовленных в EasyEDA.
 
Рисунок 16.Вид платы контроллера на NodeMCU с установленными компонентами.

Build Options¶

The following sections explain some of the options you have if you want to build your own NodeMCU firmware.

Select Modules


Disable modules you won’t be using to reduce firmware size and free up some RAM. The ESP8266 is quite limited in available RAM and running out of memory can cause a system panic. The default configuration is designed to run on all ESP modules including the 512 KB modules like ESP-01 and only includes general purpose interface modules which require at most two GPIO pins.

Edit and comment-out the statement for modules you don’t need. Example:

TLS/SSL Support


To enable TLS support edit and uncomment the following flag:

The complete configuration is stored in . This is the file to edit if you build your own firmware and want to change mbed TLS behavior. See the documentation for details.

Set UART Bit Rate


The initial baud rate at boot time is 115200bps. You can change this by
editing in :

Note that, by default, the firmware runs an auto-baudrate detection algorithm so that typing a few characters at boot time will cause
the firmware to lock onto that baud rate (between 1200 and 230400).

Integer build


By default a build will be generated supporting floating-point variables.
To reduce memory size an integer build can be created. You can change this
either by uncommenting in :

OR by overriding this with the command as it’s :

Tag Your Build


Identify your firmware builds by setting the environment variable .
You may also edit . The variable will be included in .

u8g2 Module Configuration


Display drivers and embedded fonts are compiled into the firmware image based on the settings in and . See the for details.

NodeMCU PyFlasher¶

Self-contained NodeMCU flasher with GUI based on Python, esptool.py (see below) and wxPython. A runnable .exe is available for Windows and a .dmg for macOS.

No installation required on Windows and macOS! Instructions how to run it on other platforms are available on the project site.

  1. Install drivers for USB-to-serial. Which driver you need depends on the ESP8266 module or USB-to-serial converter you use.
  2. Connect USB cable to device and computer.
  3. Download then start PyFlasher
  4. Select serial port, browse for firmware binary and set the flash options.

Note that this tool is not an official NodeMCU offering. It’s maintained by a NodeMCU team member as an individual, though.

Подключение ESP8266 через RaspberryPi

Да, можно и «из пушки по воробьям», если под рукой нет вообще никакого USB-TTL конвертера. Подключение через малинку аналогично Arduino, но не такое удобное, т.к. дополнительно потребуется стабилизатор питания на 3,3 вольта. RX, TX, GND малинки подключаем к ESP8266, VCC и GND берем со стабилизированного источника питания на 3,3 вольта

Обратите внимание на то, что необходимо соединить GND всех устройств: малинки, стабилизатора и ESP8266. Брать 3,3 вольта питания с малинки для ESP8266 я лично не пробовал, поэтому вам предлагать такой вариант не буду

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

Как правильно подключить ESP8266

Если вы планируете заниматься с ESP8266 больше, чем один вечер, то вам потребуется вариант подключения, обеспечивающий более высокую стабильность. Ниже приводятся две схемы подключения: с поддержкой автозагрузки прошивки из Arduino IDE, UDK, Sming и без нее.

Схема подключения ESP8266 (без автозагрузки прошивки, прошиваемся предварительно установив перемычку BURN и перезагрузив модуль)

Схема подключения с поддержкой автозагрузки прошивки из Arduino IDE, UDK, Sming. Для Flash Download Tool и XTCOM_UTIL, возможно, потребуется отключение RTS/DTR. Если RTS и DTR вам отключать неудобно, то можно добавить в схему перемычки

На этих схемах не показано подключение ADC и свободных GPIO — их подключение будет зависеть от того, что вы захотите реализовать, но если хотите стабильности, то не забудьте притянуть все GPIO к питанию (pullup), а ADC к земле (pulldown) через подтягивающие резисторы.

Резисторы на 10k могут заменены на другие от 4,7k до 50k, за исключением GPIO15 — его номинал должен быть до 10k. Номинал конденсатора, который сглаживает высокочастотные пульсации, может быть другим.

Соединение RESET и GPIO16 через резистор deep sleep на 470 Ом вам потребуется, если вы будете использовать режим deep sleep: для выхода из режима глубокого сна модуль перезагружает сам себя, подавая низкий уровень на GPIO16. Без этого соединения глубокий сон будет вечным для вашего модуля.

На первый взгляд на этих схемах кажется, что GPIO0, GPIO2, GPIO15, GPIO1 (TX), GPIO3 (RX) заняты и вы не можете их использовать для своих целей, но это не так. Высокий уровень на GPIO0 и GPIO2, низкий на GPIO15 требуются только для старта модуля, а в последующем вы можете использовать их по своему усмотрению, только не забудьте обеспечить требуемые уровни до перезагрузки модуля.

Можно использовать и TX, RX как GPIO1 и GPIO3 соответственно, не забывая о том, что при старте модуля любая прошивка будет дергать TX, отправляя отладочную информацию в UART0 на скорости 74480, но после успешной загрузки вы можете использовать их не только как UART0 для обмена данными с другим устройством, но и как обычные GPIO.

Для модулей, имеющих меньшее количество разведенных пинов, как например, ESP-01 подключение неразведенных пинов не требуется, т.е. на ESP-01 разведены только: VCC, GND, GPIO0, GPIO2, CH_PD и RESET — вот только их и подтягиваете. Нет никакой необходимости припаиваться прямо к микросхеме ESP8266EX и притягивать неразведенные пины, только если вам это действительно необходимо.

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

Внимание!

Правильным будет сказать вам, что не существует идеальной и в тоже время универсальной схемы подключения ESP8266. Все дело в том, что очень многое зависит от прошивки, которую вы собираетесь туда залить. Вышеприведенные схемы рассчитаны на новичков, которые только начинают осваивать ESP8266, для экспериментов. Для реальных проектов, возможно, вам придется немного изменить схему. Например, для прошивки TCP2UART нужно подключить RTS к GPIO15, а CTS к GPIO13

Также в реальных проектах рекомендую уделить особое внимание питанию

Docker¶

The Docker NodeMCU build image is the easiest method to build NodeMCU related components locally on your preferred platform.

Offering:

  • build NodeMCU firmware based on locally cloned sources and configuration
  • cross-compile Lua files into LFS image locally

Detailed instructions available in the image’s README. As for available config options and study the comments in .

For LFS


  1. In edit the line and adjust the size to that needed. Note that this must be a multiple of 4Kb.
  2. Build as you would otherwise build with this image (i.e. see its README)

Note that this Docker image is not an official NodeMCU offering. It’s maintained by a NodeMCU team member as an individual, though.

gpio.pulse¶

This covers a set of APIs that allow generation of pulse trains with accurate timing on
multiple pins. It is similar to the API, but can handle multiple pins and has better
timing control.

The basic idea is to build a object and then control it with methods on that object. Only one
object can be active at a time. The object is built from an array of tables where each inner table represents
an action to take and the time to delay before moving to the next action.

One of the uses for this is to generate bipolar impulse for driving clock movements where you want (say) a pulse on Pin 1 on the even
second, and a pulse on Pin 2 on the odd second. and can be used to keep the pulse synchronized to the
RTC clock (that is itself synchronized with NTP).

Attention

This sub module is disabled by default. Uncomment in before building the firmware to enable it.

To make use of this feature, decide on the sort of pulse train that you need to generate — hopefully it repeats a number of times.
Decide on the number of GPIO pins that you will be using. Then draw up a chart of what you want to happen, and in what order. Then
you can construct the table struct that you pass into . For example, for the two out of phase square waves, you might do:

StepPin 1Pin 2Duration (μS)Next Step
1HighLow100,0002
2LowHigh100,0001

This would (when built and started) just runs step 1 (by setting the output pins as specified), and then after 100,000μS, it changes to step 2i. This
alters the output pins
and then waits for 100,000μS before going back to step 1. This has the effect of outputting to Pin 1 and Pin 2 a 5Hz square wave with the pins being out of phase. The frequency will be
slightly lower than 5Hz as this is software generated and interrupt masking can delay the move to the next step. To get much closer to 5Hz,
you want to allow the duration of each step to vary slightly. This will then adjust the length of each step so that, overall, the output is
at 5Hz.

StepPin 1Pin 2Duration (μS)RangeNext Step
1HighLow100,00090,000 — 110,0002
2LowHigh100,00090,000 — 110,0001

When turning this into the table structure as described below, you don’t need to specify anything
special when the number of the next step is one more than the current step. When specifying an out of order
step, you must specify how often you want this to be performed. The number of iterations can be up to around 4,000,000,000 (actually any value that fits into
an unisgned 32 bit integer). If this isn’t enough repeats, then loops can be nested as below:

The loop/count in step 2 will cause 1,000,000,000 pulses to be output (at 1kHz). This is around 11 days. At this point, it will continue onto step 3 which triggers the
11 days of 1kHz. THis process will repeat for 1,000,000,000 times (which is roughly 30 Million years).

The looping model is that associated with each loop there is a hidden variable which starts at the value and decrements on each iteration until it gets to zero
when it then proceeds to the next step. If control reaches that loop again, then the hidden variable is reset to the value of again.

ESP8266 12-E Chip Pinout

The following figure illustrates the ESP8266 12-E chip pinout. Use this diagram if you’re using an ESP8266 bare chip in your projects.

Note: not all GPIOs are accessible in all development boards, but each specific GPIO works in the same way regardless of the development board you’re using. If you’re just getting started with the ESP8266, we recommend reading our guide: Getting Started with the ESP8266.

At the moment, there are a wide variety of development boards with the ESP8266 chip that differ in the number of accessible GPIOs, size, form factor, etc…

The most widely used ESP8266 boards are the ESP-01, ESP8266-12E NodeMCU Kit, and the Wemos D1 Mini. For a comparison of these board, you can read this guide: ESP8266 Wi-Fi Development Boards comparison.

В чём прошивается?

Существует несколько софтов для прошивки МК. Например NodeMCU Flasher (которая подходит не только для плат NodeMCU) или ESPTool (необходим Python).

Однако в этой статье работа с МК и процесс прошивки будут рассмотрены в Arduino IDE.

Изначально среда Arduino IDE не предназначена для работы с МК серии ESP. Чтобы это исправить, идём в Файл → Настройки и в поле Дополнительные ссылки для Менеджера плат вставляем эту ссылку:

Потом открываем Инструменты → Плата → Менеджер плат и в открывшемся списке в самом низу находим плату «esp8266 by ESP8266 Community» (если с этим возникли трудности — используем поиск вверху окна). Устанавливаем последнюю версию платы (около 150 Мбайт).

После установки в списке плат появится немалое количество плат. Если не нашли свою плату или не знаете её названия — выбирайте Generic ESP8266 Module. Теперь можно выбрать свой МК в списке COM-портов.

Теперь что касается скорости передачи. У ESP8266 две скорости передачи: основная — её вы указываете при инициализации последовательного порта, и скорость, на которой передаётся отладочная информация. Она передаётся сразу после подачи питания на МК. Обычно это скорости 115200 бод и 74800 бод 0 соответственно.

Обновление прошивки ESP8266

Модуль ESP8266 замечателен тем, что не требует специального программатора — обновление прошивки производится на том же железе, на котором вы подключаете модуль ESP8266 к компьютеру, т.е. тоже через USB-TTL конвертер (ну или Arduino или RPi). Для обновление прошивки на модуле ESP8266 проделайте следующее:

для Win систем подойдет XTCOM UTIL (удобно работать, если прошивка состоит из одного файла), мультиплатформенный esptool (требуется python, нужно указывать параметры в командной строке),  FLASH DOWNLOAD TOOL (много настроек, удобно прошивать прошивки, состоящие из нескольких файлов, позволяет «собрать» прошивку в один файл из нескольких). Также вы найдете и другие программы для прошивки ESP8266 — попробуйте разные и пользуйтесь той, которая вам больше понравится.

3. Отключите от последовательного порта вашу терминальную программу

4. Отключите CH_PD от питания, подключите GPIO0 модуля к GND, подключите обратно CH_PD модуля.

5. Запускайте программу для прошивки модуля и загружайте новую прошивку в модуль ESP8266.

Загрузка прошивки в модуль обычно осуществляется на скорости 115200, но режим прошивки модуля поддерживает автоопределение скорости и прошивка может быть осуществлена на скорости от 9600 и выше. Максимальная скорость зависит от многих факторов (вашего USB-TTL конвертера, длины проводов и прочего) и может быть определена экспериментально на конфигурации именно вашего оборудования.

Все последние версии прошивок загружаются с нулевого адреса (0x00000).

В статье Обновление прошивки ESP8266 подробно описана загрузки прошивки в модуль с помощью программы XTCOM_UTIL.

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

Оцените статью:

Не ардуино единым. Обзор альтернативных микроконтроллеров и плат для разработки | Радиодетали

Всем доброго времени суток, дорогие друзья. Практически каждый радиолюбитель знает что такое Ардуино и с чем его едят. На сегодняшний день платформа Arduino стала таким же нарицательным именем, как в свое время стал копировальный аппарат от фирмы Ксерокс (Xerox). Все мы помним эти времена, когда нужно было что-то отксерить. Так и Arduino как учебная платформа по конструированию и обучению программированию стала именем нарицательным. Однако, стоит отметить, что не смотря на то что на платформе ардуино разработано много полезных устройств (а сколько таких еще будет…) возможности этой платформы ограничены и увы не полетом фантазии. Стоит признать, что сетевые коммуникационные возможности микроконтроллеров Atmega оставляют желать лучшего, а низкая производительность, 8ми битная платформа и малый объем памяти сильно ограничивают применение ардуино. Но конкуренты не дремлют. В этой статье я хочу предложить вашему вниманию несколько альтернативных микроконтроллеров, которые дружат с Arduino IDE и при этом обладают большими возможностями по сравнению с Arduino на базе микроконтроллеров Atmega.

STM32  (STM32F103C8T6)

Данная отладочная плата известна также под названием проект “Blue pill”. Опенсорсное решение на базе ARM процессора. Плата призвана заменить собой платформу Arduino Nano и имеет следующие характеристики:

  • Архитектура Микроконтроллера ARM Cotrex M3
  • Разрядность 32 Бит
  • Максимальная частота 72 Мгц
  • Объем памяти программ (FLASH): 64 / 128 кБайт
  • Объем памяти данных (RAM): 20 кБайт
  • Выводы: 37
  • UART: 3
  • SPI: 2
  • I2C: 2
  • CAN: 1
  • USB: 1
  • АЦП: 2 АЦП, 10 каналов, время преобразования 1 мкс
  • Напряжение питания микроконтроллера 2 … 3,6 В
  • Напряжение питания платы 5 В
  • Ток потребления до 50 мА

По сравнению с основным конкурентом — Arduino Nano, характеристики более чем впечатляющие. Да и зона применения этого микроконтроллера гораздо шире. Однако без нюансов не обходится. Стоит учитывать, что напряжение питания у микроконтроллера на этой плате составляет в среднем 3,3 вольта, соответственно и логика работы микроконтроллера трехвольтовая. У Arduino Nano напряжение питания 5 Вольт и логика соответствующая.

Для тех кто не в теме. Если микроконтроллер использует 5ти вольтовую логику, то при выдаче на цифровой пин логической 1 напряжение на выводе составляет 5 вольт. У микроконтроллера с 3,3-вольтовой логикой напряжение логической 1 равно 3,3 вольта, что в определенных случаях может доставить определенные сложности. Также не стоит забывать, что далеко не все устройства с логикой 3,3В толерантны (совместимы) с логикой 5В. Напряжение в 5В, поданное на цифровой вход устройства с логикой 3,3В, может привести к поломке.

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

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

На китайских торговых площадках мне встречались преобразователи на 4 и 8 каналов, стоят копейки, но позволяют избавиться от головной боли :). Вот ссылка на 4х канальный преобразователь:

Преобразователь логических уровней на 4 канала. Комплект 10 штук.

Устройства на базе STM32 в последние годы все больше и больше набирают популярность. На них строят как примитивные устройства, так и квадрокоптеры. А с выходом marlin 2.0 количество 3Д принтеров на подобной платформе значительно увеличится.

Свои модули STM32  (STM32F103C8T6) я заказывал вот тут:

Плата STM32  (STM32F103C8T6)

Ну а теперь поговорим о модулях на микроконтроллерах с WIFI.

Так или иначе рано или поздно любому радиолюбителю или инженеру становится скучно и не интересно разрабатывать автономные устройства, либо обстоятельства вынуждают разрабатывать устройства взаимодействующие друг с другом или через интернет. У Адруино есть шилды, которые позволяют подружить микроконтроллер с сетью, но прогресс не стоит на месте и был разработан новый микроконтроллер уже имеющий у себя на борту интерфейс wifi. Представляю Вашему вниманию микроконтроллер ESP8266.

Основные характеристики ESP8266 следующие:

  • Тактовая частота 80 МГц с возможностью разгона до 160 МГц без гарантии стабильности работы
  • Платформа 32 Бит
  • Поддержка Wifi стандартов b/g/n
  • Количество портов GPIO 14, из них доступно 11
  • Количество аналоговых входов 1
  • АЦП 10 Бит
  • Питания от 2,6 до 3,6 В
  • Потребляемая мощность до 215 мА в режиме передачи, 100 мА в режиме приема, 70 мА в режиме ожидания.
  • Поддерживаются три режима пониженного потребления, все без сохранения соединения с точкой доступа: Modem sleep (15 мА), Light sleep (0.4 мА), Deep sleep (15 мкА)

Имеются следующие интерфейсы:

Источник: Википедия

Вот основные особенности данного микроконтроллера. Как видим, есть свои достоинства и недостатки. К достоинствам можно отнести:

  • Производительная платформа
  • Наличие Wifi
  • Наличие поддержки самых востребованных интерфейсов
  • Наличие режимов низкого энергопотребления
  • Совместимость со средой Arduino IDE

К недостаткам можно отнести следующее:

  • Мало количество портов GPIO
  • Только один аналоговый вход
  • Высокое энергопотребление в режиме передачи

Однако, недостатки не такие уж и критичные и для ряда проектов просто несущественные.

За счет своей функциональности микроконтроллер ESP8266 приобрел широкую популярность в среде разработчиков устройств и модулей для умного дома и интернета вещей. О чем свидетельствует популярность модулей Sonoff, обзоры которых я делал ранее. (Обзоры модулей Sonoff). Также данные микроконтроллеры используются во всяких устройствах с Wifi на борту, таких как кондиционеры, роботы-пылесосы и т.д.

Модули на базе ESP8266

Согласитесь, что сам по себе голый чип нам мало интересен, а раз мы любим ардуино, а не сам микроконтроллер atmуga, то нам интересны готовые модули на базе чипа ESP8266. Итак приступим.

На базе данного микроконтроллера разработан ряд модулей с маркировками от ESP-01 до ESP-13. В большинстве модули похожи друг на друга. Я же коснусь в своем рассказе только тех модулей, с которыми имел дело 🙂

Итак, самый младший представитель линейки – ESP-01.

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

Итак, в данном модуле пользователю/разработчику доступно только 4 GPIO вывода. Не много, но для метеостанции или какого-нибудь датчика вполне сгодится.

Приобрести такой модуль можно по ссылкам ниже:

ESP-01 от RobotDyn

ESP-01 из магазина Greatwall

И там и там модули хорошего качества.

Ну а мы пойдем дальше. На очереди довольно интересный и необычный модуль ESP-07

 

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

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

Модуль считается не первой свежести, но в большинстве проектов не теряет своей актуальности.

Приобрести данный модуль на Али можно по ссылке ниже:

ESP-07 у продавца Greatwall

Стоит признать, что некоторые считают, модуль ESP-07 несколько устаревшим, так как ему на смену пришли модули ESP-12

Плата модуля рассчитана под пайку, либо установку на гребенку с шагом контактов 2 мм, однако из существенных отличий – наличие выводов шины SPI.

Широкое распространение получили модули ESP-12E и ESP-12F, отличающиеся друг от друга объемом FLASH памяти.

В отличие от модуля ESP-07, Модули на базе ESP-12 не имеют возможности подключения внешней антенны и используют посредственную встроенную антенну, которая представляет собой дорожку на плате.

Распиновка у модулей ESP-12 одинакова.

Приобрести данные модули можно по ссылке ниже:

ESP-12 у продавца Greatwall

Подробную информацию по подключению и прошивке данных модулей вы можете получить на ресурсе посвященном микроконтроллерам ESP8266.ru

Учтите, что для прошивки и заливки скетчей в модули ESP-01 … ESP-12 необходим программатор. Подробнее о программаторах вы можете почитать в статье “Программаторы для Arduino, 3Д принтеров и не только”

Все эти модули хороши, однако кроме ESP-01 в готовом виде их применять не получится, т.к. нужна обвязка. Поэтому мы плавно переходим к готовым модулям, родоначальником которых стала плата ESP-12

Готовые модули на базе платы ESP-12

И так, как я уже говорил ранее, выход в свет модуля ESP-12 породил целую серию различных ARDUINO совместимых плат яркими представителями среди которых стали платы Wemos и платы Nocemcu (Lolin).

Первые известны под названием Wemos D1 и по форм фактору являются совместимыми с платами на базе Arduino UNO. Однако в виду того, что такой форм-фактор мне был мало интересен за счет своих больших габаритов, меня заинтересовала разновидность Wemos D1 Mini.

Это упрощенная миниатюрная версия модуля, построенная на базе сборки ESP-01 или ESP-12. В зависимости от производителя поставляется в двух вариантах:

  • На плате распаян модуль ESP-12 с USB-TTL преобразователем, а также имеет минимальную необходимую обвязку для работы модуля
  • На плате распаяна микросхема ESP8266 с USB-TTL преобразователем и минимальной обвязкой.

Как правило, в обоих вариантах на борту имеется DC-DC преобразователь, понижающий напряжение до 3,3 вольт. Имеется возможность питания как напряжением 5 В так и напряжением 3,3 вольта.

Выглядят модули следующим образом. Ху из ху отличить проблемы не составит.

Wemos D1 Mini

Wemos D1 Mini Robotdyn

Еще, модули могут отличаться объемом памяти и моделью микросхемы USB-TTL преобразователя.

На рисунке выше представлена распиновка модуля. Как видно, все сделано по упрощенной схеме. Также стоит отметить, что у данного модуля SPI порты не разведены. Учитывайте это.

Но для ряда проектов этого вполне достаточно 🙂

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

Итак, данные модули в интернете вы можете приобрести по ссылкам, указанным ниже. Как и всегда, я указываю ссылки на товары и магазины, где сам закупаюсь.

Wemos D1 Mini от Rorotdyn

Wemos D1 Mini от Greatwall

Как я уже упоминал выше, кроме Wemos D1 mini существуют модули NodeMCU или как их еще называют Lolin. Насколько я понимаю, изначально они разрабатывались для написания прошивок на Lua скриптах, однако, они прекрасно прошиваются и с помощью Arduino IDE, причем без лишних телодвижений. Т.е. хочешь пиши прошивку на LUA и заливай в микроконтроллер, хочешь на Arduino IDE. На сегодняшний день в продаже имеются модули под маркировкой NodeMCU v3. Выглядят платы следующим образом:

Как и Wemos D1 mini модули отличаются схемотехникой, объемом памяти, а также моделью микросхемы USB-TTL преобразователя. Однако, от модулей D1 NODEMCU имеют полный набор GPIO выводов с разведенной SPI шиной и как следствие – плата у NodMCU значительно больше (этак раза в два).

В остальном, по функционалу модули ни чем не отличаются.

Выводы делайте сами 🙂

Ну а купить такие платы можно по следующим ссылкам:

NodeMCU в магазине Greatwall

NodeMCU в магазине Wavgat

NodeMCU от RobotDyn

Ну и как Вишенка на торте, пара слов о гораздо более мощном 32х битном двухъядерном микроконтроллере, который называется ESP-32.

 

 

Ну а теперь давайте поговорим о характеристиках данных модулей.

Аппаратные характеристики:

  • Процессор Tensilica Xtensa LX6 двухъядерный (или одноядерный) 32-разрядный процессор, с тактовой частотой 160 или 240 МГц и производительностью до 600 DMIPS (Dhrystone MIPS)
  • Сопроцессор с ультранизким энергопотреблением
  • Память: 520 КБ памяти SRAM, до 64 мб FLASH памяти
  • Wi-Fi: 802.11 b / g / N
  • Bluetooth: v4.2 BR/EDR and BLE

Интерфейсы:

  • 12-разрядный АЦП до 18 каналов
  • 2 × 8 бит ЦАПа
  • 10 × портов для подключения емкостных датчиков (измеряющие ёмкость GPIO)
  • Датчик температуры[источник не указан 282 дня]
  • 4 × SPI мастер-интерфейса (ведущие устройства)
  • 2 × I²S мастер-интерфейса
  • 2 × I²C мастер-интерфейса
  • 3 × UART интерфейса
  • SD/SDIO/CE-ATA/MMC/ eMMC хост-контроллер
  • SDIO/SPI слейв-контроллеры (ведомые устройства)
  • Ethernet MAC interface с выделенным DMA и IEEE 1588 Precision Time Protocol support
  • CAN bus 2.0
  • ИК дистанционное управление (передатчик/приемник, до 8 каналов)
  • Возможность подключения двигателей и светодиодов через ШИМ-выход
  • Датчик Холла
  • Аналоговый пред усилитель низкого энергопотребления

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

Уже сейчас на базе ESP-32 китайцы предлагают огромный набор готовых модулей различных компоновок. Тут и модули с возможностью подключения различных аккумуляторов, модулей с экранами, модулей с LORA, да и много еще с чем. Перечисленные модули я видел в продаже. Вообщем, кому интересно, можете посмотреть вот тут.

Базовые модули можно приобрести вот тут:

Модули ESP-32 без обвязки:

Модуль ESP-32 в магазине WavGAT

Модуль ESP-32 в магазине Greatwall

Модуль ESP-32 в магазине RobotDYN

Шилд для прошивки и программирования модуля без обвязки (Greatwall)

Готовые платы с модулем ESP-32

Готовый модуль ESP-32 в магазине Greatwall

Готовый модуль ESP-32 в магазине WavGAT

Готовый модуль ESP-32 с камерой

Готовый модуль ESP-32 с возможностью подключения источника резервного питания

Вот такие вот современные замены ардуино существуют в мире. Возможно, есть и другие варианты на других микроконтроллерах. Я описал те, о которых знал и которые покупал сам. Ссылки опубликованы на проверенных продавцов. Буду рад, если статья оказалась вам интересной. Инженерных и творческих успехов 🙂

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 — Модель

Распиновка, характеристики и техническое описание модуля WiFi

ESP-12E — это миниатюрный модуль Wi-Fi , представленный на рынке и используемый для установления беспроводного сетевого соединения для микроконтроллера или процессора.Ядром ESP-12E является ESP8266EX , который представляет собой беспроводную SoC с высокой степенью интеграции (система на кристалле). Он имеет возможность встраивать возможности Wi-Fi в системы или работать как отдельное приложение. Это недорогое решение для разработки приложений Интернета вещей.

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

Модуль ESP-12E имеет двадцать два контакта, функции каждого из которых мы опишем ниже.

Штифт

Имя

Описание

1

RST

Пин сброса модуля

2

АЦП

Вывод аналогового входа для 10-битного АЦП (от 0 В до 1 В)

3

EN

Контакт включения модуля (активный высокий)

4

GPIO16

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

5

GPIO14

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

6

GPIO12

Вывод общего назначения 12

7

GPIO13

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

8

VDD

+3.Вход питания 3 В

9

CS0

Выбор микросхемы Контакт интерфейса SPI

10

MISO

Вывод MISO интерфейса SPI

11

GPIO9

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

12

GPIO10

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

13

MOSI

Вывод MOSI интерфейса SPI

14

SCLK

Тактовый вывод интерфейса SPI

15

ЗЕМЛЯ

Штырь заземления

16

GPIO15

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

17

GPIO2

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

18

GPIO0

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

19

GPIO4

Контакт общего ввода-вывода 4

20

GPIO5

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

21

RXD0

UART0 RXD контакт

22

TXD0

UART0 TXD контакт

Характеристики и электрические характеристики
  • Стандарт беспроводной связи: IEEE 802.11 б / г / н протокол
  • Трансмиссия:

802.11b

+16 ± 2 дБм

802.11 г

+14 ± 2 дБм

802.11n

+13 ± 2 дБм

  • Диапазон частот: 2.412 — 2,484 ГГц
  • Последовательная передача: 110 —
  • 0 бит / с, TCP-клиент 5
  • Доступен интерфейс SDIO 2.0, SPI и UART
  • ШИМ доступен
  • Доступен один канал АЦП
  • Доступен программируемый GPIO
  • Тип беспроводной сети: STA / AP / STA + AP
  • Тип безопасности: WEP / WPA-PSK / WPA2-PSK
  • Тип шифрования: WEP64 / WEP128 / TKIP / AES
  • Сетевой протокол: IPv4, TCP / UDP / FTP / HTTP
  • Рабочее напряжение: 3.3В
  • Максимальный допустимый ток на вывод: 15 мА
  • Ток утечки при отключении питания <10 мкА
  • Встроенный 32-битный микроконтроллер с низким энергопотреблением
  • Антенна на плате
  • Пробуждение и передача пакетов за <2 мс
  • Потребляемая мощность в режиме ожидания <1,0 мВт
  • Рабочая температура: от -40 ° C до +125 ° C

Обзор ESP-12E

ESP-12E входит в серию «ESP-XX».Хотя все они основаны на ESP8266 SoC, они различаются выходными контактами, флэш-памятью и типом антенны. Эти модули пронумерованы от ESP-01 до ESP-15 и являются лучшими по производительности и цене. Многие инженеры используют эти модули для настройки беспроводной связи между двумя приложениями. Для обмена данными и Интернета вещей вы найдете эти модули Ideal.

Как использовать ESP-12E

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

Этапы настройки простой схемы приложения:

  • Подключите к модулю положительное напряжение + 3,3 В.
  • Интерфейсный модуль к микроконтроллеру или ARDUINO с использованием UART (подключите RXD ESP к RXD микроконтроллера и TXD ESP к TXD микроконтроллера).
  • Загрузите библиотеки для модуля из Интернета. Для ARDUINO в IDE будут предустановленные библиотеки.Если у вас их нет, просто обновите библиотеки с сайта ARDUINO.
  • Напишите программу для настройки скорости передачи и обмена данными.
  • Отправлять данные в модуль для передачи через Wi-Fi или получать данные от модуля, которые были переданы через Wi-Fi.
  • Существует другой способ настройки модуля: обойти микроконтроллер и напрямую подключить модуль к ПК с помощью FTDI. После интерфейса вы можете использовать последовательный монитор для связи с модулем.

Приложения
  • Метеостанция
  • Приложения Интернета вещей
  • Бытовая техника
  • Игрушки и игровые приложения
  • Беспроводные системы управления
  • Домашняя автоматизация
  • Защитные идентификационные метки

Двухмерная модель

Введение в NodeMCU V3 — инженерные проекты

Привет, друзья! Добро пожаловать на борт.Я вернулся, чтобы дать вам ежедневную дозу полезной информации. Сегодня я расскажу вам подробное Введение в NodeMCU V3. Это прошивка с открытым исходным кодом и комплект для разработки, который играет жизненно важную роль в разработке вашего собственного IoT-продукта с использованием нескольких строк сценария Lua.

Модуль в основном основан на ESP8266, который представляет собой недорогую микросхему Wi-Fi, включающую как полный стек TCP / IP, так и возможности микроконтроллера. Он представлен производителем Espressif Systems — производителем из Шанхая, Китай.

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

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

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

Введение в NodeMCU V3

NodeMCU V3 — это прошивка с открытым исходным кодом и комплект для разработки, который играет жизненно важную роль в разработке вашего собственного продукта IoT с использованием нескольких строк сценария Lua.

Несколько контактов GPIO на плате позволяют подключать плату к другим периферийным устройствам и способны генерировать последовательную связь PWM, I2C, SPI и UART.

  • Интерфейс модуля в основном разделен на две части, включая прошивку и оборудование, где первая работает на ESP8266 Wi-Fi SoC, а более поздняя основана на модуле ESP-12.

Прошивка основана на Lua — языке сценариев, который легко изучить, предоставляя простую среду программирования, состоящую из слоев с быстрым языком сценариев, который объединяет вас с известным сообществом разработчиков.


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

  • Преобразователь USB в UART добавлен к модулю, который помогает преобразовывать данные USB в данные UART, которые в основном понимают язык последовательной связи.

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

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

Способность модуля устанавливать безупречное соединение WiFi между двумя каналами делает его идеальным выбором для интеграции с другими встраиваемыми устройствами, такими как Raspberry Pi.

Распиновка NodeMCU V3

NodeMCU V3 поставляется с несколькими выводами GPIO. На следующем рисунке показана распиновка платы.

  • Между Vin и VU существует явная разница, где первое — это регулируемое напряжение, которое может составлять от 7 до 12 В, а позднее — это напряжение питания для USB, которое должно поддерживаться на уровне 5 В.

NodeMCU V3 Datasheet

  • Вы можете загрузить NodeMCU V3 datasheet, нажав кнопку ниже:

Download Introduction to NodeMCU V3

Функции NodeMCU V3

  • Открытый исходный код
  • Аппаратное обеспечение, подобное Arduino
  • Светодиод состояния
  • Порт MicroUSB
  • Кнопки сброса / прошивки
  • Интерактивные и программируемые
  • Низкая стоимость
  • ESP8266 со встроенным Wi-Fi
  • Преобразователь USB в UART
  • Контакты GPIO

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

Примечание: Мы используем программное обеспечение Arduino IDE для программирования этого модуля. Важно отметить, что конфигурация выводов, отображаемая на плате, отличается от конфигурации, которую мы используем для программирования платы в программном обеспечении, то есть, когда мы пишем код для нацеливания на вывод 16 в Arduino IDE, это на самом деле поможет разложить связь. с контактом D0 на модуле.

На следующем рисунке показана конфигурация контактов для использования в Arduino IDE.


Как подключить NodeMCU V3?

Из изображения распиновки выше видно, что на плате пять контактов заземления и три контакта 3V3. Плату можно включить тремя способами.

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

Обеспечить 3,3 В. Это еще один отличный вариант для включения модуля. Если у вас есть собственный внешний регулятор, вы можете мгновенно создать источник питания для своего комплекта разработчика.

Мощность Вин. Это стабилизатор напряжения с возможностью поддержки до 800 мА. Он может работать от 7 до 12 В. Вы не можете запитать устройства, работающие от 3,3 В, так как этот регулятор не может генерировать напряжение до 3,3 В.

NodeMCU V3 Projects and Applications

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

  • Интернет-дымовая сигнализация
  • VR трекер
  • Осьминог
  • Монитор последовательного порта
  • Лампа ESP
  • Контроллер инкубатора
  • Домашняя автоматизация Интернета вещей
  • Охранная сигнализация

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

Автор: Аднан Акил

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

Ссылка на распиновку ESP8266 и способы использования контактов GPIO

В этом руководстве рассказывается о распиновке ESP8266 и различных типах плат ESP8266, таких как Nodemcu , ESP01, ESP12. Сначала я дам обзор микросхемы ESP8266 и ее распиновки, а после этого я дам ссылку на распиновку наиболее популярных плат ESP8266 .

Esp8266 — это микрочип в корпусе QFN, имеющий возможности как пакета TCP / IP, так и микроконтроллера.Esp8266 представляет собой высокоинтегрированное решение Wi-Fi, которое отвечает таким требованиям индустрии Интернета вещей, как низкая стоимость, эффективное энергопотребление, надежная производительность и компактный дизайн. Он производится компанией Espressif Systems в Шанхае, Китай.

Обладая полными сетевыми возможностями WiFi, он может работать как ведомое устройство микроконтроллера хоста или как отдельное приложение. Когда мы говорим «подчиненный» микроконтроллеру хоста, это означает, что он может использоваться в качестве адаптера WiFi для любого микроконтроллера, использующего интерфейсы SPI или UART.При автономном использовании он может выполнять функции микроконтроллера и сети Wi-Fi.

Esp8266 основан на серии Tensilica L106 Diamond, которая представляет собой 32-битный процессор и имеет встроенную SRAM. Также включает в себя силовые модули, РЧ балун, РЧ приемник и передатчик, аналоговый приемник и передатчик, цифровой модулирующий сигнал, усилитель, фильтры и некоторые другие минимальные компоненты.

Технические характеристики ESP8266 Спецификация

Esp8266 делится на три части: оборудование, программное обеспечение и Wi-Fi.В спецификации аппаратного обеспечения размер его корпуса составляет 32 контакта QFN с размерами 5 мм x 5 мм. Диапазон рабочих напряжений от 2,5 В до 3,6 В. Чип потребляет в среднем 80 мА тока. Его центральный процессор — Tensilica L106, 32-битный процессор со встроенной SRAM. Периферийный интерфейс содержит UART, SDIO, SPI, I2C, I2S, ИК-пульт дистанционного управления, GIPO, ADC, PWM, светодиодный индикатор и кнопку.

Его прошивку можно обновить с помощью OTA и UART. В качестве сетевых протоколов он использует IPv4, TCP, UDP и HTTP. Пользователь может настроить с помощью набора AT-команд, облачного сервера и мобильного приложения.

Диапазон частот Wi-Fi от 2,4 до 2,5 ГГц. Он использует стандартный протокол Wi-Fi IEEE 802.11 b / g / n. Возможности Wi-Fi Esp6266 сертифицированы Wi-Fi Alliance.

ESP8266 Распиновка и описание микросхемы

Расположение контактов 32-контактного корпуса QFN.

  • Pin1: VDDA — это вывод питания для аналоговых диапазонов мощности от 2,5 В до 3,6 В.
  • Вывод 2: МШУ — это вывод ввода / вывода, специально используемый для интерфейса РЧ-антенны.Чип обеспечивает импеданс 39 + j6 Ом.
  • Вывод 3: VDD3P3 — вывод питания для обеспечения диапазонов мощности усилителя от 2,5 В до 3,6 В.
  • Pin4: VDD3P3 — это вывод питания, обеспечивающий диапазон мощности усилителя от 2,5 В до 3,6 В, аналогичный контакту 3.
  • Вывод 5: VDD_RTC классифицируется как вывод питания и подает 1,1 В, но этот вывод не подключен.
  • Вывод 6: TOUT — это входной вывод, который выполняет функцию вывода АЦП для проверки напряжений питания выводов 3 и 4 и входных напряжений вывода 6 TOUT.Эти две функции не могут выполняться одновременно.
  • Pin7: CHIP_EN I входной контакт. Когда вывод CHIP_EN находится в состоянии HIGH, микросхема работает правильно, когда микросхема LOW потребляет только небольшое количество тока.
  • Pin8: XPD_DCDC — это контакт ввода / вывода, который используется для вывода микросхемы из режима глубокого сна. Обычно это связано с GPIO16.
  • Pin9: MTMS — это вывод ввода / вывода, обозначенный как GPIO14, и он используется в SPI как вывод синхронизации (SPI_CLK).
  • Pin10: MTDI — это вывод ввода / вывода, обозначенный как GPIO12, и он используется в SPI как вывод Master-In-Slave-Out (SPI_MISO).
  • Вывод 11: VDDPST — вывод питания. Это источник питания с цифровым входом / выходом, напряжение которого находится в диапазоне от 1,8 до 3,6 В. Аналогичен pin17.
  • Pin12: MTCK — это вывод ввода / вывода, обозначенный как GPIO13, и он используется в SPI как вывод ведомого входа Master-Out (SPI_MOSI), а также используется в UART как вывод Clear To Send (UART_CTS).
  • Pin13: MTDO — это вывод ввода / вывода, обозначенный как GPIO15, и он используется в SPI как вывод выбора микросхемы (SPI_CS), а также используется в UART как вывод запроса на отправку (UART_RTS).
  • Pin14: GPIO2 — это контакт ввода / вывода, используемый в качестве UART TX во время программирования флэш-памяти.
  • Pin15: GPIO0 — это вход / выход, используемый как контакт 2 выбора микросхемы в SPI (SPI_CS2).
  • Pin16: GPIO4 — это контакт ввода / вывода, используемый исключительно для целей ввода и вывода.
  • Вывод 17: VDDPST — вывод питания. Это источник питания с цифровым входом / выходом, напряжение которого находится в диапазоне от 1,8 до 3,6 В. Аналогичен pin11.
  • Pin18: SDIO_DATA_2 — это контакт ввода / вывода, помеченный как GPIO9 и используемый для подключения к контакту данных 2 SD-карты.
  • Pin19: SDIO_DATA_3 — это контакт ввода / вывода, помеченный как GPIO10 и используемый для подключения к контакту данных 3 SD-карты.
  • Pin20: SDIO_CMD — это контакт ввода / вывода, помеченный как GPIO11 и используемый для соединения с командным выводом SD-карты
  • Pin21: SDIO_CLK — это вывод ввода / вывода, помеченный как GPIO6 и используемый для соединения с выводом синхронизации SD-карты.
  • Pin22: SDIO_DATA_0 — это контакт ввода / вывода, помеченный как GPIO7 и используемый для подключения к контакту данных 0 SD-карты.
  • Pin23: SDIO_DATA_1 — это контакт ввода / вывода, помеченный как GPIO8 и используемый для подключения к контакту данных 1 SD-карты.
  • Pin24: GPIO5 — это контакт ввода / вывода, используемый исключительно для целей ввода и вывода.
  • Pin25: U0RXD — это контакт ввода / вывода, обозначенный как GPIO3 и используемый как UART RX во время программирования флэш-памяти.
  • Pin26: U0TXD — это контакт ввода / вывода, обозначенный как GPIO1 и используемый как UART TX во время программирования флэш-памяти. Также используется как контакт 1 выбора микросхемы SPI (SPI_CS1).
  • Pin27: XTAL_OUT классифицируется как контакт ввода / вывода и подключается к выходу кварцевого генератора.
  • Pin28: XTAL_IN классифицируется как контакт ввода / вывода и подключается к входу кварцевого генератора.
  • Вывод 29: VDDD — вывод питания, обеспечивающий аналоговое питание в диапазоне от 2,5 В до 3,6 В.
  • Pin30: VDDA — это вывод питания, обеспечивающий аналоговое питание в диапазоне от 2,5 В до 3,6 В. Аналогичен pin29.
  • Контакт 31: RES12K — это входной контакт, который последовательно соединен с резисторами 12 кОм и подключен к земле.
  • Pin32: EXT_RSBT — это входной вывод, используемый для остановки микросхемы, обеспечивая внешний сигнал сброса, который активен при низком уровне напряжения.
  • Контакт 33: GND — это вывод питания, который действует как заземление для микросхемы.

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

Схема Схема

ESP8266 включает следующие компоненты:

  • Источник питания
  • Последовательность включения и сброса
  • Флэш
  • кварцевый генератор
  • RF
  • Внешний резистор
  • UART

Пока мы рассмотрим преамбулу Esp8266, функциональную блок-схему, расположение контактов, описание и схемы .

В августе 2014 года Espressif Systems запустила свой первый необработанный модуль, который производится третьей частью AI-Thinker, и модуль, называемый модулем ESP-01. С тех пор Ai-Thinker разработал серию модулей на основе ESP8266, эта серия, называемая модулями ESP-xx, варьируется от 01 до 14.

Распиновка различных типов модулей ESP8266

В этом разделе статьи мы поговорим о распиновке различных версий модуля ESP8266 , начиная с ESP-01 и заканчивая ESP-12.

Espressif Systems выпустила свой первый официальный комплект для разработки программного обеспечения, позволяющий программировать чип напрямую, без взаимодействия с внешним микроконтроллером. С тех пор существует множество официальных SDK, но Espressif поддерживает только два стабильных SDK, один основан на FreeRTOS, а другой — на обратных вызовах. Существует также множество SDK с открытым исходным кодом для ESP8266.

Arduino : наиболее часто используемый SDK из-за его популярности. Это SDK на основе C ++. ESP6266 легко программируется как платы Arduino.Основные файлы доступны на GitHub.

NodeMCU: — это комплект для разработки программного обеспечения на основе Lua.

MicroPython: — это использование языка Python для встроенных устройств.

Espruino, Mongoose OS, uLisp, Sming, Platform IO, ESP Easy, Smick, ESP Open RTOS — это некоторые другие SDK с открытым исходным кодом. Необходимость в этих платах разработки необходима из-за отсутствия на борту модулей серии ESP-xx стабилизатора напряжения. , Мост USB-UART, такой как Ch440G и CP2102 от Silicon Lab, и разъем micro USB.Раньше нам приходилось покупать стабилизатор напряжения и мост USB-UART отдельно, а затем подключать их к модулям ESP-xx для прошивки.

Здесь мы обсудим в основном отладочную плату, основанную на модуле ESP-12E.

ESP8266 12E Распиновка модуля Модуль

Esp8266 12E имеет в общей сложности 22 контакта, включая

Штифт
Кол-во контактов Метка контактов Описание
17 GPIO Диапазон контактов GPIO от GPIO0 до GPIO16 включает SPI, I2C, интерфейс SDIO, I2C, SDIO.
1 ADC 10-битный аналого-цифровой преобразователь.
1 VCC Напряжение питания 3,3 В
1 GND Контакт заземления
1 RST Остаточный контакт
1 Включить

ESP8266 12E Wemos D1 Mini распиновка

Плата разработки Wemos D1 Mini имеет в общей сложности 16 контактов, из которых 12 активных, использует модуль ESP-12, встроенную кнопку сброса, 3.3 стабилизатора напряжения, Micro USB, мост USB to UART и некоторые другие компоненты.

Штифт

Наклейка Описание
1 3,3 В Вывод 3,3 В
1 5,0 Вывод напряжения 5 В
G 1 G Заземление
1 ADC 10-битный аналого-цифровой преобразователь
1 RST Контакт сброса
9 D0 to D8, Контакты ввода / вывода также используются для SPI и I2C, Flash.
2 RX, TX Интерфейс UART.

ESP8266 01 Распиновка модуля

ESP8266 01 Модуль отличается, но обычно используется, как указанные выше платы для разработки. Эта плата не является макетной, часто для программирования используется отдельный программный модуль. Всего у него 8 контактов, 6 из которых активны.

Штифт

Наклейка Описание
1 3.3V Питание 3,3 В, вывод
1 GND Вывод заземления
1 RST Вывод сброса
1 CH_PD / EN Вывод питания и включения микросхемы
4 GPIO от 0 до 3 Интерфейс UART и контакты ввода / вывода

ESP8266 12E Распиновка платы разработки NodeMCU Плата разработки NodeMCU

имеет всего 30 контактов, из которых 14 активных, использует модуль ESP-12, встроенную кнопку сброса и вспышки, 3.3 стабилизатора напряжения, Micro USB, USB to UART Bridge и некоторые другие компоненты.

4

Штифт

Наклейка Описание
3 3,3 В Выводы 3,3 В
1 Vin Вывод напряжения 5 В
G 4
1 ADC 10-битный аналого-цифровой преобразователь
1 RST Pin сброса
1 EN Chip Enable pin
1 CL Вывод CLK для интерфейса SPI и SDIO
1 SD0 Вывод данных 0 для SDIO и вывод MISO для интерфейса SPI.
1 CMD Командный вывод для интерфейса SDIO и вывод выбора микросхемы для интерфейса SPI.
1 SD1 Вывод данных 1 для интерфейса SDIO и вывод MOSI для интерфейса SPI.
1 SD2 Вывод данных 0 для интерфейса SDIO, также используется как GPIO9.
1 SD3 Вывод данных 3 для интерфейса SDIO, также используется как GPIO10.
2 RSV Зарезервированные штифты.
11 D0 — D8, RX, TX Контакты ввода / вывода также используются для UART, SPI, I2C, Flash и вывода пробуждения.

ESP8266 Периферийные устройства

ESP8266 имеет следующие периферийные устройства:

  • 17 универсальных входных выходных контактов
  • Последовательный периферийный интерфейс (SPI)
  • Межинтегральная схема (12C)
  • Звуковые интерфейсы Inter-IC (12S) с прямым доступом к памяти
  • Универсальный интерфейс асинхронного приемника и передатчика.
  • 10-битный аналого-цифровой преобразователь

Аналоговый вход

ESP8266 имеют только один 10-битный аналого-цифровой преобразователь, который называется ADC0 и обозначается как A0. Но это также один из самых больших недостатков, потому что в большинстве случаев пользователю приходится подключать два датчика, поэтому нам приходится покупать отдельные модули АЦП, IC и схему мультиплексирования для взаимодействия двух или более датчиков, но это тема другой статьи.

Входное аналоговое напряжение модуля ESP-01 составляет от 0 до 1 В.Плата разработки на основе модуля ESP-12E имеет диапазон входного аналогового напряжения от 0 до 3,3 В. Поэтому при написании скетча мы должны помнить об использовании вывода A0.

Штифты ШИМ

ESP8266 поддерживает ШИМ на всех выводах ввода / вывода от GPIO0 до GPIO16. Сигналы ШИМ имеют 10-битное разрешение.

Контакты SPI

Интерфейс последовательного программирования (SPI) имеет следующие контакты в ESP8266

  • GPIO12 для Mater-Out-Slave-In (MOSI)
  • GPIO13 для Mater-In-Slave-Out (MISO)
  • GPIO14 для Serial Clock (SCLK)
  • для GPIO15 Выберите (CS)

Контакты I2C

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

GPIO5 для последовательной линии синхронизации (SCL)

GPIO4 для последовательной линии данных (SDA)

Контакты прерывания

Мы можем использовать любой вывод GPIO для прерываний, кроме GPIO16.

Пробуждение

Чтобы вывести ESP8266 из глубокого сна с помощью GPIO16, подключив его к контакту RST. Это тема для отдельной статьи.

Встроенный светодиод

В большинстве случаев платы разработки имеют один или несколько встроенных светодиодов.Светодиод, встроенный в модуль ESP8266, подключен к GPIO2, а светодиод, встроенный в плату разработки, подключен к GPIO16.

Кнопка сброса и перепрошивки

Нажатие кнопки сброса или подтягивание вывода RST к низкому уровню сбрасывает микросхему ESP8266. Нажатие кнопки Flash или низкий уровень GPIO0 переводит микросхему ESP8266 в режим загрузчика.

Какой вывод ESP8266 использовать

Всегда имейте в виду, что метка GPIO не соответствует метке на шелкографии.Например, GPIO0 соответствует D3, а D0 соответствует GPIO16. Лучше всего использовать GPIO с зеленой галочкой.

аналоговый вход ADC0 900 3,3в и без выхода.4
Наклейка GPIO Вход Выход Описание
A0 9000 9000 9000 аналоговый вход 9000 A0
RX GPIO3 Да Только вывод RX Высокий уровень при загрузке.
TX GPIO1 Только вывод Tx Да Высокий уровень при загрузке.
D0 GPIO16 Без прерывания Без I2C, PWM Используется для вывода микросхемы из глубокого сна, высокий уровень при загрузке.
D1 GPIO5 Да Да Часто используется как SCL
D2 GPIO4 Да Да Часто используется как SDA
DIO Поднят Да Подключен к кнопке Flash
D4 GPIO2 Поднят Да Подключен к встроенному светодиоду, высокий уровень при загрузке.
D5 GPIO14 Да Да Вывод SCLK для интерфейса SPI
D6 GPIO12 Да Да Вывод MISO

0 для интерфейса SPI

DIO Да Да Вывод MOSI для интерфейса SPI
D8 GPIO15 Прижат к земле Да Вывод CS для интерфейса SPI

Вывод сигнала ESP8266 высокого и низкого напряжения при загрузке

При загрузке ESP8266 следующие контакты обеспечивают 3.Сигнал 3 В на определенных контактах, поэтому подключение реле, транзистора или любых других периферийных устройств может работать некорректно. Следующий вывод сигнала 3.3 В при загрузке:

  • GPIO16
  • GPIO3
  • GPIO1
  • GPIO10
  • GPIO9

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

Конфигурация контактов во время загрузки

Для успешной загрузки ESP8266 мы должны запретить указанным контактам получить ВЫСОКИЙ или НИЗКИЙ.

  • GPIO16: высокий уровень вывода при загрузке
  • GPIO3 : высокий уровень вывода при загрузке
  • GPIO10 : высокий уровень вывода при загрузке
  • GPIO9 : высокий уровень вывода при загрузке : GPIO9 высокий уровень при загрузке, сбой загрузки при нажатии LOW
  • GPIO1 : высокий уровень на контакте при загрузке, сбой загрузки при нажатии LOW
  • GPIO0: сбой загрузки при нажатии LOW
  • GPIO15 : сбой загрузки при нажатии HIGH

Приложения ESP8266
  • Домашняя автоматизация
  • Интеллектуальные розетки и переключатели
  • Бытовая техника (например, кондиционер, принтер)
  • Беспроводное промышленное управление
  • Сенсорные устройства
  • Носимые гаджеты
  • IP-камеры
  • Метки безопасности
  • с учетом местоположения Wi-Fi устройства
  • Система определения местоположения Wi-Fi

Вы также можете ознакомиться с другими руководствами по ESP8266:

Начало работы с ESP8266 NodeMcu v3

NodeMcu — это платформа на основе ESP8266 для создания различных устройств Интернета вещей (IoT).Модуль может отправлять и получать информацию в локальную сеть или в Интернет с помощью Wi-Fi. Недорогой модуль часто используется для создания дистанционно управляемых систем умного дома или роботов Arduino. В этой статье мы рассмотрим описание платы, различия версий и распиновку NodeMcu v3 последней версии модуля NodeMcu Esp8266. Мы также кратко рассмотрим язык Lua, на котором вам нужно писать программы для NodeMcu.

Описание ESP8266 NodeMcu v3

Технические характеристики модуля:

  • Поддерживает протокол Wi-Fi 802.11 б / г / н;
  • Поддерживаемые режимы Wi-Fi — точка доступа, клиент;
  • Входное напряжение 3,7 В — 20 В;
  • Рабочее напряжение 3–3,6 В;
  • Максимальный ток 220 мА;
  • Встроенный стек TCP / IP;
  • Диапазон рабочих температур от -40С до 125С;
  • 80 МГц, 32-битный процессор;
  • Время пробуждения и отправки пакетов 22 мс;
  • Встроенный переключатель TR и ФАПЧ;
  • Наличие усилителей мощности, регуляторов, систем управления питанием.

Существует несколько поколений плат NodeMcu — V1 (версия 0.9), V2 (версия 1.0) и V3 (версия 1.0). Обозначения V1, V2, V3 используются при продаже в интернет-магазинах. Платы часто путают — например, V3 внешне идентичен V2. Также все платы работают по принципу open-source, поэтому их может производить любая компания. Но Amica, DOIT и LoLin / Wemos в настоящее время производят платы NodeMcu.

Отличия от других модификаций

Платы поколения V1 и V2 отличить несложно — они имеют разные размеры.Также второе поколение оснащено улучшенной модификацией микросхемы ESP-12 и 4 МБ флеш-памяти. Первый вариант, устаревший, выполнен в виде ярко-желтой платформы. Пользоваться им неудобно, так как он покрывает 10 выходов макета. Для исправления этого недостатка была изготовлена ​​плата второго поколения — она ​​стала уже, выводы хорошо подходят к контактам платы. Платы V3 ничем не отличаются от V2; у них более надежный выход USB. Компания LoLin выпускает плату V3, одним из отличий от предыдущей платы является то, что один из двух зарезервированных выходов используется для дополнительного заземления, а второй — для питания USB.Доска также имеет больший размер, чем предыдущие типы.

Где купить модули NodeMCU и ESP8266

Сегодня на рынке доступно множество довольно недорогих модификаций плат на базе ESP8266. Мы сделали небольшую подборку наиболее интересных вариантов:

Power NodeMcu Module

Есть несколько способов подачи питания на модуль:

  • Питание 5-18 В через Vin;
  • 5 В через разъем USB или VUSB;
  • 3.3 В через вывод 3 В.

Преимущества NodeMcu v3

  • Наличие интерфейса UART-USB с разъемом micro USB позволяет легко подключить плату к компьютеру.
  • Наличие флеш-памяти на 4 Мб.
  • Возможность обновления прошивки через USB.
  • Возможность создавать сценарии на LUA и сохранять их в файловой системе.

Недостатки модуля NodeMcu

Основным недостатком является возможность выполнения только сценариев LUA, находящихся в оперативной памяти.Этот тип памяти небольшой, объем всего 20 КБ, поэтому написание больших скриптов вызывает ряд трудностей. Прежде всего, весь алгоритм придется разбить на линейные блоки. Эти блоки необходимо записать в отдельные системные файлы. Все эти модули выполняются с использованием оператора dofile.

При написании необходимо соблюдать правило — при обмене данными между модулями нужно использовать глобальные переменные, а при расчетах внутри модулей нужно использовать локальные переменные.Также важно вызывать функцию collectgarbage (сборщик мусора) в конце каждого написанного вами скрипта.

Nodemcu v3 datasheet

Модуль nodemcu 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 esp8266

Пример подключения светодиода к схеме NodeMCU
Принципиальная схема подключения показана на рисунке.

Окончательная компоновка схемы выглядит следующим образом:

Сама плата работает от 3,3 В, поэтому для подключения светодиода необходимо использовать резистор. В этом примере за красный светодиод взят резистор на 65 Ом.

Аналогичным образом к плате подключается фотодиод:

Плата NodeMCU V3 также может использоваться для ИК-управления. Для управления понадобится пульт с ИК-приемником и сама платформа. Инфракрасный приемник подключается, как показано ниже:

Прошивка для esp8266 NodeMcu

Платформа загружена со стандартной прошивкой Node MCU, в которую интегрирован интерпретатор языка Lua. Используя команды Lua, вы можете сделать следующее:

  • Подключиться к точке доступа Wi-Fi;
  • Работа как точка доступа Wi-Fi;
  • Переключитесь в режим глубокого сна для снижения энергопотребления;
  • Включение или выключение светодиода на выходе GPIO16;
  • Выполнять различные операции с файлами во флеш-памяти;
  • Найдите открытую сеть Wi-Fi, подключитесь к ней;
  • Вывод MAC-адреса;
  • Управление пользовательскими таймерами.

Для программирования NodeMCU можно использовать Arduino IDE или комплект разработчика SDK — ESPlorer. Этот комплекс имеет несколько отличий:

  • Может работать на многих различных платформах;
  • Он поддерживает несколько открытых файлов;
  • Позволяет выделить код языка Lua;
  • Возможность умной отправки файлов;
  • Возможность одновременной поддержки нескольких типов прошивок.

Для корректной и стабильной работы необходимо обновить прошивку до последней версии.Есть несколько методов обновления — облачный сервис, Docker Image и компиляция в Linux. У каждого из этих методов есть свои плюсы и минусы. Самый простой и понятный — это первый способ.

Сбор прошивки в облачный сервис

Облачный сервис имеет простой и удобный интерфейс. Работа начинается с электронного письма. Далее вам будет предложено выбрать тип прошивки — стабильная прошивка или протестированная. Первый используется для обучения и создания большого количества объектов, поэтому рекомендуется выбирать именно его.Следующим шагом будет подключение необходимых модулей. По умолчанию уже записано несколько ключевых точек, остальные следует включать только в случае необходимости. Затем выбираются дополнительные параметры. Среди них есть поддержка FatFS для чтения SD-карты или включения режима отладки.

После начала сборки на почту придет письмо, сигнализирующее о начале процесса. Через некоторое время придет вторая буква — будет предложено выбрать версию float (дробные числа) или integer (целые числа).

После перехода по полученной ссылке вам нужно будет скачать bin-файл и поместить его в раздел Ресурсы — Двоичные файлы. Там будет находиться файл nodemcu_integer_0.9.5_20150318.bin, который необходимо удалить. В результате содержимое папки будет выглядеть следующим образом.

Обновление прошивки NodeMcu

Для корректной и стабильной работы платы необходимо перезаписать esp_init_data_default.bin. Вы можете скачать его на официальном сайте. Необходимый файл нужно вернуть обратно в систему прошивки NodeMCU Flasher по пути Resources — Binaries, предварительно удалив из него старый файл.

Затем вы можете подключить NodeMCU и продолжить обновление. Для начала нужно изменить настройки — в NodeMCU Flasher во вкладке Config вместо INTERNAL: // NODEMCU нужно выбрать файл собранной прошивки.

Остальное оставьте без изменений, перейдите в «Операции» и нажмите «Вспышка». Как только прошивка закончится, нужно снова перейти в Config и в первой строке указать путь esp_init_data_default.bin. Также указывается адрес, по которому вы хотите переместить этот файл.Для NodeMCU выберите адрес 0x3FC000. После этого вам нужно снова вернуться в Операции и нажать 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, {+9 

,9

}, 10, 1) // установить мигание светодиода 10 раз

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

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

Используйте выводы LoLin V3, начинающиеся с ‘S’ в Arduino

Эти контакты имеют 2 функции: они служат для подключения к SD-карте и / или к ее внутренней микросхеме флэш-памяти. ESP8266 имеет особенность: когда вы устанавливаете GPIO15 HIGH во время загрузки, он загружает программу с SD-карты и выполняет ее. См. Здесь для справки. Однако на обычной плате эти контакты подключены к внутренней микросхеме флэш-памяти.

Значение имени сигнала:

  • SK: последовательные часы
  • SC: выбор микросхемы SPI
  • S0 — S3: линии данных (режим Quad-I / O).

На этом изображении показаны контакты:

Но, как уже сказал @Majenko, имеет значение только документация по чипу, которая находится здесь:

Теперь ответим на актуальный вопрос: можете ли вы использовать эти булавки для произвольных целей? Это зависит от. На плате все они внутренне подключены к микросхеме флэш-памяти Quad-SPI.Если вы повторно назначите эти контакты контактам GPIO во время нормальной работы в режиме Quad-SPI, микросхема зависнет, поскольку вы просто отключите одну из важных линий для прошивки микросхемы. Однако , если вы действительно хотите, вы можете изменить свой чип и отрезать два соединения от флеш-чипа. Quad-SPI использует 4 линии данных, но вы также можете управлять чипом в Dual-SPI с 2 линиями данных (см. Здесь).

Это означает, что вы можете отрезать 2 из 4 линий данных, GPIO9 (SPI_HD, S2 на плате) и GPIO10 (SPI_WP, S3 на плате) на печатной плате от ESP8266 до микросхемы флэш-памяти, а затем использовать эти две Контакты GPIO произвольно.Это сделано для того, чтобы избежать помех микросхеме флэш-памяти, когда вы подаете на нее случайные сигналы, в то время как линии все еще физически связаны с микросхемой флэш-памяти. Вы, конечно, должны будете указать своему инструменту flash ( esptool.py ) использовать режим Dual-SPI для всех последующих прошивок. См. Здесь.

Все остальные контакты Flash GPIO не могут быть повторно назначены, эти соединения (такие как SCLK, MISO, MOSI, CS) всегда необходимы для микросхемы флэш-памяти.

GPIO15, который является D8 на плате, проще перепрофилировать: вам просто нужно убедиться, что он НИЗКИЙ во время запуска, чтобы не запускать загрузку SD-карты с помощью понижающего резистора.После загрузки флэш-памяти вы можете использовать ее для ввода и вывода. Это уже сделано на плате для вас, и вам просто нужно использовать pinMode , чтобы установить его как INPUT или OUTPUT. Это также описано здесь.

Очевидно, что получить 2 контакта GPIO — это большая проблема. Если вам просто нужно больше GPIO, вы найдете расширитель портов I²C GPIO, такой как MCP23017, гораздо более подходящий для этого — еще 16 GPIO по цене 2 контактов GPIO (шина I2C). Если вы уже используете шину I2C в проекте, вы даже не потеряете дополнительные GPIO, это просто еще одно устройство на шине.

Обзор

— Документация NodeMCU

NodeMCU — это прошивка на основе Lua с открытым исходным кодом для ESP8266 WiFi SOC от Espressif, использующая встроенную файловую систему SPIFFS на основе флэш-памяти. NodeMCU реализован на C и размещен в Espressif NON-OS SDK.

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

→ Начало работы

Модель программирования

Модель программирования NodeMCU аналогична модели программирования Node.js, только в Lua. Он асинхронный и управляемый событиями. Поэтому многие функции имеют параметры для функций обратного вызова. Чтобы дать вам представление о том, как выглядит программа NodeMCU, изучите короткие фрагменты ниже. Более подробные примеры можно найти в папке / lua_examples в репозитории на GitHub.

  - простой HTTP-сервер
srv = net.createServer (net.TCP)
SRV: слушать (80, функция (соединение)
  conn: on ("получение", функция (sck, payload)
    печать (полезная нагрузка)
    sck: send ("HTTP / 1.0 200 OK \ r \ nContent-Type: text / html \ r \ n \ r \ n  

Здравствуйте, NodeMCU.

") конец) conn: on ("отправлено", функция (sck) sck: close () end) конец)
  - подключиться к точке доступа WiFi (НЕ сохранять конфигурацию во флэш-памяти)
wifi.setmode (wifi.STATION)
station_cfg = {}
station_cfg.ssid = "SSID"
station_cfg.pwd = "пароль"
station_cfg.save = ложь
wifi.sta.конфигурация (station_cfg)
  
  - регистрация обратных вызовов событий для событий WiFi
wifi.eventmon.register (wifi.eventmon.STA_CONNECTED, функция (T)
  print ("\ n \ tSTA - ПОДКЛЮЧЕНО" .. "\ n \ tSSID:" ..T.SSID .. "\ n \ tBSSID:" ..
  T.BSSID .. "\ n \ tChannel:" ..T.channel)
конец)
  
  - манипулируйте оборудованием, как с Arduino
pin = 1
gpio.mode (контакт, gpio.OUTPUT)
gpio.write (контакт, gpio.HIGH)
печать (gpio.read (булавка))
  

→ Начало работы

Магазин флэш-памяти Lua (LFS)

В сентябре 2018 года была представлена ​​поддержка Lua Flash Store (LFS).LFS позволяет коду Lua и связанным с ним постоянным данным выполняться непосредственно из флэш-памяти; так же как и сама прошивка выполняется. Теперь это позволяет разработчикам NodeMCU создавать приложения Lua с кодом Lua размером до 256 КБ и константами только для чтения, выполняемыми из флэш-памяти. Вся оперативная память доступна для чтения-записи данных!

Релизы

В этом проекте используются две основные ветки: выпуска и dev . dev активно работает, и это также то, против чего следует создавать PR.Таким образом, выпуск можно считать «стабильным», даже несмотря на отсутствие автоматических регрессионных тестов. Целью является повторное слияние с выпуском примерно каждые 2 месяца. В зависимости от текущей «жары» (проблемы, PR) мы принимаем изменения в dev в течение 5-6 недель, а затем откладываем их в течение 2-3 недель, прежде чем будет завершена следующая оснастка.

Новый тег создается каждый раз, когда dev объединяется с веткой выпуска . Они перечислены в разделе выпусков на GitHub.Имена тегов соответствуют шаблону -release_yyyymmdd .

Актуальная документация

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *