24小时联系电话:18217114652、13661815404

中文

您当前的位置:
首页>
电子资讯>
技术专题>
城市空气:一氧化碳、...

技术专题

城市空气:一氧化碳、温湿度监测物联网系统


城市空气:一氧化碳、温湿度监测物联网系统

由于空气质量低、温度异常和其他危及居民健康的因素,世界各地的城市地区都受到严重影响。该项目旨在监测和采样城市中目标地点的大气参数,例如一氧化碳浓度、温度和湿度。随后对收集到的数据进行采样和分析,以确定影响这些关键参数的因素。在这个项目中,我们记录了城市人口中两个相距 5 公里的地点的数据。我们对数据进行了分析并推导出了影响这些结果的因素。

项目简介:

该项目由基于 ESP8266 的开发板 NodeMCU 控制。它使用 MQ07 传感器收集 CO 浓度数据,并使用 DHT11 传感器监测温度和湿度。一旦收集到数据,它将每分钟上传到云(ThingSpeak 平台)。

我们在两个不同的日子在两个不同的地方收集了数据。数据已在每个位置收集了 24 小时。然后我们分析数据以找出 CO、温度和湿度读数的模式。这些数据模式帮助我们分配可能的原因并得出结论。

NODEMCU 将数据上传到云端时,它会在 Thingspeak 云平台上打上时间戳。ThingSpeak 将允许我们以图表的形式可视化数据,以便我们可以定期监控数据。此外,上传的数据可以在任何时区以“CSV”格式下载。

硬件:

NodeMCU

DHT11(温湿度传感器)

MQ-07(气体传感器)

连接电线。

原型:

仪表板:

地点性质: 

我们在两个不同的地点收集了 24 小时的数据。

位置1:这是一栋公寓楼,大约有20户人家。典型的城市氛围,树木较少,交通污染中等。

位置 2:在特定地点紧凑且紧凑的独立房屋。典型的城市氛围,树木较少,交通污染中等。

数据集: 

上述 Excel 电子表格由 CO、温度和湿度数据组成。请注意,我们在位置 2 收集数据时遇到了 DHT11 问题,此后湿度和温度已被丢弃。以下是这些数据集中的一些有趣观察结果。

位置 1:烹饪引起的 CO 水平峰值

地点一:夜间下雨,气温下降,湿度偏高

位置 2:烹饪导致的高 CO 水平

位置 2:室外空气的二氧化碳含量低于室内空气

从下面的数据集中,我们可以推断出以下观察结果。

两个地点的 CO 水平在早上到下午都达到峰值。这是由于使用液化石油气的家庭烹饪。这导致 CO 水平急剧上升,随后下午 CO 水平下降。

来自位置 2 的数据集显示 CO 水平突然下降。这是由于传感器放置在敞开的窗户附近的原因。这允许更多的室外气氛与传感器交互。这得出结论,室外空气中的 CO 水平低于室内空气。这项关于室内和室外空气比较的研究有一些类似的有趣观察。

温度和湿度是成反比的。每当温度升高时,湿度就会下降,反之亦然。

算法:

将所需的密钥(例如 API 密钥、Thing Speak 的通道 IDWiFi SSID 和密码)作为字符串。

配置模拟和数字引脚以获取输入。

等待设备连接到 WiFi 热点。

DHT11(温度和湿度)和 MQ-07 读取并存储数据,然后将其存储在变量中。

将硬件设置为每分钟读取传感器数据。

将数据上传到云端。

重复这些步骤。

代码:

下载这些库并将其移动到您的 Arduino 库文件夹中。ESP8266DHT-11库和MQ-7。该项目由 L Mrudula Qury 构建和测试。您可以在此处从GitHub 存储库下载所有文件。

//图书馆

#include <ESP8266WiFi.h>

#include "dht.h" //for dht11 //温湿度传感器库

#include "MQ7.h" //for mq07 //气体传感器库

//....库结束

//DHT设置

#define dht_apin D3 //数字引脚传感器连接到NodeMCUD3

DHT DHT;

//...设置结束

//Wifi 设置和 Thingspeak 凭证

char* ssid="你的 SSID"; //获取wifissid

char* pass="您的密码"; //输入对应的密码

char* host="api.thingspeak.com";

char* writeapikey="IIHQG7GURQAKBDDM"; //

//...结尾

//引脚设置

const int mq07=A0; //Mq07连接到NodeMCU的模拟引脚A0

//...结尾

//MQ7设置

  MQ7 mq7(A0, 3.3); //至于nodeMCU vcc=3.3v

//...结尾

无效设置(){

  Serial.begin(115200);

  WiFiClient客户端;//客户端变量

  //引脚模式

  pinModemq07,输入);

  //...结尾

  //无线连接

  WiFi.begin(ssid, pass);

  而(WiFi.status()!= WL_CONNECTED

{

    延迟(200);

    Serial.print("..");

  }

  Serial.println();

  Serial.println("NodeMCU 已连接!");

  Serial.println(WiFi.localIP());

  //---------------------

 

}

  // 项目所需的变量

  浮动温度、湿度;

  浮动共同数量;

  const int httpport = 80;

  //--------------------------------------

  

无效循环(){

  延迟(2000);

  //来自DHT11的温度和湿度

DHT.read11(dht_apin);

    温度=DHT.温度;//加载温度

    湿度=DHT.湿度;//加载湿度

    Serial.print("当前湿度 = ");

    Serial.print(湿度);

    Serial.print("%");

    Serial.print("温度 = ");

    Serial.print(温度);

    Serial.println("C");

  //.....结尾

 

  //来自MQ07CO

    coquantity = mq7.getPPM(); //PPM读取COquantity

    Serial.print("COquantity :");

    Serial.print(coquantity);

    Serial.println("ppm");

    Serial.println("----------------------------------------- -------");

  //....结尾

  // 客户端并将数据推送到服务器(云)

    WiFiClient客户端;

    if(!client.connect(host,httpport))

{

      Serial.println("没有客户端");

      返回;

    }

   

    字符串 url="/update?key=";

    url+=writeapikey;

    //上传温度数据

      url+="&field1=";

      url+=字符串(湿度);

    //----------------------------

    // 上传湿度数据

       url+="&field2=";

       url+=字符串(温度);

    //-------------

    // 上传光照强度数据

url+="&field3=";

       url+=String(coquantity);

    //-------------

    // 上传url到云端并断开客户端

     client.print(String("GET ") + url + "HTTP/1.1\r\n" + "Host :" + host + "\r\n" + "Connection: close\r\n\r\n" );

     客户端停止();

    //-------------

    // 等待 60

      延迟(60000);

 

}

请输入搜索关键字

确定