网站网站建设网站,阀门专业网站建设,wordpress如何更域名,成都网站开发工作室37款传感器与模块的提法#xff0c;在网络上广泛流传#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块#xff0c;依照实践出真知#xff08;一定要动手做#xff09;的理念#xff0c;以学习和交流为目的#x…37款传感器与模块的提法在网络上广泛流传其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块依照实践出真知一定要动手做的理念以学习和交流为目的这里准备逐一动手试试多做实验不管成功与否都会记录下来——小小的进步或是搞不掂的问题希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验资料代码仿真编程图形编程 实验一百九十三Gravity: I2C UART BC20 NB-IoT GNSS通信模块 NB-IoT广域低功耗无线通信 GPS/北斗精准定位 户外物联网必备 知识点移远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】168种传感器模块系列实验资料代码仿真编程图形编程 实验二百零九Gravity: I2C UART BC20 NB-IoT GNSS通信模块 NB-IoT广域低功耗无线通信 GPS/北斗精准定位 户外物联网必备 项目之十通过 USB 串口向 BC20 模块发送 AT 命令
实验开源代码
/*【Arduino】168种传感器模块系列实验资料代码仿真编程图形编程实验二百零九Gravity: I2C UART BC20 NB-IoT GNSS通信模块NB-IoT广域低功耗无线通信 GPS/北斗精准定位 户外物联网必备项目之十通过 USB 串口向 BC20 模块发送 AT 命令实验接线:BC20 UNOVIN 5VGND GNDSCL A5SDA 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//IIC通讯
#define USE_IIC//硬件串口通讯
//#define USE_HSERIAL//软件串口通讯
//#define USE_SSERIALDFRobot_BC20_IIC myBC20(0x33);void setup() {Serial.begin(115200);myBC20.LED_OFF();//初始化 BC20Serial.print(正在启动BC20请稍等...... );myBC20.changeColor(RED);while (!myBC20.powerOn()) {Serial.print(.);myBC20.LED_ON();delay(500);myBC20.LED_OFF();delay(500);}Serial.println(BC20 启动成功);/* 每次开机时都会自动启用深度睡眠模式。当进入此模式时BC20 不会响应任何来自控制器的 AT 命令禁用睡眠模式以确保 BC20 始终响应 AT 命令*/myBC20.configSleepMode(eSleepMode_Disable);/* * 每个 AT 命令应以“AT”或“at”开头以“回车”结尾。* 命令可以是大写或小写,比如“ATCSQ”或“atcsq”。*/Serial.println(输入 AT 命令);
}void loop() {//*与 BC20 的串行透传if (Serial.available()) {myBC20.sendATCMDBychar((char)Serial.read());}if (myBC20.available()) {Serial.println(myBC20.readData());}
}实验串口返回情况 常用的AT命令 AT - AT 命令测试 ATQRST1 - 重置 BC20 ATI - 固件版本的修订 ATCSQ - 信号质量报告 0 - -113 dBm 1 - -111 dBm 2 - -109 dBm 3 - -107 dBm … … 30 - -53 dBm 31 - -51 dBm 99 - 未知或无法检测 ATCGATT - PS 附加或分离。查询网络连接状态。 0 - 与网络断开连接 1 - 已连接到网络 ATCGATT1 - 连接到网络 ATCGATT0 - 断开网络连接 ATCIMI - 查询BC20的IMSI号 ATCGSN1 - 查询BC20的IMEI。 ATCGSN0 - 查询 BC20 的 SN序列号。 ATQCCID - USIM 卡标识 (ICCID)。这通常用于检查 SIM 卡状态。 ATCCLK - 返回当前日期和时间 ATQPOWD0 - 关闭模块电源。使用“myBC20.powerOn()”打开模块电源
以下 AT 命令用于 GNSS ATQGNSSC - 查询GNSS电源状态 0 - GNSS 电源关闭 1 - GNSS 开机 ATQGNSSC1 - 打开 GNSS ATQGNSSC0 - 关闭 GNSS ATQGNSSRD - 获取所有 GNSS 信息
更多详情请参考《移远通信BC20 AT指令手册》 或“BC20 GNSS AT 命令手册”
【Arduino】168种传感器模块系列实验资料代码仿真编程图形编程 实验二百零九Gravity: I2C UART BC20 NB-IoT GNSS通信模块 NB-IoT广域低功耗无线通信 GPS/北斗精准定位 户外物联网必备 项目十一最简单的BC20模块测试程序测量NB-IoT的信号强度
实验开源图形编程Mind、Mixly、编玩边学 实验串口返回情况 实验硬件说明 1、NB-IoT天线 NB-IoT通信和GNSS定位功能需要外接天线。用户可使用产品包装中所提供的天线也可额外购买兼容的外接天线以进一步增强收发信号的能力或作为备用。
开发板支持B5/B8这两个频段的NB-IoT通信而目前国内移动、电信、联通三大运营商NB-IoT也主要运行在在这两个频段具体参数如下 国内NB-IoT主要运营商与通信频段 用户可使用覆盖B5/B8频段即工作频率在824MHz~960MHz的PCB天线产品附送、FPC柔性PCB天线、弹簧天线、胶棒天线等各类天线通常用于2G/GSM/GPRS蜂窝通信的天线也可用于NB-IoT通信只要工作频率覆盖B5/B8频段需要注意天线的接头为1代 IPEX接头。
2、GNSS天线 开发板支持GPS/BeiDou北斗双星定位导航具体参数如下 GNSS工作频段 用户可使用有源GPS/BeiDou北斗双频陶瓷天线也可使用单频的有源GPS或BeiDou北斗陶瓷天线需要注意天线的接头为1代 IPEX接头。 建议使用正方形的右旋圆极化有源陶瓷天线以便和卫星信号极化匹配获得更好的信号。陶瓷天线形状为正方形的为右旋圆极化长方形为线极化。 不建议使用无源天线。无源天线需要配合LNA放大器来提高接收信号的强度而开发板并未搭载LNA放大器。
3、SIM卡 NB-IoT通信需要专用的NB-IoT物联网SIM卡如手机SIM卡4G物联网卡等其它类型的SIM卡无法代替。目前产品包装内包含有一张中国联通NB-IoT物联网专用SIM卡包含一份年度基础套餐插入NB-IoT开发板或通信模组内即可使用若流量满足不了使用需求可通过充值月度流量包增加当月流量。后续将会推出更多运营商的NB-IoT物联网专用SIM卡供用户选择。联通NB-IoT SIM卡资费情况如下表 注意 #根据国家工业和信息化部等六部门要求为有效防范和打击通讯信息诈骗所有NB-IoT物联网专用SIM卡均具有机卡绑定功能不可取消。 #SIM卡插入设备首次上电与基站成功通信即视为激活且与通信模组绑定机卡绑定开始年度计费周期360天。 #2G/3G/4G手机SIM卡或大流量物联网卡无法代替用于NB-IoT设备。 #物联网SIM卡不能用于手机、平板、2G/3G/4G模组等非NB-IoT设备否则会导致SIM卡停机。 #已机卡绑定的SIM卡若被插入其它设备内进行通信会导致SIM卡停机。 #物联网SIM卡仅能数据传输无语音通信和短信功能。 #用户可通过微信搜索并关注公众号“DF物联网”,自助查询SIM流量使用情况或对SIM卡进行充值。
【Arduino】168种传感器模块系列实验资料代码仿真编程图形编程 实验二百零九Gravity: I2C UART BC20 NB-IoT GNSS通信模块 NB-IoT广域低功耗无线通信 GPS/北斗精准定位 户外物联网必备 项目十二通过串口查询全球导航卫星系统GGA协议的信息
实验开源代码
/*【Arduino】168种传感器模块系列实验资料代码仿真编程图形编程实验二百零九Gravity: I2C UART BC20 NB-IoT GNSS通信模块NB-IoT广域低功耗无线通信 GPS/北斗精准定位 户外物联网必备项目十二通过串口查询全球导航卫星系统GGA协议的信息实验接线:BC20 UNOVIN 5VGND GNDSCL A5SDA 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//IIC通讯
#define USE_IIC//硬件串口通讯
//#define USE_HSERIAL//软件串口通讯
//#define USE_SSERIALDFRobot_BC20_IIC myBC20(0x33);
void setup() {Serial.begin(115200);myBC20.LED_OFF();//初始化 BC20Serial.print(正在启动BC20请稍等...... );myBC20.changeColor(RED);while (!myBC20.powerOn()) {Serial.print(.);myBC20.LED_ON();delay(500);myBC20.LED_OFF();delay(500);}Serial.println(BC20 启动成功);//禁用睡眠模式myBC20.configSleepMode(eSleepMode_Disable);//启动 GNSSSerial.print(打开全球导航卫星系统... );myBC20.setQGNSSC(ON);myBC20.changeColor(YELLOW);if (myBC20.getQGNSSC() OFF) {Serial.print(.);myBC20.LED_ON();delay(500);myBC20.LED_OFF();delay(500);}Serial.println(GNSS 开启);myBC20.changeColor(CYAN);
}void loop() {myBC20.getQGNSSRD(NMEA_GGA);/*UTC 时间格式hhmmss.ss例如。162436.54 16:24:36.54h - 小时m - 分钟s - 秒*/Serial.print(UTC 时间: );Serial.println(sGGA.UTC_Time());/*纬度格式ddmm.mmmmm例如。3150.7820 31 度 50.7820 分钟d - 度m - 分钟*/Serial.print(纬度: );Serial.print(sGGA.LatitudeVal());Serial.print( );/*北纬或南纬N - 北S - 北*/Serial.println(sGGA.LatitudeDir());/*经度格式dddmm.mmmmm例如。12135.6794 121 度 35.6794 分钟d - 度m - 分钟*/Serial.print(经度: );Serial.print(sGGA.LongitudeVal());Serial.print( );/*经度标识E - 东W - 西*/Serial.println(sGGA.LongitudeDir());/*修复状态0 - 度1 - GPS 定位2 - DGPS 修复*/Serial.print(修复状态: );Serial.println(sGGA.Status());//使用的卫星数量 (0 - 24)Serial.print(卫星数量: );Serial.print(sGGA.StatelliteNum());Serial.println( 颗在使用中);//显示水平精度因子Serial.print(水平精度因子: );Serial.println(sGGA.HDOP());//海拔根据WGS84椭球的高度单位为米Serial.print(海拔: );Serial.print(sGGA.Altitude());Serial.println( m);//地理ID分隔,WGS84 椭球以上GeoID指海平面的高度单位为米Serial.print(地理ID分隔: );Serial.print(sGGA.GeoID_Separation());Serial.println( m);//DGPS数据的累计时间不使用DGPS则为空单位为秒Serial.print(DGPS 计时: );Serial.println(sGGA.DGPS_Age());//DGPS站号,如果不使用DGPS则为空Serial.print(DGPS站号: );Serial.println(sGGA.DGPS_StationID());Serial.println();myBC20.clearGPS();myBC20.LED_ON();delay(500);myBC20.LED_OFF();
#ifndef ARDUINO_ESP32_DEVdelay(500);
#elsedelay(5000);
#endif
}实验串口返回情况 G P G G A 例 GPGGA 例 GPGGA例GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,0000*1F 字段0$GPGGA语句ID表明该语句为Global Positioning System Fix DataGGAGPS定位信息 字段1UTC 时间hhmmss.sss时分秒格式 字段2纬度ddmm.mmmm度分格式前导位数不足则补0 字段3纬度N北纬或S南纬 字段4经度dddmm.mmmm度分格式前导位数不足则补0 字段5经度E东经或W西经 字段6GPS状态0未定位1非差分定位2差分定位3无效PPS6正在估算 字段7正在使用的卫星数量00 - 12前导位数不足则补0 字段8HDOP水平精度因子0.5 - 99.9 字段9海拔高度-9999.9 - 99999.9 字段10地球椭球面相对大地水准面的高度 字段11差分时间从最近一次接收到差分信号开始的秒数如果不是差分定位将为空 字段12差分站ID号0000 - 1023前导位数不足则补0如果不是差分定位将为空 字段13校验值