R800C GSM/GPRS HAT

来自Waveshare Wiki
跳转至: 导航搜索

说明

R800C GSM/GPRS HAT
{{{name2}}}
{{{name3}}}
功能简介
特性 树莓派GSM/GPRS扩展
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 GSM UART RPi

产品概述

本产品是一款具有GSM(全球移动通信系统)和GPRS(通用分组无线服务)功能的树莓派扩展板。 具有体积小巧、功耗低等优点,可轻松实现打电话,发短信,无线上网等功能。

产品特性

  • 适用于Raspberry Pi Zero/Zero W/Zero WH/2B/3B/3B+/4B
  • 支持短信、GPRS、DTMF、HTTP、FTP、彩信、邮件等功能
  • 板载2个LED指示灯,方便查看模块运行状态
  • 板载SIM卡槽,支持1.8V和3V SIM卡
  • 支持自动识别波特率(1200bps ~115200bps)
  • 支持AT命令控制(3GPP TS 27.007,27.005和SIMCOM增强型AT命令集)
  • 支持SIM应用工具包:GSM 11.14 Release 99
  • 提供完善的配套资料手册(Raspberry/Jetson nano/Arduino等示例程序)

GSM/GPRS参数

  • 频段
    • EGSM 900/PCS 1900 MHz
    • 支持自动搜索2个频段
    • 满足GSM phase 2/2+ 标准
  • 发射功率
    • Class 4 (2W @ GSM 850/EGSM 900 MHz)
    • Class 1 (1W @ DCS 1800/PCS 1800 MHz)
  • GPRS连接特性
    • GPRS multi-slot class 12 (默认)
    • GPRS multi-slot class 1~12 (可配置)
  • GPRS 数据特性
    • 上行/下行传输速率:≤85.6kbps
    • 支持分组广播控制信道(PBCCH)
    • 编码格式:CS-1、CS-2、CS-3、CS-4
    • 支持用于PPP连接的PAP协议(密码验证协议)
    • 支持非结构化补充数据业务(USSD)
  • 短信(SMS)
    • 支持类型:MT、MO、CB、Text、PDU
    • 短信存储设备:SIM卡

其他参数

  • 供电电压:5V
  • 工作温度:-40°C ~ 85°C
  • 存储温度:-45°C ~ 90°C
  • 产品尺寸:30mm x 65mm

接口说明

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熄灭——未注册上网络
64ms亮/3000ms熄灭——已注册上网络
64ms亮/300ms熄灭——数据传输时
熄灭——关机或PSM休眠模式

接入电脑调试

硬件连接

通过串口模块接入电脑连接图

用户在使用R800C模块前除了micro USB线、GSM/蓝牙天线外,还需要另外准备以下东西:

硬件连接操作:

  1. 将GPRS卡安装到模块背面卡槽,并连接好LTE天线。(使用时须把 LTE天线 旋转到板子外侧,如右图所示)
  2. 把CP2102模块引脚对应接到R800C的串口1(或串口2),再用USB线连入电脑。
  3. 给R800C模块供电,此时PWR灯亮红灯,NET灯不亮状态。
  4. 按PWRKEY按键约1s松开,等待2秒左右,看到NET灯开始闪烁,则模块开机成功。
  5. 使用配套的串口助手打开,选择对应的串口端口和波特率115200,勾选加回车换行,打开扩展可看到实现录入的AT指令,点击对应的指令即可直接发送。

简单联网测试

简单联网测试截图

下表列举一些常用AT指令,可以简单快速地检测R800C的AT串口通信和网络连接是否正常。进行下文演示的联网通信实验前建议都先做简单联网测试,确认网络连接正常再操作。
相关的AT指令详细说明可参阅:R800C Series_AT Command Manual。

命令 说明 返回值
AT AT测试指令 OK
ATE ATE1设置回显,ATE0关闭回显 OK
AT+CSQ 网络信号质量查询,返回信号值 OK
AT+CGMR 查询固件版本 OK
AT+CREG? 查询网络注册状态 OK
AT+CGATT? 检查GPRS附着状态 OK

语音通话

【拨打电话】

