点击上方蓝色字体,关注我们

最近很多朋友问我如何选购合适的NB-IoT模组,于是本篇博文给各位朋友安利一款DF创客社区最新出品的NB-IoT 开发板:TinkerNode NB-IoT 物联网开发板,性价比挺高,调测使用后感觉挺不错,非常适合零基础初学者和快速搭建项目的小伙伴。

1

模组简介

TinkerNode NB-IoT物联网开发板是ESP32平台具有NB-IoT广域低功耗通信和GPS/BeiDou双星精确定位功能的四模低功耗物联网开发硬件平台,在不到一半手掌大的面积上集成了ESP32主控模组、NB-IoT/GNSS通信模组、RGB指示灯、按钮、电源管理系统等功能,并通过过孔焊盘引出如IIC、SPI、UART等所有常用的IO、通信接口和电源管脚,性能强悍,扩展性极强。

该模块在开发板集成了专用的太阳能电源管理芯片和多电源管理电路,可直接使用5V太阳能板给3.7V锂电池充电和系统供电,同时支持MPPT(最大功率追踪,MPPT控制器能够实时侦测太阳能板的发电电压,并追踪最高电压电流值(VI),使系统以最大功率输出对蓄电池充电,应用于太阳能光伏系统中,协调太阳能电池板、蓄电池、负载的工作,是光伏系统的大脑),最大化太阳能板的输出效率,实现系统在户外应用场景的不间断供电,免去定期充电维护的麻烦。

对于之前已经使用过ESP32平台(如:FireBeetle、掌控、乐鑫官方开发板等)的用户,可以方便地将之前的Arduino程序移植到这块新主控板,尽享ESP32主控模组所有的强大功能和低功耗能力,快速掌握与实现户外物联网项目的搭建。

2

模组特性

主控制器:乐鑫ESPRESSIF ESP32,技术参数如下所示:

  • 处理器:

    Tensilica LX6双核处理器(一核处理高速连接;

    一核独立应用开发)

  • 主频:

    240MHz

  • SRAM:

    520KB

  • Flash:

    16MB

  • Wi-Fi标准:

    FCC/CE/TELEC/KCC

  • Wi-Fi协议:

    802.11 b/g/n/d/e/i/k/r (802.11n,速度高达150 Mbps)

  • 频率范围:

    2.4~2.5 GHz

  • 蓝牙协议:

    符合蓝牙v4.2 BR/EDR和BLE标准

  • 蓝牙音频:

    CVSD和SBC音频低功耗:

    10uA

  • 频率范围:

    2.4~2.5GHz

  • 深度休眠功耗:

    <10uA @ RTC定时器+RTC存储器工作(仅ESP32芯片)

NB-IoT通信模组:移远QUECTEL BC20,和NB-IoT实战中是同一款模组,技术参数如下所示:

  • 通信频段:

    B5/B8(移动、电信、联通NB-IoT全网通)

  • 传输速率:

    16.7 kbps(上行),25.5 kbps(下行)

  • GNSS导航定位系统:

    GPS/BeiDou(北斗)双星导航定位

  • 支持DFOTA差分固件升级

  • 深度休眠功耗:

    <5uA @ Modem处于PSM,CPU处于深度休眠,GNSS关闭

电源管理多样化设计,技术参数如下所示:

  • USB:

    5V,供电数据二合一

  • 电池(BAT):

    3.7V锂电池

  • 太阳能(SOLAR IN):

    5V太阳能板

  • 外部供电(VIN):

    6V - 24V

  • 最大充电电流:

    500mA

  • 集成3.7V锂电池充电功能,USB、太阳能、外部供电任一接口均可充电

  • 太阳能支持MPPT,最大化太阳能板利用率

IO接口,技术参数如下所示:

  • 通用数字I/O:

    5个

  • 模拟输入(12位ADC):

    2个

  • SPI:

    1个

  • I2C:

    1个

  • UART(兼容3.3V/5V):

    1个

其它功能与特性,技术参数如下所示:

  • 开发环境:

    支持Win7,Win10

  • 开发工具与语言:

    支持Arduino IDE,C/C++

  • RGB全彩状态指示灯

  • 电池、太阳能板、外部供电防反接(带反接指示LED)

  • 充电指示LED、自定义指示LED

  • 系统复位RST和设置SET按键

  • 自弹式防反插micro SIM卡座

  • u.FL外接天线接口:

    2个(NB-IoT外接PCB天线,GPS/BeiDou外接有源陶瓷天线)

  • 尺寸:

    65.0×31.0 mm

  • 重量:

    14g(仅主板)

  • 工作温度:

    -40℃~+85℃

模组系统原理框图如下所示:

产品更详细描述可参见官网网址。

3

环境搭建

第1步:安装环境,项目实践依托于Arduino IDE,各位请自行安装下载合适版本。

