NB-IoT串口通信
NB-IoT简单介绍
NB-Iot(窄带物联网),本次实验用到的型号是stm32F051 + NB86-G。NB-IOT 节点控制模块是有 1.44 寸 LCD 液晶屏、NB-IOT 模块、和传感器节点接口组成。底部有 miniUSB 转串口,方便单独就一个底板进行调试。
下图为 NB-IOT 一键还原+温湿度模块的硬件图片:
NB-IoT串口通信介绍
其他不做介绍,这里只介绍NB串口通信,stm32有两个uart,分别为uart1和uart2,其中uart1用作stm32与串口调试助手通信的,uart2用作stm32与NB86-G进行通信的。所以如果想要在串口调试助手看到uart2 的数据信息,就需要进行数据透传,也就是,从uart2接收的数据发给uart1,uart1接收到的数据再发给uart2,这样就可以在串口调试助手看到数据信息。
NB-IoT上报和下发指令方式
本文章实现的是通过ctwing电信云平台下发指令给开发板,开发板接收到指令之后,分别进行开灯和关灯。
电信云平台提供了python、go、Java等语言的SDK,所以我们除了在平台下发指令界面点击下发指令完成指令的下发,还可以通过平台提供的API接口完成指令的上报和下发功能(当然SDK包提供了多个API接口,根据需求进行使用)。
实验环境
硬件环境
NB-IOT 一键还原板(开发板,包括stm32F051)
ST-Link 下载器
USB 转串口线
软件环境
STM32CubeMX
MDK-Keil5
串口调试助手
电信云平台
VS Code(用python调用API接口)
实验步骤
在实验开始之前,要先搭建好环境,保证开发板启动之后自动上云,云平台产品、设备、应用提前搭建好,本文章不做介绍。
硬件连接,使用CubeMx生成初始化代码
CubeMx配置如下:
把PB1 GPIO口设置为输出模式,用于LED灯,uart1和uart2设为异步通信模式,波特率为9600。
uart1基本参数,改下波特率,其他默认:
uart1使能中断:
uart2基本参数,改下波特率,其他默认:
uart2使能中断:
配置完成之后,点击GENERATE CODE生成初始化代码。
使用KEIL5编写业务代码
main.c中添加重定向函数、全局变量:
int fputc(int c, FILE