拨打电话
  1. 正确安装 SIM 手机卡、 GSM 天线、连接好 TTL 串口,接通电源;
  2. 观察指示灯是否正常, PWR 指示灯常亮, STA 灯常亮, NET 灯闪烁;
  3. 查询 SIM 卡的状态,发送“AT+CPIN?+回车”,返回+CPIN: READY 正常;
  4. 拨打号码:“ATD10086;”,这里以 10086 为例;
  5. 挂断电话:“ATH+回车”,如下图所示;






【接听电话】

接听电话
  1. 设置来电显示:“AT+CLIP=1+回车”
  2. 接通:“ATA+回车”,挂断:“ATH+回车”







短信收发

【发送英文短信】

发送英文短信测试截图

测试步骤:

  1. AT+CMGF=1 :设置短信模式为TEXT
  2. AT+CMGS="phone number"<回车> ,设置接收方手机号 ,然后会返回:“>”
  3. 发送需要的内容,如“Send massage test!”,结尾不需要回车
  4. 编辑完短信后以十六进制的格式发送1A发信息发送
    (1A是“CTRL+Z”的键值,用于告诉模块执行发送操作,也可以发送1B即“ESC”取消操作)
  5. 发送成功后模块返回+CMGS:15 确认发送成功




【接收英文短信】

接收英文短信测试截图

测试步骤:

  1. 手机上发送一条:“This is a receive test for SIM7600X!”到试验模块上
  2. 接受到信息时,串口会制动上报信息,“SM”, 20,代表存在 SM 里面有20条信息了,刚刚发的信息就是第 20 条
  3. 读取信息:AT+CMGR=20 读取第20条信息(AT+CMGL="ALL" 为读取所有信息)
  4. 删除信息:AT+CMGD=20,如下图所示
  5. 将显示的信息通过编码转换器转换成文本。

【发送中文短信】

发送中文短信测试截图

测试步骤:

  1. AT+CMGF=1 ,设置为文本模式
  2. AT+CSCS="UCS2" , 设置信息文本为UCS2编码集
  3. AT+CSMP=17,167,2,25 //设置文本模式参数。
  4. AT+CMGS="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",设置接收方手机号的UCS2集;
  5. 等待返回>,此时发送进过转换的信息内容:005200380030003000436D4B8BD5(R800C测试)
  6. 结尾不需要回车,编辑完短信后以十六进制的格式发送1A发信息发送。

【接受中文短信】

  1. 发送 AT+CMGF=1 设置文本显示
  2. 发送 AT+CSCS="GSM"设置 GSM 编码集
  3. 接受到信息时,串口会自动上报信息,“SM”,59,代表存在SM里面有59条信息了,刚刚发的信息就是第59条
  4. 读取信息:AT+CMGR=59读取第 59 条信息(AT+CMGL="ALL" 为读取所有信息)在软件中把信息转成中文,如下图所示


TCP/IP通信

TCP/IP应用程序的结构

R800系列模块的 TCP/IP应用有两种连接模式,可以通过命令AT+CIPMUX=<n>来设置。当AT+CIPMUX=0时,是单链路模式;当AT+CIPMUX=1时,是多链路模式。默认设置是单链路模式。

当在单链路模式下,R800系列模块可以工作在透传模式和非透传模式。这两种传输模式下,模块可以被配置为TCP/UDP客户端或TCP服务器。

当在多链路模式下,R800系列模块只工作在非透传模式。

在这种模式下,模块可以作为一个绝对的TCP/UDP连接的客户端,它总共可以建立6路连接;它也可以被配置为一个TCP服务器,另外还可以配置5路TCP/UDP的客户端。R800C TCP/IP默认是多路client架构,共支持5路sockets,包括TCP或者UDP。

下文将侧重演示R800C在单链路非透传模式和透传模式下的客户端通信。

TCP/IP通信相关的详细使用说明请见:R800C Series_TCPIP_Application_Note。


【非透传模式下的客户端通信】

相关指令:

非透传模式TCP Client测试截图
AT指令 指令说明 返回值
AT+CGATT? 检查GPRS附着状态 OK
AT+CSTT="CMNET" 设置APN OK
AT+CIICR 建立无线链路 OK
AT+CIFSR 获得本地IP地址 OK
AT+CIPSTART="TCP","118.190.93.84",2317 建立TCP客户端链接 OK
AT+CIPSTART="UDP","118.190.93.84",2317 建立UDP客户端链接 OK
AT+CIPSEND=<字符长度> 发送指定长度字符串 OK
AT+CIPCLOSE 关闭链路通信 OK
AT+CIPSHUT 关闭PDP上下文连接 OK

