AIR780 MINI LTE 4G全网通模块

image-20230523214603884

原理图和例程等汇总资料下载地址

资料链接:

https://pan.baidu.com/s/1fnRDMXCYXxlvcHWK3krEVA 提取码:3333 【如果百度云盘下载地址无效,请联系本店铺客服更改】

视频教程

https://www.bilibili.com/video/BV1h24y1N7gT

模块淘宝链接

https://item.taobao.com/item.htm?ft=t&id=719941972368

image-20230522204715536

模块引脚说明

image-20230522191634516

电路版本V1.5以上版本,选择内核为3.3v AIR780EX,V1.5版本以前为1.8v AIR780EX版本,需要电平转换。

v1.5版本不需要转换,降低串口波特率误码率

为了兼容以前版本接线,V_MCU引脚修改为NC,悬空不接。

image-20240912203510408

image-20230522195323672

image-20230522193130532

v1.5以上版本去除了V_MCU引脚和电平转换。

PC调试使用

1.接上IPEX接口天线

image-20230520221302424

2.插入SIM卡

因为AIR780支持LTE CAT.1的模组,

支持频段:

LTE-TDD:B34/B38/B39/B40/B41

LTE-FDD:B1/B3/B5/B8

通俗点讲,中国环境,支持移动/联通的卡短信功能。【不支持电信卡收发短信】

支持移动/联通/电信的卡网络功能。

本模块使用的是NANO尺寸的卡【和手机一样的小卡】,按照箭头方向插入接口,注意缺口放方向。

image-20230520230903611

image-20230520221416501

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

image-20230520220409407

4.启动模块

把USB-TTL模块插入电脑的USB供电,然后模组的PWK和GND引脚短路1.5秒以上,就可以触发开机。可以

观察网络指示灯,不停闪烁,表示开发板已经正常开机。

开机后,如果再长按开机键(1.5S)以上触发关机流程,观察网络指示灯,停止闪烁表示关机动作结束。

关于上电自启动,把PWK和GND直接短路,可以上电自启动

image-20230520222344101

5.串口助手调试

打开串口助手,比如常用的XCOM

  • 选择自己的USB-TTL对应的COM号,波特率选择9600,打开串口

  • 这里波特率也可以用115200,内核默认是115200,可以看到开机log信息。

  • 用9600时候要开机多发一些AT,模块会自适应波特率为9600。

image-20230520222836004

  • 如果一直是乱码,可以切115200波特率看下输出的开机log信息,如果是一直如下图输入,说明vin供电功率不足,模块在一直重启。用usb供电电脑输入只有500mA如果还插有很多其他设备,那500mA都可能不到。如果在不停重启,可以使用外置电源给vin供电,用5V2A电源。或者升高供电电压用9v1A的

    image-20240503193751287

  • 切换到多条发送,输入AT,勾选发送新行,点发送。如果没有返回AT OK,多发送几条,模块刚开机需一段时间启动,等能返回OK再测试其它指令

image-20230520223109060

发送常用测试指令看测试结果,

AT+CSQ

AT+CPIN?

AT+CREG?

以下正常返回

image-20230520223634672

  • 如果您AT+CPIN?返回的不是这样,而是如下图,那ERROR,可能因为卡没插好,或者卡方向没插对,或者先上电后插的卡,总之模块没读取到卡。

image-20230520223916340

  • 如果AT+CREG?返回的不是0,1或者0,5,那么卡应该没服务停机了,没有连接到基站,或者没插卡image-20230520224049786

  • 如果能上面3个基础指令都能正常,才可以操作短信和网络流程。

发送短信流程

重要事情说n遍!!!!!

重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!

重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!

重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!

重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!

重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!

重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!

重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!

重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!

重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!

重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!

重要说明,这里很多人会问为什么不能发短信,先看这个!!!!!

测试短信需要自己实名制自己办卡

image-20230520231230154

发送英文短信

用到下面几条指令

AT+CMGF=1
AT+CSMP=17,167,0,0
AT+CMGS="183XXXXXXXX"		这个是要接收短信的手机号
发送短信内容,不勾选回车,点发送
1A  勾选hex发送,不勾选回车

image-20230520231611554

image-20230520232254300

image-20230520231918960

能看到OK,就能接收到短信了

发送中文短信

这里以最简单的TEXT模式下发送中文短信为例,如果想研究PDU的可以自行学习

用到几条指令

AT+CMGF=1
AT+CSMP=17,167,0,8
AT+CMGS="173xxxxxxx1"
短信内容		需要用uncode转码工具转换,不勾选发送新行,勾选HEX发送
1A				HEX发送

用资料包提供的UNCODE工具提前转换好要发送的中文内容

image-20230520233818696

然后按照下面流程操作

image-20230520234023842

这样手机上就可以收到中文短信了

TCP网络测试

image-20230520235825221

打开TCP测试网站https://netlab.luatos.com/点左上角打开TCP

image-20230520235939353

获取到能临时使用的IP和端口

image-20230521000022093

把IP和端口组成下面的链接TCP的指令,发送指令,连接成功

