【毕业设计】基于ESP32的家庭气象站系统


1 简介

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

基于ESP32的家庭气象站系统

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

🔥 项目分享与指导:https://gitee.com/sinonfin/sharing

2 主要器件

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

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

在这里插入图片描述

引脚连接

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

在这里插入图片描述

3 实现效果

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

在这里插入图片描述
在浏览器中输入这个IP地址。输入IP地址后,网页会显示如下图所示。

在这里插入图片描述

4 部分实现代码

#include <WiFi.h>
#include <Wire.h>
#include <DHT.h>
#include <Adafruit_BMP085.h>
#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("<html><title> ESP32 Weather Station</title></html>");
client.print("<body bgcolor=\"#E6E6FA\"><h1 style=\"text-align: center; color: blue\"> ESP32 Weather Station </h1>");
client.print("<p style=\"text-align: center; font-size:150% \">Temperature in C: ");
client.print(temp);
client.print("<br/>Temperature in fah: ");
client.print(fah);
client.print("<br/>Humidity is: ");
client.print(hum);
client.print("<br/>Heat Index in C: ");
client.print(heat_indexC);
client.print("<br/>Heat Index in fah: ");
client.print(heat_index);
client.print("<br/>Pressure is: ");
client.print(pressure_value);
client.print("hpa");
client.print("</p></body>");
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
}
}
}
}
}

5 最后

🔥 项目分享与指导:https://gitee.com/sinonfin/sharing

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ESP32是一款集成了WiFi和蓝牙功能的芯片,它的WiFi模块支持802.11 b/g/n协议,可用于开发各种物联网设备和应用。下面是ESP32 WiFi设计的一些关键点: 1. 无线天线设计ESP32的WiFi模块需要一个合适的天线来进行无线通信,一般使用PCB天线或外置天线。PCB天线设计需要考虑天线长度、宽度、形状等因素,以保证天线的阻抗匹配和较高的天线增益。外置天线通常需要考虑天线的选择和匹配网络的设计,以保证天线的工作频段和阻抗匹配。 2. 电源设计ESP32芯片需要供电才能工作,一般使用电池或电源适配器等方式供电。在设计电源时,需要考虑芯片的工作电压和电流,以及电源稳压和降噪等问题,以确保芯片的正常工作。 3. PCB布局:ESP32芯片需要在PCB板上进行布局和连接,布局需要考虑信号和电源的分离、最小化信号线长度、防止信号干扰等因素。连接需要注意信号线的阻抗匹配和信号间隔,以保证信号传输的稳定性和可靠性。 4. 软件开发:ESP32的WiFi功能需要通过软件进行控制,一般使用Arduino IDE或ESP-IDF等开发工具进行开发。在软件开发时,需要了解ESP32的WiFi API和网络协议,以实现各种网络功能,如连接WiFi网络、建立TCP/IP连接、发送和接收数据等。 总之,ESP32 WiFi设计需要综合考虑硬件和软件方面的因素,以实现稳定可靠的WiFi通信功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值