使用ARDUINO UNO通过MQTT协议连接ONENET(8266透传)

使用ARDUINO UNO通过MQTT协议连接ONENET(8266透传)

连线方式

ARDUINO UNO --> 8266(使用软串口连接)
数字端口8(RX) --> TX
数字端口9(TX) --> RX
3V3 --> VCC
GND --> GND
GND --> CHPD

实现方式

想让ARDUINO UNO使用MQTT连接到ONENET,最简单的办法是直接使用ARDUINO IDE或者MICROPYTHON烧录8266,然后ARDUINO UNO通过软串口监听8266的通信。
那么今天来说8266透传的方式,主要还是把具体的逻辑说一下,以便更好地理解MQTT协议的优势。
后面代码的逻辑如下:
1、先用数组形式定义MQTT的协议内容,这个主要是为了方便后面用十六进制方式向ONENET服务器发送数据
2、ARDUINO通过软串口打开8266的透传模式
3、发送MQTT协议

具体代码

#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 9); // RX, TX

void (* resetFunc) () = 0;

int v_w_test=0;
int v_w_cnt=0;
int v_w_test_result=0;
int v_w_transfer=0;
int v_w_transfer_result=0;
int v_s_c=0;
int i=0;
int j=0;
int k=0;

unsigned char uart_Receive_Buff [ 80 ]; //定义缓冲buff 
unsigned int uart_Receive_Index = 0; //收到的字节实际长度  

char Serial_val;  // 储存接受数据  
unsigned char Serial_val1;  // 储存接受数据  
String Serial_str="" ;   //设置一个空的字符串,用于打印串口输出结果

unsigned char data[42] = {
   0x10,  //上线报头
                          0x28,  //后面的字符数以十六进制表示
                          0x00,0x04,0x4D,0x51,0x54,0x54, //固定的发送MQTT字符	
                          0x04,0xC2, //固定
                          0x00,0x78, //上线时间120秒,后面通过心跳来保持这个链接
                          0x00,0x09,//设备ID长度
                          0x35,0x36,0x33,0x33,0x32,0x38,0x30,0x37,0x**,  //设备ID
                          0x00,0x06, //产品ID长度
                          0x32,0x37,0x38,0x36,0x30,0x**,  //产品ID 
                          0x00,0x09, //鉴权长度
                          0x6D,0x71,0x74,0x74,0x62,0x31,0x30,0x32,0x** //鉴权ID
                          };  //模块上线
                          
unsigned char data_1[2] = {
   0xC0,0x00 }; //心跳,发送内容是固定的

  • 2
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值