模板: SIM7000C NB-IoT HAT Manual
产品概述
我是一款具有 NB-IoT(窄带物联网)、eMTC(增强机器类通信) 、EDGE(增强型数据速率 GSM 演进)、GPRS(通用分组无线服务)和 GNSS(全球导航卫星系统)功能的树莓派扩展板。 NB-IoT 和 eMTC 都是基于 LTE(4G)演化来的新兴物联网通信技术,具有低功耗、低成本、广覆盖等优点,非常适用于如智能仪表、远程控制、资产跟踪、远程监控、远程医疗、移动 POS 终端和共享单车等物联网应用。而 GSM/GPRS、EDGE 是传统 2G 和 2.5G 通信技术,支持使用手机卡进行发短信和无线通信等应用。所以无论你是要尝鲜新技术,做评估对比,亦或是想支持多种方式通信和定位等功能,那我都是不错的选择。
产品特性
- 适用于 Raspberry Pi Zero/Zero W/Zero WH/2B/3B/3B+
- 适用于 Raspberry Pi Zero/Zero W/Zero WH/2B/3B/3B+
- 支持 TCP、UDP、PPP、HTTP、FTP、MQTT、短信、邮件等功能
- 支持 GNSS 定位(GPS、GLONASS 和北斗)
- 板载 USB 接口,可用于测试 AT 指令、获取 GPS 定位信息等
- 引出 UART 控制引脚,可接入 Arduino/STM32 等主控板
- 板载电平转换电路,默认为 3.3V 工作,可通过 0 欧电阻设置成 5V
- 板载 SIM 卡槽,支持普通 SIM 卡和 NB-IoT 专用卡
- 板载 2 个 LED 指示灯,方便查看模块运行状态
- 支持串口波特率(300bps ~3686400bps)
- 支持 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卡本身支持)
GNSS参数
- 接收
- 16 个通道
- C/A code
- 灵敏度
- 追踪 :-162 dBm (GPS) / -157 dBm (GLONASS) / TBD (北斗)
- 冷启动 :-148 dBm
- 首次定位时间
- 冷启动:<35s
- 热启动:<1s
- 精度
- 确定位: < 2.5 米 CEP
其他参数
- 供电电压:5V
- 工作电压:5V / 3.3V (默认为 3.3V)
- 休眠模式电流:1.2mA(@DRX=2.56s)
- 省电模式电流:9uA
- 工作温度:-40°C ~ 85°C
- 存储温度:-45°C ~ 90°C
- 产品尺寸:30.2mm 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熄灭——未注册上网络 |
接入电脑调试
硬件配置
用户在使用模块前除了 micro USB 线、LTE 天线、GPS 天线外,还需要准备以下东西:
- 一张普通 SIM 卡(未停机,移动或联通卡,且开通 GPRS)或 NB-IoT 专用卡(电信、移动或联通)。
1. 将 SIM 卡安装到 SIM 卡槽,并连接好 GSM 天线,再接上 USB 线到电脑。
2. 把 micro USB 线一端接 PC 机的 USB 接口,另一端接 SIM7000X NB-IoT HAT 的 USB 接口,PWR 灯亮红灯,NET 灯不亮状态。
3. 等待约十秒左右,看到 NET 灯开始隔一秒闪烁一次,则模块开始工作。
4. 第一次把模块接入电脑使用,设备管理器识别到的设备会出现叹号,则表示还没有安装驱动,需要按下图操作加载驱动,驱动文件见 wiki 百科: http://www.waveshare.net/wiki/SIM7000C_NB-IoT_HAT。
5. 驱动安装完成后,设备管理器里面可以看到多出下图所示 COM 口。
简要测试说明
AT | AT测试指令 | OK |
ATE | ATE1设置回显 关闭回显 | OK |
AT+CSQ | 网络信号质量查询,返回信号值 | OK |
AT+CNMP | 工作模式选择命令:
13:GSM only |
OK |
AT+CMNB | CAT-M 与 NB-IOT 选择命令:
1: CAT-M |
OK |
AT+NBSC | 扰码设置(需与基站的扰码设置一致、一般是打开的) 0: 关闭 |
OK |
AT+CGATT? | 查寻网络是否有附着 | +CGAT:1 OK |
AT+CPSI? | 查询网络注册信息 | +CPSI:LTE OK |
AT+CSQ | 查询信号强度 | +CSQ:17,99 OK |
AT+CGNAPN | 查询APN | +CGNAPN OK |
AT+CSTTT=“ctnb” | 设置对应的 APN | OK |
AT+CIICR | 激活移动场景 | OK |
AT+CIFSR | 获取本地IP地址 | 返回IP |
AT+CIPSTART="TCP","IP 地址",端口 | 连接 TCP 服务器,此步骤需要确保对应的 TCP 服务器存在,并可以正常连接通信 | OK CONNECT OK |
AT+CIPSEND=12 | 发送数据(12 代表只发送 12 字节数据) | >SEND OK |
AT+CIPCLOSE=1 | 关闭TCP连接 | CLOSE OK |
AT+CIPSHUT | 关闭移动场景 | SHUT OK |
网络注册
1. 网络注册配置使用的 AT 命令,以下命令支持掉电保存,模块重启后生效。
AT指令 |
指令说明 |
返回值 |
AT+CNMP=<mode> |
工作模式选择命令: |
OK |
AT+CMNB=<mode> |
CAT-M 与 NB-IOT 选择命令: |
OK |
AT+NBSC=<mode> |
扰码设置(需与基站的扰码设置一致、一般是打开的) |
OK |
2.使用 NB-IOT 网络注册需要以下参数:CNMP=38、CMNB=2、以及 NBSC 值
3.使用 GSM 网络注册需要确认以下参数:CNMP=13
AT+CGATT? 可查询网络是否注册,AT+COPS? 和 AT+CPSI?可查询网络注册的相关信息。 NB 的
网络注册会比 GSM 慢些,特别是电信 NB-IOT 网络(BAND 5)首次开机注册时间需要 1 分钟左右。
GPRS调试
GPRS 调试须用开通了 GPRS 联网功能的 SIM 卡,国内支持移动和联通手机卡。
下例以接入移动 SIM 卡为例:
1. 正确安装移动手机卡(须开通 GPRS 联网功能)、 GSM 天线、连接好 USB 线到电脑;
2. 启动模块,等待十几秒;
3. 观察指示灯是否正常, PWR 指示灯常亮, NET 灯闪烁;
4. 详细测试指令和截图如下:
常用AT指令
命令 |
AT+CGATT?查询模块是否附着 GPRS 业务 |
+CGATT:1 |
AT+CSTT |
AT+CSTT="CMNET"启动任务并设置接入点为"CMNET" |
OK |
AT+CIICR |
连接 GPRS |
OK |
AT+CIFSR |
获取模块 GPRS本地IP |
OK |
AT+CIPSTART |
AT+CIPSTART="Mode", "IP_Addr", "Port" |
CONNECT |
AT+CIPSEND |
发送数据 |
OK |
1A | 十六进制发送结束一次数据发送 | SEND OK |
AT+CIPCLOSE | 结束连接 | CLOSE OK |
AT+CIPSHUT | 关闭GPRS连接 | SHUT OK |
设置本地电脑虚拟服务器
虚拟服务器定义了广域网服务端口和局域网网络服务器之间的映射关系,所有对该广域网服务端口的访问都会被重新定位给通过 IP 地址指定的局域网网络服务器。(请参阅您的路由器对应厂商的说明书)
1. 使用浏览器登录到路由器管理界面(具体地址请参阅您的路由器说明书)
2. 设置端口号:1822(与已有的端口号不冲突即可。本例设为 1822)
3. 设置电脑端内网 IP(局域网内电脑获取的 IP,可以在本机运行 CMD,进入命令行提示符,输入 ipconfig 查看 IPv4 地址,本例的电脑内网 IP 是 192.168.6.168),如下图所示
获取外网IP
外网 IP 可以通过浏览器搜索 IP 获得,如下图所示
配置 GPRS
1. AT+CSQ 查询网络信号质量,其中第一个参数为网络信号质量最大为 31,此数值越大说明网络信号越强
2. AT+CREG? 查询网络注册情况,其中第二个参数为 1 则说明已经注册成功
3. AT+CGATT? 查询模块是否附着 GPRS 网络
4. AT+CSTT="CMNET",根据实际网络设置 APN,这里以移动为例
5. AT+CIICR 激活移动场景
6. AT+CIFSR 获得本地 IP 地址
7. AT+CIPSTART="TCP","113.81.232.178",1822 建立 TCP/IP 连接
8. AT+CIPSEND=33,为指定发送 33 个字符的数据,返回>即可开始发送 33 个字符内容
9. AT+CIPCLOSE,关闭 TCP 连接
10. AT+CIPSHUT,关闭移动场景
操作现象如如下图所示:
发送数据
1. AT+CIPSEND 模块向服务器发送不定字符长度的指令 2. 等待返回>,此时输入要发送的数据,结尾不需要回车,编辑完短信后以十六进制的格式发送 1A 发信息发送 3. 发送完成,服务器会收到模块发送过来的数据,如下图所示
接收数据
1. 在 peers 选择设备端 IP 地址
2. 在服务器中输入要发送的数据如:hello,i am server,please receive my message
3. 点击发送,在串口助手即可收到信息,如下图所示
关闭连接
发送 AT+CIPCLOSE 或 AT+CIPSHUT 关闭连接,如下图所示
NB-IoT调试
NB-IoT 须用 NB 专用卡,国内可支持电信、移动和联通 NB 卡。
下例以接入电信 NB-IoT 卡为例(B5):
1. 正确安装电信 NB 卡、 GSM 天线、连接好 USB 线到电脑;
2. 启动模块,等待约十秒;
3. 观察指示灯是否正常, PWR 指示灯常亮, NET 灯闪烁;
TCP 数据收发实例
详细测试指令和截图如下:
步骤 | AT 指令 | 指令说明 | 返回值 |
1 | AT+CGATT? | 查询网络是否附着 | +CGATT: 1 OK |
2 | AT+CPSI? | 查询网络注册信息 | +CPSI: LTE NB-IOT,Online,… … OK |
3 | AT+CSQ | 查询信号强度(1~31 为正常,越高越好) | +CSQ: 17,99 OK |
4 | AT+CGNAPN | 查询 APN | +CGNAPN: 1,"可选的 APN" OK |
5 | AT+CSTT="ctnb" | 设置对应的 APN (根据上一条指令返回的 APN 设置) |
AT+CSTT="ctnb" OK |
6 | AT+CIICR | 激活移动场景 | OK |
7 | AT+CIFSR | 获取本地 IP 地址 | 返回 IP |
8 | AT+CIPSTART="TCP","IP 地址",端口 | 连接 TCP 服务器,此步骤需要确保对应的 TCP 服务器存在,并可以正常连接通信 | OK CONNECT OK |
9 | AT+CIPSEND=12 | 发送数据(12 代表只发送 12 字节数据) | > SEND OK |
10 | AT+CIPCLOSE=1 | 关闭 TCP 连接 | CLOSE OK |
11 | AT+CIPSHUT | 关闭移动场景 | SHUT OK |
说明:118.190.93.84:2317 为测试的 IP 和端口,数据发给服务器,会被自动转发回来。
GNSS调试
GNSS控制实例
1. 插上 GPS 天线,并将接收器置于空旷的室外
2. 详细测试指令和截图如下:
步骤 | AT 指令 | 指令说明 | 返回值 |
1 | AT+CGNSPWR=1 | 打开 GNSS 电源 | OK |
2 | AT+CGNSTST | AT+CGNSTST=1 将 GPS 信息打印到串口
|
OK |
3 | AT+CGNSINF | 从返回 NMEA 中解释的 GNSS 导航信息 | +CGNSINF:导航信息 OK |
4 | AT+CGNSPWR=0 | 关闭 GNSS 电源 | OK |
5 | AT+CGNSPORT | GNSS NMEA 输出端口设置 AT+CGNSPORT=3: GNSS 输出到 NMEA 口 AT+CGNSPORT=4: GNSS 不输出到 NMEA 口 |
OK |
3. 通过软件读取定位信息:
- 需要先运行 AT 指令打开定位:AT+CGNSPWR=1
- 把 USB 接到电脑上,查看电脑设备管理器,找到 NEME 对应的端口后,用软件打开该端口,不同软件的定位结果如下图所示:
- 定位结束后,关闭 GNSS 定位:AT+CGNSPWR=0
4. 也可以在串口下通过 AT+CGNSINF 指令返回的 NMEA 值,分析经纬度、UTC 时间日期等信息,如下:
查AT指令集分析返回值如下:
20180521102245.000 | UTC date & Time |
22.542530 | Latitude (纬度) |
114.078219 | Longitude (经度) |
Arduino例程
硬件连接
SIM7000X NB-IoT HAT 板载树莓派 GPIO 接口,可直接插入各版本树莓派使用;下表为树莓派管
脚与模块引脚连接情况(树莓派三代 B+):
5V | 5V |
GND | GND |
RXD | TXD (对应 BCM 的 14) |
TXD | RXD (对应 BCM 的 15) |
PWR | P7 (对应 BCM 的 P4) |
树莓派初始化设置 模块出厂默认 PWR 是接到 3.3V 的,即上电自动开机,此时可跳过此“树莓派初始化设置”。 只有当把模块的 PWR 焊点跳选到树莓派的 P4 引脚时,为确保 SIM7000X NB-IoT HAT 接入树莓派 后能正常工作,才需要初始化树莓派引脚的电平输出。 参考操作如下: 1、 下载树莓派代码,把 SIM7000X 整个文件夹复制到/home/pi/ 路径下, 2、 命令行进入到/home/pi/目录下,执行指令 chmod 777 pi_gpio_init.sh 3、 设置开机初始化脚本,运行命令: sudo nano /etc/rc.local 4、 在 exit 0 前面加入 (如下图所示): sh /home/pi/SIM7000X/pi_gpio_init.sh SIM7000C NB-IoT HAT 用户手册 26 版本:V1.1,日期:2018 年 12 月 12 日 树莓派串口配置 由于树莓派串口默认用于终端调试,如需使用串口,则需要修改树莓派设置。执行如下命令进 入树莓派配置: 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(ttyS0 为树莓派 3B/3B+的串口)。 默认波特率为 115200 树莓派 2B/zero,用户串口设备号为 ttyAMA0,树莓派 3B/3B+串口设备号为 ttyS0。 SIM7000C NB-IoT HAT 用户手册 27 版本:V1.1,日期:2018 年 12 月 12 日 以 AT 同步测试为例,发送相关指令,如下图所示: 示例程序 下载示例程序,拷贝到树莓派上,比如放到/home/pi/SIM7000X。 1. 进入到 bcm2835 目录,编译安装 BCM2835 库: chmod +x configure && ./configure && sudo make && sudo mak SIM7000C NB-IoT HAT 用户手册 28 版本:V1.1,日期:2018 年 12 月 12 日 3. 测试运行 GPS_Positioning: 4. 测试运行 NB-IoT (TCP_IP): SIM7000C NB-IoT HAT 用户手册 29 版本:V1.1,日期:2018 年 12 月 12 日 5. 更多示例程序持续更新中… … 请前往 Wiki 查看最新示例程序和用户手册。