用FireBeetle ESP32来制作一个人工智能辅助空气质量监测器
人工智能辅助空气质量监测器【硬件清单】[*]DFRobot FireBeetle ESP32
[*]DFRobot FireBeetle外壳-摄像头和音频媒体板
[*]Arduino Mega
[*]LattePanda 3三角洲864
[*]DFRobot 二氧化氮传感器
[*]DFRobot 臭氧传感器
[*]DFRobot 风速传感器
[*]DHT22温湿度传感器
[*]SH1106 OLED显示屏(128x64)
[*]Creality Sermoon V1 3D打印机
[*]Creality声波垫
[*]Creality CR-200B 3D打印机
[*]Keyes 10mm RGB LED模块(140C05)
[*]逻辑电平转换器(双向)
[*]按钮(6x6)
[*]半尺寸面包板
[*]迷你面包板
[*]DFRobot 8.9“1920x1200 IPS触摸显示屏(可选)
[*]小米20000毫安时3 Pro Type-C充电宝
[*]USB降压-升压转换器板
[*]跨接导线
【项目背景】
由于日益增长的工业化、林地退化和污染,环境气体的微妙平衡发生了变化。因此,危险的空气污染物除了会引发气候变化、毒害野生动物外,还会对人类呼吸系统造成不良影响。尽管各国意识到它们有责任采取行动去阻止破坏性的空气污染物渗透到生态系统中,但在接下来的几十年里,事实上我们根本无法消除人类所制造的空气污染物。因此,检测空气污染物来向人们提前发出警告是一件至关重要的事情。
由于一些空气污染物可以相互反应并迅速扩散,因此必须优先检测高反应性气体(空气污染物),如臭氧(O3)和氮化合物(NOx、NOy)。在这个项目中,我决定重点关注臭氧(O3)和二氧化氮(NO2)的浓度,因为这可以展现出空气污染的危险系数。
在环境空气中,氮氧化物可以由氧和氮的不同组合产生。较高的燃烧温度会导致更多的一氧化氮反应。在环境条件下,一氧化氮在空气中被可用的氧化剂快速氧化,形成二氧化氮,例如氧气、臭氧和挥发性有机化合物。因此,二氧化氮(NO2)被广泛认为是主要的空气污染物(污染物)。由于道路交通被认为是二氧化氮的主要室外来源,人口稠密地区最容易受到其有害影响。二氧化氮对呼吸系统造成一系列有害影响,例如气道炎症增加、肺功能下降、哮喘发作增加和心血管损伤。
对流层或地面臭氧(O3)是由氮氧化物(NOx)和挥发性有机化合物(VOCs)之间的化学反应形成的。这种化学反应是由汽车、发电厂、工业锅炉、炼油厂和化工厂排放的上述空气污染物之间的阳光引发的。根据暴露水平的不同,地面臭氧(O3)会对呼吸系统产生各种影响,例如咳嗽、喉咙痛、气道炎症、哮喘发作频率增加和肺部感染风险增加。即使在健康人身上也发现了其中一些有害影响,但患有哮喘等肺部疾病的人的症状可能更严重。
【项目过程】
由于二氧化氮(NO2)、臭氧(O3)和其他光化学氧化剂反应和传输速率与空气流量、热量和环境湿度密不可分,我决定收集以下数据参数进一步创建一个数据集:
[*]二氧化氮浓度(PPM)
[*]臭氧浓度(PPB)
[*]温度(°C)
[*]湿度(%)
[*]风速
在阅读了近期关于环境空气污染的研究论文后,我注意到很少有设备专注于收集空气质量数据,通过机器学习检测空气污染水平,并提供监控录像以供进一步检查。因此,我决定建立一个经济实惠、易于使用的空气站,通过机器学习预测空气污染水平,并通过监控录像连续告知用户模型检测结果,以期避免处于危险气体的情况的发生。
为了预测空气污染水平,我需要收集精确的环境有害气体浓度,以便训练我的神经网络模型,使其具有显著的有效性。因此,我决定使用DFRobot电化学气体传感器。为了获得额外的天气数据,我使用了风速计套件和DHT22传感器。由于FireBeetle ESP32是一款紧凑而强大的物联网开发板,其经济实惠的媒体(相机)板提供了许多功能,我决定将FireBeetle ESP 32与其媒体板结合使用,以运行我的神经网络模型,并通过监控镜头向用户通知模型检测结果。由于内存分配问题,我将所有传感器连接到Arduino Mega,以通过串行通信收集空气质量数据并将其传输到FireBeetle ESP32。此外,我将三个控制按钮连接到Arduino Mega,通过串行通信向FireBeetle ESP32发送命令。
由于FireBeetle媒体板支持从SD卡上的文件读取信息和将信息写入SD卡中的文件,因此我将收集到的空气质量数据存储在SD卡上的单独CSV文件中,根据所选的空气污染类别命名,以创建预格式化的数据集。在这方面,我能够通过FireBeetle ESP32保存和处理数据记录,而不需要任何额外的程序。
在完成我的数据集后,我用Edge Impulse建立了我的人工神经网络模型(ANN),以预测空气污染水平(类别)。由于Edge Impulse几乎与所有微控制器和开发板兼容,我在FireBeetle ESP32上上传和运行我的模型的过程中没有遇到任何问题。作为标记,我根据IQAir提供的空气质量指数(AQI)来监测空气污染水平:
[*]清洁的
[*]有风险的
[*]不健康的
在训练和测试了我的神经网络模型后,我将该模型作为Arduino库部署并上传到FireBeetle ESP32上。因此,空气站能够通过独立运行模型来检测空气污染水平,而无需任何额外的程序或延迟。
由于我专注于建立一个完整的AIoT空气站,预测空气污染,并用监控录像告知用户模型检测结果,我决定从头开始开发一个web应用程序,通过HTTP POST请求从FireBeetle ESP32获得监控录像的检测结果,将收到的信息保存到MySQL数据库表中,并将存储的空气质量数据与模型检测结果按降序同时显示。
由于FireBeetle媒体板只能生成原始图像数据,因此需要补充web应用程序来执行Python脚本,将获得的原始图像数据自动转换为JPG文件,然后将其作为监控录像保存到服务器。成功保存转换后的图像后,web应用程序会连续显示最近获得的监控录像,并允许用户按降序检查以前的监控录像。
最后,为了使该设备在户外操作时尽可能坚固,我为连接到FireBeetle媒体板的OV7725相机设计了一个带滑动前盖和可安装相机支架(3D打印)的金属空气站外壳。
原文作者:Kutluhan Aktar
原文链接:https://community.dfrobot.com/makelog-313198.html
转载请注明来源信息
赞一个 赞一个
真厉害,赞一个 厉害厉害 赞一个!!挺实用的啊! 厉害厉害!! 不错,实用! 太酷了
厉害啊! 厉害厉害 6666666666666
页:
[1]