STM32F103RC使用esp-01s MQTT协议接入OneNET平台(AT指令)


  使用esp-01s接入OneNET平台,还可以通过OneNet平台的设备云手机App控制,通过手机APP可以控制板载的LED打开或者关闭,这仅仅是一个简单的测试,还可以在这个基础之上经行其它 拓展。这个是一个代码移植的过程,也是参考别人的代码移植的,自己记录一下移植的过程。说明一下,在OneNET的论坛可以下载到参考的代码,链接: https://open.iot.10086.cn/bbs/thread-863-1-1.html,需要的可以自己下载。

1、注册、创建产品

登陆OneNET平台,注册账号,注册地址:https://open.iot.10086.cn/,之后进入开发者中心。选择如下图 所示的选项。
在这里插入图片描述

1.1、添加产品

如图所示
在这里插入图片描述
比如产品类别啥的,都可以随便选的。
在这里插入图片描述
但是联网方式,一定要选择WiFi。
在这里插入图片描述
查看产品,在设备列表里面添加设备。
在这里插入图片描述

1.2、添加设备

在这里插入图片描述
点击查看设备详情,可以看到如下所示的,设备信息。
在这里插入图片描述

2、代码移植部分

  我自己使用的是正点原子的Mini开发板,所有使用的是正点的工程文件,但是并不影响移植到其它的板子上面。

2.1 、工程文件结构

创建一个文件夹,存放OneNET的代码
在这里插入图片描述
在这里插入图片描述
各个文件夹分别包含以下文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2、代码及其结构

在这里插入图片描述

2.3、移植注意

  使用的是AT指令连接的TCP,AT指令代码部分,更加详细的AT指令的使用可以在乐鑫官网上面找到,或者网上也有好多。
在这里插入图片描述
第一处需要修改的地方

在这里插入图片描述
第二处需要修改的地方,这三个信息都可以在OneNET开发者中心,自己创建的产品上面找到。
在这里插入图片描述
第三处需要修改的地方,创建一个应用就可以在手机APP控制了。
在这里插入图片描述
主函数代码:对于自己不需要的LCD屏幕显示代码,可以直接去掉就行。

#include "led.h"
#include "delay.h"
#include 
要将ESP32-C3通过MQTT协议接入OneNet平台,您需要完成以下步骤: 1. 创建OneNet账号并登录。 2. 创建设备,为设备选择MQTT协议,获取设备ID和API Key。 3. 在ESP32-C3上安装MQTT库,例如PubSubClient库。 4. 编写ESP32-C3的代码,包括连接WiFi和MQTT服务器、发布数据到OneNet平台等。 以下是一个简单的例子,演示了如何使用ESP32-C3通过MQTT协议连接到OneNet平台: ```c++ #include <WiFi.h> #include <PubSubClient.h> const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; const char* mqtt_server = "mqtt.heclouds.com"; const int mqtt_port = 6002; const char* mqtt_user = "your_DEVICE_ID"; const char* mqtt_password = "your_API_KEY"; const char* topic = "/topic"; WiFiClient espClient; PubSubClient client(espClient); void setup() { Serial.begin(9600); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } client.setServer(mqtt_server, mqtt_port); client.setCallback(callback); while (!client.connected()) { if (client.connect(mqtt_user, mqtt_password)) { Serial.println("Connected to MQTT broker"); } else { Serial.print("Failed to connect to MQTT broker, rc="); Serial.print(client.state()); Serial.println(" retrying..."); delay(5000); } } client.subscribe(topic); } void loop() { if (!client.connected()) { Serial.println("Reconnecting to MQTT broker..."); while (!client.connected()) { if (client.connect(mqtt_user, mqtt_password)) { Serial.println("Connected to MQTT broker"); client.subscribe(topic); } else { Serial.print("Failed to connect to MQTT broker, rc="); Serial.print(client.state()); Serial.println(" retrying..."); delay(5000); } } } client.loop(); } void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.println(); } ``` 在这个例子中,我们使用WiFi连接到互联网,使用PubSubClient库连接到OneNetMQTT服务器,然后订阅主题,并在回调函数中打印收到的消息。您可以根据您的需求修改代码,例如修改主题,发布消息等。 需要注意的是,OneNetMQTT服务器需要使用TLS/SSL加密,因此您需要使用MQTT库的TLS版本,例如PubSubClientSecure库。同时,OneNetMQTT服务器需要使用特定的端口6002,而不是标准的MQTT端口1883。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值