[MM32生态] 基于MM32F3270搭建OneOS nb-iot工程

[复制链接]
 楼主| 春娇霹雳娃 发表于 2023-7-25 17:18 | 显示全部楼层 |阅读模式
本帖最后由 春娇霹雳娃 于 2023-7-31 10:37 编辑

#申请原创#@21小跑堂
[payamount]55.00[/payamount]
[pay]
1.简介
本实验搭载在MM32F3270实现与中移物联云端OneNET平台通信,对温度和光照进行实时监测,以及从平台获取指令执行指定操作。适用于智能农业、智慧城市等应用场景。系統设计框图如下图所示:
2262864bf8d6df3a78.png

中移物联网NB-IOT Arduino盖板如下图所示:
5009364bf90ad43e67.png

其电路原理图如下图所示:
137564bf8e7d4112e.png

MM32F3270使用高性能的 Arm® Cortex-M3 为内核的 32 位微控制器,最高工作频率可达 120MHz,内置高速存储器,丰富的 I/O 端口和多种外设。含512KB Flash,128KB SRAM。其硬件外观如下图所示:
209464bf8dceb6f89.png

其电路原理图如下图所示:
1447964bf8e2c88ba2.png

2.准备工作
2.1软件环境
  • MDK5软件
  • 串口调试助手
  • MM32F3270的Keil PACK包
  • MM32-JLink 驱动

2.2硬件环境
  • 串口板:串口调试助手观察样例的输出log和模组的基本信息
  • USB下载口:用于下载样例程序和给板子供电
  • 底板:MM32F3277G7P为主控芯片,用于采集上层板光敏电阻和热敏电阻的数据,对小灯的控制和M5311模块通信
  • M5311模组:用于连云,处理OneNet平台的通信和数据处理

1906064bf90127a413.png

3.具体操作
3.1设备端
  • 根据硬件接线图正确接线
  • 给芯片烧入MM32_demo_V1.0.1目标样例
  • 打开串口调试助手,观察输出log,在平台操作时会有帮助