AT+CIPSTART="TCP","112.125.89.8","36611"

image-20230521000220453

使用AT+CIPSEND指令启动发送,发送任意内容,这里以“WAAAX”为例

1A勾选HEX发送,显示SEND OK,说明发送成功了

image-20230521001014007

然后在网页端就可以看到发送的内容了

image-20230521001050887

想断开连接使用AT+CIPSHUT结束连接

image-20230521001215436

备注:测试发现用XCOM因为编码问题发送的内容不能为中文,可以尝试用原厂的LLCOM工具,一样流程,内容还能发中文,很不错哦

image-20230521001443429

Onenet物联网平台MQTT通讯

onenet平台链接:https://open.iot.10086.cn/

完成注册登陆和添加设备,参考官方教程Onenet物联网平台操作教程:https://doc.openluat.com/wiki/37?wiki_page_id=4506

image-20230523220728442

image-20230523220429336

image-20230523220648612

image-20230523220744904

image-20230523220915503

image-20230523221009713

可以看到,登入onenet时,mqtt的clientID、username和password都有指定

clientId即为刚才创建的设备名称

username为创建的产品ID

image-20230523221610629

image-20230523221456393

image-20230523221637380

token计算工具 https://open.iot.10086.cn/bbs/thread-38815-1-1.html

password是需要经过加密计算得来的鉴权token

计算方法详见如下文章,这篇文章测试时直接使用onenet提供的测试工具来计算鉴权密码

接入安全认证_开发者文档_OneNET (10086.cn)

image-20230524001226807

从上面教程获取了重要的三要素

项目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先测试效果

image-20230524113134194

image-20230524113231442

显示绿色,连接成功

image-20230524113246159

订阅

$sys/T1S6hH1y7F/air/thing/property/post/reply

image-20230524113401701

发送数据

$sys/T1S6hH1y7F/air/thing/property/post

测试内容

{
            "id": "123",
            "version": "1.0",
       	     "params": {
                "temp_value": {
                    "value": 65
                }
            }
 }

image-20230524113434520

看到订阅回复成功

image-20230524113527568

在物联网里面看到对应数据

image-20230524113555402

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指令,

官方还有丰富的其他流程教程,可以自行查阅测试

https://doc.openluat.com/wiki/37?wiki_page_id=4491

image-20230521001745822

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接收后从虚拟串口打印,用于看状态。

image-20230523202043869

发送中文短信

功能:

Arduino开机等待和Air780通讯,通讯完成后发送一条中文短信,对应目标电话和短信修改代码中此处

char phoneNumber[] = "173xxxxxxx1";		//替换成目标手机号
char msg[] = "7EF453EF601D";	//维可思	//中文短信,用uicode工具转换,然后把空格去掉	

image-20230523204006588

在Arduino的硬件串口,可以看到Arduino发送给Air780的AT指令

在Arduino的虚拟串口,可以看到Air780回复给Arduino的数据,Arduino接收后从虚拟串口打印,用于看状态。

image-20230523204421768

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接收后从虚拟串口打印,用于看状态。

image-20230523211240852

网页端获取到客户端发过来的数据,因为是TCP网络传输的,没有距离限制

image-20230523211452973

因为Arduino的IDE和网页的这个TCP测试链接都是UTF-8编码,所以甚至代码这里可以直接写中文发送,使能这个

image-20230523211940207

而网页端这样接收的

image-20230523211909355

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接收后从虚拟串口打印,用于看状态。

image-20230524232256843

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";		//短信内容	

image-20230524235413353

发送中文短信

功能:

51单片机开机等待和Air780通讯,通讯完成后发送一条中文短信,对应目标电话和短信修改代码中此处

char phoneNumber[] = "173xxxxxxx1";		//替换成目标手机号码
char msg[] = "7EF453EF601D";	//维可思	//中文短信,用uicode工具转换,然后把空格去掉	

image-20230525002420082

TCP通讯

功能:

51单片机开机等待和Air780通讯,通讯完成后给对应的IP和端口发送20组数据,发送完后断开连接

code char TCPServer[]="112.125.89.8";		//需要是公网IP,测试可以使用https://netlab.luatos.com/ 获取临时的
code char Port[]="37685";		//端口号

51的串口发送的数据

image-20230525085059400

网页端获取到客户端发过来的数据,因为是TCP网络传输的,没有距离限制

image-20230525085140709

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串口发送的数据

image-20230525094654542

onenet服务器端接收效果

image-20230525094739659

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打印,用于看状态。

image-20230525133759899

发送中文短信

功能:

STM32开机等待和Air780通讯,通讯完成后发送一条中文短信,对应目标电话和短信修改代码中此处

char phoneNumber[] = "173xxxxxxx1";		//替换成目标手机号
char msg[] = "7EF453EF601D";	//维可思	//中文短信,用unicode工具转换,然后把空格去掉	

在STM32的串口1,可以看到Air780回复给STM32的数据,STM32接收后从串口1打印,用于看状态。

image-20230525140710830

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的服务器端可以看到接收的数据

image-20230525141816696

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打印数据

image-20230525223419652

服务器端接收

image-20230525223547067