ESP8266-01 与 NUCLEO-F030R8 通信

Posted

技术标签:

【中文标题】ESP8266-01 与 NUCLEO-F030R8 通信【英文标题】:Communication Between ESP8266-01 and NUCLEO-F030R8 【发布时间】:2020-03-04 13:23:24 【问题描述】:

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

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

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

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

【问题讨论】:

Stack Overflow 更致力于帮助回答与开发相关的特定技术问题。你的问题太广泛了,无法在这里回答。此外,这听起来像是一个复杂的项目,如果您是嵌入式软件开发的初学者,自学可能会有点过分。 作为起点,我建议您查看随 STM32CubeIDE 提供的 STMicro 示例项目。例如,如果您的 WIFI 模块(我不知道它是如何工作的)它通过 SPI 连接到 Nucleo,则在 STM32CubeIDE 中打开一个 SPI 示例项目。您可以了解它必须如何配置,然后修改配置以适合您的 WIFI 模块。然后你必须了解管理 WIFI 模块的协议:作为第一步,可能有简单的命令,比如“获取状态”或其他什么(再次,我对这个 WIFI 模块一无所知,这只是一个例子) esp-01是TTL UART,有AT固件 【参考方案1】:

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

    STM32 和 ESP8266 之间的 UART 连接。 ESP8266 与手机之间的 WiFi 连接。 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

【讨论】:

谢谢,这很有帮助。我一直在努力让 ESP 和微控制器通过 UART(HAL 驱动程序)进行通信,但我无法确认两者之间的连接。我的目标是把它设置成AP模式,这样就可以通过手机APP直接连接了。

以上是关于ESP8266-01 与 NUCLEO-F030R8 通信的主要内容,如果未能解决你的问题,请参考以下文章

ESP8266|ESP8266入门教程-AT指令视频教程(基于ESP-01S/ESP8266-01S)

ESP8266-01烧录神器,ESP8266-01S烧录程序 ESP-01烧录固件

使用Arduino点亮ESP-01S,ESP8266-01S上的板载LED

Android Studio设计APP实现与51单片机通过WIFI模块(ESP8266-01S)通讯控制LED灯亮灭的设计源码详解

RT-Thrad|STM32F103+ESP8266 S01+RT-Thread联网之更新ESP8266 01S固件(2/4)

arduino UNO r3和arduino mega2560 用esp8266 01的WiFi模块可以接入百度天工物联网平台吗?