基于ESP32的温湿度采集系统,通过ESP32连接DHT11传感器采集温湿度数据,通过MQTT协议上传到ONENET服务器。 在onenet平台建立项目。 在项目基础上建立设备。 建立物模型,设置温度和湿度的功能点。 通过模拟器连接onenet服务器并上传数据。 利用ESP32进行采集温湿度上传数据。 通过中移和物在手机端可以查看数据。 设计报告部分 不少于3000字。 包括项目概述、总体设计、硬件设计、软件设计、系统测试几部分。
时间: 2024-01-22 08:19:27 浏览: 302
一、项目概述
本项目是基于ESP32的温湿度采集系统,通过连接DHT11传感器采集温湿度数据,并通过MQTT协议上传到ONENET服务器,从而实现对温湿度数据的远程监测和控制。
二、总体设计
本系统采用ESP32作为主控芯片,通过连接DHT11温湿度传感器采集环境温湿度数据,然后将数据通过MQTT协议上传到ONENET服务器。同时,本系统还可以通过中移和物提供的手机端APP进行数据的查看和控制。
三、硬件设计
系统的硬件设计主要包括ESP32主控芯片、DHT11温湿度传感器、电源模块等几个部分。
1.ESP32主控芯片
ESP32是一款集成了Wi-Fi和蓝牙的高性能低功耗双核处理器,其具有更强的计算能力和更高的通讯速度。在本系统中,ESP32主控芯片负责采集DHT11传感器的温湿度数据,并通过MQTT协议上传到ONENET服务器。
2.DHT11温湿度传感器
DHT11是一款数字温湿度传感器,其通过单总线接口和主控芯片通讯,可以实现对环境温湿度的实时监测。
3.电源模块
电源模块主要是为了提供系统所需的电源,本系统采用5V的直流电源供电。
四、软件设计
本系统的软件设计主要包括ESP32主控芯片程序设计、ONENET平台设备建立和物模型设置、中移和物手机APP设计等几个部分。
1.ESP32主控芯片程序设计
ESP32主控芯片程序主要包括对DHT11传感器的初始化和读取,MQTT协议的连接和数据上传等几个部分。具体实现过程如下:
```c
#include <WiFi.h>
#include <PubSubClient.h>
#include <DHT.h>
// WiFi信息
const char* ssid = "your-ssid";
const char* password = "your-password";
// MQTT信息
const char* mqtt_server = "mqtt.heclouds.com";
const int mqtt_port = 6002;
const char* mqtt_username = "your-username";
const char* mqtt_password = "your-password";
const char* mqtt_topic = "your-topic";
// DHT11信息
#define DHTPIN 4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
float temperature = 0;
float humidity = 0;
WiFiClient espClient;
PubSubClient client(espClient);
void setup_wifi() {
delay(10);
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void callback(char* topic, byte* payload, unsigned int length) {
Serial.print("Message arrived [");
Serial.print(topic);
Serial.print("] ");
for (int i = 0; i < length; i++) {
Serial.print((char)payload[i]);
}
Serial.println();
}
void reconnect() {
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
if (client.connect("ESP32Client", mqtt_username, mqtt_password)) {
Serial.println("connected");
client.subscribe(mqtt_topic);
} else {
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
delay(5000);
}
}
}
void setup() {
Serial.begin(115200);
dht.begin();
setup_wifi();
client.setServer(mqtt_server, mqtt_port);
client.setCallback(callback);
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
humidity = dht.readHumidity();
temperature = dht.readTemperature();
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
char temperature_char[6];
char humidity_char[6];
dtostrf(temperature, 4, 2, temperature_char);
dtostrf(humidity, 4, 2, humidity_char);
String payload = "{\"temperature\":";
payload += temperature_char;
payload += ",\"humidity\":";
payload += humidity_char;
payload += "}";
client.publish(mqtt_topic, payload.c_str());
delay(3000);
}
```
2.ONENET平台设备建立和物模型设置
在ONENET平台上,首先需要建立项目,然后创建设备,并在设备中设置物模型。
3.中移和物手机APP设计
中移和物提供了手机APP,可以通过该APP查看和控制温湿度采集系统。具体设计过程如下:
(1)在中移和物平台上创建应用,并绑定ONENET平台的API Key。
(2)在应用中创建设备,并添加温度和湿度两个传感器。
(3)在APP中添加温湿度传感器,并设置温湿度的数据展示方式。
(4)在APP中添加温湿度传感器的控制功能,并设置控制方式。
五、系统测试
本系统的测试主要包括硬件测试和软件测试两个部分。
1.硬件测试
在硬件测试中,我们需要对系统进行电源连接、传感器连接等测试,以保证系统的正常运行。
2.软件测试
在软件测试中,我们需要对ESP32主控程序进行测试,确保温湿度数据能够正确上传到ONENET服务器,并且能够在中移和物手机APP上进行查看和控制。
六、总结
本文介绍了基于ESP32的温湿度采集系统的设计与实现。通过连接DHT11传感器采集温湿度数据,并通过MQTT协议上传到ONENET服务器,从而实现了对温湿度数据的远程监测和控制。同时,本系统还可以通过中移和物提供的手机端APP进行数据的查看和控制。
阅读全文