Как начать работу с FreeRTOS и ESP8266

1656684374 kak nachat rabotu s freertos i esp8266

Денис Нуциу

BtEaWASNZsYIbyzuoU7w1bqltEKyxpdDt83N
Фотография обложки Матана Сегева из PexelsCover

Недавно я приобрел NodeMCU на AliExpress примерно за 4 доллара. Причина, почему я сделал это, заключалась в том, чтобы узнать, в чем вся эта суматоха из ESP8266.

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

WWQgoFxzsaqMPtrLF33j93TOcM5hBstHKqON
Источник: таблица данных ESP8266

По сравнению с 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 для разработки

  1. Загрузите VirtualBox и установите Ubuntu Server. Это должно быть легко сделать, но если вы не знаете как, погуглите это или посмотрите это графическое пошаговое руководство. Установка ОС – это приятный навык. (Совет: когда VirtualBox предложит вам выбрать диск, сделайте его динамически распределенным и размером по крайней мере 50 ГБ. Это избавит вас от головной боли.)
  2. Убедитесь, что вы можете получить доступ в Интернет с виртуальной машины и настроить DNS-сервер:
1VXQI9xykHzqgT9nDFIjTeUU5M0GasTMjVkS
Щелкните правой кнопкой мыши машину, а затем Настройки -> Сеть

Чтобы настроить DNS-сервер, посмотрите на этот пример.

пример: dns-nameservers 8.8.8.8 8.8.4.4 Если вы можете пинговать Google, все готово!

3. (Необязательно) Установите сервер OpenSSH и Samba. Это значительно облегчит вашу жизнь.

4. (необязательно) Включить переадресацию портов. Для подключения SSH к виртуальной машине необходимо включить переадресацию портов. Например, для картографирования порт 2222 на тебе главная машина к порт 22 вашей виртуальная машина.

vxD8ttK0h7T3Rqr9-wsA0dEXaizQ84Zdc9CX
Включите переадресацию портов: Настройки -> Сеть -> Порт Forwардинг

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

iZh3PIg0ZdEnaSqoCvfa8us076gknELpRYRX
РИС.1: ssh-p 2020 denis@localhost

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

5. Подключите NodeMCU и выполните следующую команду:

tail -f /var/log/kern.log

Это должно показать, что устройство идентифицировано как /dev/ttyUSB0. Если ничего не происходит, то вам нужно добавить USB к виртуальной машине. После добавления USB снова отключите и подключите устройство.

rBbsqsBd84y-dgnFeS6phDTXlM-tOCaXyPiU
Добавление USB: Настройки -> Порты -> USB

Если вы достигли этой точки и все работает, Приветствую! Теперь вы готовы скомпилировать SDK и запустить пример SmartConfig. Вы даже можете написать мне твит на https://twitter.com/metonymyqt

Компиляция SDK и перепрошивка платы

  1. Установите требуемые пакеты (как показано ниже). Эта информация также доступна на 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 заблокирован в вашем регионе.

rqBC76LdfeK2PStc1YiC1RCFArzHF4IjXXdi
Успешная команда ping: $ping medium.com

Если пинг прошел успешно, вы можете свернуть окна и просмотреть эпизод любимого телешоу. Повернитесь примерно через 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. Теперь вам нужно увидеть идентификатор микросхемы платы.

lf0BJC2bys9XbFPVEzc0B9LsUGtw6dbJtoOl
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. Используйте приложение «Телефон».

xoDqT7zXJ7toeEl8Jm-ymdZQvmg7YnzeGwBM
Скриншот с моего устройства Android

Откройте приложение, убедитесь, что вы подключены к точке доступа WiFi, введите пароль и нажмите подтверждение. Через несколько секунд ESP8266 должен подключиться к точке доступа. Это оно. Поздравляем с достижением конца!

Если вы хотите разработать больше с помощью ESP8266-RTOS-SDK, посетите официальные веб-сайты. Там вы найдете множество ресурсов и документации. Также просмотрите другие примеры в папке SDK.

Спасибо, что вы уделили это чтению. Если вы хотите связаться со мной, вы можете сделать это в Twitter: MetonymyQT

Ресурсы

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

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