第2步:打开Arduino IDE,首先需要添加开发板驱动的下载地址。菜单栏中选择文件->首选项(或使用快捷键“Ctrl+ ,”)。

点击附加开发板管理器网址右边的小图标。

在弹出窗口的最后一行,如图复制开发板驱动的地址:

http://download.dfrobot.top/TinkerNode-NB-IoT/package_TinkerNode-NB-IoT_index.json

最后保存设置。

第3步: 安装开发板的板卡驱动包,点击工具->开发板->开发板管理。

弹出开发板管理器,管理器会自动更新板卡信息。

等待更新完成后,选择TinkerNode_NB-IoT,选择最新版本的开发板驱动,单击Install安装驱动。

第4步:安装串口驱动,目前仅支持Windows系统(Win7、Win10)。

第5步:安装成功后切换到TinkerNode NB-IoT (CH)开发板,此时可向开发板烧录程序或查看串口打印的数据。

4

小试牛刀

开发板所有的相关样例代码,可在菜单栏中选择文件->示例->TinkerNode NB-IoT (CH)的例子,其中DFRobot_NBIoT目录中为开发板专用的样例代码:NB-IoT、GNSS、MQTT低功耗收发、RGB灯光控制、数据记录仪datalogger等功能的样例代码均在此,其它目录为ESP32的通用样例代码,用户可通过这些通用样例学习掌握ESP32的各类基本功能与应用开发。

TinkerNode NB-IoT物联网开发板有:WiFi、蓝牙、NB-IoT和GNSS定位四种无线通信方式,接下来依托于样例代码,让我们进行简单调测。

扫描附近WiFi网络

使用开发板中的WiFi通信,实现对附近WiFi无线信号的扫描,效果如下所示:

示例代码如下所示:

/* *  如何扫描WiFi网络 */#include "WiFi.h"void setup(){    Serial.begin(115200);    // 将WiFi设置为站模式,如果AP之前已经连接,则断开连接    WiFi.mode(WIFI_STA);    WiFi.disconnect();    delay(100);    Serial.println("设置完成");}void loop(){    Serial.println("扫描开始");    //扫描网络将返回找到的网络数量    int n = WiFi.scanNetworks();    Serial.println("扫描完成");    if (n == 0) {        Serial.println("无网络");    } else {        Serial.print("WiFi数量:");        Serial.println(n);        Serial.println("网络列表如下:");        for (int i = 0; i < n; ++i) {            //打印每个网络SSID和RSSI            Serial.print(i + 1);            Serial.print(": ");            Serial.print(WiFi.SSID(i));            Serial.print(" (");            Serial.print(WiFi.RSSI(i));            Serial.print(")");            Serial.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN)?" ":"*");            delay(10);        }    }    Serial.println("");    //稍等片刻再重新扫描    delay(5000);}

蓝牙通信

使用开发板中的蓝牙通信,实现与手机蓝牙调测助手进行通信,调测助手建立连接如下所示:

手机蓝牙调测助手发送数据到开发板,效果如下所示:

开发板发送数据到手机蓝牙调测助手,效果如下所示:

示例代码如下所示:

#include "DFRobot_BLESerial.h"DFRobot_BLESerial SerialBLE;void setup() {  // put your setup code here, to run once:  Serial.begin(115200);  SerialBLE.begin("TinkerNode_BLE");  Serial.println("The device started, now you can pair it with ble");}void loop() {  if (Serial.available()) {    SerialBLE.write(Serial.read());  }  if (SerialBLE.available()) {    Serial.write(SerialBLE.read());  }  delay(20);}

这款蓝牙调测助手比较不错,可建立RSSI的可视化分析图,方便使用者查看。

查看NB-IoT配置信息

可以通过USB串行将AT命令发送到BC20模块,查看NB-IoT模组的基本信息,示例效果如下所示,更多指令可查阅BC20模块说明文档。

示例代码如下所示:

#include "DFRobot_BC20.h"DFRobot_BC20 myBC20;void setup(){  Serial.begin(115200);  Serial.print("启动BC20,请稍等. . . ");  while(!myBC20.powerOn()){    delay(1000);    Serial.print(".");  }  Serial.println("BC20启动成功!");  // Deep Sleep Mode is automatically enable every time upon power up.  // When this mode is entered, BC20 will not respond any AT commands from ESP32  myBC20.ConfigSleepMode(eSleepMode_Disable);  //Each AT command should begin with "AT" or "at" and end with "Carriage return".  //The commands can be upper-case or lower-case. ex. "AT+CSQ" or "at+csq".  Serial.println("Enter AT commands:");}void loop(){  if(Serial.available()){    BC20Serial.write((char)Serial.read());  }  if(BC20Serial.available()){    Serial.write((char)BC20Serial.read());  }}

GNSS定位

