24小(xiǎo)时联系電(diàn)话:18217114652、13661815404

中文(wén)

您当前的位置:
首页>
電(diàn)子资讯>
技术专题>
城市空气:一氧化碳、...

技术专题

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


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

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

项目简介:

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

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

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

硬件:

NodeMCU

DHT11(温湿度传感器)

MQ-07(气體(tǐ)传感器)

连接電(diàn)線(xiàn)。

原型:

仪表板:

地点性质: 

我们在两个不同的地点收集了 24 小(xiǎo)时的数据。

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

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

数据集: 

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

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

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

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

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

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

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

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

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

算法:

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

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

等待设备连接到 WiFi 热点。

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

将硬件设置為(wèi)每分(fēn)钟读取传感器数据。

将数据上传到云端。

重复这些步骤。

代码:

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

//图书馆

#include <ESP8266WiFi.h>

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

#include "MQ7.h" //for mq07 //气體(tǐ)传感器库

//....库结束

//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,输入);

  //...结尾

  //无線(xiàn)连接

  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("----------------------------------------- -------");

  //....结尾

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

    WiFiClient客户端;

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

{

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

      返回;

    }

   

    字符串 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 秒(miǎo)

      延迟(60000);

 

}

请输入搜索关键字

确定