
实时确定整个城市的空气污染是一项艰巨的任务。我们可以使用车辆来监控空气质量。 ![]() 这个项目中使用的东西 硬件组件 STM32F103蓝色药丸 × 1 NodeMCU ESP8266分线板 × 1 DHT11温湿度传感器(4针) × 1 Seeed Grove - 晴雨表传感器(BMP280)× 1 Seeed Grove - 气体传感器(MQ2) × 1 Seeed Grove - 光传感器 × 1 定制PCB × 1 SparkFun IMU突破 - MPU-9250 × 1 7 H+ P5 Y7 p. H 介绍 我们为什么要建造这个? 实时确定整个城市的空气污染是一项艰巨的任务。这会影响人们的健康和思想。虽然政府采取措施防止空气污染,但实际上并不能实施。 空气污染对交通系统有严重的问题。在印度,根据印度时报道,“空气污染声称德里每年都有比道路交通事故更多的生命!” 空气污染是世界十大杀手之一,也是印度第五大死亡原因,科学与环境中心的一份报告称,德里每年约有10,000至30,000人死亡。星期二。 根据德里交通警察的统计,去年有1,671人死于交通事故。即使考虑到这些数据可能报告不足的事实,空气污染仍然更加致命! 硬件构建 图层: 空气质量与人类健康密切相关。为了连续跟踪空气质量,监控单元可以放置在车辆中。收集传感器的数据并将其发布到云端。 来自云的数据使用Android应用程序提取,该应用程序提供有关该特定位置的空气质量水平的信息。 ![]() 这个怎么运作 传感器数据使用STM开发板计算并发送到云。温度,压力,湿度,GPS,热量,二氧化碳等数据被送入云端。Android应用程序允许用户实时查看污染数据。 基本硬件组件 STM32蓝板: 蓝板是最流行,超便宜和紧凑的STM32F103板的昵称。 它具有比红板更好的可用性,并且比黑板更长。另见非常相似的RobotDyn黑板。 ![]() 特征: 板:通用STM32F103系列 主板部件号:BluePill F103C8 串行接口:使用通用串行启用 闪存大小:64k(你可以尝试128k;大多数主板以64k的价格出售,但实际上有128k的闪存) 上传方式:ST Link NodeMCU : NodeMCU是一个开源的物联网平台。它包括在EspressifSystems的ESP8266 Wi-Fi SoC上运行的固件,以及基于ESP-12模块的硬件。默认情况下,术语“NodeMCU”是指固件而不是开发套件。固件使用Lua脚本语言。它基于eLua项目,并基于Espressif Non-OS SDK for ESP8266构建。它使用许多开源项目,例如lua-cjson和SPIFFS。 ![]() ESP8266的功能包括: 可以使用简单而强大的Lua编程语言或Arduino IDE进行编程。 包括USB-TTL,即插即用。 10个GPIO D0-D10,PWM功能,IIC和SPI通信,1-Wire和ADC A0等都在一块板上。 Wifi网络(可用作接入点和/或电台,托管网络服务器),连接到互联网以获取或上传数据。 用于网络应用程序的事件驱动API。 PCB天线。 无线连接:Wi-Fi:802.11 b / g / n 外围接口 安全 能源管理: 第1步:STM32 BluePill和NodeMCU入门 在这个项目中,我们将与温度传感器,陀螺仪,加速度计,磁力计,气压计,空气质量,环境光以及发布传感器数据的固件连接。 将STM32 Blue药丸的Tx和Rx引脚连接到NodeMCU板的USART。 第2步:连接其他传感器 此项目应连接温度,湿度,气压计,空气质量,环境光,热量水平,土壤湿度,水流量传感器和电机控制。注意:大多数传感器都内置在此恩智浦套件中。 现在我们将看到如何将其他传感器与STM32 Blue Pill连接。 连接DHT11: DHT11传感器通过测量两个电极之间的电阻来检测水蒸气。湿度感测组件是保湿基板。当水蒸气被基板吸收时,离子被基板释放,这增加了电极之间的导电性。两个电极之间的电阻变化与计算的相对湿度成比例。较高的相对湿度(RH)降低了电极之间的电阻,而较低的相对湿度增加了电极之间的电阻,即相对湿度与两个电极之间的电阻成反比。 在这里,我们将DHT11温度和湿度传感器连接到STM32的数字引脚。 ![]() STM32的模拟引脚PA0用于输出信号。 连接: STM32 Blue Pill ------------------------------------- DHT11 VCC(3.3v) - > Vcc(3.3v) GND - >地(0V) PA0 - >信号 计算DHT11的温度和湿度并将其存储在变量中,这些变量将被传送到项目的下一部分。 连接BMP280传感器: 博世的BMP280气压传感器将测得的气压(环境气压)和环境温度作为原始值,输出现在可以通过I2C或SPI接口输出。但与BMP180相比,BMP280还有一些改进。 映射模块的默认I2C地址为0x76 ,可以通过模块上的焊接桥更改为0x77 。 在这里,我使用SPI协议与Arduino进行通信。 借助存储在传感器中的12个补偿参数,可以根据原始值确定该位置的气压(站级气压),海拔高度和环境温度。 ![]() 连接: STM32 Blue Pill ---------------------------------- BMP280 VCC(3.3v) - > Vcc(3.3v) GND - >地(0V) PB12 - > CS PB14 - > MOSI PB15 - > MISO PB13 - > SCK 连接MPU9250 传感器: 所述MPU-9250 是从InvenSense®最新9轴MEMS传感器。这取代了流行的EOL'd MPU-9150。与MPU-9150相比,InvenSense®降低了功耗并减小了44%的尺寸。“陀螺噪声性能提高3倍,罗盘满量程范围比竞争产品高出4倍。”MPU-9250使用16位模数转换器(ADC)对所有9个轴进行数字化处理。 该小号ystem 我Ñ P ackage(SIP)结合了两个芯片:MPU-6500,其包含3轴陀螺仪,3轴加速度计,和AK8963,3轴磁强计。 ![]() 连接: STM32 Blue Pill ------------------------------- BMP280 VCC(3.3v) - > Vcc(3.3v) GND - >地(0V) PB8 - > SCL PB9 - > SDA 接口空气传感器: 在这里,我接口MQ5气体传感器,这是市场上可用的通用气体传感器,更适合检测和确定LPG浓度。 该模块有两种输出可能性 模拟输出可用于检测气体泄漏,并使用固件中实施的某些算法测量气体泄漏量,气体泄漏水平以ppm为单位。 数字输出可用于检测气体泄漏。当气体泄漏时,Arduino设定中断,表示气体泄漏。 STM32的数字引脚PA8用于输出信号。 连接: STM32 Blue Pill ------------------------------- MQ5 VCC(3.3v) - > Vcc(3.3v) GND - >地(0V) PA8 - >数据 接口光传感器: LDR是光依赖电阻器。LDR由半导体材料制成,使其具有光敏特性。有许多类型,但一种材料很受欢迎,它是硫化镉(CdS)。这些LDR或PHOTO RESISTORS的工作原理是“光电导率”。现在这个原理所说的是,每当光线落在LDR的表面上(在这种情况下),元件的电导增加,换句话说,当光线落在LDR的表面上时,LDR的电阻下降。由于LDR是表面上使用的半导体材料的特性,因此实现了LDR的电阻降低的这种特性。 ![]() STM32的数字引脚PA9用于输出信号。 连接: STM32 Blue Pill ----------------------------- LDR VCC(3.3v) - > Vcc(3.3v) GND - >地(0V) PA9 - >数据 第3步:上传固件 在上传固件之前,我们必须创建一个总线来连接STM32 Blue Pill和NodeMCU板。 连接: STM32 --------------------------------------- NodeMCU Board VCC(3.3v) - > Vcc(3.3v) GND - >地(0V) PB7(RX) - > TX PB6(TX) - > RX 连接完成后,使用GNAT IDE上传传感器代码。 NodeMCU的过程将在即将召开的会议中讨论。 代码添加了GitHub Repository,可以在代码部分找到。 第4步:设置Firebase以进行发布和订阅 Firebase有很多功能,包括实时数据库,身份验证,云消息传递,存储,托管,测试实验室和分析,但我只会使用身份验证和实时数据库。 来自STM32 Blue Pill的数据被传输到NodeMCU。NodeMCU获取的数据是通过Firebase帐户发布和订阅。 创建Firebase帐户 首先登录Google Firebase 并创建一个新项目,然后单击“添加项目”按钮在Firebase上创建一个新项目。 ![]() 为项目命名并选择国家/地区,单击“ 创建项目” 按钮开始。 在对硬件进行编程以连接到项目时,请确保记下稍后需要的项目ID 。 ![]() 现在单击继续以访问创建的数据库。 ![]() 现在单击侧面菜单中的Develop - > Database,单击Create Database按钮并在Test Mode中启动项目,如下所示。 ![]() 启用Firebase将引导您进入“数据和规则”选项卡,并验证是否已启用读取和写入功能。 ![]() 最后打开项目设置并复制Web API密钥以及将在NodeMCU代码中使用的其他参数。 ![]() Firebase配置为从NodeMCU接收数据。 第5步:封闭 我曾为这个项目使用过亚克力外壳。 首先,我将所有电路放在外壳内并拧紧。 我为灯光和温度传感器做了一个小开口。 最后,所有螺钉都牢固安装,电源线通过插槽插入。 第6步:让我们看看它的工作原理 您可以在Google Firebase上找到正在发布的数据。 记录的这些数据可以显示在网站上或移动应用程序中。 ![]() 关于云的数据 ![]() 用于订阅云数据的应用程序 如果它真的对你有所帮助并且按照我的频道进行有趣的项目,请竖起大拇指。 ![]() 如果您愿意,请分享此视频。 很高兴你订阅:https ://www.youtube.com/channel/UCks-9JSnVb22dlqtMgPjrlg/videos 谢谢阅读! |