【毕业设计项目】基于ESP32的家庭气象站系统 - stm32 物联网 嵌入式 单片机

文章目录

  • 1 简介
  • 2 主要器件
    • 引脚连接
  • 3 实现效果
  • 4 部分实现代码
  • 5 最后


1 简介

Hi,大家好,这里是丹成学长,今天向大家介绍一个学长做的单片机项目

基于ESP32的家庭气象站系统

大家可用于 课程设计 或 毕业设计


单片机-嵌入式毕设选题大全及项目分享:

https://blog.csdn.net/m0_71572576/article/details/125409052


2 主要器件

本项目学长将使用ESP32创建一个气象站。

基本原理是通过读取DHT22和BMP180传感器的数据,然后使用ESP32传输创建的网页上,在网页上显示气象数据。

【毕业设计项目】基于ESP32的家庭气象站系统 - stm32 物联网 嵌入式 单片机_第1张图片

引脚连接

DHT22与ESP32的连接如下:

DHT22 引脚1 VCC —–>ESP32 / 3.3V;

DHT22 引脚2 DATA—–>ESP32 / D15;

DHT22 引脚4 GND —–>ESP32 /GND.

然后将BMP180压力传感器连接到ESP32上。连接如下:

BMP180 Vin —–> ESP32 / 3.3V;

BMP180 GND —–> ESP32 /GND;

BMP180 SCL —–> ESP32 / pin 22;(ESP32的22号引脚是SCL.)

BMP180 SDA —–> ESP32 / pin 21;(ESP32的21号引脚是SDA.)

ESP32的22和21号引脚是I2C通信接口。

ESP GPIO

【毕业设计项目】基于ESP32的家庭气象站系统 - stm32 物联网 嵌入式 单片机_第2张图片

3 实现效果

首先,将代码中的Wi-Fi名称和密码信息替换为你自己的。然后上传代码并打开串口监视器。串口监视器将显示如下图所示的IP地址。

【毕业设计项目】基于ESP32的家庭气象站系统 - stm32 物联网 嵌入式 单片机_第3张图片
在浏览器中输入这个IP地址。输入IP地址后,网页会显示如下图所示。

【毕业设计项目】基于ESP32的家庭气象站系统 - stm32 物联网 嵌入式 单片机_第4张图片

4 部分实现代码

#include 
#include 
#include 
#include 
#define DHTPIN 15
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
Adafruit_BMP085 bmp;
char pressure_value[4];
const char* wifi_name = "Asus_2.4G"; //Your Wifi name
const char* wifi_pass = "basemu.com"; //Your Wifi password
WiFiServer server(80); //Port 80
void setup()
{
Serial.begin(115200);
dht.begin();
bmp.begin();
// Let's connect to wifi network
Serial.print("Connecting to ");
Serial.print(wifi_name);
WiFi.begin(wifi_name, wifi_pass); //Connecting to wifi network
while (WiFi.status() != WL_CONNECTED) //Waiting for the responce of wifi network
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Connection Successful");
Serial.print("IP address: ");
Serial.println(WiFi.localIP()); //Getting the IP address at which our webserver will be created
Serial.println("Type the above IP address into a browser search bar");
server.begin(); //Starting the server
}
void loop()
{
String pressure = String(bmp.readPressure());
// convert the reading to a char array
pressure.toCharArray(pressure_value, 4);
float hum = dht.readHumidity();
float temp = dht.readTemperature();
float fah = dht.readTemperature(true);
float heat_index = dht.computeHeatIndex(fah, hum);
float heat_indexC = dht.convertFtoC(heat_index);
WiFiClient client = server.available(); //Checking for incoming clients
if (client)
{
Serial.println("new client");
String currentLine = ""; //Storing the incoming data in the string
while (client.connected())
{
if (client.available()) //if there is some client data available
{
char c = client.read(); // read a byte
if (c == '\n') // check for newline character,
{
if (currentLine.length() == 0) //if line is blank it means its the end of the client HTTP request
{
client.print(" ESP32 Weather Station");
client.print("

ESP32 Weather Station

"
); client.print("

Temperature in C: "); client.print(temp); client.print("
Temperature in fah: "
); client.print(fah); client.print("
Humidity is: "
); client.print(hum); client.print("
Heat Index in C: "
); client.print(heat_indexC); client.print("
Heat Index in fah: "
); client.print(heat_index); client.print("
Pressure is: "
); client.print(pressure_value); client.print("hpa"); client.print("

"
); break; // break out of the while loop: } else { // if you got a newline, then clear currentLine: currentLine = ""; } } else if (c != '\r') { // if you got anything else but a carriage return character, currentLine += c; // add it to the end of the currentLine } } } } }

单片机-嵌入式毕设选题大全及项目分享:

https://blog.csdn.net/m0_71572576/article/details/125409052


5 最后

你可能感兴趣的:(物联网,单片机,毕业设计,单片机,stm32,物联网,单片机气象站,毕业设计)