Связь между ESP8266-01 и NUCLEO-F030R8

Мне было поручено выяснить, как заставить мобильное приложение взаимодействовать с MCU, а затем управлять шаговым двигателем. Прямо сейчас я пытаюсь заставить модуль Wi-Fi (ESP8266-01) и MCU (NUCLEO-F030R8) хорошо взаимодействовать друг с другом. Загвоздка в том, что у меня практически нет опыта и образования в этой области. Самый близкий мне опыт - это простые наброски Arduino, сделанные много лет назад (значения фоторезисторов IE, управляющие шаговым двигателем) и создание настольных приложений на C#. Я использую STM32CubeIDE, но если есть лучший вариант, я могу переключиться на него.

Мне бы очень хотелось получить помощь, так это отправлять и получать простые данные между смартфоном и MCU через модуль WiFi. Я прочитал документацию и другие вопросы, но до сих пор не знаю, с чего начать.

Я понимаю, что это, вероятно, большая тема сама по себе, и короткая реклама в Интернете не сделает ее (и, несомненно, ее многочисленные подкатегории) справедливыми. Но я мог бы также спросить.

Извините, если это слишком много, и заранее спасибо.

1 ответ

Решение

Этот проект потребует выполнения следующих подключений.

  1. Соединение UART между STM32 и ESP8266.
  2. Соединение WiFi между ESP8266 и мобильным телефоном.
  3. Протокол прикладного уровня между ESP8266 и приложением, работающим на мобильном телефоне.

Для 1 вы можете запрограммировать ESP8266 с помощью Arduino IDE и просто соединить выводы UART TX/RX ESP8266 с выводами RX/TX STM32 соответственно. Вы можете создать тестовый проект, в котором ESP8266 отправляет данные в STM32 через UART для проверки этого соединения.

Для 2 необходимо учитывать режим сети Wi-Fi, то есть определить, будет ли соединение Wi-Fi специальным (мобильный телефон подключается к ESP8266 напрямую) или в режиме инфраструктуры (мобильный телефон и ESP8266 подключаются через общую точку доступа). Вы можете настроить ESP8266 в обоих режимах. Вам просто нужно запрограммировать SSID и пароль сети Wi-Fi в ESP8266 (в случае ad-hoc это SSID сети, объявленной ESP8266, а в режиме инфраструктуры это SSID общей точки доступа). Эта функция Wi-Fi также легко программируется в Arduino IDE для ESP8266.

Наконец, как только между ESP8266 и мобильным устройством установлено физическое соединение, вам понадобится протокол уровня приложения для подключения приложения, работающего на мобильном телефоне, с ESP8266. Вы можете использовать сокетное соединение между ESP8266 и мобильным приложением или использовать протокол связи более высокого уровня для устройств IoT, таких как MQTT, который также доступен в среде Arduino IDE.

Окончательная схема подключения может быть примерно такой:

application -> mqtt msgs -> wifi packets -> esp8266 recv pkts -> parse mqtt msgs -> forward data to STM32 over UART
Другие вопросы по тегам