ESP8266-01 与 NUCLEO-F030R8 之间的通信

Communication Between ESP8266-01 and NUCLEO-F030R8

我的任务是弄清楚如何让移动应用程序与 MCU 通信,然后反过来控制步进电机。现在我正在尝试让 WiFi 模块 (ESP8266-01) 和 MCU (NUCLEO-F030R8) 相互配合。问题是我在这个领域几乎没有经验,也没有受过教育。我最接近的体验是多年前的简单 Arduino 草图(驱动步进电机的 IE 光敏电阻值)和使用 C# 制作桌面应用程序。我正在使用 STM32CubeIDE,但如果有更好的选择,我可以切换到它。

我非常希望得到帮助的是通过 WiFi 模块在智能手机和 MCU 之间发送和接收简单数据。我已经阅读了文档和其他问题,但仍然不知道从哪里开始。

我知道这本身可能是一个很大的话题,互联网上的简短宣传并不能说明问题(毫无疑问,它的多个子类别)。不过我不妨问一下。

抱歉,如果这太多了,请提前致谢。

此项目将涉及建立以下连接。

  1. STM32与ESP8266串口连接
  2. ESP8266与手机的WiFi连接
  3. ESP8266与手机应用运行之间的应用层协议。

对于 1,您实际上可以使用 Arduino IDE 对 ESP8266 进行编程,只需将 ESP8266 的 UART TX/RX 引脚分别连接到 STM32 的 RX/TX 引脚即可。您可以创建一个ESP8266通过UART向STM32发送数据的测试工程来验证此连接。

对于 2,您需要考虑 wifi 网络模式,即确定 wifi 连接是临时的(手机直接连接到 ESP8266)还是基础设施模式(手机和 ESP8266 通过共享接入点连接).您可以在两种模式下配置 ESP8266。您只需在 ESP8266 中编程 Wifi 网络的 SSID 和密码(在 ad-hoc 情况下,它是 ESP8266 通告的网络的 SSID,在基础架构模式下,它是普通 AP 的 SSID)。这个 wifi 功能也很容易在 Arduino IDE 中为 ESP8266 编程。

最后,在 ESP8266 和移动设备之间建立物理连接后,您需要一个应用程序级协议来将移动设备上的应用程序 运行 与 ESP8266 连接起来。您可以在 ESP8266 和移动应用程序之间使用套接字连接,也可以为物联网设备使用更高级别的通信协议,如 MQTT,Arduino IDE.

最终连接图可能是这样的:

application -> mqtt msgs -> wifi packets -> esp8266 recv pkts -> parse mqtt msgs -> forward data to STM32 over UART