一、开发环境
1.1.概述
由于之前在ESP32最小开发板的文章中已经详细说明了如何实现WiFi联网并获取天气数据,因此这里不在详细介绍ESP32模组的WiFi功能,可参考之前的文章介绍,这个文章重点实现通过运营商基站网络进行通讯,并读取位置传感器信息发布至MQTT服务器。
我们的ESP32+BC260Y+L76K物联网开发板目的是实现GPS卫星定位功能,并通过运营商基站网络进行通讯,将位置信息发送到物联网平台进行下一步的处理,GPS定位是需要户外进行,否则会搜索不到卫星数据,在户外我们是无法使用ESP32的WiFi功能(即便是有),因此我们只能借助运营商的基站无线网络,这里选择的是NB-IoT网络,选用的模组是移远的BC260Y,选用NB-IoT通讯协议主要是为了低成本,低功耗,覆盖面广,它无法与4G网络速度相比,如果想要实时传输大量数据还是需要4G网络,后期我们会陆续迭代升级。
定位模组选用的是移远的L76K,关于通讯模组和定位模组这里不在详细说明,可参考官方的数据手册。
在户外需要电池来供电,我们在开发板中设计了电池供电、充电功能,以方便实验测试。
1.2.准备工作
1.2.1.硬件
- ESP32+BC260Y+L76K物联网开发板
- 物联网卡
- 网络通讯天线
- GPS天线
- USB 数据线 (Type-C 数据线)
- 电脑(Windows 10)
1.2.2.软件
准备软件安装包:
我们在开发资料包中提供的Arduino IDE版本是 2.3.2
如需要安装其它版本,可到Arduino官网去另行下载并安装。
Arduino官网地址: https://www.arduino.cc/en/software
安装过程不在赘述,可参考之前的文档。
二、运营商基站NB-IoT网络通讯
2.1.初始化BC260Y通讯模组
我们打开Arduino IDE开发工具,新建项目ESP32_BC260Y_INIT,输入代码:
#include <Arduino.h>
#include <Quectel_BC260Y.h>
/*定义移远BC260Y串口,使用ESP32的UART2:RX=GPIO16, TX=GPIO17*/
#define SERIAL_PORT Serial2
// 初始化移远BC260Y库
Quectel_BC260Y quectel;
void setup() {
// 初始化串口波特率
Serial.begin(9600);
Serial.println("\r\nQuectel BC260Y Module init example");
Serial.println("=================================================================");
// 初始化BC260Y
quectel.begin(&SERIAL_PORT);
// 查询固件版本号
Serial.print("FirmwareVersion: ");
Serial.println(quectel.getFirmwareVersion());
// 查询网络日期时间
Serial.print("Time: ");
Serial.println(quectel.getDateAndTime());
// 查询IMSI
Serial.print("IMSI: ");
Serial.println(quectel.getIMSI());
// 查询ICCID
Serial.print("ICCID: ");
Serial.println(quectel.getICCID());
// 查询网络信号质量
Serial.print("RSSI: ");
Serial.println(quectel.getRSSI());
// 查询网络状态
Serial.print("Status code: ");
Serial.println(quectel.getStatusCode());
Serial.print("Status: ");
Serial.print


3760

被折叠的 条评论
为什么被折叠?



