驴友花雕 发表于 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);
}
}

页: 1 [2] 3 4 5 6
查看完整版本: 【Arduino】168种传感器系列实验(209)---移远 BC20 NB+GNSS模块