Начало работы с платформой NodeMCU на WiFi процессоре ESP8266


Поскольку процессоры ESP8266 сейчас очень популярны, я решил приобрести платформу NodeMCU, чтобы попробовать ее возможности. Я выбрал эту платформу, потому что последняя версия платы имеет USB порт это позволяет ей получать питание от простого кабеля USB-to-microUSB. Также я нашел руководство по использованию ESP8266 с NodeMCU на основе прошивки от SwitchDoc Labs (использовался ESP-12 и Adafruit  Huzzah). При настройке моего NodeMCU я столкнулся с несколькими вопросами и решил сообщить мои выводы написав свое собственное, маленькое руководство как используя веб-интерфейс включать / выключать светодиоды и управлять входом / выходом общего назначения (GPIO). 

NodeMCU v0.9 и NodeMCU v1.0


Если вы собираетесь приобрести платформу NodeMCU важно знать, что есть две официальных версии:

  • NodeMCU v0.9 с модулем ESP-12
  • NodeMCU v1.0 с модулем ESP-12E
NodeMCU_0.9_vs_NodeMCU_1.0 (Нажмите чтобы увеличить)

В основном NodeMCU v0.9 не очень удобен тем, что хоть и подходит для платформы но при этом занимает всю ее ширину, в то время как NodeMCU v1.0 отлично помещается на макете, как вы можете видеть в правой части в рисунка.

Я купил платформу всего за $ 6 на eBay, ее рекламировали как «НОВАЯ Версия NodeMcu Lua ESP8266 с WIFI доступом в интернет и с последней прошивкой». На фото была изображена еще v0.9, но так как есть только две версии, я надеялся получить NodeMCU v1.0. Я ошибался …

Еще различия заключаются в том, что NodeMCU V1.0 имеет некоторые дополнительные линии ввода / вывода. Вы можете найти распиновку для обоих версий ниже. Мы будем использовать это чуть позже в этом руководстве.

Распиновка NodeMCU__v1.0 (Нажмите чтобы увеличить)
Распиновка NodeMCU_v0.9 (Нажмите чтобы увеличить)

Использование NodeMCU v0.9 в качестве макета


Если вам повезло приобрести платформу NodeMCU V1.0, вы можете пропустить этот раздел. Если же у вас NodeMCU V0.9 этот раздел может быть полезен.

Первым делом подключите макетную плату к платформе с помощью female-to-male (мама-папа) Dupont кабелей.

Female-to-Male (Мама-Папа) Dupon кабели (Нажмите чтобы увеличить)

Это рабочее, но не совсем аккуратное решение, было предложено на lucstechblog. Этот адаптер делается с помощью платформы и четырех female (мама) планок позволяющих подключить NodeMCU V0.9, с помощью male (папа) Dupont кабелей, к макету.

NodeMCU_v0.9_breadboard

Люк использует макетную плату stripboard, это позволяет облегчить пайку, я же использовал макетную плату perfboard. Мне потребовалось некоторое время, чтобы устранить недостатки которые я сделал во время пайки. В итоге у меня получилась собственная макетная плата stripboard, она может пригодиться в будущем.

Адаптер NodeMCU на макетной плате Stripboard и Perfboard (Нажмите чтобы увеличить)

Установка прошивки и получение доступа к консоли на NodeMCU


Теперь, когда мы позаботились об аппаратной части, давайте проверим как на самом деле использовать платформу. Я ожидал что будет легко следовать документации, но документация на NodeMCU.com не очень подходит для начинающих. Тогда я стал искать дальше и в итоге нашел более подробную информацию в NodeMCU firmware Wiki на github.

После подключения платформы к компьютеру через микро USB кабель, я смог увидеть открытую WiFi сеть ESSID “AI-THINKER_F52E3F”, к которой смог подключиться. Я смог получить доступ к веб-серверу или консоли. Я пробовал использовать minicom в Ubuntu для подключения к устройству (в Windows пробовал использовать Putty), но у меня ничего не вышло. Я пробовал подключиться с настройками по умолчанию — 115200 8N1, так же пробовал 19200 и 38400, 56700 ничего не получалось.

Я решил прошить NodeMCU последней прошивкой с помощью esptool так как описано в данной инструкции. Обновлял через терминал Ubuntu, подключив плату через USB.

  1. Скачайте последнюю прошивку пройдя по ссылке https://github.com/nodemcu/nodemcu-firmware/releases . Там есть две прошивки, float версия и integer версия, но так как я хочу просто переключить выходы GPIO, я скачал integer версию
  2. Установите esptool из Githud
  3. Запустите обновление прошивки

    и дождитесь подтверждения установки:

После прошивки я снова попытался подключиться к консоли через minicom, опять не повезло. При попытке подключения я все еще видел AI-THINKER_XXXXXX ESSID. Наконец, я обнаружил на Electrodragon Wiki, что к консоли можно подключиться на скорости 9600 бод, поэтому изменив в mimicom настройки скорости на 9600 8N1 я смог провести «Hello World» тест

Контроль линий GPIO на NodeMCU через веб интерфейс


Теперь, когда мы знаем, что платформа работает, мы можем запустить небольшой веб-сервер чтобы контролировать некоторые линии GPIO для управления светодиодами. Чтобы это сделать, я создал файл init.lua с кодом который я нашел в инструкции SwitchDoc Labs

Вам просто нужно изменить вторую строку, замените ROUTER_ESSID и WIFI_PASSWORD на свои собственные учетные данные, чтобы подключить NodeMCU к WiFi маршрутизатору. Код для изменения состояния контактов GPIO 0 и GPIO 2 (контакты D3 и D4 на платформе NodeMCU, как показано на схеме распиновки), так что если хотите вы может изменить код для управления линиями GPIO как того требует ваш проект. Если вы хотите четко понимать язык программирования lua, вы можете посмотреть в этом PDF файле сведения о языке lua 5.1

Нам также понадобится еще один скрипт Python (luatool) чтобы записать файл на платформу

Первая моя попытка оказалась неудачной:

Я попробовал еще раз и все получилось

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

Мы можете проверить IP-адрес в lua консоли

Теперь откройте веб-браузер (я использовал Firefox) и укажите IP-адрес платформы (192.168.0.106 в моем случае).

NodeMCU_Web_Server

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

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

Выражаем свою благодарность источнику с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

Комментарии:

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.