【安信可NB-IoT开发板EC-01F的应用】通过STM32F103C8T6单片机驱动入网阿里云或OneNET云平台

简介

1、硬件准备以及接线

1.1、硬件准备

元器件 数量
USB转TTL 1个
STLink下载器 1个
STM32F103C8T6单片机 1个
EC-01F开发板 1个
天线 1个
杜邦线 若干

在这里插入图片描述

1.2、硬件接线

STM32F103C8T6主控板与EC-01F开发板之间只需要四根线便可完成驱动与数据通讯操作,接线如下:

STM32F103C8T6主控 EC-01F开发板
3.3V 3.3V
GND GND
PA2(Tx) RX1
PA3(Rx) TX1

STM32F103C8T6主控板与STLink下载器之间也只需接四根线便可完成程序下载与调试操作,接线如下:

STM32F103C8T6主控 STLink下载器
3.3V 3.3V
GND GND
CLK SWCLK
SWDIO SWDIO

STM32F103C8T6主控板与USB转TTL之间也只需接三根线便可完成程序下载与调试操作,接线如下:

STM32F103C8T6主控 USB转TTL
GND GND
PB10(Tx) RxD
PB11(Rx) TxD

2、阿里云生活物联网平台准备工作

2.1、注册用户并登录

第一步是在阿里云生活物联网平台上面注册账户、完成实名认证之后登录账户。

2.2、创建项目

账户登录成功之后进入控制平台,并在控制平台主界面上创建新项目,并填写项目名称,这里填写 “NB_IoT_Prj” ,类型选择 “自有品牌” 如下:
在这里插入图片描述

2.3、创建产品

创建完项目之后,点击进入项目,创建新产品,填写产品名称,自定义选择所属类别,选择 “蜂窝入网” 方式,最后点击 “确认”,如下:
在这里插入图片描述

2.4、创建设备

  1. 完成产品创建之后,将进入产品属性配置,功能定义部分,用户可删除部分不要的功能,添加自定义功能。

  2. 人机交互部分,用户可用公版APP或者创建自有APP,我们这里勾选 “公版APP”,填写品牌以及型号,如下:
    在这里插入图片描述

  3. 设备调试部分,选择 “未认证模组”,该模组在最后面,点击新增测试设备,随机填写设备名称,此时将生成设备三元组,保存此三元组,用以激活设备。整个操作过程如下:
    在这里插入图片描述

  4. 通过公版APP绑定设备,我们需要获取二维码,在批量生产页面点击 “配网+App下载二维码”,填写 “设备名称”,点击 “生成二维码”,如下:
    在这里插入图片描述

3、OneNET云平台准备工作

3.1、注册账户

与阿里云生活物联网平台的准备工作一样,OnetNET的准备工作第一步先到OneNET控制台上注册用户,完成实名认证,之后便可以登录账户并开始创建产品等操作。首先进入 “NB-IoT物联网套件” 页面:
在这里插入图片描述

3.2、创建产品

点击 “添加产品”,在配置界面填写好产品名称,选择产品行业以及产品类别,联网方式选择 “NB-IoT”,入网方式选择 “LWM2M”,操作系统选择 “无”,网络运营商选择 “移动”
在这里插入图片描述

3.3、创建设备

产品添加成功将提示添加新设备,点击 “立即添加设备”,将进入设备管理,点击 “添加设备”,设备类型选择 “正式设备” ,填写设备名称,填写入网设备的 “IMEI” 以及 “IMSI” ,开启自动订阅,如下:
在这里插入图片描述
完成以上操作之后,系统将生成 “设备ID” 以及入网密钥 “PSK” ,且将提示PSK仅出现一次,要妥善保管。
在这里插入图片描述

4、STM32F103C8T6驱动EC-01F的源码分析

4.1、串口驱动

项目用到STM32F103C8T6的两个串口,UART2用于主控板与EC-01F之间的指令交互,UART3用于打印log信息,以UART2的驱动为例,其驱动操作如下:
在这里插入图片描述

4.2、入网阿里云平台的指令设置流程如下:

	EC616S_AT_Test();				//AT指令测试
	EC616S_RF_Mode_Choose(RF_Full_Func);	//关闭飞行模式
	EC616S_Net_Attached_Mode_Choose(Register_status);	//附着网络
	EC616S_Cloud_Select(2,1);		//设置入网阿里云平台,通讯数据选择JSON格式
	EC616S_Join_Aliyun(product_key,device_name,device_secret);		//配置入网阿里云必需的三元组
	EC616S_Open_Client_Link(product_key);		//打开TCP客户端
	EC616S_Link_Server(device_ID);				//连接服务器
	EC616S_MQTT_Sub(sub_topic);					//向服务器订阅指定主题的消息
	EC616S_MQTT_Pub (pub_topic,"Json_Message");		//发布消息到MQTT服务器

4.3、入网OneNET云平台的指令设置流程如下:

	EC616S_AT_Test();				//AT指令测试
	EC616S_RF_Mode_Choose(RFMode);	//关闭飞行模式
	EC616S_Net_Attached_Mode_Choose(NetMode,stepFlag);	//附着网络
	EC616S_Port_Inquire(serverMsg_OneNET,stepFlag);		//查询OneNET入网IP以及端口
	EC616S_Network_Status_Inquire(NetStatus, stepFlag);	//查询当前的网络状态
	EC616S_Create_OneNET_Connection(stepFlag);			//创建OneNET的连接
	EC616S_ADD_Object(ObjectID,2, "11", 2, 1, stepFlag);	//添加对象实例
	EC616S_Register_Request(9600,60,stepFlag);			//向OneNET发送注册请求
	EC616S_Register_Source(sizeof(ResourceID), ResourceID, stepFlag);	//向OneNET注册资源
	EC616S_Notify(ObjectID, ResourceID, (sizeof(uploadData) + 1),uploadData);		//上传数据到OneNET平台

5、入网效果

入网OneNET成功并成功发布数据之后的效果如下图:
在这里插入图片描述

6、源码获取

源码获取链接:https://gitee.com/ritage/stm32_-drive_-ec-01-f.git

更多资料

以上就是本期分享的内容,目的在于让大家快速适应新品方案的开发,以上提供的驱动源码联系我们可以免费提供

官方官网:https://www.ai-thinker.com
开发资料:https://docs.ai-thinker.com/
官方论坛:http://bbs.ai-thinker.com
公司地址: 深圳市宝安区西乡固戍华丰智慧创新港C栋410

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>