【透传模式下的客户端通信】

相关指令:

透传模式TCP Client测试截图
AT指令 指令说明 返回值
AT+CGATT? 检查GPRS附着状态 OK
AT+CIPMODE=1 设置为透传模式 OK
AT+CSTT="CMNET" 设置APN OK
AT+CIICR 建立无线链路 OK
AT+CIFSR 获得本地IP地址 OK
AT+CIPSTART="TCP","118.190.93.84",2317 建立TCP客户端链接 OK
AT+CIPSTART="UDP","118.190.93.84",2317 建立UDP客户端链接 OK
AT+CIPSEND=<字符长度> 发送指定长度字符串 OK
AT+CIPCLOSE 关闭链路通信 OK
AT+CIPSHUT 关闭PDP上下文连接 OK

通过下面的方法可以在透传模式和命令模式间自由切换。

(1) 如果AT+CIPCCFG 的第四个参数是1,那么支持通过转义序列退出透传模式。 默认的转义序列是 +++,要正确使用该序列,必须保证该序列前有 1000ms 空闲,在该序列之后有1000ms的空闲。还需要注意的是,每个+之间的间隔不要超过1000ms,否则它有可能被当做TCP/IP 数据。

(2) 可以使用串口的DTR 脚。要使用这个方法, 首先要设置AT&D1, DTR 脚至少接地 1 秒然后拉高。这个方法可以从数据模式切换到命令模式。上报字串“OK” 表示模块当前处于命令模式。

(3) 对于TCP客户端链接,如果远端服务器断开了链接,模块会自动切换到命令模式。

(4) 对于TCP服务器链接,如果远端客户端断开了链接,模块也会自动切换到命令模式。

(5) 重启模块。

HTTP通信

本章节主要介绍R800C模块HTTP通信功能,主要分HTTP GET和HTTP POST。

HTTP和FTP通信功能详细使用说明请见:R800C Series_IP_Application_Note。

【HTTP GET】

相关指令:

HTTP GET测试截图1
AT指令 指令说明 返回值
AT+SAPBR=3,1,"Contype","GPRS" 配置承载场景1 OK
AT+SAPBR=3,1,"APN","CMNET" 配置承载场景APN OK
AT+SAPBR=1,1 激活一个 GPRS 上下文 OK
AT+SAPBR=2,1 查询 GPRS 上下文 OK
AT+SAPBR=0,1 关闭 GPRS 上下文. OK
AT+HTTPINIT 检查HTTP连接状态 OK
AT+HTTPPARA="CID",1 设置HTTP会话参数 OK
AT+HTTPPARA="URL","www.sim.com" 设置HTTP会话参数 OK
AT+HTTPACTION=0 GET会话开始 OK
AT+HTTPREAD 读取HTTP服务器的数据 OK
AT+HTTPTERM 结束HTTP服务 OK

【HTTP POST】

相关指令:

HTTP POST测试截图
AT指令 指令说明 返回值
AT+SAPBR=3,1,"Contype","GPRS" 配置承载场景1 OK
AT+SAPBR=3,1,"APN","CMNET" 配置承载场景APN OK
AT+SAPBR=1,1 激活一个 GPRS 上下文 OK
AT+SAPBR=2,1 查询 GPRS 上下文 OK
AT+SAPBR=0,1 关闭 GPRS 上下文. OK
AT+HTTPINIT 检查HTTP连接状态 OK
AT+HTTPPARA="CID",1 设置HTTP会话参数 OK
AT+HTTPPARA="URL","www.sim.com" 设置HTTP会话参数 OK
AT+HTTPDATA=100,10000 上传100字节数据,等待10000毫秒 OK
AT+HTTPACTION=1 GET会话开始 OK
AT+HTTPTERM 结束HTTP服务 OK


接入树莓派使用

硬件连接

与树莓派引脚连接图

R800C GSM GPRS HAT板载树莓派GPIO接口,可直接插入各版本树莓派使用; 下表为树莓派管脚与模块引脚连接情况(树莓派三代B+):


