Связь между ESP8266-01 и NUCLEO-F030R8
Мне было поручено выяснить, как заставить мобильное приложение взаимодействовать с MCU, а затем управлять шаговым двигателем. Прямо сейчас я пытаюсь заставить модуль Wi-Fi (ESP8266-01) и MCU (NUCLEO-F030R8) хорошо взаимодействовать друг с другом. Загвоздка в том, что у меня практически нет опыта и образования в этой области. Самый близкий мне опыт - это простые наброски Arduino, сделанные много лет назад (значения фоторезисторов IE, управляющие шаговым двигателем) и создание настольных приложений на C#. Я использую STM32CubeIDE, но если есть лучший вариант, я могу переключиться на него.
Мне бы очень хотелось получить помощь, так это отправлять и получать простые данные между смартфоном и MCU через модуль WiFi. Я прочитал документацию и другие вопросы, но до сих пор не знаю, с чего начать.
Я понимаю, что это, вероятно, большая тема сама по себе, и короткая реклама в Интернете не сделает ее (и, несомненно, ее многочисленные подкатегории) справедливыми. Но я мог бы также спросить.
Извините, если это слишком много, и заранее спасибо.
1 ответ
Этот проект потребует выполнения следующих подключений.
- Соединение UART между STM32 и ESP8266.
- Соединение WiFi между ESP8266 и мобильным телефоном.
- Протокол прикладного уровня между 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