ML307A模组连接ONENET平台(AT指令步骤教程)
创作时间:
作者:
@小白创作中心
ML307A模组连接ONENET平台(AT指令步骤教程)
引用
CSDN
1.
https://m.blog.csdn.net/xiewengeng/article/details/141683727
本文将详细介绍如何使用ML307A模组连接OneNET平台,并通过AT指令实现数据的发送和接收。文章将从缓存模式配置、MQTT连接设置、数据订阅等多个方面进行讲解,帮助开发者快速掌握这一过程。
废话不多说,先上连接源码
这里配置的为缓存模式,是指在4G模组接收到发送过来的数据时候可以将数据放入模组的缓存区,在需要数据的时候区进行读取再解析,这样在单片机执行其他操作时候也不会造成数据的丢失,在使用如下AT指令步骤便可以连接上ONENET,在云平台即可看到设备在线‘
前提设备ID,产品ID,token这些不能出错,以下代码使用循环三次发送,防止一次设置不成功,只有有接收到OK即跳出当前循环。
for (int attempt_count = 0; attempt_count < 3; attempt_count++)
{
//连接到网络后必须要发送AT+MQTTCFG="clean",0,1(onenet要求clean参数必须是1)
buf_len = sprintf(str_buf, "AT+MQTTCFG=\"clean\",0,1\r\n"); // 清除会话
UART2_Send_String(str_buf,buf_len);
mdelay(50);
memset((void *)byRxBuf_2, 0, sizeof(byRxBuf_2));
UART2_Receive_String();
mdelay(1200);
if(strstr((const char *)byRxBuf_2,"OK"))//等待接收OK后退出
{
break;
}
}
//配置4G模组为接收缓存模式
for(int attempt_count=0;attempt_count<3;attempt_count++)
{
memset((void *)byRxBuf_2, 0, sizeof(byRxBuf_2));//清空UART2串口接收缓存
buf_len = sprintf(str_buf, "AT+MQTTCFG=\"cached\",0,1\r\n");//获取当前要发送的AT指令字符串缓存内容
UART2_Send_String(str_buf, buf_len); //UART2串口发送当前AT指令
mdelay(500); //延时等待
UART2_Receive_String(); //UART2串口接收数据
if(strstr((const char *)byRxBuf_2,"OK")) //UART2串口正确接收到4G模组返回的“OK”结果后退出当前循环查询操作
{
break;
}
}
//设置MQTT连接相关参数并连接服务器
for(int attempt_count=0;attempt_count<3;attempt_count++)
{
//获取当前要发送的AT指令字符串缓存内容(连接MQTT服务器客户端ID、账号、密码)
//示例:AT+MCONFIG=0,"mqtt.dgjiedan.com","18833","bzwmt","bz1122"
memset((void *)byRxBuf_2, 0, sizeof(byRxBuf_2));//清空UART2串口接收缓存
buf_len = sprintf(str_buf, "AT+MQTTCONN=0,\"%s\",%d,\"%s\",\"%s\",\"%s\"\r\n",MQTT_URL,MQTT_Port,MQTT_Imei,MQTT_Count,MQTT_Password);
UART2_Send_String(str_buf, buf_len); //UART2串口发送当前AT指令
mdelay(1000); //延时等待
UART2_Receive_String(); //UART2串口接收数据
if(strstr((const char *)byRxBuf_2,"OK")) //UART2串口正确接收到4G模组返回的“OK”结果后退出当前循环设置操作
{
break;
}
}
//订阅下发数据主题
for(int attempt_count=0;attempt_count<3;attempt_count++)
{
//示例:AT+MQTTSUB=0,"world",1,"hello",2(0:MQTT客户端标识符,范围:0~5;1、2:消息交付质量等级)
memset((void *)byRxBuf_2, 0, sizeof(byRxBuf_2));//清空UART2串口接收缓存
buf_len = sprintf(str_buf, "AT+MQTTSUB=0,\"$sys/%s/%s/thing/property/post/reply\",1\r\n",MQTT_Count,MQTT_Imei);//获取当前要发送的AT指令字符串缓存内容
UART2_Send_String(str_buf, buf_len); //UART2串口发送当前AT指令
mdelay(500); //延时等待
UART2_Receive_String(); //UART2串口接收数据
if(strstr((const char *)byRxBuf_2,"OK")) //UART2串口正确接收到4G模组返回的“OK”结果后退出当前循环查询操作
{
break;
}
}
数据的发布一定要注意格式问题!!!,长传数据不成功基本都是格式问题。
void ML307A_AT_MQTT_PUB(void)
{
//获取当前要发送的AT指令字符串缓存内容(加载需要上报的各个参数值及发布主题:mt_collect)
buf_len = sprintf(str_buf, "AT+MQTTPUB=0,\"$sys/%s/%s/thing/property/post\",0,0,0,0,\"\"temp2\":{\"value\":%d}\"\r\n",MQTT_Count,MQTT_Imei,99);
UART2_Send_String(str_buf, buf_len); //UART2串口发送当前AT指令
}
ML307A 模组简介
ML307A 是一款集成度高、体积小的物联网通信模组,支持多种无线通信协议,如 LoRa、NB-IoT 等。它具有低功耗、远程通信等特点,适用于多种物联网场景。
主要特性:
- 支持 LoRa 和 NB-IoT 等多种无线通信标准。
- 提供丰富的 GPIO 接口。
- 内置多种传感器支持。
关键接口:
- UART 接口:用于与微控制器或其他设备通信。
- GPIO 接口:可以连接外部传感器或执行器。
- 电源接口:用于供电。
OneNET 平台概述
OneNET 是中国移动推出的一款物联网开放平台,它提供了从数据采集、存储到分析的一站式解决方案。
主要功能:
- 设备管理:注册、监控设备状态。
- 数据存储与分析:收集设备数据,提供数据分析工具。
- 应用开发:支持 API 接口调用,方便开发者快速构建应用。
注册流程:
- 访问 OneNET 官网(https://open.iot.10086.cn/)。
- 使用手机号码或邮箱注册账号。
- 完善个人信息,包括企业或个人认证信息
连接AT指令步骤
有需要的可以联系要参考手册。
本文原文来自CSDN
热门推荐
女人30多岁买什么保险较好
AI和VR技术让秦始皇兵马俑“活”起来
“兵马俑奇妙夜”:一场科技与文化的创新之旅
微信登录异常?这些方法让你秒变安全达人!
微信设备验证全攻略:轻松解决登录难题
西安兵马俑VR影院:穿越大秦之旅
癌症也会传染?很多癌症都是由细菌、病毒引起的,这5种千万别忽视
妇科癌症早期的5个症状,及早发现是关键
秦始皇帝陵博物院:用AR探秘千年历史
库里再创辉煌:勇士队传奇继续
勇士新星TJD崛起,能否延续冠军荣耀?
甲骨文球馆:勇士队的经典时刻回顾
常德必打卡:桃花源、柳叶湖、壶瓶山
79年,郭沫若两女儿回乡,探望父亲原配张琼华,一见面就喊:妈妈
故宫VR/AR项目:科技与文化的完美融合
VR/AR技术:未来课堂的革新者
巴黎圣母院VR展:穿越时空的沉浸之旅
秦始皇帝陵博物院:兵马俑VR体验中心的技术揭秘
肚子痛时这样吃最有效!
秋冬吃红薯,缓解你的下腹痛
秋冬护肤秘籍:告别干燥脱皮,焕活肌肤光彩
冬季护肤,5个“不可”
秦始皇的时尚密码:揭秘秦朝服饰艺术
揭秘秦始皇黑色龙袍:五行学说与皇权象征
Photoshop去水印技巧大揭秘!
国宝人寿股权迎新变局:第一二大股东席位对调,四川举业投资或新入主
成都青羊:面对面促国企民企“牵手” 共同提升产业链供应链的韧性和竞争力
大S去世后,蓝正龙和周渝民的反应曝光
中产阶级最爱的西部文化旅游攻略
新中产如何应对职场文化升级?