ESP32利用DHT温湿度传感器,记录温湿度并调用Api上传数据到数据库。

 流程:

dht11读取温湿度 -> 调用api 上传数据

传感器介绍

DHT11是一款有已校准数字信号输出的温湿度传感器。 精度湿度±5%RH, 温度±2℃,量程湿度5~95%RH, 温度-20~+60℃ 。 几块钱即可买。

pin

名称

注释

1

VDD

供电 3-5.5VDC

2

DATA

串行数据,单总线

3

NC

空脚

4

GND

接地,电源负极

编码前先从Arduino IDE库管理器安装DHT SENSOR LIBRARY 这个库。

接线方式

代码:

#include <DHT.h>
#include <DHT_U.h>
#include <WiFi.h>
#include <HTTPClient.h>
#include <string>
const char* ssid = "805";
const char* password = "xx";
#define DHTPIN 4 //设置获取数据的引脚

//对应DHT的版本,选择一个取消注释
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);//创建一个DHT对象

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
   delay(1000);
   Serial.println("Connecting to WiFi...");
 }
  Serial.println("Connected to WiFi");
  dht.begin(); //初始化DHT传感器
}
void loop() {
  delay(2000); //暂停2秒,读取数据官方说明需要250毫秒
  float h = dht.readHumidity();          //读取湿度
  float t = dht.readTemperature();       //读取摄氏度
  float f = dht.readTemperature(true);   //读取华氏度
  if (isnan(h) || isnan(t) || isnan(f)) {    //如果读取错误
     Serial.println("读取传感器失败");         //读取失败提示
     return;
  }
  float hif = dht.computeHeatIndex(f, h);  //计算华氏度的热指数
  float hic = dht.computeHeatIndex(t, h, false); //计算摄氏度的热指数

  //wifi状态是好的
  if(WiFi.status() == WL_CONNECTED){
    HTTPClient http;
    http.begin("http://9.139.105.66/index.php?t="+String(t) + "&s="+String(h));
    int httpCode = http.GET();
     if (httpCode > 0) {
     Serial.println(httpCode);
     String payload = http.getString();
     Serial.println(payload);
   }
   else {
     Serial.println("Error on HTTP request");
   }
    http.end();
  }
  Serial.print ("湿度: ");
  Serial.print (h);
  Serial.print ("% | ");
  Serial.print ("摄氏度: ");
  Serial.print (t);
  Serial.print ("*C |华氏度:");
  Serial.print (f);
  Serial.print ("*F ");
  Serial.print (" |摄氏热指数: ");
  Serial.print (hic);
  Serial.print ("*C  |华氏热指数");
  Serial.print (hif);
  Serial.println ("*F");
}

### 回答1: ESP8266是一种功能强大的开发板,可作为微控制器单元(MCU)来采集温湿度数据,并通过OneNet平台进行上传。 首先,我们需要用ESP8266连接温湿度传感器,如DHT11或DHT22。这些传感器可以测量环境的温度和湿度,并将数据传输给ESP8266。 通过编程,我们可以配置ESP8266连接到Wi-Fi网络。使用ESP8266的Wi-Fi模块,我们可以连接到OneNet的服务器,以实现数据上传。我们需要向OneNet注册账户,创建设备和数据流,并获取其设备ID和API密钥。 在ESP8266的代码中,我们需要设置Wi-Fi连接,并使用HTTP协议将采集到的温湿度数据发送到OneNet的服务器。我们可以使用Arduino IDE进行编程,在代码中使用相应的库函数来实现这个过程。我们需要配置URL,包括OneNet的服务器地址、设备ID和API密钥。 在代码中,我们需要定义数据流的标识符,将温湿度数据放入HTTP请求中。通过使用POST请求,我们可以将数据上传到OneNet。在成功上传后,OneNet服务器将返回响应,以验证数据是否成功存储。 为了保证数据采集的准确性,我们可以设置一个定时器来定期进行数据采集和上传。例如,每隔一段时间,我们可以读取温湿度传感器的值,并将其发送到OneNet。 通过使用ESP8266作为MCU,我们可以实现温湿度数据的采集和上传到OneNet。这项工作使得我们可以方便地监测环境的温湿度,并在需要时进行远程访问和分析。同时,这也为其他应用程序(如智能家居或工业自动化)提供了数据支持。 ### 回答2: ESP8266 是一款高性能、低功耗的无线通信芯片,被广泛应用于物联网领域。作为 MCU,它具备了通过传感器采集温湿度数据的能力,并能够通过与OneNet云平台的连接实现将这些数据上传的功能。 首先,为了采集温湿度数据,可以使用ESP8266的GPIO口连接温湿度传感器模块,如DHT11或DHT22等,通过相应的引脚进行通信。ESP8266的固件支持OneWire协议和DHT库,可以方便地读取传感器的数值。 接下来,需要建立ESP8266与OneNet云平台的连接。可以使用ESP8266自带的Wi-Fi模块,连接到本地的无线网络,通过网络从OneNet云端接收及发送数据。使用OneNet提供的HTTP或MQTT协议,将采集到的温湿度数据上传到云端。 在代码编写方面,使用Arduino IDE等开发环境,结合ESP8266的开发库,可以轻松实现温湿度数据的采集和上传。通过编写相应的程序,将采集到的温湿度数据封装成JSON格式,再使用HTTP或MQTT协议将数据发送到OneNet云平台。 同时,为了确保数据的安全传输,可以使用HTTPS协议对数据进行加密传输,或者在设备和OneNet之间建立安全连接,确保数据的完整性和保密性。 总结来说,ESP8266作为MCU可以通过连接温湿度传感器采集数据,并通过与OneNet云平台的连接上传数据。这种方案使得我们可以远程监控和控制温湿度,实现物联网系统的自动化控制和数据采集。 ### 回答3: ESP8266是一种功能强大的微控制器单元(MCU),它集成了Wi-Fi功能,适用于物联网应用。使用ESP8266可以实现温湿度传感器的数据采集,并将数据上传到OneNet平台。 首先,我们需要连接温湿度传感器到ESP8266的GPIO引脚。常用的温湿度传感器有DHT11或DHT22。通过连接传感器的数据引脚到ESP8266的某个数字引脚,我们可以读取传感器返回的数据。 接下来,使用ESP8266的开发板和Arduino开发环境编写代码。我们可以使用ESP8266的库函数来读取传感器数据,并通过OneNet提供的API数据上传到云平台。 首先,我们需要在代码中引入OneNet开发库,这样就能使用其提供的函数进行数据上传。然后,要先通过ESP8266连接到Wi-Fi网络,确保有互联网连接。 接下来,我们可以使用温湿度传感器的库函数来读取温湿度数据,并保存到变量中。接下来,调用OneNet库的上传数据函数,将温湿度数据发送到OneNet平台。 上传数据时,我们需要提供OneNet平台给我们分配的API密钥和设备ID。这些信息在OneNet的设备管理界面可以找到。 最后,在代码中使用延时函数进行循环读取和上传温湿度数据,或者使用中断方式进行异步数据采集和上传。 通过以上步骤,我们可以实现ESP8266作为MCU来采集温湿度数据,并将这些数据上传到OneNet物联网平台。这样,我们就可以通过OneNet的API接口,实时监测和分析温湿度数据,从而实现更多有用的功能,例如报警、数据可视化等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值