GSM/GPRS/GNSS HAT
产品简介
本产品是具有GSM(全球移动通信系统)、GPRS(通用分组无线服务)、GNSS(全球导航卫星系统)和Bluetooth(蓝牙)功能的树莓派扩展板。
体积小、功耗低、功能强!带上我,你的树莓派将可以轻松实现打电话,发短信,无线上网,全球定位,蓝牙数据传输等功能。
产品特性
- 基于树莓派标准接口设计,兼容并可直接插入Raspberry Pi 2代B/3代B/Zero/Zero W
- 支持短信、电话、GPRS、DTMF、HTTP、FTP、彩信、邮件等功能
- 支持GPS、北斗、Glonass、LBS基站定位,全方位定位
- 支持蓝牙3.0,可进行蓝牙数据传输
- 板载CP2102 USB转UART芯片,方便进行串口调试
- 板载6个LED指示灯,方便查看模块运行状态
- 板载SIM卡槽,支持1.8V和3V SIM卡
- 支持RTC实时时钟,带备用电池卡座
- 支持自动识别波特率(1200bps ~115200bps)
- 支持AT命令控制(3GPP TS 27.007,27.005和SIMCOM增强型AT命令集)
- 支持SIM应用工具包:GSM 11.14 Release 99
- 提供完善的配套资料手册(Raspberry/Arduino/STM32等示例程序)
GSM/GPRS参数
频段
- GSM 850/EGSM 900/DCS 1800/PCS 1900 MHz
- 支持自动搜索4个频段
- 满足GSM phase 2/2+ 标准
发射功率
- Class 4 (2W @ GSM 850/EGSM 900 MHz)
- Class 1 (1W @ DCS 1800/PCS 1900 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卡
音频特性
- 语音编解码模式:Half Rate、Full Rate、Enhanced Full Rate、Adaptive Muti Rate
- 支持回音消除功能
- 支持噪声抑制功能
GNSS参数
接收
- 33个跟踪通道
- 99个采集通道
- GPS L1 C/A code
灵敏度
- 追踪 :-165 dBm
- 冷启动 :-148 dBm
首次定位时间
- 冷启动:28s(typ.)
- 热启动:<1s
- 暖启动:26s
精度
- 确定位: < 2.5米CEP
Bluetooth参数
- 集成AT指令控制
- 符合蓝牙specification3.0 + EDR
- 支持 SPP, OPP, HFP/HSP 等功能
其他参数
- 工作电压:5V
- 产品尺寸:30.2mm x 65mm
- 工作温度:-40°C ~ 85°C
- 存储温度:-45°C ~ 90°C
Windows调试
硬件配置
用户在使用模块前除了本身配备的电源、micro USB 线、GSM 天线、GPS 天线和蓝牙天线外,还需要准备以下 2 样东西:
- 一张 SIM 卡(中国移动或中国联通),未停机,并开通 GPRS 功能(否则无法进行 GPRS 功能测试)
- 一副带麦克风的耳机(用于测试通话功能)
- 将 SIM 卡安装到 SIM 卡槽,接上耳机
- 安装 CP2102 驱动,将跳帽插于跳线 B 上,把 micro USB 线一端接 PC 机的 USB 接口,另一端接 GSM/GPRS/GNSS HAT 的 USB TO UART 接口,PWR 灯变常亮状态;
- 在设备管理器里面可以看到 CP2102 对应的 COM 口。例如下图所示是 COM7,用户以自己 PC识别到的 COM 口为准。
- 长按模块的 PWRKEY 按键约 1 秒,可以看到 NET 灯亮起,并开始闪烁,如下图所示。
正常可以看到 NET 灯先快闪(1 秒闪 1 次),表示还没有注册到网络。当注册到网络后,NET灯开始慢闪(3 秒闪 1 次)。注册网络过程需要几秒到几十秒不等,这取决于所在地 GSM 网络的状态。
如果长时间无法注册成功,请检查 GSM 天线、SIM 卡是否连接正常,SIM 卡是否已停机。
使用电脑USB调试,需要将此处的跳冒接至A
GSM调试
AT 指令请查阅:SIM800 Series_AT Command Manual_V1.10
拨打电话
- 正确安装 SIM 手机卡、 GSM 天线、连接好 TTL 串口,接通电源;
- 观察指示灯是否正常, PWR 指示灯常亮, STA 灯常亮, NET 灯闪烁;
- 查询 SIM 卡的状态,发送“AT+CPIN?+回车”,返回+CPIN: READY 正常;
- 拨打号码:“ATD10086;”,这里以 10086 为例;
- 挂断电话:“ATH+回车”,如下图所示;
接听电话
- 设置来电显示:“AT+CLIP=1+回车”
- 接通:“ATA+回车”,挂断:“ATH+回车”
发送英文短信
- 正确安装 SIM 手机卡、GSM 天线、连接好 TTL 串口,接通电源;
- 观察指示灯是否正常, PWR 指示灯常亮, STA 灯常亮, NET 灯闪烁;
- 设置当地短信中心:AT+CSCA="+8613800755500"+回车,返回 OK。注:短信中心每个地方可能不一样,具体可百度查询或拨打移动联通客服,此短信中心为深圳;
- AT+CMGF=1:设置短信模式为 TEXT ;
- AT+CMGS="xxxxxxxxxxx"<回车> ,设置接收方手机号 ,然后会返回:>,发送需要发送的内容,结尾不需要回车,编辑完短信后以十六进制的格式发送 1A 发信息发送(0x1A 是“CTRL+Z”
- 的键值,用于告诉模块执行发送操作,也可以发送 0x1B 即“ESC”取消操作),发送成功后模块返回+CNGS:174 确认发送成功。
接受英文短信
- 正确安装 SIM 手机卡、GSM 天线、连接好 TTL 串口,接通电源;
- 手机上发送一条:“this is a receive test”到试验模块上
- 接受到信息时,串口会制动上报信息,“SM”, 3,代表存在 SM 里面有 3 条信息了,刚刚发的信息就是第 3 条
- 读取信息:AT+CMGR=3 读取第 3 条信息(AT+CMGL="ALL" 为读取所有信息)
- 删除信息:AT+CMGD=3,如下图所示
发送中文短信
- AT+CSCS="UCS2", 设置信息文本为 UCS2 编码集
- AT+CSMP=17,128,2,25
- AT+CMGS="00310038003500360035003700300038003600340030",设置接收方手机号的 UCS2集;
- 等待返回>,此时发送进过转换的信息,结尾不需要回车,编辑完短信后以十六进制的格式发送 1A 发信息发送,如下图所示。
接受中文短信
- 发送 AT+CMGF=1 设置文本显示
- 发送 AT+CSCS="GSM"设置 GSM 编码集
- 接受到信息时,串口会制动上报信息,读取信息:AT+CMGR=3 ,在软件中把信息转成中文,如下图所示。
GPS调试
AT 指令请查阅:SIM868 Series GNSS Application Note V1.00
- 插上 GPS 天线,并将接收器置于空旷的室外
- 打开 GPS 电源: AT+CGNSPWR=1
- 查询波特率:AT+CGNSIPR?
- 打开 GPS 数据流输出:AT+CGNSTST=1,得到定位信息,如下图所示
- 关闭串口助手,打开 u-center 软件设置端口(Port)和波特率(Baudrate)。端口号为串口读取的端口号。波特率设置为之前查询到的波特率。(端口和波特率可以在 Receiver 里面设置,也可以在面板图标上面直接设置),如下图所示:
- 选择 Connecte,即可看到 GPS 信息,如下图所示
GPRS 调试
AT 指令请查阅:SIM800 Series_AT Command Manual_V1.10
设置本地电脑虚拟服务器
虚拟服务器定义了广域网服务端口和局域网网络服务器之间的映射关系,所有对该广域网服务端口的访问都会被重新定位给通过 IP 地址指定的局域网网络服务器。(请参阅您的路由器对应厂商的说明书)
- 使用浏览器登录到路由器管理界面(具体地址请参阅您的路由器说明书)
- 设置端口号:5000(与已有的端口号不冲突即可。本例设为 5000)
- 设置电脑端内网 IP(局域网内电脑获取的 IP,可以在本机运行 CMD,进入命令行提示符,输入 ipconfig 查看 IPv4 地址,本例的电脑内网 IP 是 192.168.1.14),如下图所示
获取外网 IP
外网 IP 可以通过浏览器搜索 IP 获得,如下图所示
配置 GPRS
- AT+CSQ 查询网络信号质量,其中第一个参数为网络信号质量最大为 31,此数值越大说明网络信号越强
- AT+CREG? 查询网络注册情况,其中第二个参数为 1 或 5 则说明已经注册成功
- AT+CGATT? 查询模块是否附着 GPRS 网络
- AT+CSTT="CMNET",根据实际网络设置 APN,这里以移动为例
- AT+CIICR 激活移动场景
- AT+CIFSR 获得本地 IP 地址
- AT+CIPSTART="TCP","113.81.232.4",5000 建立 TCP/IP 连接,如下图所示
发送数据
- AT+CIPSEND 模块向服务器
- 等待返回>,此时输入要发送的数据,结尾不需要回车,编辑完短信后以十六进制的格式发送 1A 发信息发送
- 发送完成,服务器会收到模块发送过来的数据,如下图所示
接收数据
- AT+CIPSEND 模块向服务器
- 在 peers 选择设备端 IP 地址
- 在服务器中输入要发送的数据如:hello,i am server,please receive my message
- 点击发送,在串口助手即可收到信息,如下图所示
关闭连接
- 发送 AT+CIPCLOSE 或 AT+CIPSHUT 关闭连接
蓝牙调试
更多 AT 指令请查阅:SIM800 系列_BT_应用文档_V1.04
配置蓝牙
- 将蓝牙天线连接到 GSM 模块的蓝牙天线接口上面。打开手机蓝牙,并且开放检测,使手机蓝牙能够被未配对的设备搜索到
- AT+BTPOWER=1,打开蓝牙电源
- AT+BTHOST?,查询模块名称和地址,可以通过 AT+BTHOST=<Name>指令来修改模块的蓝牙名称
- AT+BTSCAN=1,10 ,搜索蓝牙附件设备,收索时间 10S,搜索过程中,串口会打印搜索到的蓝牙设备的信息。例如+BTSCAN: 0,2,"H60-L01",50:a7:2b:bb:a4:50,-47。其中 0,2 是设备 ID,“H60-L01”是设备名称,50:a7:2b:bb:a4:50 是设备的 MAC 地址,-47 是设备的 RSSI 值
- AT+BTPAIR=0,2 ,主动请求匹配设置,第二个参数为第四步获取的设备 ID,如果返回error,AT+BTUNPAIR=0 清除配对信息,重新配对即可
- 发送配对指令成功后,会看到手机弹出配对信息,手机端点击配对后,需要发送AT+BTPAIR=1,1 确认既可配对。如果没有发送 AT+BTPAIR 指令确认配对,在等待一段时间后,手机端会弹配对失败信息。需要重新发起配对指令。也可以由手机端发起配对,模块输入AT+BTPAIR=1,1 即可确认配对,如下图所示
蓝牙连接
- 使用蓝牙 APP 与模块进行蓝牙连接和通信,这里可扫描对应二维码下载我们提供的蓝牙 APP,使用其中的串口功能进行测试。(该蓝牙 APP 只做简单测试使用,不提供其他功能)
- 打开 APP,点击右上角的扫描搜索蓝牙设备,点击“SIM868”(模块的蓝牙名字,这里我将模块名字定义为 SIM868),然后点击串口控制连接。模块接收到连接信息后,会显示
+BTCONNECTING:信息表示模块正在等待连接,如果一段时间不做回应的话,手机端会提示连接失败,同时模块显示+BTDISCONN:提示连接失败。
- 重新进行一次连接,发送 AT+BTACPT=1 确认连接。模块会显示+BTCONNECT 信息提示连接 SPP成功。同时手机端可以发送数据。
- 模块接收到手机蓝牙发送过来的数据,会以设备 ID,字符长度,数据内容的形式打印到串口上面。
- 发送 AT+BTSPPSEND 发送数据。等待>符号出现,输入数据内容,结尾不换行结束输入。十六进制格式发送 1A 将输入的数据发送出去。可以看到手机端成功接收到数据,如下图所示:
树莓派使用
配置串口
- 打开树莓派终端,输入指令进入配置界面
sudo raspi-config
- 选择Interfacing Options -> Serial->No->Yes
- 重启系统
sudo reboot
安装库
- 安装Python函数库
sudo apt-get update sudo pip install RPi.GPIO sudo apt-get install python-serial
minicom调试
- 安装minicom调试助手,并调试
sudo apt-get install minicom # 对于树莓派3B\3B+\4B得串口 sudo minicom -D /dev/ttyS0 -b 9600 # 对于树莓派ZERO\2B sudo minicom -D /dev/ttyAMA0 -b 9600 # 对于树莓派3B的USB口,使用树莓派USB调试,需要将跳冒接至A sudo minicom -D /dev/ttyUSB0 -b 9600
默认波特率为115200,如需设置波特率为9600加参数 -b 9600,-D代表端口,/dev/ ttySO 类似于windows中的COM1,如果不是树莓派3,那么是minicom -D /dev/ttyAMA0,再将模块连接树莓派。
以蓝牙测试为例,发送相关指令,如下图所示:
退出:Ctrl+A 然后单独按X,YES 回车
测试例程
- 下载程序
sudo apt-get install p7zip wget http://{{SERVERNAME}}/w/images/1/1f/GSM-GPRS-GNSS-HAT-Code.7z 7zr x GSM-GPRS-GNSS-HAT-Code.7z -r -o./GSM-GPRS-GNSS-HAT-Code sudo chmod 777 -R GSM-GPRS-GNSS-HAT-Code cd GSM-GPRS-GNSS-HAT-Code/GSM-GPRS-GNSS-HAT-Code/Raspberry\ Pi/
- python程序,提供打电话、获取GPS、发送信息三种例程
sudo python call_phone.py sudo python send_message.py sudo python gps.py