2026-5-19 18:00:38 [显示全部楼层]
15浏览
查看: 15|回复: 0

[MIT IoT] 《数据采集和分析》2 - [用数据开展园艺工作]之Part 2 ...

[复制链接]
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  
使用数据采集器App追踪阳光
为你的app添加组件,即可实时采集数据!

从这里开始

1.查看数据采集器App设计
●如果还未导入启动文件,请访问 http://ai2.appinventor.mit.edu,打开由教师提供的模板文件(Data_Collector_STARTER.aia)或在项目2第1课文件夹中查找该文件。(注:该文件可在part0part1或本文末附件中下载)
●查看启动文件中已有的组件。你能预测每个组件的功能吗?别忘了手机下方那些看不见的组件!
●温馨提示:请勿重命名组件,后续编码时仍需使用原名!

《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图1

这些组件的作用机制是什么?你可以猜猜看
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图2

2.查看代码
点击右上角的Blocks(逻辑设计)按钮,查看app的代码编写位置。部分代码已预先准备,方便你快速上手。
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图3

3.观察还没有填写代码的when MicrobitDataChannel.MessageReceived  代码块。
当app接收到Microbit发送的消息时,该模块将自动运行。

《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图4

●当使用when MicrobitDataChannel.MessageReceived代码块时,app会实时接收通过蓝牙连接发送的消息。

《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图5

4.讨论:你会如何在app中添加代码来显示阳光数据?
●在数据展示中,当前数据值标签(CurrentDataValueLabel)是你模块中的一个展示位置。要让该标签显示日照数据,我们将分步骤进行说明!
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图6

●在模块中,点击CurrentDataValueLabel以显示不同选项。找到CurrentDataValueLabel.text模块,将其拖拽到MessageReceived模块中。
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图7

●将变量 message设置为标签文本。将鼠标悬停在“message”一词上即可查看该变量。该变量存储了通过电磁波从Microbit设备发送的消息内容——此处为阳光数据。
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图8

●将get message块拖拽至set CurrentDataValueLabel.text中:

《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图34


5.连接App Inventor Companion
●连接移动设备以测试代码(操作步骤同Part1第6步)。
●随后将你的app通过无线方式连接至Microbit设备(Part1,步骤7至11)。
●请仔细观察“当前数据(Current data)”标签旁的数值。
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图9

《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图33


尝试开展实验,并与团队成员讨论观察结果:
◻ Microbit是如何检测阳光的?用手指遮挡Microbit的不同部位。(别担心!轻轻触摸是安全的!)Microbit在表面的哪个位置能感知光线?(确定后请向下滚动鼠标查看答案!)
◻ 哪种光线最适合Microbit传感器?建议与团队合作,在自然光和人工光源下测试传感器性能。app会如何显示窗边或户外环境的光照强度?当光源距离灯具50厘米以内时,人工强光环境下的读数会呈现怎样的差异?你认为这些不同光源类型之间存在哪些显著区别?
◻ 光传感器的数据范围是多少?app能显示的最大数值是多少?最小数值是多少?换句话说,数据范围具体指什么?
◻ 数据采集时间点如何确定?app中的数据是持续更新还是仅在特定时间点更新?数值更新频率如何?建议使用时钟或手机进行计时,即Microbit设备接收消息之间的间隔时间。请在团队笔记本中记录具体秒数,该数据后续可能具有重要参考价值!
◻ 探讨:有哪些方法可以实现数据可视化?当前该app仅能逐个显示数据点(即单个数值)。若需追踪光照强度随时间的变化趋势,例如评估阳光对植物全天生长的影响,该如何进行分析?
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图10
接下来,你将构建一个可视化模型以展示数据随时间的变化趋势。具体步骤如下:
● 在app界面中添加图表组件,以便随时间推移绘制数据曲线
● 规范图表行为规范
● 测试app
● 探讨图表的重要组成部分
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图11

6.添加图表组件以可视化日照数据。
●在调色板中找到图表抽屉。
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图12

●拖动第一个组件“Chart图表”。该组件可为图表创建框架,并提供多种实用的格式设置功能。
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图13

●在组件中点击并高亮显示Chart1,将高度和宽度属性更改为“Fill parent充满”。
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图15

●接下来,将ChartData2D组件拖拽到图表区域。注意:此类图表称为graph折线图,可帮助你直观呈现数据随时间的变化趋势。
●图表已导入app,现在可以开始设置其行为参数了!
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图14

7.对图表编写代码以显示数据
切换至Blocks编辑器(逻辑设计)。如何让图表显示阳光数据?
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图16

●从ChartData2D1抽屉中取出第一个代码块AddEntry,将其拖放到MessageReceived代码块中。
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图17

●在AddEntry中需要添加哪些内容来显示光照数据?
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图18