GNSS(全球导航卫星系统定位)能在地球表面或近地空间的任何地点为用户提供全天候的3维坐标和速度以及时间信息的空基无线电导航定位系统,静态物体定位主要用到经纬度坐标,动态物体则可分析实时速度、高度等因素。

需要注意测试时GNSS定位在室内是基本上无信号的,尽可能在室外使用,否则无法获取有效的定位信息,使用模组获取我此时的GNSS定位信息,效果如下所示:

使用百度坐标拾取系统进行验证,由于我在室内测试的存在一些偏差,效果如下所示:

示例代码如下所示:

#include "DFRobot_BC20.h"DFRobot_BC20 myBC20;void Display_Location_Information(){    //UTC time of the anchor point    Serial.print("Time:\t\t");    Serial.print(sCLK.Year);    Serial.print("/");    Serial.printf("%02d",sCLK.Month);    Serial.print("/");    Serial.printf("%02d ",sCLK.Day);    Serial.printf(" %02d",sCLK.Hour);    Serial.printf(":%02d",sCLK.Minute);    Serial.printf(":%02d\r\n",sCLK.Second);    Serial.print("Latitude:\t");    Serial.print(sGGNS.LatitudeVal,6);    Serial.print(" deg ");    Serial.println(sRMC.LatitudeDir);    Serial.print("Longitude:\t");    Serial.print(sGGNS.LongitudeVal,6);    Serial.print(" deg ");    Serial.println(sRMC.LongitudeDir);    Serial.print("Altitude:\t");    Serial.print(sGGNS.Altitude,1);    Serial.println(" m");    Serial.print("Speed:\t\t");    Serial.print(sGGNS.Speed);    Serial.println(" km/h");    Serial.print("Heading:\t");    Serial.print(sGGNS.Heading);    Serial.println(" deg");    Serial.print("Status:\t\t");    Serial.println(sGGNS.FixStatus);    Serial.print("PDOP:\t\t");    Serial.println(sGGNS.PDOP);    Serial.print("HDOP:\t\t");    Serial.println(sGGNS.HDOP);    Serial.print("VDOP:\t\t");    Serial.println(sGGNS.VDOP);    Serial.println();}void Display_Satellite_Information(){    Serial.print(sSAT.NUM);    Serial.println(" in view.");    Serial.print(sSAT.USE);    Serial.println(" in used.");    Serial.print("PRN\t");    Serial.print("Elev(deg)\t");    Serial.print("Azim(deg)\t");    Serial.print("SNR(dBHz)\t");    Serial.print("SYS\t");    Serial.println("Used");    for(uint8_t i = 0; iSerial.        Serial.print("\t");        Serial.print(sSAT.data[i].Elev);        Serial.print("\t\t");        Serial.print(sSAT.data[i].Azim);        Serial.print("\t\t");        Serial.print(sSAT.data[i].SNR);        Serial.print("\t\t");        Serial.print(sSAT.data[i].SYS);        Serial.print("\t");        Serial.println(sSAT.data[i].Status);    }}void setup(){    Serial.begin(115200);    Serial.print("Starting the BC20.Please wait. . . ");    while(!myBC20.powerOn()){        delay(1000);        Serial.print(".");    }    Serial.println("BC20 started successfully !");    Serial.println("check OK");    if(myBC20.getQGNSSC() == OFF){        Serial.println("open QGNSSC");        myBC20.setQGNSSC(ON);    }}void loop(){    delay(5000);    myBC20.getQGNSSRD();    Display_Location_Information();    Display_Satellite_Information();}

5

注意事项

  • 根据国家工业和信息化部等六部门要求,为有效防范和打击通讯信息诈骗,所有NB-IoT物联网专用SIM卡均具有机卡绑定功能,不可取消

  • SIM卡插入设备,首次上电(与基站)成功通信即视为激活且与通信模组绑定(机卡绑定),开始年度计费周期(360天)

  • 2G/3G/4G手机SIM卡或大流量物联网卡无法代替用于NB-IoT设备;

  • 物联网SIM卡不能用于手机、平板、2G/3G/4G模组等非NB-IoT设备,否则会导致SIM卡停机

  • 已机卡绑定的SIM卡若被插入其它设备内进行通信会导致SIM卡停机

  • 物联网SIM卡仅能数据传输,无语音通信和短信功能

往期推荐

  • NB-IoT模组低功耗设计:DRX、eDRX和PSM

  • GitHub开源:100美元自制激光雷达

  • AI人脸识别身份认证系统(4)—人脸识别

点击阅读原文,更精彩~

温度记录仪开发_TinkerNode NBIoT物联网开发板相关推荐

  1. 【填坑】初识钛极小龟NB-IoT物联网开发套件TiKit

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 文章目录 前言&概述 资料整理 钛极OS(TiJOS)开发环境 钛极小龟教案( ...

  2. NB-IoT物联网开发技巧和应用:专栏总述

    目录 1.基础篇 2.进阶篇 3.实战篇 4.拓展篇 5.项目演示效果 ​本专栏系统地介绍NB-IoT关键技术.网络体系与应用架构.应用系统组件以及终端硬件设计的基础上,给出了一个NB-IoT系统设计 ...

  3. 物联网平台php源码_蜗壳-NB-IoT物联网开发平台-源码下载

    # [NB-IoT技术介绍] NB-IOT是NarrowBand IoT(窄带物联网)的简称,也称为LTE Cat-NB1,是一种基于蜂窝电信频段的低功耗广域网(LPWAN)无线电技术标准,是3GPP ...

  4. 机智云AIoT开发平台,物联网开发和运营从未如此简单

    物联网(IoT)产品的快速更新迭代,使得很多研发出来的产品越来越频繁地进行技术升级.尤其在当下,一个好的产品,不仅设备好用,APP也要面向用户做好升级优化,才能让一个优秀的产品被更多用户推荐使用. 那 ...

  5. web api接口开发实例_C# 物联网开发API接口系列(4)

    C# 物联网开发API接口系列(四) #久爱物联网#MQTT# [提纲] 1)获取设备列表(某用户的) 2)单独检查设备是否存在合法 [正文] /// /// 获取设备列表 /// /// 令牌 // ...

  6. TinkerNode NB-IoT物联网开发板(NB-IoT专栏—拓展篇3)

    目录 1.模组简介 2.模组特性 3.环境搭建 4.小试牛刀 4.1. 扫描附近WiFi网络

  7. java 蓝牙4.0_《蓝牙4.0 BLE开发完全手册---物联网开发技术实战

    图书目录: 第1章 蓝牙4.0 BLE简介 1.1 无线网络数据传输协议对比 1.2 短距离无线网络的分类 1.2.1 什么是蓝牙4.0 BLE 1.2.2 蓝牙4.0 BLE的特点 1.3 蓝牙4. ...

  8. 字少事大|两张表格教你快速选择适合的MCU进行物联网开发

    上图是ST正式发布的涨价通知:2021年1月1日起,全线产品涨价 由于晶圆代工产能持续紧缺,从MCU芯片厂商来看,ST.NXP.Renesas等国外半导体企业都出现了缺货.涨价.交期大幅拉长的情况. ...

  9. 项目周期一般多久_深圳app开发公司的软件开发要多久?

    深圳app开发公司的软件开发要多久?手机APP开发可以帮助企业俘获更多新客户,展示其自身的品牌效果.随着移动互联网的发展,人们的工作重心慢慢的从电脑端转移到手机端了,越来越多的人除了工作需要基本都不会 ...

最新文章

  1. 灰盒测试—数据库软件
  2. 还在对java类、类的加载一知半解?这篇文章相信会解决你80%的困惑
  3. The last time...
  4. iPhone企业应用实例分析之二:程序处理流程
  5. ES6知识整理(2)--变量的解构赋值
  6. 最大流Dinic算法
  7. 【数学建模】基于matlab GUI最小二乘法曲线拟合【含Matlab源码 492期】
  8. 译:Datetime类型的扩展
  9. android极光推送被杀,关于APP进程被杀死,极光推送收不到消息的解决办法
  10. java map集合如何遍历效率高 java中Map遍历的方式
  11. ”消费全返“是割韭菜,非也,广告电商引领全新“全返”模式
  12. 【OS 学习笔记】什么是同步、互斥?
  13. 【概念题】java依赖注入,android开发实战-记账本清风紫雪
  14. 购买新iPhone 14后,如何通过iCloud转移数据?
  15. 如何用PHP实现上传图片功能
  16. PPT美化插件 islide 安装过程问题“加载com加载项时运行出现错误”
  17. 行业研究报告-全球与中国安全触边市场现状及未来发展趋势
  18. 应用宝认领应用签名_腾讯应用宝认领应用步骤(详细)
  19. 1-Spring Security OAuth2专栏介绍
  20. 没有经过微软认证的驱动怎么安装?

热门文章

  1. q超级会员都有什么鸿蒙,超级会员+豪华绿钻,超值四开!
  2. java构成对象的三要素_20155237 《JAVA程序设计》实验二(JAVA面向对象程序设计)实验报告...
  3. java script 环境搭建_TypeScript环境搭建
  4. tiny服务器系列,项目:TinyHTTP服务器
  5. docker运行jar包_Jenkins+Docker+Springboot单机版持续集成部署
  6. 铺铜需要把agnd和dgnd分开_AGND和DGND的秘密——混合信号器件的接地原则
  7. android 安全 权限,[原创]Android 中的那些权限
  8. Python Pandas导出Hbase数据到dataframe
  9. Python scipy拟合分布
  10. target ajax,jQuery target - jquery事件