看了前面的《NBIOT 环境监测项目—总体介绍(STM32L4+BC35)》应该对我们要做的项目有个初步框架性的了解,下面我们就开始逐个介绍
1.1、什么是NBIOT
NBIOT就是窄带物联网,英文全称是:Narrow Band Internet of Things, NB-IoT,其实就是一种通信标准,对我们终端用户而言,可以简单的理解为物联网的一种通信设备。
1.2、为什么要使用NBIOT
经常会有人问,特别是玩过GPRS的,如果我就是发数据给后台,采集温湿度和之前的GPRS没什么区别,为什么华为、爱立信等还要搞个NBIOT,是不是没事找事。其实不是的,这里有很多问题,
第一,普通的GSM的连接不能满足现有物联网的发展了,因为一个基站能接入的通信能力是有限的,如果说在工业上,一个设备上安装一个SIM800模块,毕竟数量有限,也就没什么问题,但是物联网时代的愿景是每个家庭里,各种设备都要接入网络,比如水龙头、家庭空气状况、冰箱,空调等设备都接入,在人口密集的城市里面,之前的网络环境,是无法承受的。
第二,功耗、价格是目前物联网设备需要继续解决的问题,就像前面说的,不可能每个设备都接入有源的设备,那家里、办公室的布线就太麻烦了,而且在产品的更新上,很难得到用户的支持。所以低功耗的设备显得更加重要。
第三:2G/3G的设备,网络系统的标准、专利很多都在外国人手里,华为等公司想要在2G/3G里面再分蛋糕很难,所以积极的推翻现有的利益分配格局,那么重新制定新的标准,来逐步替代之前的产品,NBIOT就应用而生了。
1.3、NBIOT里面非定向、定向、B5\B8频段等是什么意思?
NBIOT的技术规范,芯片都是最近两年才出来的,更新速度较快,牵涉到芯片原厂、模组厂、运营商、系统商、ZF规划、终端用户等。
定向IP指的是电信的NBIOT卡,不支持连接到任何IP地址,只能连接到电信的云平台(包括华为OceanConnect),而且电信云平台只针对企业客户,所以说个人或者小客户,想玩电信的卡,请慎重考虑。
以下是目前移远的模块支持的频段、运营商的表格
模块 | 频段 | 运营商 | 协议 |
---|---|---|---|
BC95-B5 | B5 | 电信 | UDP/COAP |
BC95-B8 | B8 | 移动 | UDP/COAP/TCP(新升级) |
BC35-G | B5 B8 B20… | 移动 电信 | UDP/COAP/lwM2M/TCP/MQTT* |
2.1、接口与协议
在嵌入式开发中时,说到XXX模块,那么一般情况下涉及到通信接口,协议。
所谓的接口,就是一种信息交互的载体,比如人与人交流,是通过声音来进行传播,嵌入式里面的接口有I2C、串口、SPI等,注意接口是能把信息告诉另外一方,在这个项目里面NB模块与MCU进行交互就是UART接口。
所谓的协议,就是一种信息交互时双方约定的含义,类比到人与人交流,两个讲中文的人在一起,才能听得懂,不然就搞乱了,同样在嵌入式里面,MCU要操作控制模块,也要有协议,这个协议就很有文章了,如果模块是自己做的话,你也可以自己制定协议,比如01表示干什么,02表示干什么。但是模块是移远、华为等公司的做的,他们用的是AT指令,同学们马上会问AT指令是什么低东西?且慢,下一章节继续。
2.2、AT指令简介
AT指令是设备与主控端进行通信的指令,好绕,其实很好理解,就是通过AT指令告诉模块要的事情,比如我们这个项目就是让模块将温湿度发送到指定的服务器。
其格式一般是AT+XXXX,比如
AT指令 | 含义说明 |
---|---|
AT+CSQ | 获取信号强度 |
AT+NBAND? | 询问模块支持哪些频段 |
AT+CIMI | 获取SIM卡的IMSI号 |
AT+CMEE=1 | 启动报告ME 错误码 |
同学们看到这里,心里应该有个疑问,这些指令我是怎么知道?因为这些指令有些是通用的,所以有些同学说可以问度娘。的确,是可以百度搜索。但是权威的方式是查阅移远的文档《Quectel_BC35-G&BC28&BC95 R2.0_AT_Commands_Manual_V1.3.pdf》支持的AT指令都在这里,逐条指令这里就不做介绍,挑一条带领同学们看看,
例如文档:
其中含义在在文档中的介绍为;
"rssi"的值为99表示无效,2到30表示信号强度,31表示信号满
有问题可以加入QQ群或者淘宝店铺旺旺联系:
野牛物联网
QQ交流群:897268542
淘宝店铺(点击跳转链接)