
Содержание статьи
Денис Нуциу

Недавно я приобрел NodeMCU на AliExpress примерно за 4 доллара. Причина, почему я сделал это, заключалась в том, чтобы узнать, в чем вся эта суматоха из ESP8266.
NodeMCU – это платформа IoT с открытым кодом. Он включает в себя микропрограммное обеспечение, работающее на SoC Wi-Fi ESP8266 от Espressif Systems, и аппаратное обеспечение на основе модуля ESP-12.

По сравнению с Arduino UNO мой ESP8266 полностью выбивает его из парка, когда дело касается мощности процессора и цены.
ESP8266 на 500% быстрее и на 82% дешевле Arduino. ESP8266 также подключен к Wi-Fi.
Я был очень удивлен, когда посетил сайт Espressif для ESP8266. Есть много документации и ресурсов, которыми вы можете воспользоваться. Например, есть приложение для Android, которое сообщает вашему ESP8266 подключиться к вашему Wi-Fi. Программа посылает SSID и пароль в виде пакетов, ESP8266 их анализирует, а затем подключается к вашему Wi-Fi. Это называется SmartConfig и был изобретен Texas Instruments.
В этой статье я предлагаю вам настроить и запустить пример Smart Config из Espressif RTOS SDK.
Вот что вам понадобится:
Настройка VirtualBox для разработки
- Загрузите VirtualBox и установите Ubuntu Server. Это должно быть легко сделать, но если вы не знаете как, погуглите это или посмотрите это графическое пошаговое руководство. Установка ОС – это приятный навык. (Совет: когда VirtualBox предложит вам выбрать диск, сделайте его динамически распределенным и размером по крайней мере 50 ГБ. Это избавит вас от головной боли.)
- Убедитесь, что вы можете получить доступ в Интернет с виртуальной машины и настроить DNS-сервер:

Чтобы настроить DNS-сервер, посмотрите на этот пример.
пример:
dns-nameservers 8.8.8.8 8.8.4.4
Если вы можете пинговать Google, все готово!
3. (Необязательно) Установите сервер OpenSSH и Samba. Это значительно облегчит вашу жизнь.
4. (необязательно) Включить переадресацию портов. Для подключения SSH к виртуальной машине необходимо включить переадресацию портов. Например, для картографирования порт 2222 на тебе главная машина к порт 22 вашей виртуальная машина.

Если вы включили перенаправление портов, теперь вы можете подключаться через SSH к своей виртуальной машине из хост-машины, как показано на рисунке ниже.

Примечание. Если вы используете Windows, вам нужно Шпаклевка для подключения SSH к виртуальной машине.
5. Подключите NodeMCU и выполните следующую команду:
tail -f /var/log/kern.log
Это должно показать, что устройство идентифицировано как /dev/ttyUSB0. Если ничего не происходит, то вам нужно добавить USB к виртуальной машине. После добавления USB снова отключите и подключите устройство.

Если вы достигли этой точки и все работает, Приветствую! Теперь вы готовы скомпилировать SDK и запустить пример SmartConfig. Вы даже можете написать мне твит на https://twitter.com/metonymyqt
Компиляция SDK и перепрошивка платы
- Установите требуемые пакеты (как показано ниже). Эта информация также доступна на readme.md SDK.
sudo apt-get install make unrar-free autoconf automake libtool gcc g++ gperf flex bison texinfo gawk ncurses-dev libexpat-dev python-dev python python-serial sed git unzip bash help2man wget bzip2 libtool-bin
2. Создайте новую папку и перейдите к ней. mkdir Development && cd Development
3. Клонируйте Open SDK: https://github.com/pfalcon/esp-open-sdk
git clone --recursive https://github.com/pfalcon/esp-open-sdk.git
3. Запустите make: make
Предупреждение: для завершения этого шага нужно некоторое время, поэтому запаситесь терпением. На моей виртуальной машине это завершилось спустя 50 минут. Для вас это может занять больше или меньше, но прежде чем бежать, убедитесь, что вы подключен к Интернету и DNS правильно настроен. Лучший способ проверить это – выполнить ping к Google или другому сайту, если Google заблокирован в вашем регионе.

Если пинг прошел успешно, вы можете свернуть окна и просмотреть эпизод любимого телешоу. Повернитесь примерно через 40 минут (но убедитесь, что компьютер не переходит в спящий режим).
После успешного создания SDK вы увидите сообщение с предложением добавить что-то на своем пути. Для этого выполните следующее:
echo 'export PATH=/home/denis/Development/esp-open-sdk/xtensa-lx106-elf/bin:$PATH' >> ~/.profile
Команда добавит строчку к ~/.профиль файл. Теперь выполните следующую команду:
xtensa-lx106-elf-gcc --version
Если команда исполнена успешно, все готово!
4. Проверьте свою доску
Подключите NodeMCU и запускайте lsusb чтобы убедиться, что устройство подключено. После этого бегите esptool.py chip_id. Теперь вам нужно увидеть идентификатор микросхемы платы.

5. Клонируйте ESP8266_RTOS_SDK
git clone https://github.com/espressif/ESP8266_RTOS_SDK.git
6. Экспортируйте путь SDK и путь SDK/BIN с помощью следующих команд.
echo 'export SDK_PATH=/home/denis/Development/ESP8266_RTOS_SDK' >> ~/.profile
echo 'export BIN_PATH=/home/denis/Development/ESP8266_RTOS_SDK/bin' >> ~/.profile
7. Скомпилируйте пример SmartConfig
cd /home/denis/Development/ESP8266_RTOS_SDK/examples/smart_config/
chmod +x ./gen_misc.sh
./gen_misc.sh
Теперь примите значение по умолчанию, пока вас не спросят SPI_SIZE_MAP. Здесь вы выбираете 4 поскольку NodeMCU имеет размер флэш-памяти 32 Мбит, а значит 4 МБ. Вы также можете выбрать SPI_SPEED 3=80 МГц
Вы увидите что-то вроде этого:
!!!SDK_PATH: /home/denis/Development/ESP8266_RTOS_SDKBIN_PATH: /home/denis/Development/ESP8266_RTOS_SDK/bin
No boot needed.Generate eagle.flash.bin and eagle.irom0text.bin successully in BIN_PATHeagle.flash.bin — — — →0x00000eagle.irom0text.bin — →0x20000!!!
8. Извините доску
cd $BIN_PATH
esptool.py erase_flash
esptool.py write_flash 0x00000 $BIN_PATH/eagle.flash.bin 0x20000 $BIN_PATH/eagle.irom0text.bin 0x3FC000 $BIN_PATH/esp_init_data_default.bin
Теперь, если вы сбросите плату, вы увидите, что светодиод не мигает.
9. Используйте приложение «Телефон».

Откройте приложение, убедитесь, что вы подключены к точке доступа WiFi, введите пароль и нажмите подтверждение. Через несколько секунд ESP8266 должен подключиться к точке доступа. Это оно. Поздравляем с достижением конца!
Если вы хотите разработать больше с помощью ESP8266-RTOS-SDK, посетите официальные веб-сайты. Там вы найдете множество ресурсов и документации. Также просмотрите другие примеры в папке SDK.
Спасибо, что вы уделили это чтению. Если вы хотите связаться со мной, вы можете сделать это в Twitter: MetonymyQT
Ресурсы