3.2平台
OneNet平台登录
首先需要一个OneNet(https://open.iot.10086.cn/)平台的账户。若没有账户,则根据平台提示,创建账户即可。然后登录OneNet平台。

创建产品
进入OneNet首页,选择NB-IOT物联网套件,在跳转后的页面选择立即使用

4321464bf917294abe.png 1253664bf9179d977e.png
在跳转页面中选择添加产品
2244264bf9188e77c8.png
在弹出界面中按照下图填写。注意产品名称根据提示随意填写,其他事项,与图片保持一致。
326564bf91a3b6526.png 2485864bf91b4b8d99.png
添加设备
在添加产品点击确认之后,会弹出一个小的页面,在页面中选择立即添加设备

293164bf91c795089.png
在跳转页面中,选择添加设备
9474364bf91d8ada8d.png
在弹出页面中填写模组信息,注意,设备类型选择“正式设备”,设备名称根据要求随意命名。IMEI和IMSI的信息,则需要在串口log中查看。自动订阅需要开启。最后点击添加即可。
2385064bf91e9acbd0.png
5107864bf91f01ce11.png

添加设备失败的特殊情况
若在填写设备的IMEI出现IMEI码已被占用时,如图所示:

1254164bf9204c4ec6.png
这时联系使用该模组的用户,在OneNet平台端,删除使用这个IMEI码添加的设备即可。如图所示
3533864bf920fdace2.png


设备实例信息查看
首先在设备列表-设备详情对应的设备详情页面查看设备是否在线。如图所示

9011764bf922208b5f.png
设备显示在线后,在设备的详情页面对应的设备资源列表下,点击实例详情,查看温度和光照情况。如图所示
6415864bf92313d274.png
注意,模组是现将温度的10个数据依次上传到平台,上传完成之后,再上传光照的10个数据的一个字符串。因此在打开温度详情后,并打开实时刷新。,数据会以2-3秒更新,就会看到温度曲线动态变动,直到10个数据上传完成。若未在平台下发指令,则间隔8分钟左右,温度的曲线又会开始变化,更新下一组温度数据。


下发指令
下发指令需要设备在平台上处于在线的情况下,才能下发指令
  • 用户通过在设备资源列表下找到属性为“string”的实例
  • 用户对该实例执行写操作,输入带有“led_ctrl”的字符串

5702264bf925d0efff.png
等待OneNet平台下发指令成功,串口中出现图中log则表示MCU查询到的模组中有启动闪灯任务的指令。 MCU就会执行控制小灯闪烁的任务
8228664bf92687770f.png

4.功能描述
设备上电之后,MCU开始运行,并执行系统初始化和温度以及光照的数据采集。此时可以观察到板上的红绿橙蓝四个小灯处于长亮,若平台下发特定指令,红绿橙蓝四个小灯将会闪烁,循环往复。每个任务都是串行执行的,即一个任务执行完成之后才会执行下一个任务。
(1)数据采集
MCU分别采集温度传感器和光度传感器的数据。采集方式为,每隔10秒采集一次数据,累计采集10个数据。采集完一组,即10个数据,做如下处理:
  • 温度被放大100倍,例如3612则表示为36.12
  • 光度被封装成一个字符串,该字符串由之前采集的10个数据以“;”分隔组成,例如:313.60;315.08;325.73;309.21;310.66;313.60;315.08;325.73;309.21;310.66;

(2)数据上传
当数据采集完成后,MCU控制模组开机。模组等待与OneNet平台连接,连接成功后,上传数据。在模组执行一次上传任务时,OneNet平台的温度详情页,能够看到温度的曲线会以2-3秒的时间更新一个数据,直到10个数据全部更新;OneNet平台的光照详情页能看到之前在模组内缓存的10个数据。

1640864bf92b11a720.png
6817064bf92b75aa75.png
(3)数据下发
当设备在OneNet平台处于在线状态,且数据上传完成后。模组将循环查询平台是否有下发配置指令。模组查询配置指令的时间间隔为5s,查询次数为60次,加上查询指令执行的时间累计总时长约为5分钟。若在这个时间之内,用户没有在平台下发指令或者是下发指令不包含“lled_ctrl”字符串。在模组的查询时间结束后,模组将和平台断开连接,同时MCU将模组关机,MCU与设备将按照(1)到(3)循环往复。若在模组查询期间,用户在平台成功下发带有“led_ctrl”的指令,且模组成功接收指令后,MCU将会控制小灯闪烁。闪烁情况为:红绿与橙黄两组等同步闪烁,红和绿交替闪烁,橙和蓝交替闪烁。小灯闪烁的持续时间约5分钟。

5.实验结果

USB供电,进入OneNet平台,观察温度和光照的实时变化

1. 两个小灯先后连续闪烁
2. 进入OneNet的NB-IOT平台,查看设备详情,可观察到温度曲线的实时变化,以及光敏电阻的实时情况
3. 串口助手,显示初始化信息,以及温度,光照信息
实验流程和现象视频:

6.附件
电路图: SCH_MB-036_RevB.pdf (65.83 KB, 下载次数: 3) 中移物联网 NB-IoT Arduino 盖板 V1.1.0.pdf (667.63 KB, 下载次数: 7)
工程文件: mm32f3277g7p-eminiboard-seekfree.zip (52.42 KB, 下载次数: 4)

[/pay]


点评

搭建OneOS nb-iot工程实现MM32F3270单片机与中移物联云端OneNET平台通信,过程详细,实现效果较好。  发表于 2023-7-28 14:09
xld0932 发表于 2023-7-26 09:23 | 显示全部楼层
 楼主| 春娇霹雳娃 发表于 2023-7-31 17:44 | 显示全部楼层
板凳
caigang13 发表于 2023-8-2 07:43 来自手机 | 显示全部楼层
沙发,还要付费才能看的帖子。
 楼主| 春娇霹雳娃 发表于 2023-8-2 09:28 | 显示全部楼层
caigang13 发表于 2023-8-2 07:43
沙发,还要付费才能看的帖子。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:灵动系统开发工程师
简介:none........

19

主题

154

帖子

3

粉丝
快速回复 返回顶部 返回列表