本文主要介绍机智云NB-IOT方案实现远程测控系统,主要实现远程采集温湿度信息,控制一个LED灯。
主控MCU采用
STM32F103C8T6芯片(注意本系统采用片内时钟源,如果你是外接时钟源,需要自己配置好时钟树),NO-IOT采用
零零智能 RINLINK N256 NB-IOT模块,
温湿度传感器采用
DHT11模块连接到
PB12,
LED接到
PA6(高电平有效)。
设备与机智云数据交互的基本数据流如下图所示
APP接收设备上报数据:设备上报数据→运营商IOT平台→机智云平台→APP端
APP下发设备控制数据:APP端→机智云平台→运营商IOT平台→设备接收数据
正文:
其他信息在下面里面在进行说明,登录机智云平台过后进入开发者中心
1.点击右上角创建新产品。
点击创建新产品创建之后如图所示
2. 产品分类:这个选项用于选择对产品的类别进行分类
3. 产品名称:这个选项将会决定你绑定设备时候APP默认显示的名称
4. 技术方案:
1wi-fi/移动网络方案:用于创建WiFi或者移动网络通讯方式的产品
2蓝牙方案:用于创建蓝牙通讯的产品
3网关方案:用于创建网关类产品,包含网关设备和网关子设备
5. 选择通讯方式:用于选择设备的通讯方式,如果是wifi通讯类模组选组wifi,如果是2G,3G,4G类模组,选择移动网络,如果是NB-IOT通讯,就选择NB-IOT。
6. 数据传输方式:“定长”指在功能数据点上报下发时一并传输,“变长”指在功能数据点上报下发时指传输改变的功能数据点。
7.由于本文将介绍NB-IOT模式,所以选择NB-IOT方式。本模式下面需要对命令下发方式进行选择:PSM(power saving mode):终端非业务期间深度休眠,不接收下行数据,只有终端主动发送上行数据(MO Data)时可接收IoT平台缓存的下行数据 ,适合对下行数据无时延要求的业务。DRX(Discontinuous Reception)可以认为下行业务随时可达终端设备,在每个DRX周期( 1.28s,2.56s,5.12s 或者10.24s ),终端都会检测一次是否有下行业务到达,适用于对时延有高要求的业务。eDRX(extended Discontinuous Reception)终端设备兼顾低功耗和对时延有一定要求的业务,在每个eDRX周期内,只有在设置的寻呼时间窗口内,终端可接收下行数据,其余时间终端处于休眠状态,不接收下行数据,该模式可在下行业务时延和功耗之间取得平衡。鉴于本次文章做到对LED控制和上传的实时性和展示效果,本文将选择PSM模式,在此模式下,为了能够及时的接收到云端缓存的下行数据,将采用定时4秒上传温湿度信息的形式获取云端下行数据。
按照自己需求选择好选项之后点击保存,完成产品的创建。
8.创建完产品之后我们需要对产品数据点进行添加
创建完毕之后应用
9.创建完数据点之后我们进入MCU开发,选择单片机型号,输入产品首页的Product Secret之后点击生成代码包。
生成代码之后下载到电脑备用。
10.接下来是代码处理部分,由于ST不再对标准库进行更新,所以我才用自动代码的HAL库进行开发,此处需要用到一个工具CUBEMX,而且安装了STM32F1的库。没有软件和库的可以去QQ群下载(438373554)
11.解压代码,用CUBEMX进行代码相关的初始化,打开CUBEMX之后如图所示
修改相关信息,并配置好时钟树
配置后使用的GPIO
12.点击GENERATE CODE生成代码,然后用keil打开代码,对相关的代码和驱动进行移植,最后我将会将工程代码放到附件,所以此处我不再对程序进行解释,修改分是中文注释,自行查看。生成代码,下载到单片机。
13.在云端手动添加设备
输入IMEI,设备型号N256点击添加
板子上电待通讯正常之后云端就会激活设备,在线列表看到设备在线
设备在线之后我们需要生成二维码,然后用手机APP扫码绑定设备。二维码我们可以利用机智云串口调试助手来生成。
教程到此结束,需要代码请下载附件,附件太大已上传网盘。不理解可以联系我15120205205(QQ 微信 电话同号)