0

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

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

我知道这本身可能是一个很大的话题,互联网上的简短宣传不会做到这一点(无疑是它的多个子类别)。但我也不妨问问。

对不起,如果这太多了,提前谢谢你。

4

1 回答 1

1

该项目将涉及进行以下连接。

  1. STM32 和 ESP8266 之间的 UART 连接。
  2. ESP8266 和手机之间的 WiFi 连接。
  3. ESP8266 与在移动设备上运行的应用程序之间的应用层协议。

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

对于 2,您需要考虑 wifi 网络模式,即确定 wifi 连接是 ad-hoc(移动设备直接连接到 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
于 2019-11-11T18:35:51.770 回答