8104| 19
|
[M10项目] 绿色生活•低碳出行——碳排放记录仪 |
本帖最后由 hnyzcj 于 2023-2-26 20:48 编辑 【项目源起】 碳排放记录仪是2022年南京市创客大赛现场赛树人学校学生作品。现场赛要求制作一套碳排放记录仪,包含智能可穿戴装置和数据服务终端。智能可穿戴装置,实现至少三种不同出行方式的碳排放计算,并记录三种方式的碳排放量,从而获取相应的奖励等级。同时,数据服务终端也可以根据天气情况给出行者合理建议,选择合适出行方式。 作品要求:我们常用的出行方式有汽车、火车、飞机、公交车、地铁、骑行、步行等。除了骑行和步行是零碳排放外,其余的出行方式都会不同程度的排放二氧化碳,这些出行方式的碳排放量具体如下:
表1不同方式碳排放量数据表 【设计方案】 碳排放记录仪设计了可穿戴端和服务器端,可穿戴端用于不同出行方式的碳排放的计算,并将数据发送到服务器端,并接收来自服务器端的出行建议;服务器端用于接收来自可穿戴端的碳排放数据,并对数据进行相应的评定,且可以根据天气情况给出出行建议。具体功能如图1所示。 【项目展示】 【功能简介】 本项目作品具备功能如下: (1)计步计算:可穿戴端具有三种出行方式进度条记程功能,并能将完成的路程按公式正确计算为对应的碳排放量数据。 (2)数据上传:计算后的数据通过SIot物联网平台提交,通过平台查看数据,服务器端可同步显示三种方式的碳排放量。 (3)排放评定:服务器端根据三种不同方式的碳排放,给出相应的评价,同步在可穿戴端对应显示。 (4)出行预测:服务器端根据外接光线和水分传感器数据,给出行者一个合理的出行建议。 【硬件材料】
表2项目器材清单 【制作过程】 (1)参数配置:本次系统的开发是基于行空板进行的 步骤一:配置行空板 本次作品中我们使用两块行空板分别作为服务器端和可穿戴端,所有数据都是上传到行空板上,并同步到其中一块的SIoT上。因此,我们需要将两块行空板连入WiFi,并记录分配的相关IP地址。 连入WiFi:将行空板通过USB连接线与PC使用,行空板会虚拟为一个RNDIS网卡设备,此时板子IP地址固定为10.1.2.3,在浏览器中输入上述地址,登陆行空板。鼠标点击左侧的“网络设置”连接,进入下图界面,输入WIFI热点的名称及密码,连接无线热点。连接成功后,系统分配给行空板一个IP地址:10.6.86.80如下图3所示。假设此块主板是手腕端,并将其作为SIoT数据上传中心,那么该地址就是后续我们在服务器端配置的物联网上传地址。 注:将行空板连接路由器或手机的热点(注意需要使用2.4G Wi-Fi),然后其他编程设备(电脑、平板、手机)连接同一个热点,如果电脑和行空板都连接了同一个Wi-Fi,但是依然无法连接,可能此Wi-Fi禁止网络中的设备互相访问,则可以尝试更换一个热点测试。 步骤二:开启SIoT服务 行空板中自带SIoT服务,进入系统后,点击“应用开关”连接,进入SIoT开关界面,确认SIoT服务启用,否则采集的数据无法上传,如下图所示行空板已经开启SIoT服务。 图4开启SIoT服务器 (2)编程设置:编程使用的是Mind+图形化编程方式+行空板完成上述任务。 步骤一:环境部署 打开Mind+编程软件进入后,将其切换至“python”模式,如下图5处。 鼠标点击左下角“扩展”按钮,在官方库页面中添加“行空板”和“MQTT-py”库,在pinpong库页面中添加“pinpong初始化”和“WS2812 RGB灯”库,如下图6图7所示。 步骤二:编写程序 ▲程序初始化(手腕端和服务端) 从MQTT和二维码解码指令集中拖着指令如下图8所示,手腕端和服务器端程序初始设置大致相同,其中区别在于指令“初始化MQTT”设置如下所示:MQTT平台选择SIoT,SIoT地址为上述行空板子获取的IP地址,SIoT Port端口为1883,用户名为siot,密码为dfrobot。其中服务器端SIoT服务器地址为:10.6.86.80,手腕端SIoT地址为127.0.0.1(10.6.86.80)。MQTT订阅消息分别为“footjl”、“busjl”、“metrojl”对应步行、公交、地铁的碳排放评定,“foot”、“bus”、“metro”对应步行、公交、地铁的碳排放数量。 ▲服务器端程序: 界面部分程序:如下图9所示,主要包含三部分构成,分别实现显示屏中绿色表格,4个按钮及相关文字的实现。表格及文字提示用于相关提示,4个按钮分别用于发送碳排放等级评定及出行建议。具体程序如下图所示。 主程序部分:主程序部分在屏幕上显示实时采集的环境光和是否下雨的数据。 数据接收部分:实现了接收手腕段三种方式发送的碳排放量数据(步行,公交、地铁)。下图中只截取出了步行方式的程序,当服务器端接收到手腕端发送来的出行碳排量数据,RGBLED对应亮绿色的灯光,同时屏幕显示出相应碳排放量值。下图11中为步行方式接收到的碳排放量值程序。缺少的公交和地铁方式代码这里不再赘述。 数据发送部分:服务器端接收到手腕段发送来的数据后,需要对不同出行方式给于评定。我们在程序中定义三种方式:零碳出行(步行)、低碳出行(地铁)、高碳出行(公交汽车)。下图12为步行方式等级评定的程序,其它方式程序与之类似。 ▲手腕段 变量定义部分:手腕端程序定义了四个变量:目标、flag、实际步数、完成比例。其中目标为用户手动设定的距离,flag为三种不同的记步方式,实际步数为目前已经行走的步数,完成比例为实际步数除以目标所得的值。 背景、目标设定及进度条部分:该部分程序代码包含了背景、两个按钮及进度条。实现了用户使用“+”“-”按钮,设定目标路程,进度条则实现了在记步过程中的同步实时更新。 按钮及提示部分:该部分中包含6个按钮和2个提示文本。六个按钮分两类:一类是三种出行方式的选择按钮,点击该按钮后即可进入不同的记步方式及碳排放计算公式;第二类为数据发送方式按钮,点击不同按钮即可发送三种不同出行方式的碳排放量数据。 增减目标部分:实现对出行目标的设定,每次变化单位数值为100。 出行方式选择部分:当点击相应的出行方式后,对相关变量参数进行赋值,并将进度条和进度条外框进行初始化。下图17为步行方式的处理程序,公交、地铁方式代码与之类似。 碳排放数据发送部分:实现对碳排放数据的计算及发送,此处只列举了“地铁”方式产生的碳排放量数据,其它部分与之类似。 数据接收及显示部分:当手腕端接收到来自于服务器端的出行建议及排放等级评定。 主程序部分:主程序部分包含三段,分别为步行、地铁、公交三种方式的选择,三种出行方式数据处理及进度条的变换。如图20,这里只列举出步行方式程序段,地铁公交方式与其相似。 【电路连线】 服务器端P21连接光线传感器,P22口连接RGBLED,P24口连接雨水传感器。 【烧录程序】 使用USB线连接电脑USB口,等待行空板开机完成后点击10.1.2.3(无线连接时也可输入板子的IP地址连接),连接成功后,Mind+的终端即相当于行空板的终端,点击运行,Mind+会将Python代码发送到行空板上运行。 服务器端和手腕端分别烧录完程序后,若将手腕端开设SIoT服务记录数据的话,则应先开启手腕程序,否则先运行服务器端程序会提示报错:没有找到对应的网络。 【制作结构】 (1)服务器端设计为一个盒体结构,使用了LaserMaker中的“一键造物”功能。整体结构设计如下图所示,其中①处为行空板固定托板,其余部分为服务器盒体结构件。 (2)安装结构:取出除顶板及托板以外的结构件组装无盖盒体,如下图25所示.取出固定托板,将行空板用螺丝固定在托板上。取出顶板将上步中的托板固定在顶板上,同时使用铜柱螺母等分别固定光线传感器、水滴传感器和RGBLED。将上步中装好的顶板与盒体结构组合。 【测试运行】 行空板分别上电,先开启手腕端程序(手腕端作为SIoT服务器),再开启服务器端程序。 (1)手腕端程序开启后进入下图30界面,设置目标路程,设置好目标路程后选择出行方式,若服务器端发送相关出行方式的提醒,用户可参考出行方式提醒进行选择。 (3)晃动手腕端行空板,进度条会同步更新,当完成设定目标路程后,会对应计算出碳排放量。例如这里的出行方式选择的是地铁碳排放量(15)和等级(Rank:B),如下图31所示。当完成设定目标后可将碳排放量值发送到服务器端,服务器端接收后显示如下。同时外置的RGBLED亮蓝色灯。 (4)服务器端启动后,如下图33所示,除了根据获取的光线和是否下雨数据,给出出行建议外,还可以对出行碳排放量做出相应评定(零碳出行、低碳出行、高碳出行)。 当接收到手腕端发送来的碳排放量数据后,服务器端外置的RGBLED会同步亮不同的颜色。 (5)SIoT物联数据记录:登陆SIOT物联网数据平台可查看相关数据记录。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed