AIR780 MINI LTE 4G全网通模块
原理图和例程等汇总资料下载地址
资料链接:
https://pan.baidu.com/s/1fnRDMXCYXxlvcHWK3krEVA 提取码:3333 【如果百度云盘下载地址无效,请联系本店铺客服更改】
视频教程
模块淘宝链接
模块引脚说明
电路版本V1.5以上版本,选择内核为3.3v AIR780EX,V1.5版本以前为1.8v AIR780EX版本,需要电平转换。
v1.5版本不需要转换,降低串口波特率误码率
为了兼容以前版本接线,V_MCU引脚修改为NC,悬空不接。
v1.5以上版本去除了V_MCU引脚和电平转换。
PC调试使用
1.接上IPEX接口天线
2.插入SIM卡
因为AIR780支持LTE CAT.1的模组,
支持频段:
LTE-TDD:B34/B38/B39/B40/B41
LTE-FDD:B1/B3/B5/B8
通俗点讲,中国环境,支持移动/联通的卡短信功能。【不支持电信卡收发短信】
支持移动/联通/电信的卡网络功能。
本模块使用的是NANO尺寸的卡【和手机一样的小卡】,按照箭头方向插入接口,注意缺口放方向。
3.基础接线测试
使用USB-TTL模块接AIR780模块如图
备注:这里V_MCU看自己的USB-TTL内核电平逻辑,如果是5v就可以直接接5v,如果是3.3v内核,就接3.3v。
如果实在不知道内核是3.3还是5v这里就随意了,不影响调试。大部分USB-TTL,比如CP2102 CH340电路都是3.3v逻辑
USB-TTL模块 AIR780 MINI
5V ---> V_IN
3.3V ---> V_MCU
GND ----> GND
RXD ---> TXD
TXD ---> RXD
4.启动模块
把USB-TTL模块插入电脑的USB供电,然后模组的PWK和GND引脚短路1.5秒以上,就可以触发开机。可以
观察网络指示灯,不停闪烁,表示开发板已经正常开机。
开机后,如果再长按开机键(1.5S)以上触发关机流程,观察网络指示灯,停止闪烁表示关机动作结束。
关于上电自启动,把PWK和GND直接短路,可以上电自启动
5.串口助手调试
打开串口助手,比如常用的XCOM
选择自己的USB-TTL对应的COM号,波特率选择9600,打开串口
这里波特率也可以用115200,内核默认是115200,可以看到开机log信息。
用9600时候要开机多发一些AT,模块会自适应波特率为9600。
如果一直是乱码,可以切115200波特率看下输出的开机log信息,如果是一直如下图输入,说明vin供电功率不足,模块在一直重启。用usb供电电脑输入只有500mA如果还插有很多其他设备,那500mA都可能不到。如果在不停重启,可以使用外置电源给vin供电,用5V2A电源。或者升高供电电压用9v1A的
切换到多条发送,输入AT,勾选发送新行,点发送。如果没有返回AT OK,多发送几条,模块刚开机需一段时间启动,等能返回OK再测试其它指令
发送常用测试指令看测试结果,
AT+CSQ
AT+CPIN?
AT+CREG?
以下正常返回
如果您AT+CPIN?返回的不是这样,而是如下图,那ERROR,可能因为卡没插好,或者卡方向没插对,或者先上电后插的卡,总之模块没读取到卡。
如果AT+CREG?返回的不是0,1或者0,5,那么卡应该没服务停机了,没有连接到基站,或者没插卡
如果能上面3个基础指令都能正常,才可以操作短信和网络流程。
发送短信流程
重要事情说n遍!!!!!
重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!
重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!
重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!
重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!
重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!
重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!
重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!
重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!
重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!
重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!
重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!
测试短信需要自己实名制自己办卡
发送英文短信
用到下面几条指令
AT+CMGF=1
AT+CSMP=17,167,0,0
AT+CMGS="183XXXXXXXX" 这个是要接收短信的手机号
发送短信内容,不勾选回车,点发送
1A 勾选hex发送,不勾选回车
能看到OK,就能接收到短信了
发送中文短信
这里以最简单的TEXT模式下发送中文短信为例,如果想研究PDU的可以自行学习
用到几条指令
AT+CMGF=1
AT+CSMP=17,167,0,8
AT+CMGS="173xxxxxxx1"
短信内容 需要用uncode转码工具转换,不勾选发送新行,勾选HEX发送
1A HEX发送
用资料包提供的UNCODE工具提前转换好要发送的中文内容
然后按照下面流程操作
这样手机上就可以收到中文短信了
TCP网络测试
打开TCP测试网站https://netlab.luatos.com/点左上角打开TCP
获取到能临时使用的IP和端口
把IP和端口组成下面的链接TCP的指令,发送指令,连接成功
AT+CIPSTART="TCP","112.125.89.8","36611"
使用AT+CIPSEND指令启动发送,发送任意内容,这里以“WAAAX”为例
1A勾选HEX发送,显示SEND OK,说明发送成功了
然后在网页端就可以看到发送的内容了
想断开连接使用AT+CIPSHUT结束连接
备注:测试发现用XCOM因为编码问题发送的内容不能为中文,可以尝试用原厂的LLCOM工具,一样流程,内容还能发中文,很不错哦
Onenet物联网平台MQTT通讯
onenet平台链接:https://open.iot.10086.cn/
完成注册登陆和添加设备,参考官方教程Onenet物联网平台操作教程:https://doc.openluat.com/wiki/37?wiki_page_id=4506
可以看到,登入onenet时,mqtt的clientID、username和password都有指定
clientId即为刚才创建的设备名称
username为创建的产品ID
token计算工具 https://open.iot.10086.cn/bbs/thread-38815-1-1.html
password是需要经过加密计算得来的鉴权token
计算方法详见如下文章,这篇文章测试时直接使用onenet提供的测试工具来计算鉴权密码
接入安全认证_开发者文档_OneNET (10086.cn)
从上面教程获取了重要的三要素
项目ID:T1S6hH1y7F
设备ID:air
换算后的token:version=2018-10-31&res=products%2FT1S6hH1y7F%2Fdevices%2Fair&et=1895140886&method=md5&sign=kwQ%2FSHIB93sr%2BponsEYJ4A%3D%3D
可以用mqtt.fx先测试效果
显示绿色,连接成功
订阅
$sys/T1S6hH1y7F/air/thing/property/post/reply
发送数据
$sys/T1S6hH1y7F/air/thing/property/post
测试内容
{
"id": "123",
"version": "1.0",
"params": {
"temp_value": {
"value": 65
}
}
}
看到订阅回复成功
在物联网里面看到对应数据
AT指令流程比较长,请参考视频演示
AT
AT+CGATT?
AT+CSTT
AT+CIICR
AT+CIFSR
AT+MCONFIG="air","T1S6hH1y7F","version=2018-10-31&res=products%2FT1S6hH1y7F%2Fdevices%2Fair&et=3565958400&method=md5&sign=Lwkt49lZGoQBT%2FTRrVPKDg%3D%3D"
AT+MIPSTART="mqtts.heclouds.com",1883
AT+MCONNECT=1,120
AT+MSUB="$sys/T1S6hH1y7F/air/thing/property/post/reply",0
AT+MPUB="$sys/T1S6hH1y7F/air/thing/property/post", 0, 0, "{\22id\22:\22123\22,\22params\22:{\22temp_value\22:{\22value\22:22}}}"
AT+MIPCLOSE
前面的教程只是抛砖引玉教大家学会如何基础操作AT指令,
官方还有丰富的其他流程教程,可以自行查阅测试
Arduino例程
接线方式
硬件串口方式连接:
air780模块 ARDUINO UNO板子
V_IN-----------------5V
V_MCU----------------5V
GND------------------GND
TX-----------------RX 数字0
RX-----------------TX 数字1
PWK接GND(用于开机自启动)
虚拟串口接电脑调试
USB-TTL模块 ARDUINO UNO板子
GND--------------------->GND
RX---------------------->数字11
TX---------------------->数字10
烧录代码时候记得拔掉AIR780和UNO板子的TX RX的线,烧录好断电后再TX RX接线然后重新上电
发送英文短信
功能:
Arduino开机等待和Air780通讯,通讯完成后发送一条英文短信,对应目标电话和短信修改代码中此处
char phoneNumber[] = "173xxxxxxx1"; //替换成目标手机号
char msg[] = "hello waaax"; //短信内容
在Arduino的硬件串口,可以看到Arduino发送给Air780的AT指令
在Arduino的虚拟串口,可以看到Air780回复给Arduino的数据,Arduino接收后从虚拟串口打印,用于看状态。
发送中文短信
功能:
Arduino开机等待和Air780通讯,通讯完成后发送一条中文短信,对应目标电话和短信修改代码中此处
char phoneNumber[] = "173xxxxxxx1"; //替换成目标手机号
char msg[] = "7EF453EF601D"; //维可思 //中文短信,用uicode工具转换,然后把空格去掉
在Arduino的硬件串口,可以看到Arduino发送给Air780的AT指令
在Arduino的虚拟串口,可以看到Air780回复给Arduino的数据,Arduino接收后从虚拟串口打印,用于看状态。
TCP通讯
功能:
Arduino开机等待和Air780通讯,通讯完成后给对应的IP和端口发送20组数据,发送完后断开连接
//需要是公网IP,测试可以使用 https://netlab.luatos.com/ 获取临时的
const char TCPServer[]="112.125.89.8";
const char Port[]="36936"; //端口号
在Arduino的硬件串口,可以看到Arduino发送给Air780的AT指令
在Arduino的虚拟串口,可以看到Air780回复给Arduino的数据,Arduino接收后从虚拟串口打印,用于看状态。
网页端获取到客户端发过来的数据,因为是TCP网络传输的,没有距离限制
因为Arduino的IDE和网页的这个TCP测试链接都是UTF-8编码,所以甚至代码这里可以直接写中文发送,使能这个
而网页端这样接收的
MQTT通讯ONENET物联网平台
功能:
Arduino开机等待和Air780通讯,通讯完成后向onenet服务器通过MQTT协议发送5组数据,发送完后断开连接
#define mqtt_pubid "T1S6hH1y7F" //产品ID
#define mqtt_devid "air" //设备ID
//鉴权信息
#define mqtt_token "version=2018-10-31&res=products%2FT1S6hH1y7F%2Fdevices%2Fair&et=3565958400&method=md5&sign=Lwkt49lZGoQBT%2FTRrVPKDg%3D%3D" //鉴权信息
#define subscribe "$sys/T1S6hH1y7F/air/thing/property/post/reply" //参考mqtt_pubid和mqtt_devid一起替换对应位置
#define publish "$sys/T1S6hH1y7F/air/thing/property/post" //参考mqtt_pubid和mqtt_devid一起替换对应位置
#define paramsName "temp_value"
在Arduino的硬件串口,可以看到Arduino发送给Air780的AT指令
在Arduino的虚拟串口,可以看到Air780回复给Arduino的数据,Arduino接收后从虚拟串口打印,用于看状态。
51单片机例程
接线方式
硬件串口方式连接:
air780模块 STC89C52板子
V_IN-----------------5V
V_MCU----------------5V
GND------------------GND
TX-----------------P3.0
RX-----------------P3.1
PWK接GND(用于开机自启动)
本代码使用STC89C52RC单片机,晶振11.0592MHz下测试[必须使用11.0592M,不能用12M晶振]
烧录代码时候记得拔掉AIR780和51的TX RX的线,烧录好断电后再TX RX接线然后重新上电
发送英文短信
功能:
51单片机开机等待和Air780通讯,通讯完成后发送一条英文短信,对应目标电话和短信修改代码中此处
char phoneNumber[] = "173xxxxxxx1"; //替换成需要被拨打电话的号码
char msg[] = "waaax"; //短信内容
发送中文短信
功能:
51单片机开机等待和Air780通讯,通讯完成后发送一条中文短信,对应目标电话和短信修改代码中此处
char phoneNumber[] = "173xxxxxxx1"; //替换成目标手机号码
char msg[] = "7EF453EF601D"; //维可思 //中文短信,用uicode工具转换,然后把空格去掉
TCP通讯
功能:
51单片机开机等待和Air780通讯,通讯完成后给对应的IP和端口发送20组数据,发送完后断开连接
code char TCPServer[]="112.125.89.8"; //需要是公网IP,测试可以使用https://netlab.luatos.com/ 获取临时的
code char Port[]="37685"; //端口号
51的串口发送的数据
网页端获取到客户端发过来的数据,因为是TCP网络传输的,没有距离限制
MQTT通讯ONENET物联网平台
功能:
51单片机开机等待和Air780通讯,通讯完成后向onenet服务器通过MQTT协议发送5组数据,发送完后断开连接
#define mqtt_pubid "T1S6hH1y7F" //产品ID
#define mqtt_devid "air" //设备ID
//鉴权信息
#define mqtt_token "version=2018-10-31&res=products%2FT1S6hH1y7F%2Fdevices%2Fair&et=3565958400&method=md5&sign=Lwkt49lZGoQBT%2FTRrVPKDg%3D%3D" //鉴权信息
#define subscribe "$sys/T1S6hH1y7F/air/thing/property/post/reply" //参考mqtt_pubid和mqtt_devid一起替换对应位置
#define publish "$sys/T1S6hH1y7F/air/thing/property/post" //参考mqtt_pubid和mqtt_devid一起替换对应位置
#define paramsName "temp_value"
51串口发送的数据
onenet服务器端接收效果
STM32单片机例程
接线方式
硬件串口方式连接:
air780模块 STM32板子
V_IN-----------------5V
V_MCU----------------3.3V
GND------------------GND
TX-----------------RX2 PA3
RX-----------------TX2 PA2
PWK接GND(用于开机自启动)
usb-ttl接电脑调试
USB-TTL模块 STM32板子
5V----------------------5V
GND--------------------->GND
RX---------------------->PA9
TX---------------------->PA10
发送英文短信
功能:
STM32开机等待和Air780通讯,通讯完成后发送一条英文短信,对应目标电话和短信修改代码中此处
char phoneNumber[] = "173xxxxxxx1"; //替换成目标手机号
char msg[] = "hello waaax"; //短信内容
在STM32的串口1,可以看到Air780回复给STM32的数据,STM32接收后从串口1打印,用于看状态。
发送中文短信
功能:
STM32开机等待和Air780通讯,通讯完成后发送一条中文短信,对应目标电话和短信修改代码中此处
char phoneNumber[] = "173xxxxxxx1"; //替换成目标手机号
char msg[] = "7EF453EF601D"; //维可思 //中文短信,用unicode工具转换,然后把空格去掉
在STM32的串口1,可以看到Air780回复给STM32的数据,STM32接收后从串口1打印,用于看状态。
TCP通讯
功能:
STM32开机等待和Air780通讯,通讯完成后给对应的IP和端口发送20组数据,发送完后断开连接
//需要是公网IP,测试可以使用 https://netlab.luatos.com/ 获取临时的
const char TCPServer[]="112.125.89.8";
const char Port[]="36936"; //端口号
在STM32的串口1,可以看到Air780回复给STM32的数据,STM32接收后从串口1打印,用于看状态。
在IP的服务器端可以看到接收的数据
MQTT通讯ONENET物联网平台
功能:
STM32单片机开机等待和Air780通讯,通讯完成后向onenet服务器通过MQTT协议发送5组数据,发送完后断开连接
#define mqtt_pubid "T1S6hH1y7F" //产品ID
#define mqtt_devid "air" //设备ID
#define mqtt_token "version=2018-10-31&res=products%2FT1S6hH1y7F%2Fdevices%2Fair&et=3565958400&method=md5&sign=Lwkt49lZGoQBT%2FTRrVPKDg%3D%3D" //鉴权信息
#define subscribe "$sys/T1S6hH1y7F/air/thing/property/post/reply" //参考mqtt_pubid和mqtt_devid一起替换对应位置
#define publish "$sys/T1S6hH1y7F/air/thing/property/post" //参考mqtt_pubid和mqtt_devid一起替换对应位置
#define paramsName "temp_value"
串口1打印数据
服务器端接收