R800C GSM/GPRS HAT Raspberry Pi
5V 5V
GND GND
RXD TXD (对应BCM的14)
TXD RXD (对应BCM的15)
PWR P7 (对应BCM的P4)

软件配置

【引脚初始化】

接入树莓派实物图

模块出厂默认PWR引脚是通过跳线帽跳选到树莓派的P4引脚,为确保R800C GSM/GPRS HAT接入树莓派后能正常工作,才需要初始化树莓派引脚的电平输出。

参考操作如下:

  • 下载示例程序,把R800C整个文件夹复制到/home/pi/ 路径下,
wget https://www.waveshare.net/w/upload/1/10/R800C_GSM_GPRS_HAT_Code.zip
unzip R800C_GSM_GPRS_HAT_Code.zip
cd R800C_GSM_GPRS_HAT_Code
  • 命令行进入到/home/pi/目录下,执行指令
chmod 777 pi_gpio_init.sh
  • 设置开机初始化脚本,运行命令:
sudo nano /etc/rc.local
  • 在exit 0前面加入 (如下图所示):
sh /home/pi/SIM800C/pi_gpio_init.sh

SIM800C-030.png

【串口配置】

由于树莓派串口默认用于终端调试,如需使用串口,则需要修改树莓派设置。

  • 执行如下命令进入树莓派配置:
sudo raspi-config
  • 选择Interfacing Options ->Serial ->no -> yes,关闭串口调试功能。
  • 打开/boot/config.txt文件,找到如下配置语句使能串口,如果没有,可添加在文件最后面:
enable_uart=1
  • 重启生效。


树莓派minicom调试

将模块插入树莓派中,安装minicom,minicom是linux平台串口调试工具:

sudo apt-get install minicom

执行minicom -D /dev/ttyS0 可进入minicom串口调试界面

默认波特率为115200,ttyS0为树莓派3B/3B+的串口,Zero/2B为ttyAMA0

树莓派pppd拨号上网

在树莓派Raspbian系统,R800C支持通过串口进行pppd拨号上网,操作步骤如下:

1、安装ppp

sudo apt-get install ppp

2、切换到root用户

sudo  su

3、进入/etc/ppp/peers目录,复制provider文件并命名为gprs

cd /etc/ppp/peers
cp provider gprs

4、打开并编辑gprs(这里用nano打开举例)

打开并编辑gprs文件

5、运行命令后台启动拨号

pppd call gprs &

启动拨号

6、运行ifconfig命令可以看到ppp0网卡

Ifconfig

查看网卡状态

7、此时若无法正常上网,提示dns解析不了,可增加如下命令配置路由表

route add -net 0.0.0.0 ppp0

树莓派bcm2835例程

使用过minicom与拓展板串口通信后,需要先重启拓展板,反之亦然。

安装bcm2835库

下载例程,解压后,进入R800C_python下的目录:

cd R800C_GSM_GPRS_HAT_Code/Raspberry/bcm2835/bcm2835
chmod +x configure && ./configure && sudo make && sudo make install
#等待bcm2835库编译并安装完成

如果编译安装过程出现问题,可参考FAQ。

拓展板基本通信例程

输入基本AT指令,接收拓展板回复。

make clean && make
sudo ./main

运行程序后,程序会先检查与模块之间的串口信是否正常,通信正常后会自动发送一系列指令检查模块状态;完成检查即可根据提示自行输入AT指令控制模块。
R800C 21.png

拨打电话例程

检查拓展板通讯状态正常后,在拓展板上插入耳机,运行此例程,完成拨号,一段时间之后会自动挂断电话,拨打的电话号码和挂断前时间可以在程序文件中自行设置。

make clean && make
sudo ./main

R800 22.png

发送英文短信例程

检查拓展板通讯状态正常后,运行此例程,程序会根据提预先设置好的短信收件人号码和英文短信内容,发送成功后返回成功标志。短信收件人和英文短信内容可在程序中自行修改。

make clean && make
sudo ./main

R800C 22.png

树莓派python例程

使用过minicom与拓展板串口通信后,需要先重启拓展板,反之亦然。
下载例程,解压后,进入python的目录:

cd R800C_GSM_GPRS_HAT_Code/Raspberry/python

拓展板基本通信例程

输入基本AT指令,接收拓展板回复。

python AT.py

检查状态例程

发送一系列检查拓展板状态指令,获取拓展板连接信息。

