怎么传mysql数据到onenet_STM32 MQTT协议 连接中国移动OneNet服务器 上传接收数据(一)...

STM32 ESP8266 MQTT协议 连接中国移动OneNet服务器 上传接收数据(一)

之前写过一篇通过自己的服务器来搭建MQTT的服务器的博客,但是我相信不是所有人都有自己的服务器,毕竟服务器是要钱的啊,没有服务器没关系,我们今天来看一下可以免费使用,且更为成熟方便的OneNet的使用,我们就来讲解一下如何在STM32 上 通过MQTT协议来连接它

因为我想尽量写的详细,并且最近在学一些东西比较忙,所以准备分多期写完

第一篇包含onenet账号注册和MQTT的连接报文

注册OneNet账号

官网:https://open.iot.10086.cn/

8248b0b72a895d518efe75990b6a67af.png

点击右上角直接注册,这里我早就注册了就不演示了,相信你们这么聪明肯定会

登录后点击开发者中心,左上角全部产品选择多协议接入

729b915c454faa1581dcd8466a9bb74f.png

右上角添加产品

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,您需要准备一个ESP8266模块和一个MQTT库,例如PubSubClient库。 接下来,您需要连接ESP8266模块到STM32F103C8T6控制器。您可以使用UART通信协议连接两个设备。在STM32F103C8T6控制器上,您可以使用USART库来实现UART通信。 一旦您完成了连接,您需要使用MQTT协议数据输到OneNet云平台。您需要在OneNet平台上创建一个设备并获取其设备ID和API密钥。然后,您需要使用获取的设备ID和API密钥来连接OneNet平台,并使用MQTT协议发布数据。 以下是一些示例代码,您可以根据自己的需求进行修改: ``` #include <SoftwareSerial.h> #include <PubSubClient.h> #include <ESP8266WiFi.h> // WiFi网络 SSID和密码 const char* ssid = "YourWiFiSSID"; const char* password = "YourWiFiPassword"; // MQTT服务器地址和端口号 const char* mqtt_server = "mqtt.heclouds.com"; const int mqtt_port = 6002; // OneNet平台设备信息 const char* onenet_device_id = "YourOneNetDeviceID"; const char* onenet_api_key = "YourOneNetAPIKey"; // 创建ESP8266软串口 SoftwareSerial espSerial(10, 11); // RX, TX // 创建ESP8266 WiFi客户端和MQTT客户端 WiFiClient espClient; PubSubClient mqtt_client(espClient); void setup() { // 初始化串口和ESP8266 Serial.begin(9600); espSerial.begin(115200); delay(1000); // 连接WiFi网络 WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); // 设置MQTT服务器和回调函数 mqtt_client.setServer(mqtt_server, mqtt_port); mqtt_client.setCallback(mqtt_callback); } void loop() { // 如果未连接MQTT服务器,则进行连接 if (!mqtt_client.connected()) { mqtt_reconnect(); } // 发布数据OneNet平台 String payload = "hello world"; mqtt_client.publish(String("devices/") + onenet_device_id + "/datapoints", payload.c_str()); delay(1000); // 处理MQTT消息 mqtt_client.loop(); } // MQTT回调函数 void mqtt_callback(char* topic, byte* payload, unsigned int length) { // 处理接收到的消息 } // 连接MQTT服务器 void mqtt_connect() { while (!mqtt_client.connected()) { if (mqtt_client.connect(onenet_device_id, onenet_api_key, "")) { Serial.println("Connected to MQTT server"); mqtt_client.subscribe(String("devices/") + onenet_device_id + "/commands"); } else { Serial.println("Failed to connect to MQTT server"); delay(5000); } } } // 重新连接MQTT服务器 void mqtt_reconnect() { Serial.println("Reconnecting to MQTT server..."); if (mqtt_client.connect(onenet_device_id, onenet_api_key, "")) { Serial.println("Connected to MQTT server"); mqtt_client.subscribe(String("devices/") + onenet_device_id + "/commands"); } else { Serial.println("Failed to connect to MQTT server"); delay(5000); } } ``` 请注意,此代码仅供参考,并且可能需要根据您的具体情况进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值