文章目录

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

1 简介

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

基于ESP32的家庭气象站系统

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

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

https://blog.csdn.net/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 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
}
}
}
}
}

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

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

5 最后

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

  1. 【毕业设计】基于单片机的智能饮水机系统 - stm32 物联网 嵌入式

    文章目录 1 简介 2 绪论 2.1 课题背景与目的 3 系统设计 3.1 智能饮水机功能设计 3.1.1 智能饮水机的按键功能: 3.1.2 智能饮水机的显示功能: 3.2 系统架构 3.3 软件部 ...

  2. 【毕业设计】基于单片机的心率检测系统 - stm32 物联网 嵌入式

    1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍一个学长做的单片机项目 基于STM32的血氧心率检测器的设计与实现 大家可用于 课程设计 或 毕业设计 单片机-嵌入式毕设选题大全及项目分享: h ...

  3. 物联网毕业设计 - 智能运动计步系统(物联网 嵌入式 单片机 stm32)

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 设计原理 4.1 MAX30102模块 4.2 GSM模块 4.3 ADXL345加速度传感器 5 部分核心代码 0 前言

  4. 毕业设计 单片机WIFI智能家居温湿度和烟雾检测系统 - Stm32 物联网 嵌入式

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 设计原理 4.1 DHT11温湿度传感器 4.2 MQ-2烟雾传感器 4.3 ESP8266WIFI模块 5 部分核心代码 5 最后 0 ...

  5. 计算机应用深圳职业大三毕业设计,毕业设计(论文)文献综述-基于Web的家庭理财系统.docx...

    )4事欷夭2噹母院 本科生毕业设计(论文)文献综述 设计(论文)题目 基于Web的家庭理财系统 设计与实现 作者所在院系 作者所在专业 作者所在班级 计算机与遥感信息技术学院 软件工程 作者姓名 作者 ...

  6. 基于javaweb的家庭理财系统(java+ssm+jsp+tomcat8+mysql)

    基于javaweb的家庭理财系统(java+ssm+jsp+tomcat8+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myecli ...

  7. java计算机毕业设计基于ssm的基于android的家庭理财系统

    项目介绍 随着Internet的发展,人们的日常生活已经离不开网络.未来人们的生活与工作将变得越来越数字化,网络化和电子化.网上管理,它将是直接管理家庭理财系统app的最新形式.本论文是以构建家庭理财 ...

  8. 基于java的家庭理财系统_基于jsp的家庭理财系统-JavaEE实现家庭理财系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的家庭理财系统, 该项目可用各类java课程设计大作业中, 家庭理财系统的系统架构分为前后台两部分, 最终实现在线上 ...

  9. 基于Android的家庭理财系统的设计与实现.rar(毕业论文设计+程序源码) android studio导入可直接打开

    基于Android的家庭理财系统的设计与实现 1 第1章绪论 3 1.1研究背景 3 1.2国内外研究分析 5 1.3研究内容 7 1.4论文结构 8 第2章相关技术综述 9 2.1 Android平 ...

最新文章

  1. Lintcode 569解题思路及c++代码
  2. 权重初始化方式对神经网络迭代次数的影响
  3. Flink从入门到精通100篇(八)-美团点评是如何在 Flink平台建立 实时数仓的?
  4. go 定义一个结构体并赋初始值_Go中必须谈论的四个迷点
  5. java 输出数据类型_输入输出和java数据类型
  6. 文件修改如何简单修改Android的so文件
  7. cocos2d-x初探学习笔记(12)--图形绘制
  8. python antlr4需要的python 版本_python多版本管理器pyenv
  9. git安装与配置_git 安装及基本配置
  10. 解决微服务在docker上部署后无法连接数据库的问题
  11. 深度学习中 Batch Size 对训练过程的影响
  12. 犀牛7基本训练学习教程 Rhino 7 Essential Training
  13. 【MySQL源码】01 MySQL源码总述
  14. 必备!Mac上的硬盘测速专家Blackmagic Disk Speed Test
  15. 天池大数据竞赛 Spaceack带你利用Pandas,趋势图与桑基图分析美国选民候选人喜好度
  16. Mysql出现Table 'performance_schema.session_status' doesn't exist
  17. 通过IIS安装包安装IIS
  18. 量化——【01】你不得不知道的金融量化基础知识
  19. 获取一个月有多少天,生成日历
  20. Delphi7微信、支付宝扫码支付源码

热门文章

  1. DO-214AC封装尺寸图
  2. Markdown (CSDN) MD编辑器(四)- 漂亮表格(表格背景色、跨行、跨列、多行)
  3. 在Windows7和Ubuntu上编译安装MICO
  4. linux 软件安装及卸载
  5. python没有库怎么办_python缺少依赖(ImportError)库怎么办 | C/C++程序员之家
  6. MYSQL数据库密码的加密方式及破解方法
  7. spacedesk安装失败2503/2502错误
  8. 词法分析扫描器的设计实现
  9. 【线性代数】矩阵的基本概念和运算性质
  10. 算法 64式 4、回溯算法整理__第1部分_1到13题