驴友花雕
发表于 2021-9-5 09:52:04
本帖最后由 驴友花雕 于 2021-9-5 10:15 编辑
主要特性
NB-IoT低功耗蜂窝通信,广覆盖、大连接、低功耗
NB-IoT全网通,移动、电信、联通三大运营商全支持
GPS/北斗双星精确定位,设备位置实时监控
Gravity I2C & UART复合标准接口,兼容各类3.3V/5V开发板
板载RGB指示灯,系统状态一目了然
应用场景
太阳能自动气象/环境监控站
车载定位追踪器
自动水电气抄表
智能路灯管理
共享单车
驴友花雕
发表于 2021-9-5 10:23:39
各种开发板使用接线示意图
驴友花雕
发表于 2021-9-5 10:24:12
驴友花雕
发表于 2021-9-5 10:25:16
驴友花雕
发表于 2021-9-5 10:26:02
驴友花雕
发表于 2021-9-5 10:47:43
本帖最后由 驴友花雕 于 2021-9-5 13:07 编辑
连接NB-IoT天线:要进行NB-IoT通信,需要将PCB天线(标有GSM Band Antenna)连接在开发板正面标有NB的u.FL天线连接座。
注意——PCB天线背后有3M双面胶,撕开保护层后可贴附于非金属表面,在非金属箱体中使用,如:水质监控站或太阳能气象站的塑料防水盒,项目制作常用的亚克力表面。但是不能贴附于金属表面或在金属箱体中使用,否则会严重影响信号质量。
连接GNSS导航定位天线:如果需要使用卫星定位功能,可将GNSS陶瓷有源天线连接在开发板背面标有GNSS的u.FL天线连接座。
驴友花雕
发表于 2021-9-5 10:49:20
本帖最后由 驴友花雕 于 2021-9-5 13:13 编辑
NB-IoT物联网专用SIM卡
每个开发板套装包含一张DFRobot定制的中国联通(或中国电信)NB-IoT物联网专用SIM卡,插入开发板内即可使用,无需实名,首次使用流量时自动激活并绑定。
首年免费用,每月30MB流量
即插即用,无需实名或手动激活
三合一SIM卡,无需剪卡器
插入SIM卡:NB-IoT通信需要SIM卡,将NB-IoT物联网专用SIM卡从大卡里取出,用手掰成micro SIM卡大小并插入开发板背面标有Micro SIM的SIM卡座中,当卡正确插到底后,会听到轻微的咔一声,SIM卡被扣住。SIM卡座具有防反接功能,当插卡方向不正确,卡座将无法插到底,也无法扣住SIM卡。
驴友花雕
发表于 2021-9-5 10:49:57
使用注意事项
1、根据国家工业和信息化部等六部门要求,为有效防范和打击通讯信息诈骗,所有NB-IoT物联网专用SIM卡均具有机卡绑定功能,不可取消。
2、SIM卡插入设备,首次上电(与基站)成功通信即视为激活且与通信模组绑定(机卡绑定),开始年度计费周期(360天)。
3、2G/3G/4G手机SIM卡或其它大流量物联网卡无法代替用于NB-IoT设备。
4、物联网SIM卡不能用于手机、平板、2G/3G/4G模组等非NB-IoT设备,否则会导致SIM卡停机。
5、已机卡绑定的SIM卡不能插入其它设备内进行通信,否则会导致SIM卡停机。
6、物联网SIM卡仅能数据传输,无语音通信和短信功能。
驴友花雕
发表于 2021-9-5 11:06:09
我手头的三种物联卡
驴友花雕
发表于 2021-9-5 11:06:38
驴友花雕
发表于 2021-9-5 11:07:31
驴友花雕
发表于 2021-9-5 13:19:39
本帖最后由 驴友花雕 于 2021-9-5 14:41 编辑
安装DFRobot_BC20库
https://gitee.com/chenqi1233/ext-BC20_NB-IoT/tree/master
驴友花雕
发表于 2021-9-5 16:20:09
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百零九:Gravity: I2C & UART BC20 NB-IoT & GNSS通信模块
NB-IoT广域低功耗无线通信 GPS/北斗精准定位 户外物联网必备
项目之一:通过 NB-IoT(移动站)获取本地日期和时间
实验开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百零九:Gravity: I2C & UART BC20 NB-IoT & GNSS通信模块
NB-IoT广域低功耗无线通信 GPS/北斗精准定位 户外物联网必备
项目之一:通过 NB-IoT(移动站)获取本地日期和时间
实验接线:
BC20 UNO
VIN 5V
GND GND
SCL A5
SDA A4
*/
#include "DFRobot_BC20_Gravity.h"
//7种颜色可供选择
#defineRED 0
#defineBLUE 1
#defineGREEN 2
#defineYELLOW 3
#definePURPLE 4
#defineCYAN 5
#defineWHITE 6
//IIC通讯
#define USE_IIC
//硬件串口通讯
//#define USE_HSERIAL
//软件串口通讯
//#define USE_SSERIAL
DFRobot_BC20_IIC myBC20(0x33);
void getLocalTime() {
//检查数据是否合法
myBC20.changeColor(PURPLE);
while (myBC20.getCLK()) {
if (sCLK.Year > 2000) {
break;
}
Serial.print(".");
myBC20.LED_ON();
delay(500);
myBC20.LED_OFF();
delay(500);
}
//日期
Serial.print((String)sCLK.Year + "/" + (String)sCLK.Month + "/" + (String)sCLK.Day + " ");
//时间
Serial.println((String)sCLK.Hour + ":" + (String)sCLK.Minute + ":" + (String)sCLK.Second);
}
void setup() {
Serial.begin(115200);
myBC20.LED_OFF();
//初始化BC20
Serial.print("正在启动BC20,请稍等......");
myBC20.changeColor(RED);
while (!myBC20.powerOn()) {
Serial.print(".");
myBC20.LED_ON();
delay(500);
myBC20.LED_OFF();
delay(500);
}
Serial.println("BC20 启动成功!");
//检查SIM卡是否插入
Serial.println("正在检查SIM卡...");
myBC20.changeColor(GREEN);
while (!myBC20.checkNBCard()) {
Serial.println("请插入NB SIM卡!");
myBC20.LED_ON();
delay(500);
myBC20.LED_OFF();
delay(500);
}
Serial.println("SIM卡检查OK!");
//打印IMEI、ICCID和IMSI
myBC20.getGSN(IMEI);
Serial.print("BC20 IMEI: ");
Serial.println(sGSN.imei);
Serial.print("SIM card ICCID:");
Serial.print(myBC20.getQCCID());
Serial.print("SIM card IMSI: ");
Serial.println((char *)myBC20.getIMI());
/*
模块将自动尝试连接到网络(移动站)。
检查它是否已连接到网络。
*/
Serial.println("正在连接网络...");
myBC20.changeColor(BLUE);
while (myBC20.getGATT() == 0) {
Serial.print(".");
myBC20.LED_ON();
delay(500);
myBC20.LED_OFF();
delay(500);
}
Serial.println("网络已连接!");
}
void loop() {
//获取本地日期和时间并打印
getLocalTime();
delay(1000);
}
驴友花雕
发表于 2021-9-5 16:22:50
本帖最后由 驴友花雕 于 2021-9-6 07:35 编辑
实验串口返回情况
程序每隔1s通过串口打印当前地区的日期(年月日)、时间(时分秒)和时区(格林威治时间GMT+XX)。
日期、时间和时区均获取于附近的蜂窝基站,而并非某个网络服务器。
驴友花雕
发表于 2021-9-5 16:32:22
实验场景图(模块放在窗台上)
驴友花雕
发表于 2021-9-5 16:50:19
安装图形化编程 Mind+
http://mindplus.cc/
驴友花雕
发表于 2021-9-5 16:57:50
本帖最后由 驴友花雕 于 2021-9-5 17:09 编辑
打开扩展——选择用户库
搜索:https://gitee.com/chenqi1233/ext-BC20_NB-IoT
然后添加BC20 NB-IoT & GNSS库
驴友花雕
发表于 2021-9-5 17:04:09
BC20 NB-IoT & GNSS库相关积木
驴友花雕
发表于 2021-9-5 17:05:58
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百零九:Gravity: I2C & UART BC20 NB-IoT & GNSS通信模块
NB-IoT广域低功耗无线通信 GPS/北斗精准定位 户外物联网必备
项目之二:简易校准日期与时间
实验开源图形编程(Mind+、Mixly、编玩边学)
驴友花雕
发表于 2021-9-5 17:08:33
实验串口返回情况
驴友花雕
发表于 2021-9-5 17:55:42
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百零九:Gravity: I2C & UART BC20 NB-IoT & GNSS通信模块
NB-IoT广域低功耗无线通信 GPS/北斗精准定位 户外物联网必备
项目之三:NB模块的LED灯闪烁(顺序红-蓝-绿-黄-紫-蓝-白)
实验开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百零九:Gravity: I2C & UART BC20 NB-IoT & GNSS通信模块
NB-IoT广域低功耗无线通信 GPS/北斗精准定位 户外物联网必备
项目之三:NB模块的LED灯闪烁(顺序红-蓝-绿-黄-紫-蓝-白)
实验接线:
BC20 UNO
VIN 5V
GND GND
SCL A5
SDA A4
*/
#include "DFRobot_BC20_Gravity.h"
//7种颜色可供选择
#defineRED 0
#defineBLUE 1
#defineGREEN 2
#defineYELLOW 3
#definePURPLE 4
#defineCYAN 5
#defineWHITE 6
//IIC通讯
#define USE_IIC
//硬件串口通讯
//#define USE_HSERIAL
//软件串口通讯
//#define USE_SSERIAL
DFRobot_BC20_IIC myBC20(0x33);
void setup() {
Serial.begin(115200);
//初始化BC20
Serial.print("正在启动BC20,请稍等...... ");
while (!myBC20.powerOn()) {
delay(1000);
Serial.print(".");
}
Serial.println("BC20 启动成功!");
}
void loop() {
myBC20.changeColor(RED); //改变为红色
//闪烁三次
for (int i = 0; i < 3; i++) {
myBC20.LED_ON(); //打开 LED
delay(100);
myBC20.LED_OFF(); //关闭 LED
delay(100);
}
myBC20.changeColor(BLUE); //改变为蓝色
for (int i = 0; i < 3; i++) {
myBC20.LED_ON();
delay(100);
myBC20.LED_OFF();
delay(100);
}
myBC20.changeColor(GREEN); //改变为绿色
for (int i = 0; i < 3; i++) {
myBC20.LED_ON();
delay(100);
myBC20.LED_OFF();
delay(100);
}
myBC20.changeColor(YELLOW); //改变为黄色
for (int i = 0; i < 3; i++) {
myBC20.LED_ON();
delay(100);
myBC20.LED_OFF();
delay(100);
}
myBC20.changeColor(PURPLE); //改变为紫色
for (int i = 0; i < 3; i++) {
myBC20.LED_ON();
delay(100);
myBC20.LED_OFF();
delay(100);
}
myBC20.changeColor(CYAN); //改变为青色
for (int i = 0; i < 3; i++) {
myBC20.LED_ON();
delay(100);
myBC20.LED_OFF();
delay(100);
}
myBC20.changeColor(WHITE); //改变为白色
for (int i = 0; i < 3; i++) {
myBC20.LED_ON();
delay(100);
myBC20.LED_OFF();
delay(100);
}
}