Интернет вещей (IoT) стал трендовой областью в мире технологий. Это изменило то, как мы работаем. Физические объекты и цифровой мир связаны сейчас больше, чем когда-либо. Помня об этом, Espressif Systems (Шанхайская полупроводниковая компания) выпустила очаровательный микроконтроллер размером с укус с поддержкой Wi-Fi — ESP8266 по невероятной цене! Менее чем за 3 доллара он может отслеживать и контролировать вещи из любой точки мира — идеально подходит практически для любого проекта IoT.
Плата разработки оснащена модулем ESP-12E, содержащим чип ESP8266 с 32-разрядным микропроцессором Tensilica Xtensa® LX106 RISC, который работает с регулируемой тактовой частотой от 80 до 160 МГц и поддерживает RTOS.
Чип ESP-12E
- Tensilica Xtensa® 32-бит LX106
- Тактовая частота от 80 до 160 МГц.
- 128 КБ внутренней памяти
- Внешняя флэш-память 4 МБ
- Приемопередатчик Wi-Fi 802.11b/g/n
Также имеется 128 КБ ОЗУ и 4 МБ флэш-памяти (для хранения программ и данных), чего достаточно, чтобы справиться с большими строками, составляющими web страницы, данные JSON/XML и все, что мы сегодня используем для устройств IoT. ESP8266 интегрирует приемопередатчик Wi-Fi 802.11b/g/n HT40, поэтому он может не только подключаться к сети Wi-Fi и взаимодействовать с Интернетом, но также может создавать собственную сеть, позволяя другим устройствам подключаться напрямую к Это. Это делает ESP8266 NodeMCU еще более универсальным.
Требования к питанию
Поскольку операционный объемtagДиапазон ESP8266 составляет от 3 В до 3.6 В, плата поставляется с LDO vol.tage регулятор, чтобы держать объемtagпостоянное напряжение 3.3 В. Он может надежно подавать до 600 мА, чего должно быть более чем достаточно, когда ESP8266 потребляет до 80 мА во время радиопередачи. Выход регулятора также выведен на одну из сторон платы и помечен как 3V3. Этот контакт можно использовать для подачи питания на внешние компоненты.
Требования к питанию
- Рабочий объемtage: от 2.5 В до 3.6 В
- Встроенный регулятор 3.3 В 600 мА
- Рабочий ток 80 мА
- 20 мкА в спящем режиме
Питание к ESP8266 NodeMCU подается через встроенный USB-разъем MicroB. В качестве альтернативы, если у вас есть регулируемый 5V vol.tagВ качестве источника вывод VIN можно использовать для прямого питания ESP8266 и его периферийных устройств.
Внимание! Для ESP8266 требуется источник питания 3.3 В и логические уровни 3.3 В для связи. Контакты GPIO не поддерживают 5V! Если вы хотите соединить плату с компонентами на 5 В (или выше), вам потребуется выполнить некоторое смещение уровня.
Периферийные устройства и ввод/вывод
ESP8266 NodeMCU имеет в общей сложности 17 контактов GPIO, выведенных на контактные разъемы с обеих сторон макетной платы. Эти контакты могут быть назначены для всех видов периферийных функций, включая:
- Канал АЦП — 10-битный канал АЦП.
- Интерфейс UART — интерфейс UART используется для последовательной загрузки кода.
- Выходы PWM — контакты PWM для затемнения светодиодов или управления двигателями.
- Интерфейс SPI, I2C и I2S — интерфейс SPI и I2C для подключения всех видов датчиков и периферийных устройств.
- Интерфейс I2S — интерфейс I2S, если вы хотите добавить звук в свой проект.
Мультиплексированные вводы/выводы
- 1 канал АЦП
- 2 интерфейса UART
- 4 выхода ШИМ
- Интерфейс SPI, I2C и I2S
Благодаря функции мультиплексирования выводов ESP8266 (несколько периферийных устройств, мультиплексированных на одном выводе GPIO). Это означает, что один контакт GPIO может действовать как PWM/UART/SPI.
Встроенные переключатели и светодиодный индикатор
ESP8266 NodeMCU имеет две кнопки. Одна, помеченная как RST, расположенная в верхнем левом углу, — это кнопка сброса, которая, конечно же, используется для сброса чипа ESP8266. Другая кнопка FLASH в левом нижнем углу — это кнопка загрузки, используемая при обновлении прошивки.
Переключатели и индикаторы
- RST — сброс микросхемы ESP8266.
- FLASH – Загрузка новых программ
- Синий светодиод – программируется пользователем
На плате также имеется светодиодный индикатор, который программируется пользователем и подключается к выводу D0 платы.
Последовательная связь
Плата включает мостовой контроллер USB-to-UART CP2102 от Silicon Labs, который преобразует USB-сигнал в последовательный и позволяет вашему компьютеру программировать и обмениваться данными с чипом ESP8266.
Последовательная связь
- Преобразователь USB-UART CP2102
- Скорость связи 4.5 Мбит/с
- Поддержка управления потоком
Если на вашем компьютере установлена более старая версия драйвера CP2102, мы рекомендуем выполнить обновление сейчас.
Ссылка для обновления драйвера CP2102 – https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
Распиновка NodeMCU ESP8266
ESP8266 NodeMCU имеет всего 30 контактов, которые соединяют его с внешним миром. Соединения следующие:
Для простоты мы создадим группы выводов с одинаковыми функциями.
Контакты питания Есть четыре контакта питания, а именно. один контакт VIN и три контакта 3.3 В. Вывод VIN можно использовать для прямого питания ESP8266 и его периферийных устройств, если у вас есть регулируемое напряжение 5 В.tagе источник. Штыри 3.3 В являются выходом встроенного источника питания.tagе регулятор. Эти контакты могут использоваться для подачи питания на внешние компоненты.
GND — это контакт заземления платы разработки ESP8266 NodeMCU. Выводы I2C используются для подключения всех видов датчиков I2C и периферийных устройств в вашем проекте. Поддерживаются как I2C Master, так и I2C Slave. Функциональность интерфейса I2C может быть реализована программно, а тактовая частота составляет максимум 100 кГц. Следует отметить, что тактовая частота I2C должна быть выше, чем самая медленная тактовая частота ведомого устройства.
Контакты GPIO ESP8266 NodeMCU имеет 17 контактов GPIO, которые программно могут быть назначены различным функциям, таким как I2C, I2S, UART, PWM, ИК-пульт дистанционного управления, светодиодная подсветка и кнопка. Каждый GPIO с цифровой поддержкой может быть настроен на внутреннюю подтяжку или понижение или установлен на высокий импеданс. Если он сконфигурирован как вход, его также можно настроить на запуск по фронту или по уровню для генерации прерываний ЦП.
Канал АЦП В NodeMCU встроен АЦП последовательного приближения с 10-битной точностью. Две функции могут быть реализованы с помощью АЦП, а именно. Тестовый блок питания voltage вывода VDD3P3 и тестового входа voltage контакта TOUT. Однако их нельзя реализовать одновременно.
Выводы UART ESP8266 NodeMCU имеет 2 интерфейса UART, то есть UART0 и UART1, которые обеспечивают асинхронную связь (RS232 и RS485) и могут обмениваться данными со скоростью до 4.5 Мбит/с. UART0 (контакты TXD0, RXD0, RST0 и CTS0) может использоваться для связи. Он поддерживает контроль жидкости. Однако UART1 (вывод TXD1) имеет только сигнал передачи данных, поэтому он обычно используется для печати журнала.
Контакты SPI ESP8266 имеет два SPI (SPI и HSPI) в ведомом и ведущем режимах. Эти SPI также поддерживают следующие функции SPI общего назначения:
- 4 временных режима передачи формата SPI
- До 80 МГц и разделенные часы 80 МГц
- До 64 байт FIFO
Контакты SDIO ESP8266 имеет защищенный цифровой интерфейс ввода-вывода (SDIO), который используется для прямого подключения SD-карт. Поддерживаются 4-битный 25 МГц SDIO v1.1 и 4-битный 50 МГц SDIO v2.0.
Контакты ШИМ Плата имеет 4 канала широтно-импульсной модуляции (ШИМ). Выход PWM можно реализовать программно и использовать для управления цифровыми двигателями и светодиодами. Диапазон частот ШИМ регулируется от 1000 мкс до 10000 мкс, т.е. от 100 Гц до 1 кГц.
Контрольные контакты используются для управления ESP8266. Эти контакты включают контакт включения чипа (EN), контакт сброса (RST) и контакт WAKE.
- Контакт EN — чип ESP8266 включается, когда на контакт EN подается ВЫСОКИЙ уровень. При вытягивании LOW микросхема работает на минимальной мощности.
- Вывод RST — вывод RST используется для сброса микросхемы ESP8266.
- Штырь WAKE — штифт пробуждения используется для пробуждения чипа из глубокого сна.
Платформы разработки ESP8266
А теперь перейдем к самому интересному! Существует множество платформ разработки, которые можно оборудовать для программирования ESP8266. Вы можете использовать Espruino — JavaScript SDK и прошивку, точно имитирующую Node.js, или использовать Mongoose OS — операционную систему для устройств IoT (рекомендуемая платформа от Espressif Systems и Google Cloud IoT) или использовать комплект для разработки программного обеспечения (SDK), предоставленный Espressif. или одну из платформ, перечисленных на WiKiPedia. К счастью, удивительное сообщество ESP8266 сделало выбор IDE еще на шаг вперед, создав надстройку для Arduino. Если вы только начинаете программировать ESP8266, мы рекомендуем начинать именно с этой среды, которую мы задокументируем в этом руководстве.
Это дополнение ESP8266 для Arduino основано на потрясающей работе Ивана Грохоткова и остальных членов сообщества ESP8266. Посетите репозиторий ESP8266 Arduino GitHub для получения дополнительной информации.
Установка ядра ESP8266 в ОС Windows
Приступим к установке ядра ESP8266 Arduino. Во-первых, на вашем ПК должна быть установлена последняя версия Arduino IDE (Arduino 1.6.4 или выше). Если у вас его нет, рекомендуем обновить сейчас.
Ссылка на Arduino IDE — https://www.arduino.cc/en/software
Для начала нам нужно обновить менеджер доски пользовательским URL. Откройте Arduino IDE и перейдите к File > Настройки. Затем скопируйте ниже URL в менеджера дополнительной доски URLтекстовое поле, расположенное в нижней части окна: http://arduino.esp8266.com/stable/package_esp8266com_index.json
Нажмите ОК. Затем перейдите к диспетчеру досок, выбрав Инструменты > Доски > Менеджер досок. В дополнение к стандартным платам Arduino должна быть пара новых записей. Отфильтруйте результаты поиска, набрав esp8266. Нажмите на эту запись и выберите «Установить».
Определения платы и инструменты для ESP8266 включают совершенно новый набор gcc, g++ и других достаточно больших скомпилированных двоичных файлов, поэтому загрузка и установка может занять несколько минут (архив file составляет ~ 110 МБ). После завершения установки рядом с записью появится небольшой текст INSTALLED. Теперь вы можете закрыть Менеджер доски
Ардуино Эксampле: мигать
Чтобы убедиться, что ядро ESP8266 Arduino и NodeMCU настроены правильно, мы загрузим самый простой скетч из всех — The Blink! Для этого теста мы будем использовать встроенный светодиод. Как упоминалось ранее в этом руководстве, контакт D0 платы подключен к встроенному синему светодиоду и программируется пользователем. Идеальный! Прежде чем мы перейдем к загрузке скетча и игре со светодиодом, нам нужно убедиться, что плата правильно выбрана в Arduino IDE. Откройте среду разработки Arduino и выберите опцию NodeMCU 0.9 (модуль ESP-12) в меню Arduino IDE > Инструменты > Плата.
Теперь подключите ESP8266 NodeMCU к компьютеру через USB-кабель micro-B. После подключения платы ей должен быть назначен уникальный COM-порт. На компьютерах с Windows это будет что-то вроде COM#, а на компьютерах с Mac/Linux — в виде /dev/tty.usbserial-XXXXXX. Выберите этот последовательный порт в меню Arduino IDE > Tools > Port. Также выберите скорость загрузки: 115200
Внимание! Больше внимания необходимо уделить выбору платы, выбору COM-порта и выбору скорости загрузки. Вы можете получить ошибку espcomm_upload_mem при загрузке новых скетчей, если это не удалось.
Как только вы закончите, попробуйте бывшийample эскиз ниже.
установка void ()
{pinMode (D0, ВЫХОД);} недействительный цикл ()
{цифровая запись (D0, ВЫСОКИЙ);
Задержка (500);
цифровая запись (D0, НИЗКИЙ);
Задержка (500);
После загрузки кода светодиод начнет мигать. Возможно, вам придется нажать кнопку RST, чтобы ваш ESP8266 начал запускать скетч.