5233| 2
|
[M10教程] 【行空板】用Python玩转开源硬件-第14课 AIoT植物生长日志 |
AIoT植物生长日志 我们都知道,影响植物生长的因素有很多,比如说光照。如果想要研究具体的影响情况的话,就需要持续记录植物生长状况。今天我们就用行空板设计一个实验,用行空板定时记录不同光照下的植物生长情况。 任务目标 本项目所设计实验一共三组,分别为自然光、无光照和全光照。使用三块行空板记录植物生长的光线强度和土壤湿度,同时每间隔一段时间摄像头会拍摄植物图片,记录植物生长情况。 知识点 1. 熟练应用多行空板搭建物联网 2. 掌握可视化面板绘制多数据图表的方法 3. 了解什么是AIoT 材料清单 硬件清单: 软件使用:Mind+编程软件(V1.8及以上) x1 注意:由于本节课要使用Mind+可视化面板,需要将行空板SIoT服务升级为2.0版本。对应版本的Mind+和SIoT2.0升级文件,都可以进入下面链接下载: https://mindplus.dfrobot.com.cn/dashboard_kit0194 动手实践 AIoT植物生长日志的主要功能是收集植物生长环境和图像数据并通过可视化界面实时呈现它们。接下来,我们就分为以下两个任务来制作吧。 任务一:搭建物联网传输数据 在此任务中,我们将应用前面学过的硬件知识,以其中两组实验为例搭建生长日志的物联网系统,实现数据的传输和存储。 任务二:可视化呈现数据 在任务一的基础上,为了更方便的查看分析数据,我们将学习用程序上传图片和多数据图表的方法,完成植物生长日志的可视化界面设计。 任务一:搭建物联网传输数据 1. 硬件连接 由于我们要监测三组植物的生长情况,需要三块行空板,除了测量土壤湿度的传感器以外,全光照组和无光照组为了控制光照,需要准备遮光罩和灯环。 自然光组:土壤湿度、摄像头,可根据下图连接元件。 无光照组:土壤湿度、摄像头、灯环(拍照补光);全光照组:土壤湿度、摄像头、灯环(持续光照)。这两组行空板传感器执行器相同,均可按照下图连线。 2. 软件准备 打开Mind+,按照下面图示完成软件准备工作。 3. 编写程序 植物生长日志要收集三组植物的生长环境数据,并统一传输到物联网平台,那么三块行空板就构成了一个物联网系统。下面我们就来搭建这个物联网系统,实现数据的收集和传输。 (1)搭建物联网系统 首先,我们来确定各行空板的功能并开启服务器端行空板的物联网服务。这里我们选择“自然光组”的行空板为服务器端。 然后,将电脑和三块行空板接入同一网段,并开启“自然光组”行空板物联网服务(SIoT2.0)。 注意:多行空板连接入同一网络、查看网络信息等操作方法,可以参考网址中的教程描述(https://mc.dfrobot.com.cn/thread-314805-1-1.html)。 接下来,进入物联网平台,创建所需的主题,本项目需要建立包含三组土壤湿度、三组光线强度、三组生长土图片和光线对比在内的10组主题。 最后,你可以打开三个Mind+程序文件,分别设置连接并订阅主题(可利用书包快速复制)。 (2)收集传输数据 本项目中需要记录三组植物的生长环境数据,我们可以以自然光组和无光照组为例来看看如何实现。 a)自然光组 首先,界面和引脚初始化。界面初始设置可以直接使用素材中的“自然光组背景”图片,然后设置对应的数据显示文字。当然,也要记得完成摄像头的初始化。 然后,在 循环执行 里更新并传输传感器数据。 最后,定时拍照记录植物生长情况,我们可以建立 变量计时 ,当 变量计时 等于时间间隔时,拍照。 “自然光组”完整程序如下: b)无光照组 无光照组,行空板也需要收集土壤湿度、光线、生长图像,我们可以复制自然光组程序,修改初始界面显示内容位置以及 更新传输数据 函数中发布的消息主题和内容。 另外,由于全暗环境不利于拍摄照片,所以需要加入灯环作为补光灯。 为了避免补光灯的开启关闭,影响到主进程计时,减小和自然光组收集图像的时间误差,可以 启动线程 来完成 等待补光灯开启稳定后,摄像头拍照,关闭补光灯。 “无光照组”完整程序如下: 4. 程序运行 Mind+远程连接自然光组和无光照组行空板,点击运行,观察行空板显示数据和图片,物联网平台显示接收数据。 5. 试一试 你已经完成了“自然光组”和“无光照组”的数据收集和传输任务了,现在请你自己动手实现“全光照组”的数据收集和传输任务。 任务二:可视化呈现数据 1. 编写程序任务一已经实现了数据的传输和行空板上的显示,但是行空板在遮光罩中,查看数据和生长情况并不方便,因此我们将利用可视化面板更好的呈现数据。现在,请你打开“可视化面板”完成新建项目等准备工作。 注意:“可视化面板”的相关操作,参考“第十课 校园物联网大屏系统”。 (1)定时显示图片 我们先以自然光组为例,定时在Mind+可视化平台显示植物图片。在“显示组件”中,找到“网络图片”组件,你可以在“属性区”查看相关使用说明。 根据提示,需要将图片转化为字符串才可以发送到可视化平台显示,具体如何转化呢? 首先,在“扩展库”里的“用户库”中输入链接(https://gitee.com/chenqi1233/ext-base64),搜索并加载base64图片处理库。 添加完成后,在程序 循环执行 之前 初始化base64模块 。拍照完成之后,获取图片””转换base64编码后的字符串 并将它发布给对应的主题,就可以实现定时显示在可视化平台。 其余两组实验,也可以使用同样的方式完成图片的传输。 (2)显示三组光线变化 为了更好地呈现三组光线数据的变化,可以选择使用一个“折线图”组件,三个不同的颜色呈现。要实现这个功能,只需要设置折线的含义并改变数据传输的格式,如“145,10,200”,也就是说三个数据用“,”间隔。我们可以使用 合并“”“”指令以及 变量 完成传输数据的构建。 接下来,在服务器即自然光组程序中,加入接收三组光线数据代码,完成“光照情况折线图”数据的收集。 接收完成数据后,可以尝试增加植物初始状态图片,方便对比生长情况,当然也别忘了增加相关数据组件,显示对应信息。项目完整程序参考下图: 项目参考可视化界面如下图: 2. 程序运行 分别运行三组实验代码,保存可视化项目后,点击全屏,观察可视化界面的各数据、图表、图像变化。 注意:该实验需运行一段时间,才可呈现明显的植物生长变化,项目只提供实验设备制作参考,不提供实验数据和结论。 知识园地 1. 可视化面板多数据图表 多数据图表,是用来对比分析数据变化的图表。可视化面板中,提供了折线图、柱状图、环形饼图等可设置多数据的图表,可以根据图表组件“属性区”提示内容构建传输数据。 构建传输数据,常使用的指令是字符串拼接指令 合并“”“”,一般来说不同类的数据用“,”连接,就像本课中的光线折线图数据。 比较特殊的是在柱状图中,同一类中还可以继续加入更多不同情况的数据,使用“|”间隔即可,比如不同月份的水果售价。 注意:下图中的色块和含义均为“装饰组件”。 2. 认识AIoT AIoT是AI和IoT的组合,即人工智能和物联网融合技术。如果说物联网是实现物与物之间的互联互通,那么AIoT相当于在物联网上加入了可以综合分析的“大脑”,它可以借助人工智能实现检测、分析和决策功能,形成基于物联网的智能系统,更好更个性化的提供服务。 一般来说包含机器视觉、语音识别等功能的物联网项目,比如智能安防,都可以称为AIoT技术应用,下节课我们将继续这个主题的探索。 3. 指令学习 挑战自我 还记得12课的“AI门禁安全监控”项目吗,在学习了本课之后,请你自己动手修改12课代码,利用可视化界面,实现在电脑上查看来访人员以及远程开启门锁功能。 附件下载 第14课 AIoT植物生长日志.zip |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed