Difference between revisions of "Template:SIM7020E NB-IoT HAT User Manual"

From Waveshare Wiki
Jump to: navigation, search
(Created page with "== 产品概述 == 本产品是一款具有NB-IoT(窄带物联网)功能的树莓派扩展板,具有低功耗、低成本、广覆盖等优点,适用于新型的智能仪...")
 
(Replaced content with "<br />")
Line 1: Line 1:
== 产品概述 ==
+
<br />
本产品是一款具有NB-IoT(窄带物联网)功能的树莓派扩展板,具有低功耗、低成本、广覆盖等优点,适用于新型的智能仪表和远程控制等物联网应用。
 
 
 
== 产品特性 ==
 
*适用于Raspberry Pi Zero/Zero W/Zero WH/2B/3B/3B+
 
*支持TCP、UDP、LWM2M、HTTP、FTP、MQTT等功能
 
*板载USB接口,可用于软件调试等
 
*板载两路UART接口,可用于AT指令收发和更新固件(仅UART2)
 
*引出控制引脚,可接入Arduino/STM32等主控板
 
*板载电平转换电路,默认为3.3V工作,可通过跳线帽设置成5V
 
*板载SIM卡槽,支持NB-IoT专用卡
 
*板载2个LED指示灯,方便查看模块运行状态
 
*支持串口波特率范围300bps ~ 921600bps (默认115200bps)
 
*支持AT命令控制(3GPP TS 27.007,27.005和SIMCOM增强型AT命令集)
 
*支持SIM应用工具包(SAT Class 3、GSM 11.14 Release 98、USAT)
 
*提供完善的配套资料手册(Raspberry/Arduino/STM32等示例程序)
 
 
 
== 通信参数 ==
 
*支持频段
 
**B1/B3/B5/B8 (支持电信/联通/移动的NB-IoT卡)
 
*传输功率
 
**Class 3 (0.25W@LTE)
 
*数据传输
 
**上行:≤62.5Kbps
 
**下行:≤26.15Kbps
 
*短消息
 
**文本和PDU模式(须SIM卡本身支持)
 
 
 
== 其他参数 ==
 
*供电电压:5V
 
*逻辑电压:5V / 3.3V (默认为3.3V)
 
*休眠模式电流:1.2mA(@DRX=2.56s)
 
*省电模式电流:9uA
 
*工作温度:-40°C ~ 85°C
 
*存储温度:-45°C ~ 90°C
 
*产品尺寸:30.2mm x 65mm
 
 
 
== 接口说明 ==
 
{| class="list table table-striped table-bordered"
 
|-
 
||
 
5V
 
 
 
||
 
电源正(5V电源输入)
 
 
 
|-
 
||
 
GND
 
 
 
||
 
电源地
 
 
 
|-
 
||
 
RX1
 
 
 
||
 
串口1数据接收
 
 
 
|-
 
||
 
TX1
 
 
 
||
 
串口1数据发送
 
 
 
|-
 
||
 
DTR
 
 
 
||
 
休眠控制引脚拉高休眠,拉低唤醒(须设置“AT+CSCLK=1”)
 
 
 
|-
 
||
 
RI
 
 
 
||
 
中断唤醒引脚默认高电平,当收到短信息或URC上报会有120ms低电平脉冲(须设置“AT+CFGRI=1”)
 
 
 
|-
 
||
 
RX2
 
 
 
||
 
串口2数据接收
 
 
 
|-
 
||
 
TX2
 
 
 
||
 
串口2数据接收
 
 
 
|-
 
||
 
PWR
 
 
 
||
 
开关机控制引脚
 
 
 
|-
 
||
 
RESET
 
 
 
||
 
复位引脚开机状态拉低电平可复位,关机状态无效
 
 
 
|}
 
 
 
== 跳线帽说明 ==
 
 
 
[[File:Raspberry-Pi-P4.jpg|300px|thumb|树莓派引脚定义图]]
 
 
 
{| class="list table table-striped table-bordered"
 
|-
 
||
 
VCCIO
 
 
 
||
 
:可通过跳线帽设置工作电平为3.3V或5V
 
 
 
|-
 
||
 
PWR
 
 
 
||
 
:开关机控制引脚,默认接到树莓派的P4引脚
 
 
 
|}
 
 
 
== 指示灯说明 ==
 
{| class="list table table-striped table-bordered"
 
|-
 
||
 
PWR
 
 
 
||
 
&nbsp; 给模块的5V和GND供电时亮起
 
 
 
|-
 
||
 
NET
 
 
 
||
 
&nbsp; 64ms亮/800ms熄灭——未注册上网络<br/>&nbsp; 64ms亮/3000ms熄灭——已注册上网络<br/>&nbsp; 64ms亮/300ms熄灭——数据传输时<br/>&nbsp; 熄灭——关机或PSM休眠模式
 
 
 
|}
 
 
 
== 接入电脑调试 ==
 
=== '''硬件连接''' ===
 
 
 
[[File:SIM7020X-NB-IoT-HAT-04.jpg|300px|thumb|通过串口模块接入电脑连接图]]
 
 
 
用户在使用SIM7020模块前除了micro USB线、LTE天线外,还需要另外准备以下东西:
 
*一张NB-IoT专用卡(电信、移动或联通)
 
*串口模块(推荐用[http://www.waveshare.net/shop/CP2102-USB-UART-Board-micro.htm CP2102 USB UART Board])
 
 
 
硬件连接操作:
 
 
 
#将NB-IoT卡安装到模块背面卡槽,并连接好LTE天线。
 
#把CP2102模块引脚对应接到SIM7020X的串口1(或串口2),再用USB线连入电脑。
 
#给SIM7020模块供电,此时PWR灯亮红灯,NET灯不亮状态。
 
#按PWRKEY按键约1s松开,等待2秒左右,看到NET灯开始闪烁,则模块开机成功。
 
#使用配套的串口助手打开,选择对应的串口端口和波特率115200,勾选加回车换行,
 
#打开扩展可看到实现录入的AT指令,点击对应的指令即可直接发送。<br />[[File:SIM7020X-NB-IoT-HAT-tt.jpg|border|600px]]<!--&nbsp;<br /><br />[[File:SIM7020X-NB-IoT-HAT-06.png|600px]]-->
 
 
 
=== '''简单联网测试''' ===
 
 
 
[[File:SIM7020X-NB-IoT-HAT-07.png|简单联网测试截图|right|thumb|300px]]
 
 
 
下表列举一些常用AT指令,可以简单快速地检测SIM7020的AT串口通信和网络连接是否正常。<br/>
 
进行下文演示的联网通信实验前建议都先做简单联网测试,确认网络连接正常再操作。<br/>相关的AT指令详细说明可参阅:SIM7020 Series_AT Command Manual。
 
 
 
{| class="list table table-striped table-bordered"
 
|-
 
||
 
'''命令'''
 
 
 
||
 
'''说明'''
 
 
 
||
 
'''返回值'''
 
 
 
|-
 
||
 
AT
 
 
 
||
 
AT测试指令
 
 
 
||
 
OK
 
 
 
|-
 
||
 
ATE
 
 
 
||
 
ATE1设置回显,ATE0关闭回显
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CSQ
 
 
 
||
 
网络信号质量查询,返回信号值
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CGMR
 
 
 
||
 
查询固件版本
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CGREG?
 
 
 
||
 
查询网络注册状态
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CGACT?
 
 
 
||
 
查询PDP状态
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+COPS?
 
 
 
||
 
查询网络信息
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CGCONTRDP
 
 
 
||
 
查询网络状态
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CFUN=0
 
 
 
||
 
关闭RF
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT*MCGDEFCONT
 
 
 
||
 
配置APN,如:AT*MCGDEFCONT="IP","3GNET"
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CFUN=1
 
 
 
||
 
开启RF
 
 
 
||
 
OK
 
 
 
|}
 
 
 
=== '''TCP/IP通信''' ===
 
 
 
本文主要介绍SIM7020模块TCP/IP通信功能。
 
 
 
SIM7020模块不支持透传,不支持 server 模式。
 
 
 
SIM7020 TCP/IP默认是多路client架构,共支持5路sockets,包括TCP或者UDP。
 
 
 
[[File:SIM7020X-NB-IoT-HAT-08.png|600px]]
 
 
 
TCP/IP通信前,先根据上文“硬件配置”和“简单联网测试”操作,确保模块联网正常。
 
 
 
SIM7020模块TCP、UDP通信以及DNS解析和Ping功能,AT指令详细说明可参阅:SIM7020 Series_TCPIP_Application_Note。
 
 
 
==== '''【TCP Client】''' ====
 
 
 
[[File:SIM7020X-NB-IoT-HAT-09.png|thumb|300px|TCP Client测试截图]]
 
 
 
相关指令:
 
 
 
{| class="list table table-striped table-bordered"
 
|-
 
||
 
AT指令
 
 
 
||
 
指令说明
 
 
 
||
 
返回值
 
 
 
|-
 
||
 
AT+CSOC=1,1,1
 
 
 
||
 
创建 TCP socket, &lt;socket_id&gt;=0
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CSOCON=0,2317,"118.190.93.84"
 
 
 
||
 
连接远端server
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CSOSEND=0,0,"Hello World"
 
 
 
||
 
发送数据
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CSOCL=0
 
 
 
||
 
关闭socket
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CSOSENDFLAG
 
 
 
||
 
使能发送ACK 回执
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CSORCVFLAG
 
 
 
||
 
使能接收ACK 回执
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CSOCON?
 
 
 
||
 
检查通信端口和类型
 
 
 
||
 
OK
 
 
 
|}
 
 
 
==== '''【UDP Client】''' ====
 
 
 
[[File:SIM7020X-NB-IoT-HAT-10.png|thumb|300px|UDP Client测试截图]]
 
 
 
相关指令:
 
 
 
[[File:SIM7020X-NB-IoT-HAT-11.png|thumb|300px|多路sockets测试截图]]
 
 
 
{| class="list table table-striped table-bordered"
 
|-
 
||
 
AT指令
 
 
 
||
 
指令说明
 
 
 
||
 
返回值
 
 
 
|-
 
||
 
AT+CSOC=1,2,1
 
 
 
||
 
创建 UDP socket, &lt;socket_id&gt;=0
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CSOCON=4,524,"116.247.119.165"
 
 
 
||
 
连接远端server
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CSOSEND=4,0,"Waveshare"
 
 
 
||
 
发送数据
 
 
 
||
 
OK
 
 
 
|-
 
| style="width:234px;height:19px;" |
 
AT+CSOCL=0
 
 
 
| style="width:224px;height:19px;" |
 
关闭socket
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CSOSENDFLAG
 
 
 
||
 
使能发送ACK 回执
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CSORCVFLAG
 
 
 
||
 
使能接收ACK 回执
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CSOCON?
 
 
 
||
 
检查通信端口和类型
 
 
 
||
 
OK
 
 
 
|}
 
 
 
==== '''【多路sockets】''' ====
 
 
 
本例演示SIM7020模块同时使用5路SOCKETS通信,相关指令参考TCP Client和UDP Client。
 
 
 
==== '''【DNS解析和Ping功能】''' ====
 
 
 
模块须正常注册上网络后,才能使用DNS解析和Ping功能,相关AT指令如下:
 
 
 
{| class="list table table-striped table-bordered"
 
|-
 
||
 
AT指令
 
 
 
||
 
指令说明
 
 
 
||
 
返回值
 
 
 
|-
 
||
 
AT+CIPPING
 
 
 
||
 
Ping指令,如:AT+CIPPING="61.135.169.121"
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CDNSGIP
 
 
 
||
 
解析服务器,如:AT+CDNSGIP="www.baidu.com"
 
 
 
||
 
OK
 
 
 
|}
 
 
 
[[File:SIM7020X-NB-IoT-HAT-12.png|600px]]<br /><br />[[File:SIM7020X-NB-IoT-HAT-13.png|600px]]
 
 
 
=== '''HTTP通信''' ===
 
 
 
本文主要介绍SIM7020模块HTTP通信功能,主要分HTTP GET和HTTP POST。
 
 
 
相关的AT指令详细说明可参阅:SIM7020 Series_HTTP_Application_Note。
 
 
 
[[File:SIM7020X-NB-IoT-HAT-14.png|300px|thumb|HTTP GET测试截图1]]
 
 
 
[[File:SIM7020X-NB-IoT-HAT-15.png|300px|thumb|HTTP GET测试截图2]]
 
 
 
==== '''【HTTP GET】''' ====
 
 
 
相关指令:
 
 
 
{| class="list table table-striped table-bordered"
 
|-
 
||
 
AT指令
 
 
 
||
 
指令说明
 
 
 
| style="width:95px;height:16px;" |
 
返回值
 
 
 
|-
 
||
 
AT+CHTTPCREATE="https://www.waveshare.com/"
 
 
 
||
 
创建HTTP Host示例
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CHTTPCON=0
 
 
 
||
 
连接 server
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CHTTPSEND=0,0,"/index.html"
 
 
 
||
 
发送 http 请求
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CHTTPDISCON=0
 
 
 
||
 
断开连接
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CHTTPDESTROY=0
 
 
 
||
 
释放销毁 HTTP 示例
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CHTTPCREATE?
 
 
 
||
 
检查HTTP连接状态
 
 
 
||
 
OK
 
 
 
|}
 
 
 
说明:测试HTTP相关指令时,因NB-IoT网络问题,AT应答时间相对较长,请耐心等候。
 
 
 
==== '''【HTTP POST】''' ====
 
 
 
相关指令:
 
 
 
[[File:SIM7020X-NB-IoT-HAT-16.png|300px|thumb|HTTP POST测试截图]]
 
 
 
{| class="list table table-striped table-bordered"
 
|-
 
||
 
AT指令
 
 
 
||
 
指令说明
 
 
 
| style="width:95px;height:16px;" |
 
返回值
 
 
 
|-
 
||
 
AT+CHTTPCREATE="http://139.217.9.49:8080/"
 
 
 
||
 
创建 HTTP 服务器端
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CHTTPCON=0
 
 
 
||
 
连接 server
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CHTTPSEND=0,0,"/index.html"
 
 
 
||
 
发送 http 请求
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CHTTPDISCON=0
 
 
 
||
 
断开连接
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CHTTPDESTROY=0
 
 
 
||
 
释放销毁 HTTP 示例
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CHTTPCREATE?
 
 
 
||
 
检查HTTP连接状态
 
 
 
||
 
OK
 
 
 
|}
 
 
 
说明:测试HTTP相关指令时,因NB-IoT网络问题,AT应答时间相对较长,请耐心等候。
 
 
 
== MQTT通信 ==
 
 
 
本文主要介绍SIM7020模块MQTT通信功能。<br />相关的AT指令详细说明可参阅:SIM7020 Series_MQTT_Application_Note。
 
 
 
[[File:SIM7020X-NB-IoT-HAT-17.png|300px|thumb|MQTT测试截图1]]
 
 
 
[[File:SIM7020X-NB-IoT-HAT-18.png|300px|thumb|MQTT测试截图2]]
 
 
 
=== '''MQTT订阅主题和发布消息''' ===
 
 
 
下文为方便演示MQTT通信功能,下文借助网上找到的MQTT测试工具进行测试。
 
 
 
相关指令:
 
 
 
{| class="list table table-striped table-bordered"
 
|-
 
||
 
AT指令
 
 
 
||
 
指令说明
 
 
 
||
 
返回值
 
 
 
|-
 
||
 
AT+CMQNEW="198.41.30.241","1883",12000,100
 
 
 
||
 
创建 MQTT 连接
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CMQCON=0,3,"myclient",600,0,0
 
 
 
||
 
发送 MQTT 请求
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CMQSUB=0,"mytopic",1
 
 
 
||
 
订阅主题
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CMQPUB=0,"mytopic",1,0,0,8,"31323334"
 
 
 
||
 
发布主题和消息
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CMQUNSUB=0,"mytopic"
 
 
 
||
 
取消订阅主题
 
 
 
||
 
OK
 
 
 
|-
 
||
 
AT+CMQDISCON=0
 
 
 
||
 
断开 MQTT 连接
 
 
 
||
 
OK
 
 
 
|}
 
 
 
说明:测试MQTT相关指令时,因NB-IoT网络问题,AT应答时间相对较长,请耐心等候。
 
 
 
== 接入树莓派使用 ==
 
 
 
=== '''硬件连接''' ===
 
 
 
SIM7020X NB-IoT HAT板载树莓派GPIO接口,可直接插入各版本树莓派使用;下表为树莓派管脚与模块引脚连接情况(树莓派三代B+):
 
 
 
[[File:SIM7020X-Connect.jpg|300px|thumb|与树莓派引脚连接图]]
 
 
 
{| class="list table table-striped table-bordered"
 
|-
 
||
 
'''SIM7020X NB-IoT HAT'''
 
 
 
||
 
'''Raspberry Pi'''
 
 
 
|-
 
||
 
'''5V'''
 
 
 
||
 
5V
 
 
 
|-
 
||
 
'''GND'''
 
 
 
||
 
GND
 
 
 
|-
 
||
 
'''RXD'''
 
 
 
||
 
TXD (对应BCM的14)
 
 
 
|-
 
||
 
'''TXD'''
 
 
 
||
 
RXD (对应BCM的15)
 
 
 
|-
 
||
 
'''PWR'''
 
 
 
||
 
P7 (对应BCM的P4)
 
 
 
|}
 
 
 
=== '''软件配置''' ===
 
 
 
==== '''【引脚初始化】''' ====
 
 
 
[[File:SIM7020X-NB-IoT-HAT-20.png|thumb|300px|接入树莓派实物图]]
 
 
 
模块出厂默认PWR引脚是通过跳线帽跳选到树莓派的P4引脚,为确保SIM7020X NB-IoT HAT接入树莓派后能正常工作,才需要初始化树莓派引脚的电平输出。
 
 
 
参考操作如下:
 
 
 
*下载树莓派代码,把SIM7020X整个文件夹复制到/home/pi/ 路径下,
 
*命令行进入到/home/pi/目录下,执行指令
 
 
 
chmod 777 pi_gpio_init.sh
 
 
 
*设置开机初始化脚本,运行命令:
 
 
 
sudo nano /etc/rc.local
 
 
 
*在exit 0前面加入 (如下图所示):
 
 
 
sh /home/pi/SIM7020X/pi_gpio_init.sh
 
 
 
==== '''【串口配置】''' ====
 
 
 
由于树莓派串口默认用于终端调试,如需使用串口,则需要修改树莓派设置。
 
 
 
*执行如下命令进入树莓派配置:
 
 
 
sudo raspi-config
 
 
 
*选择Interfacing Options ->Serial ->no -> yes,关闭串口调试功能。
 
 
 
*打开/boot/config.txt文件,找到如下配置语句使能串口,如果没有,可添加在文件最后面:
 
 
 
enable_uart=1
 
 
 
*重启生效。
 
 
 
=== '''树莓派minicom调试'''===
 
 
 
[[File:SIM7020X-NB-IoT-HAT-23.png|300px|thumb|minicom AT指令测试]]
 
 
 
将模块插入树莓派中,安装minicom,minicom是linux平台串口调试工具:
 
 
 
sudo apt-get install minicom
 
 
 
执行minicom -D /dev/ttyS0 可进入minicom串口调试界面
 
 
 
默认波特率为115200,ttyS0为树莓派3B/3B+的串口,Zero/2B为ttyAMA0
 
 
 
=== '''树莓派示例程序演示'''  ===
 
 
 
下载示例程序,把BCM2835整个文件夹拷贝到树莓派上,比如放到/home/pi/下,并改名为SIM7020X。
 
 
 
==== '''【bcm2835安装】''' ====
 
 
 
进入SIM7020X下的bcm2835目录,编译安装bcm2835库,执行指令:
 
 
 
./configure & make & sudo make check & sudo make install
 
 
 
[[File:SIM7020X-NB-IoT-HAT-24.png|400px]]
 
 
 
==== '''【编译和运行】''' ====
 
树莓派示例程序结构图参考下图:
 
 
 
[[File:SIM7020X-Demo-Code-intro.jpg|800px]]
 
 
 
下面以编译和运行AT示例程序为例:
 
 
 
cd /home/pi/SIM7020X/examples/AT
 
sudo make clean && sudo make && sudo ./main
 
 
 
*示例程序测试截图:
 
 
 
<gallery>
 
 
 
File:SIM7020-RPI-AT-TEST.png|AT
 
File:SIM7020C-TCP-TEST.jpg|TCP
 
File:SIM7020C-UDP-TEST.jpg|UDP
 
 
 
</gallery>
 
 
 
说明:更多示例程序持续更新中… …
 

Revision as of 08:32, 18 January 2019