STM32+ESP8266基于paho MQTT库连接阿里云

如果不知道怎么获取MQTT三元件的可以看下:

linux环境下MQTT连接阿里云_linux mqtt_奇怪的星星!的博客-CSDN博客

下载MQTT的库:Paho https://github.com/eclipse/paho.mqtt.embedded-c

只需要MQTTPacket/src下的所有文件。

首先通过AT指令连接串口发送函数发送AT指令:AT+CWMODE=1设置ESP8266模块为Station模式,该模式下WiFi模块将作为一个终端设备连接到一个现有的无线网络。这条指令的执行需要确认你所使用的设备和模块是否支持该指令。

 

 连接热点,与服务器建立TCP连接必须先连上网络。AT+CWJAP是用于连接到WiFi网络的AT指令,它用于配置ESP8266 WiFi模块的网络连接参数。

 

与服务器建立TCP连接。AT+CIPMUX=0 是用于配置ESP8266 Wi-Fi模块的连接模式,设为0表示为单链接模式,只建立一个TCP连接。AT+CIPSTART用于通过ESP8266 WiFi模块建立网络连接。

调用MQTTSerialize_connect函数将连接的参数打包到buf里面再通过串口发送函数发送到服务器上才能真正建立其连接。在正常传输模式下,WiFi模块通过AT+CIPSEND指令以字节为单位发送数据。每次发送数据之前需要使用AT+CIPSEND指令设置发送的数据长度,再发送数据。

 

这样就建立起连接了,就可以发送数据上阿里云了。

SHT20_SampleData函数是玩SHT20传感器时写好的函数,如果想尝试发送数据上阿里云的话,将 b = SHT20_SampleData(&temperature, &humidity);注释掉,再将snprintf(payload, sizeof(payload), "{\"params\":{\"CurrentTemperature\":%0.2f}}", temperature);改为snprintf(payload, sizeof(payload), "{\"params\":{\"CurrentTemperature\":27.21}}");就好,27.21这个数字是可以随便填的。标识符一定要与自己的服务器上的产品标识符一致。(可以参考文章开头的链接文章)

完整的连接示例代码,当然这只是简单的连接示例代码。

串口接收函数,在usart.c文件中定义以下函数用于串口接收数据。因为我用的是串口2所以我定义的变量带有uart2,这样调用的时候方便。

去usart.h文件声明,g_uart2_rxbuf、g_uart2_bytes,这样这两个变量才能被其他文件调用。

 串口初始化时调用。

使用代码时将连接参数换成自己的阿里云参数。
 

 ​​​​​​

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
STM32和ESP8266(ESP-12F)可以结合使用来创建一个物联网温度计,并通过移植Paho MQTT协议来连接到一个私有MQTT服务器。 首先,我们需要准备好硬件。在STM32上,我们可以使用一个温度传感器来测量温度,并使用ESP8266作为WiFi模块,用于与MQTT服务器进行通信。ESP-12F模块已经集成了WiFi功能,并且非常适合用于此应用。 接下来,我们需要准备好软件。Paho MQTT是一个开源的MQTT客户端,可用于连接MQTT服务器。我们需要将Paho MQTT移植到STM32的开发环境中,并编写代码来配置和连接MQTT服务器。 在使用Paho MQTT之前,我们还需要了解私有MQTT服务器的连接参数,例如服务器的IP地址、端口号、用户名和密码。这些参数将用于在代码中配置MQTT连接。 在代码中,我们需要使用STM32的串口(UART)和SPI接口来与ESP8266进行通信。通过UART,我们可以发送AT指令给ESP8266并接收其响应。通过SPI,我们可以将温度数据传输给ESP8266。 首先,我们需要初始化ESP8266并配置它的WiFi连接。然后,我们可以使用Paho MQTT的API来创建一个MQTT客户端,并配置其连接参数。一旦连接建立,我们可以使用MQTT客户端来发布和订阅主题,并发送和接收数据。 在温度计的应用中,我们可以在固定时间间隔内测量温度,并通过MQTT发布到服务器。其他设备可以订阅这个主题,并接收到最新的温度数据。 总结起来,通过移植Paho MQTT协议,我们可以将STM32和ESP8266结合起来创建一个物联网温度计,并将其连接到一个私有MQTT服务器。通过配置和管理MQTT连接,我们可以实现设备之间的实时数据交换,从而实现更智能化和高效的物联网应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值