●你会为x添加什么?你会为y添加什么?
○x轴和y轴是坐标平面的组成部分,这可能是你在数学课上学过的内容。你的app通过坐标平面来展示光传感器数值之间的关系。
○x轴为横坐标轴,呈左右方向延伸。
○y轴为纵坐标轴,呈上下方向延伸。
○x通常在图表中显示时间(如图所示)。
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图19
○y轴通常显示数据值。此处,y轴将表示关于阳光强度的数据。
●首先获取y槽的阳光强度数据。y的数据将来自Microbit消息。回顾之前如何通过get message块获取数据来填充CurrentDataValueLabel。
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图20

●该图表需要为x轴设置数值。多数图表中x轴表示时间轴。从变量管理器中拖拽get代码块,通过其下拉菜单选择全局变量time,随后将该模块添加至AddEntry组件的x轴槽位。
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图21

●但这里存在一个问题!纵观整个代码,变量time当前被设为0且保持不变。若要延长新消息的到达时间,需以恒定速率递增全局变量time。此时必须定义该恒定速率,即图表周期period。

定义:周期period是指Microbit每次发送消息之间所经过的时间间隔。

●Microbit每次发送消息之间的间隔时间是多少?(提示:你可能在上次测试该app时已将其记录在笔记本中。)
●请注意代码顶部的period变量,即每条消息之间的间隔秒数。2秒是否符合你对消息间隔时间的预测?
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图22
●相对于App Inventor代码,Microbit还具备独立的专属代码。其代码period同样设定为2秒。(在第四课中,你可以通过修改App Inventor代码来调整Microbit的period设置。)

8.在app中记录时间。
每当Microbit发送新消息时,你将如何增加全局变量time?
当MessageReceived模块运行时,将变量time设置为按变量period的数值递增。
●从变量抽屉中拖出一个set块。从下拉菜单中选择变量time。随后,将set global time块拖放到其他块下方。
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图24

●每次收到新消息时,你将如何使变量time递增?请前往数学Math抽屉并取出加法(+)积木。
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图23

●将全局变量time添加到全局变量period中(具体操作可参照前文,通过「变量」面板查找「get global period」模块)。该代码段会在每次接收消息时自动增加2秒计时。例如,Microbit设备发送的新消息时间戳将依次显示为2秒、4秒、6秒等数值。
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图25

●现在你的图表中,x轴显示时间,y轴显示日照值!
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图26

9.更新时间标签
当前界面中的“Seconds”标签未显示当前时间。请将CurrentTimeValueLabel设置为时间变量。
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图27

●从CurrentTimeValueLabel下拉菜单中拖拽set text代码块。
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图29

●添加全局变量time。
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图30

◻该图表是否正常运行?
●连接App Inventor Companion进行代码测试(操作步骤与Part 1第5步相同)。
●然后通过蓝牙将app与Microbit设备连接(Part 1,步骤7至11)。
●检查“Seconds”标签中的数值:
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图28

●从该图表中还能获取哪些其他信息?
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图31

如何使用x轴上的数字和数据点来检查周期period?
●数据收集有助于分析现实中通常无法观察或感知的模式与关联关系。
●你能收集哪些花园内相关信息?
《数据采集和分析》2 - [用数据开展园艺工作]之Part 2  ...图32

通过收集教室或社区周边的阳光强度数据来测试该app
●建议将Microbit放置在阳光充足的窗边,保持与app的无线连接状态过夜运行。只要设备持续通电,app即可连续多日采集Microbit数据。请问你能生成最长的图表是怎样的?
   ○为确保最佳稳定性,请按照本文末尾说明构建可独立运行人app。
   ○无需独立app,只要不修改App Inventor浏览器中的代码,你仍可将app与Companion保持连接状态,便可实现长时间(甚至数日)的持续运行。
   ○请确认app显示绿色状态,且你的移动设备与Microbit处于同一房间内。

◻与团队成员进行讨论:
●阳光与植物生长之间存在何种关系?太阳究竟如何影响植物生长?你对阳光与植物生长的科学原理了解多少?如何通过数据进行验证?
●你能观察到哪些趋势?趋势是指数据集呈现的总体方向(上升或下降)。与团队成员共同分析图表中预期出现的趋势,这些趋势将如何反映花园环境的重要变化?它们对优化光照、温度或湿度条件具有何种指导意义?

◻与团队共同尝试的其他事项:
●修改图表设计。查看ChartData2D1组件的属性,尝试将黑色线条更改为彩色线条。
●分享你的图表图像。了解如何在手机或平板电脑上使用屏幕截图功能。随后保存团队收集的图表图像。这些色彩丰富的图表既可作为规划花园改造时的参考依据,也可作为学校演示文稿中的佐证材料。
●分享你的app!
  ○将团队的图表app导出为.aia文件,提供给其他团队在App Inventor中进行测试!请参照《app共享与重构》中的操作指南。
  ○构建图表app的打包版本(.apk)让其他人来测试!请参考《app分享与二次开发》中的操作指南。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail