本产品是一款具有NB-IoT(窄带物联网)功能的树莓派扩展板,具有低功耗、低成本、广覆盖等优点,适用于新型的智能仪表和远程控制等物联网应用。
5V | 电源正(5V电源输入) |
GND | 电源地 |
RX1 | 串口1数据接收 |
TX1 | 串口1数据发送 |
DTR | 休眠控制引脚拉高休眠,拉低唤醒(须设置“AT+CSCLK=1”) |
RI | 中断唤醒引脚默认高电平,当收到短信息或URC上报会有120ms低电平脉冲(须设置“AT+CFGRI=1”) |
RX2 | 串口2数据接收 |
TX2 | 串口2数据接收 |
PWR | 开关机控制引脚 |
RESET | 复位引脚开机状态拉低电平可复位,关机状态无效 |
VCCIO | :可通过跳线帽设置工作电平为3.3V或5V |
PWR | :开关机控制引脚,默认接到树莓派的P4引脚 |
PWR | 给模块的5V和GND供电时亮起 |
NET | 64ms亮/800ms熄灭——未注册上网络 |
通过串口模块接入电脑连接图
用户在使用SIM7020模块前除了micro USB线、LTE天线外,还需要另外准备以下东西:
接线说明:
SIM7020C-NB-IoT HAT | CP2012或其他串口模块 |
---|---|
5V | 5V |
GND | GND |
RX1 | TXD |
TX1 | RXD |
硬件连接操作:
简单联网测试截图
下表列举一些常用AT指令,可以简单快速地检测SIM7020的AT串口通信和网络连接是否正常。
进行下文演示的联网通信实验前建议都先做简单联网测试,确认网络连接正常再操作。
相关的AT指令详细说明可参阅:SIM7020 Series_AT Command Manual。
命令 | 说明 | 返回值 |
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 |
本文主要介绍SIM7020模块TCP/IP通信功能。
SIM7020模块不支持透传,不支持 server 模式。
SIM7020 TCP/IP默认是多路client架构,共支持5路sockets,包括TCP或者UDP。
TCP/IP通信前,先根据上文“硬件配置”和“简单联网测试”操作,确保模块联网正常。
SIM7020模块TCP、UDP通信以及DNS解析和Ping功能。
说明:AT指令详细说明可参阅:SIM7020 系列_TCPIP协议_应用文档_V1.01,后续模组固件升级,对应的AT指令有可能更新。
TCP Client测试截图
相关指令:
AT指令 | 指令说明 | 返回值 |
AT+CSOC=1,1,1 | 创建 TCP socket, <socket_id>=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测试截图
多路sockets测试截图
相关指令:
AT指令 | 指令说明 | 返回值 |
AT+CSOC=1,2,1 | 创建 UDP socket, <socket_id>=0 | OK |
AT+CSOCON=4,524,"116.247.119.165" | 连接远端server | OK |
AT+CSOSEND=4,0,"Waveshare" | 发送数据 | OK |
AT+CSOCL=0 | 关闭socket | OK |
AT+CSOSENDFLAG | 使能发送ACK 回执 | OK |
AT+CSORCVFLAG | 使能接收ACK 回执 | OK |
AT+CSOCON? | 检查通信端口和类型 | OK |
本例演示SIM7020模块同时使用5路SOCKETS通信,相关指令参考TCP Client和UDP Client。
模块须正常注册上网络后,才能使用DNS解析和Ping功能,相关AT指令如下:
AT指令 | 指令说明 | 返回值 |
AT+CIPPING | Ping指令,如:AT+CIPPING="61.135.169.121" | OK |
AT+CDNSGIP | 解析服务器,如:AT+CDNSGIP="www.baidu.com" | OK |
本文主要介绍SIM7020模块HTTP通信功能,主要分HTTP GET和HTTP POST。
相关的AT指令详细说明可参阅:SIM7020 Series_HTTP_Application_Note。
HTTP GET测试截图1
HTTP GET测试截图2
相关指令:
AT指令 | 指令说明 | 返回值 |
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测试截图
相关指令:
AT指令 | 指令说明 | 返回值 |
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应答时间相对较长,请耐心等候。
本文主要介绍SIM7020模块MQTT通信功能。
相关的AT指令详细说明可参阅:SIM7020 Series_MQTT_Application_Note。
MQTT测试截图1
MQTT测试截图2
下文为方便演示MQTT通信功能,下文借助网上找到的MQTT测试工具进行测试。
相关指令:
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+):
SIM7020X NB-IoT HAT | Raspberry Pi |
5V | 5V |
GND | GND |
RXD | TXD (对应BCM的14) |
TXD | RXD (对应BCM的15) |
PWR | P7 (对应BCM的P4) |
接入树莓派实物图
模块出厂默认PWR引脚是通过跳线帽跳选到树莓派的P4引脚,为确保SIM7020X NB-IoT HAT接入树莓派后能正常工作,才需要初始化树莓派引脚的电平输出。
参考操作如下:
- chmod 777 sim7020_nbiot_hat_init
- sudo nano /etc/rc.local
- sh /home/pi/SIM7020X/sim7020_nbiot_hat_init
由于树莓派串口默认用于终端调试,如需使用串口,则需要修改树莓派设置。
- sudo raspi-config
- enable_uart=1
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。
进入SIM7020X下的bcm2835目录,编译安装bcm2835库,执行指令:
- chmod +x configure && ./configure && sudo make check && sudo make install
树莓派示例程序结构图参考下图:
下面以编译和运行AT示例程序为例:
- cd /home/pi/SIM7020X/examples/AT
- sudo make clean && sudo make && sudo ./main
AT TCP UDP
SIM7020X NB-IoT HAT引出了串口控制引脚,可用于接入STM32单片机使用;下表为STM32F103R管脚与模块引脚连接情况(微雪Open103V):
SIM7020X NB-IoT HAT | STM32F103 |
5V | 5V |
GND | GND |
RXD | PA2 (对应USART2的TX) |
TXD | PA3 (对应USART2的RX) |
TCP
Jetson Nano板载类似RaspberryPi 40Pin GPIO接口,SIM7020C NB -IoT HAT可直接接入使用,Jetson Nano的终端访问串口不影响与SIM7020C NB -IoT HAT(即Pin14和Pin15)串口通信。
SIM7020C-NB-IoT HAT | Jetson Nano |
---|---|
5V | 5V |
GND | GND |
TXD | 14 (BCM编码) |
RXD | 15 (BCM编码) |
PWR | 4(BCM编码) |
1、将SIM7020X NB-IoT HAT接入Jetson Nano中,按下PWRKER键两秒后开机
2、使用SERIAL登录Jetson Nano终端,安装minicom,在终端下输入:
- sudo apt-get install minicom
3、运行minicom进行串口调试,在终端下输入
- sudo minicom -D /dev/ttyTHS1 -b 115200
4、 发送AT指令测试,退出时按下PWRKEY按键三秒后开始关机,退出minicom先按Ctrl+A,再按X,最后按ENTER
安装函数库
- sudo apt-get python3-pip
- sudo pip3 install pyserial
- sudo apt-get install p7zip
使用wget工具下载源码到Jetson Nano指定文件夹,复制下面命令
- wget -P ~/Documents/ http://www.waveshare.net/w/upload/3/3d/SIM7020X-NB-IoT-HAT-Demo-Code.7z
进入刚创建并下载了源码的目录,使用p7zip工具解压到当前目录,并更改读写执行权限
- cd ~/Documents
- sudo p7zip --uncompress SIM7020X-NB-IoT-HAT-Demo-Code.7z
- sudo chmod 777 -R SIM7020X-NB-IoT-HAT-Demo-Code
SIM7020C NB-IoT HAT接入Jetson Nano,按PWRKEY键两秒开机
进入JetsonNano/AT目录,执行命令:
- cd ~/Documents/SIM7020X-NB-IoT-HAT-Demo-Code/JetsonNano/AT/
- sudo python3 AT.py
SIM7020C NB-IoT HAT接入Jetson Nano,若SIM7020C NB-IoT HAT未开机,按PWRKEY键两秒开机
- cd ~/Documents/SIM7020X-NB-IoT-HAT-Demo-Code/JetsonNano/TCP/
- sudo python3 TCP.py
SIM7020C NB-IoT HAT接入Jetson Nano,若SIM7020C NB-IoT HAT未开机,按PWRKEY键两秒开机
- cd ~/Documents/SIM7020X-NB-IoT-HAT-Demo-Code/JetsonNano/UDP/
- sudo python3 UDP.py
接入UNO PLUS
硬件连接到开发板UNO PLUS / Arduino UNO:
SIM800C GSM/GPRS HAT | UNO PLUS / Arduino UNO |
---|---|
5V | 5V |
GND | GND |
TX1 | 2 |
RX1 | 3 |
下载解压示例程序,
把Waveshare_SIM7600X_Arduino_Library文件夹复制到Arduino IDE安装路径下的Library目录下
打开Arduino IDE --> File -->Examples -->Waveshare SIM7600X,然后选择运行对应的示例程序:
SMS