python check.py

检查通讯状态

拨打电话例程

检查拓展板通讯状态正常后,在拓展板上插入耳机,运行此例程,根据提示输入正确电话号码,完成拨号;使用ctrl+C挂断电话并终止程序。

python call.py

拨打电话

发送英文短信例程

检查拓展板通讯状态正常后,运行此例程,根据提示先后输入短信收件人号码和英文短信内容,发送成功一段时间后程序自动结束。

python send_message.py

发送英文短信
若拓展板通讯状态检查结果正常,但短信发送失败,可尝试更换短信中心号码(非必要不要修改)

nano send_message.py      #这里用nano举例,也可使用其它编辑器

修改短信中心号码

接入Arduino使用

硬件连接

接入UNO

硬件连接到开发板UNO PLUS / Arduino UNO:

R800C GSM GPRS HAT UNO PLUS / Arduino UNO
5V 5V
GND GND
TX1 2
RX1 3

Arduino示例演示

接入Jetson Nano使用

硬件连接

Jetson Nano板载40Pin GPIO接口,R800C-GSM-GPRS-HAT可直接接入使用,Jetson Nano的终端访问串口不影响与R800C-GSM-GPRS-HAT(即Pin10和Pin8)串口通信。

R800C-GSM-GPRS-HAT Jetson Nano
5V 5V
GND GND
TXD 10 (Board编码)
RXD 8 (Board编码)
PWRKEY 7(Board编码)

SIM800C-036.png

Jetson Nano minicom串口调试

1、将R800C GSM GPRS 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
SIM800C-037.png

Python例程

安装函数库后

sudo apt-get python3-pip
sudo pip3 install pyserial
sudo apt-get install p7zip

使用wget工具下载源码到Jetson Nano指定文件夹,复制下面命令

mkdir -p ~/Documents/R800C_GSM_GPRS
wget -P ~/Documents/R800C_GSM_GPRS/ https://www.waveshare.net/w/upload/1/10/R800C_GSM_GPRS_HAT_Code.zip

进入刚创建并下载了源码的目录,使用p7zip工具解压到当前目录

cd ~/Documents/R800C_GSM_GPRS/
sudo p7zip --uncompress R800C_GSM-GPRS_HAT_Code.7z
sudo chmod 777 -R Jetson\ Nano

SIM800C-038.png

AT

R800C GSM GPRS HAT接入Jetson Nano,接入天线,按住PWRKEY按键两秒开机,退出时按下Ctrl+C。 进入Jetson Nano/AT目录,执行命令:

cd ~/Documents/R800C_GSM_GPRS/Jetson\ Nano/AT/
sudo python3 AT.py

SIM800C-039.png

SMS

R800C GSM GPRS HAT接入Jetson Nano,接小辣椒天线,例程使用了软件开机关机,无需按下按键进行开关机。本例程发送信息www.waveshare.com给指定号码后,会自动软件关机。用户使用SMS例程时,须先使用vim等工具更改SMS.py文件中第10行的号码,将*替换成数字,保留 ' 符号,vim使用请点击此句参考
进入Jetson Nano/SMS目录,执行命令:

cd ~/Documents/R800C_GSM_GPRS/Jetson\ Nano/SMS/
sudo python3 SMS.py

SIM800C-040.png

TCP

SIM800C GSM GPRS HAT接入Jetson Nano,接入小辣椒天线,例程使用了软件开机关机,无需按下按键进行开关机。
进入Jetson Nano/TCP目录,执行命令:

cd ~/Documents/R800C_GSM_GPRS/Jetson\ Nano/TCP
sudo python3 TCP.py

SIM800C-041.png


说明:更多示例程序持续更新中… …

资料


视频

文档

程序

软件

应用手册

相关教程

树莓派入门教程(新)
树莓派入门教程
树莓派OpenCV教程
树莓派littleGL系列教程
树莓派QT教程
树莓派OpenWrt教程


FAQ

  • 解决方法:
autoreconf -vfi  

再重新编译安装:

sudo make && sudo make install
详见下图:

Bcm2835-make-error-2.jpg



技术支持


联系人:黄工
EMAIL:3005423122@qq.com
电话:0755-83040712
QQ:3005763927
微信:扫下方二维码添加
Hkx-wx.jpg

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证