【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块11

这篇具有很好参考价值的文章主要介绍了【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块11。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百九十三:Gravity: I2C & UART BC20 NB-IoT & GNSS通信模块
NB-IoT广域低功耗无线通信 GPS/北斗精准定位 户外物联网必备

【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块11,【Arduino】168种传感器模块系列实验,单片机,嵌入式硬件,c++,Arduino,物联网,移远BC20NB+GNSS模块
【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块11,【Arduino】168种传感器模块系列实验,单片机,嵌入式硬件,c++,Arduino,物联网,移远BC20NB+GNSS模块
知识点:移远BC20
BC20 是一款高性能、低功耗、多频段、支持 GNSS 定位功能的 NB-IoT 无线通信模块。其尺寸仅为 18.7 mm × 16.0 mm× 2.1 mm,能最大限度地满足终端设备对小尺寸模块产品的需求,同时有效帮助客户减小产品尺寸并优化产品成本。

BC20 在设计上兼容移远通信 GSM/GPRS/GNSS 系列 MC20 模块,方便客户快速、灵活的进行产品设计和升级。BC20提供丰富的外部接口和协议栈,同时支持中国移动 OneNET、中国电信 IoT 以及阿里云 IoT 等物联网云平台,为客户的应用提供极大的便利。

基于先进的 GNSS 技术,BC20 可支持 BeiDou 和 GPS 双卫星导航系统解调算法,使其定位更加精准、抗多路径干扰能力更强,比传统的单 GPS 定位模块具有更多优势。另外,BC20 模块内置 LNA 和低功耗算法:前者保证更高的灵敏度,后者保证低功耗模式下更低的耗流。

相较传统的 NB-IoT + GNSS 方案,BC20 的一体化设计使其体积减少 40 %。凭借其紧凑尺寸、超低功耗和超宽工作温度范围,BC20 在各种应用中占具更大优势;其主要应用领域为:自行车和摩托车防盗、宠物追踪、金融财产追踪及行车记录仪等等。

【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块11,【Arduino】168种传感器模块系列实验,单片机,嵌入式硬件,c++,Arduino,物联网,移远BC20NB+GNSS模块
【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块11,【Arduino】168种传感器模块系列实验,单片机,嵌入式硬件,c++,Arduino,物联网,移远BC20NB+GNSS模块
【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块11,【Arduino】168种传感器模块系列实验,单片机,嵌入式硬件,c++,Arduino,物联网,移远BC20NB+GNSS模块
【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块11,【Arduino】168种传感器模块系列实验,单片机,嵌入式硬件,c++,Arduino,物联网,移远BC20NB+GNSS模块
【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块11,【Arduino】168种传感器模块系列实验,单片机,嵌入式硬件,c++,Arduino,物联网,移远BC20NB+GNSS模块

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百零九:Gravity: I2C & UART BC20 NB-IoT & GNSS通信模块
NB-IoT广域低功耗无线通信 GPS/北斗精准定位 户外物联网必备
项目二十:通过Easy-IOT平台发布消息

实验开源代码

/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百零九:Gravity: I2C & UART BC20 NB-IoT & GNSS通信模块
  NB-IoT广域低功耗无线通信 GPS/北斗精准定位 户外物联网必备
  项目二十:通过Easy-IOT平台发布消息
  实验接线:
  BC20       UNO
  VIN        5V
  GND        GND
  SCL        A5
  SDA        A4
*/

#include "DFRobot_BC20_Gravity.h"

//RGB有7种颜色可供选择
#define  RED 0
#define  BLUE 1
#define  GREEN 2
#define  YELLOW 3
#define  PURPLE 4
#define  CYAN 5
#define  WHITE 6

//配置设备证书信息
char* Iot_id = "wGkCJkIng";
char* Client_ID  = "BC20 NB-IoT";
char* Iot_pwd    = "QMkC1kInRz";

//配置域名和端口号
char* EasyIot_SERVER = "182.254.130.180";
char* PORT = "1883";

//设置需要发布的设备编号
char* pubTopic = "hJmOvRIng";

//IIC通讯
#define USE_IIC

//硬件串口通讯
//#define USE_HSERIAL

//软件串口通讯
//#define USE_SSERIAL

DFRobot_BC20_IIC myBC20(0x33);

/*
   每次模块收到消息时,都会调用此函数。
   它将打印消息和相应的主题。
*/
void callback(char * topic, uint8_t * payload, unsigned int len) {
  Serial.print("接收[主题:");
  Serial.print(topic);
  Serial.print("] ");
  for (int i = 0; i < len; i++) {
    Serial.print((char)payload[i]);
  }
  Serial.println();

  //根据接收到的消息控制板载 RGB LED。
  char* receivedData = (char*)payload;
  if (strcmp(receivedData, "OFF") == 0) {
    myBC20.LED_OFF();
    Serial.println("LED 灯熄灭");
  }
  else if (strcmp(receivedData, "RED") == 0) {
    myBC20.changeColor(RED);
    myBC20.LED_ON();
    Serial.println("LED 是红色的");
  }
  else if (strcmp(receivedData, "GREEN") == 0) {
    myBC20.changeColor(GREEN);
    myBC20.LED_ON();
    Serial.println("LED 为绿色");
  }
  else if (strcmp(receivedData, "BLUE") == 0) {
    myBC20.changeColor(BLUE);
    myBC20.LED_ON();
    Serial.println("LED 为蓝色");
  }
  else if (strcmp(receivedData, "YELLOW") == 0) {
    myBC20.changeColor(YELLOW);
    myBC20.LED_ON();
    Serial.println("LED 是黄色的");
  }
  else if (strcmp(receivedData, "PURPLE") == 0) {
    myBC20.changeColor(PURPLE);
    myBC20.LED_ON();
    Serial.println("LED 是紫色的");
  }
  else if (strcmp(receivedData, "CYAN") == 0) {
    myBC20.changeColor(CYAN);
    myBC20.LED_ON();
    Serial.println("LED 为青色");
  }
  else if (strcmp(receivedData, "WHITE") == 0) {
    myBC20.changeColor(WHITE);
    myBC20.LED_ON();
    Serial.println("LED 是白色的");
  }
  else {
    ;
  }
}

void ConnectCloud() {
  Serial.print("尝试MQTT连接......");
  while (!myBC20.connected()) {
    Serial.print(".");
    if (myBC20.connect(Client_ID, Iot_id, Iot_pwd)) {
      Serial.println("连接服务器正常");
    } else {
      //用于检测设备与服务器的连接
      if (myBC20.getQMTCONN())
        break;
    }
  }

  while (!myBC20.subTopic('0', '1',pubTopic , '0')) {
    Serial.print(".");
  }
  Serial.print("主题:");
  Serial.print(pubTopic);
  Serial.println(" 订阅了!");
}

void setup() {
  Serial.begin(115200);
  myBC20.LED_OFF();

  /*Initialize 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.print(".");
    myBC20.LED_ON();
    delay(500);
    myBC20.LED_OFF();
    delay(500);
  }
  Serial.println("OK!");

  //禁用睡眠模式
  myBC20.configSleepMode(eSleepMode_Disable);
  //禁用 PSM
  myBC20.setPSMMode(ePSM_OFF);

  /* 
     模块将自动尝试连接到网络(移动站)。
     检查它是否已连接到网络。
  */
  Serial.print("正在连接网络......");
  myBC20.changeColor(BLUE);
  while (myBC20.getGATT() == 0) {
    Serial.print(".");
    myBC20.LED_ON();
    delay(500);
    myBC20.LED_OFF();
    delay(500);
  }
  Serial.println("已连接!");

  //设置回调函数
  myBC20.setCallback(callback);

  Serial.println("连接到DFRobot Easy-IoT");

  //配置物联网服务器
  myBC20.setServer(EasyIot_SERVER, PORT);
  Serial.println("服务器可用!");

  //连接DFRobot Easy-IoT
  ConnectCloud();
}

void loop() {
  myBC20.loop();
}

打开工作台,点发送消息

【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块11,【Arduino】168种传感器模块系列实验,单片机,嵌入式硬件,c++,Arduino,物联网,移远BC20NB+GNSS模块

在发送框填入待发送的信息“everything fine?”,点发送

【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块11,【Arduino】168种传感器模块系列实验,单片机,嵌入式硬件,c++,Arduino,物联网,移远BC20NB+GNSS模块

查看信息

【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块11,【Arduino】168种传感器模块系列实验,单片机,嵌入式硬件,c++,Arduino,物联网,移远BC20NB+GNSS模块

实验串口返回情况

【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块11,【Arduino】168种传感器模块系列实验,单片机,嵌入式硬件,c++,Arduino,物联网,移远BC20NB+GNSS模块

在工作台,发送“RED”

【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块11,【Arduino】168种传感器模块系列实验,单片机,嵌入式硬件,c++,Arduino,物联网,移远BC20NB+GNSS模块
实验串口返回情况

【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块11,【Arduino】168种传感器模块系列实验,单片机,嵌入式硬件,c++,Arduino,物联网,移远BC20NB+GNSS模块

实验场景图——LED 是红色的

【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块11,【Arduino】168种传感器模块系列实验,单片机,嵌入式硬件,c++,Arduino,物联网,移远BC20NB+GNSS模块
发送不同字符串命令,BC20模块上RGB灯显示不同的颜色

【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块11,【Arduino】168种传感器模块系列实验,单片机,嵌入式硬件,c++,Arduino,物联网,移远BC20NB+GNSS模块文章来源地址https://www.toymoban.com/news/detail-631962.html

到了这里,关于【雕爷学编程】Arduino动手做(193)---移远 BC20 NB+GNSS模块11的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【雕爷学编程】Arduino动手做(133)---LCD1602扩展板模块

    7款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与

    2024年02月11日
    浏览(25)
  • 【雕爷学编程】Arduino动手做(12)---霍尔磁场传感器模块5

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下

    2024年02月13日
    浏览(25)
  • 【雕爷学编程】Arduino动手做(181)---Maixduino AI开发板2

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)

    2024年02月14日
    浏览(28)
  • 【雕爷学编程】Arduino动手做(90)---4X4矩阵薄膜键盘模块2

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下

    2024年01月17日
    浏览(33)
  • 【雕爷学编程】Arduino动手做(12)---霍尔磁场传感器模块2

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下

    2024年02月13日
    浏览(25)
  • 【雕爷学编程】Arduino动手做(85)---LCD1602液晶屏模块7

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)

    2024年02月16日
    浏览(28)
  • 【雕爷学编程】Arduino动手做(157)---MX1508双路电机驱动模块

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)

    2024年02月13日
    浏览(29)
  • 【雕爷学编程】Arduino动手做(156)---OTTO两足舵机机器人

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)

    2024年02月16日
    浏览(24)
  • 【雕爷学编程】Arduino动手做(172)---WeMos D1开发板模块4

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)

    2024年02月15日
    浏览(26)
  • 【雕爷学编程】Arduino动手做(186)---WeMos ESP32开发板17

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下

    2024年02月14日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包