使用4G模块(M100P-C系列 DTU)通过AT指令MQTT协议实现onenet云平台收发数据

首先确认下4G模块供电是否正常,不能使用TTL串口模块供电,其不能满足4G模块工作所需电流。

                                              

前期我们先使用串口助手AT指令调试  ,下面是官方给出的流程图,出自这里AT固件MQTT测试实例 · 银尔达电子,不过里面没有给出onenet的连接实例。

AT固件MQTT测试实例 · 银尔达电子跟着这个链接的教程,直到AT+CISFR发送后,我们就开始使用AT+MCONNECT尝试连接onenet.

通过下方网址进入onenet物联网开发云平台

https://open.iot.10086.cn/console/product/own

首先点击左边的产品开发,点击创建产品

这里产品品类随便写就好了,智能化方式我选的是设备接入,另一个没试过。

这里4G模块联网方式一般选择蜂窝,节点类型直连设备,使用MQTT和OneJson,其他的随便写或者不写也可以。

创建完产品之后,在左边点击设备管理,在右侧点击添加设备,出来的弹窗所属产品选择刚刚创建的,产品名称填写,后面需要用。

点击设备右侧的详情,可以看到产品的密钥,ID

token生成工具_开发者文档_OneNET

我们需要用生成token,这里的res 填入 products/{你的产品ID}

et填入往后面算十年的时间戳,十年完全够了,时间戳(Unix timestamp)转换工具 - 在线工具

key填入设备密钥 填写完成后点击生成 token.

AT+MCONFIG="4G","lm33U5A7Xw","version=2018-10-31&res=products%2Flm33U5A7Xw%2Fdevice%2F4G&et=1921649384&method=md5&sign=K%2FRo3V%2BCh8kYo0VZak0Uxw%3D%3D"

//这里参数分别填入的是{设备名称},{产品ID},{token}

OK

AT+MIPSTART="studio-mqtt.heclouds.com",1883 //这里填入onenet的服务器地址和端口号

OK

CONNECT OK

AT+MCONNECT=1,120//心跳建议60~300秒,这里设置120秒

OK

CONNACK OK//返回这个才表示连接上云平台。

ps:如果要断开MQTT连接使用AT+MIPCLOSE

可以在onenet看到设备状态变成在线状态。

接下来我们来讲如何接收onenet下发的命令。

首先4G模块需要订阅一个topic,onenet的topic格式如下通信主题_开发者文档_OneNET

发送下面AT指令订阅主题,中间两个参数是产品ID和设备名称

AT+MSUB="$sys/lm33U5A7Xw/4G/#",0      

OK

SUBACK

之后再onenet云平台,按照下面图片,从上到下依次点击完成命令下发

再串口助手这里成功收到消息,接收数据成功

+MSUB: "$sys/lm33U5A7Xw/4G/thing/property/set",56 byte,{"id":"39","version":"1.0","params":{"AlarmState":true}}

接下来我们讲下上传数据,首先AT指令订阅主题

AT+MPUB="$sys/lm33U5A7Xw/4G/thing/property/post",0,0,"{\22id\22:\22123\22,\22params\22:{\22AlarmState\22:{\22value\22:false}}}"

OK

这里红色部分是需要改成自己的参数的,id号我随便写123的,AlarmState是参数的标识符,flase是bool类型,不用加/22

注意数据中的"号,要用\22替代。在实际值使用中\本身就要转义,在MCU实际格式是\\22,如:

AT+MPUB=pubtopic1,0,0,"{\\22test\\22:\\22abc\\22}"\r

发送完后返回OK,在onenet可以看到布防状态被修改成关了

参考链接

Air780EP模块AT开发接入OneNET移动物联网开放平台指南 - 合宙模组资料中心

### 使用4G模块进行网络连接和数据传输的方法 4G模块是一种用于通过蜂窝网络实现数据通信的设备,广泛应用于物联网(IoT)、远程监控和工业自动化等领域。以下是如何配置4G模块的网络连接并设置数据传输的具体步骤。 #### 网络连接配置 在配置4G模块的网络连接时,通常需要进行以下几个关键步骤: - **SIM卡安装**:将支持4G网络的SIM卡插入模块的SIM卡槽中。确保SIM卡已激活并具有数据流量套餐。 - **天线连接**:将4G天线正确连接到模块的天线接口上,以确保良好的信号接收。 - **电源供应**:为4G模块提供稳定的电源。例如,FS800DTU核心板支持5-16V的供电输入,可以直接通过USB或外部电源适配器供电[^3]。 - **APN设置**:配置模块的接入点名称(APN),这是连接到移动运营商网络所必需的。APN设置通常通过AT指令模块的配置界面完成。 - **网络注册**:启动模块后,它会自动搜索并注册到可用的4G网络。可以通过模块的状态指示灯或AT指令查询网络注册状态。 - **IP地址获取**:一旦模块成功注册到网络,它将通过DHCP协议获取一个IP地址,从而能够进行数据通信。 #### 数据传输设置 配置好网络连接后,接下来需要设置数据传输方式。4G模块支持多种数据传输模式,包括TCP、UDP、HTTP和MQTT协议[^3]。以下是常见的数据传输设置方法: - **透明传输模式**:在透明传输模式下,4G模块将串口数据直接转换为IP数据或将IP数据转换为串口数据进行传输。这种模式适用于需要将设备采集的数据直接发送到服务器的场景。例如,4G DTU(Data Transfer Unit)设备通常支持双向透明传输,确保设备采集到的数据与发送给上位机的数据完全一致[^2]。 - **Socket连接**:如果使用TCP或UDP协议进行数据传输,则需要建立Socket连接。4G模块通常支持多路Socket连接,允许同时与多个服务器进行通信。例如,FS800DTU支持4路Socket连接[^3]。 - **协议选择**:根据应用场景选择合适的通信协议。对于需要实时性的应用,可以选择TCP协议以确保数据可靠传输;对于对延迟敏感的应用,可以选择UDP协议以减少传输延迟。 - **服务器配置**:在4G模块中配置目标服务器的IP地址和端口号,以便模块能够将数据发送到指定的服务器。这通常通过AT指令模块的配置工具完成。 - **数据上传和下载测试**:完成配置后,可以使用`ping`命令测试网络连通性,并通过上传和下载文件来测试数据传输速度和稳定性[^1]。 #### 示例代码 以下是一个使用Python通过串口与4G模块通信的示例代码: ```python import serial # 配置串口参数 ser = serial.Serial( port='/dev/ttyUSB0', # 根据实际情况修改串口号 baudrate=115200, # 波特率 parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=1 ) # 发送AT指令 def send_at_command(command): ser.write((command + '\r\n').encode()) response = ser.read(100).decode() return response # 测试模块是否响应 response = send_at_command('AT') print(response) # 设置APN response = send_at_command('AT+CGDCONT=1,"IP","your_apn"') print(response) # 连接到TCP服务器 response = send_at_command('AT+CIPSTART="TCP","server_ip_address",server_port') print(response) # 发送数据 response = send_at_command('AT+CIPSEND') print(response) ser.write(b'Your data here') ser.write(b'\x1A') # 发送Ctrl+Z结束数据输入 response = ser.read(100).decode() print(response) ``` ####
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值