2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 【毕业设计项目】基于ESP32的家庭气象站系统 - stm32 物联网 嵌入式 单片机

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

时间:2019-02-22 05:12:53

相关推荐

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

文章目录

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

1 简介

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

基于ESP32的家庭气象站系统

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

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

/m0_71572576/article/details/125409052

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 DHT22DHT dht(DHTPIN, DHTTYPE);Adafruit_BMP085 bmp;char pressure_value[4];const char* wifi_name = "Asus_2.4G"; //Your Wifi nameconst char* wifi_pass = ""; //Your Wifi passwordWiFiServer server(80); //Port 80void setup(){Serial.begin(115200);dht.begin();bmp.begin();// Let's connect to wifi networkSerial.print("Connecting to ");Serial.print(wifi_name);WiFi.begin(wifi_name, wifi_pass); //Connecting to wifi networkwhile (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 createdSerial.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 arraypressure.toCharArray(pressure_value, 4);float hum = dht.readHumidity();float temp = dht.readTemperature();float fah = dht.readTemperature(true);float heat_index = puteHeatIndex(fah, hum);float heat_indexC = dht.convertFtoC(heat_index);WiFiClient client = server.available(); //Checking for incoming clientsif (client){Serial.println("new client");String currentLine = ""; //Storing the incoming data in the stringwhile (client.connected()){if (client.available()) //if there is some client data available{char c = client.read(); // read a byteif (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}}}}}

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

/m0_71572576/article/details/125409052

5 最后

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。