本教程与 ESP32 介绍如何使用使用 BMP280 和 SSD1306 使用 ESP32 构建气象站。此 ESP32 项目使用 LCD 显示屏显示传感器读数。使用 ESP32 构建气象站是一个简单的 IoT 项目,但开始使用 ESP32 并探索其主要功能非常有用。在这个项目中,为了监测压力和温度,我们将使用BMP280。因此,本 ESP32 教程将探讨如何:
- 使用 BMP280 或 BME280 获取当前温度和压力
- 使用 SSD1306 液晶显示屏,显示传感器的读数
要构建此项目,我们将使用VS 代码与平台IO插件。这是一个非常有趣的IDE,帮助我们。
最终结果如下:
所需的组件
要遵循本教程,您需要以下组件:
- ESP32 DEVKIT 板
- BMP280 传感器
- SSD1306
- 跳线线
- 面包板
如果您没有 BMP280 传感器,则可以使用 BME280。如果您使用 BME280 传感器,您也可以监控湿度。
BMP280 传感器模块说明
BMP280 是测量压力和温度的传感器模块。如果您有 BME280,也可以测量湿度。此传感器有多个版本。此 ESP32 气象站中使用的气象站使用 I2C 通信协议。
SSD1306 液晶显示屏
SSD1306 是一种 LCD 显示屏,用于显示来自传感器的读数。此 LCD 显示屏有多个版本。就像素而言,它们具有不同的宽度和高度。这个项目中使用的是 128 × 64 单色显示屏。SSD1306 使用 I2C 协议,但您也可以使用 SPI 版本。在这种情况下,您必须更改连接。
原理图: ESP32 + BMP280 = SSD1306
首先,让我们看看如何将ESP32连接到BMP280和SSD1306。架构如下所示:
Ⅹ
#include<WiFi.h>
#include<电线.h>
#include<Adafruit_BMP280。h>
#defineBMP_SDABMP_SDA21
#defineBMP_SCL22
Adafruit_BMP280 bmp280;10
11空设置setup() |
12串行。开始(9600);
13串行。印刷品("初始化BMP280");
14布尔状态status=bmp280。开始(0x76);
15如果(!状态){
16打印("未连接");17}
18}
19
20空环() |
21串行。打印(WiFi.本地 IP());
22浮动温度=bmp280。读取温度();
23读取压力() / 100;24
25串行。印刷品("温度"):
26串行。印刷品(温度);
27}
代码非常简单。在包含定义后,ESP32 代码在第 9 行声明我们将用于连接到 BMP280 传感器的对象。在
setup()
该方法中,我们建立了ESP32和BMP280之间的连接。您可能会注意到,代码使用地址 0x76。确保您的传感器具有相同的 I2C 地址,或根据您的需要进行更改。最后,在
loop()
该方法中,我们读取温度和压力:
bmp280.readTemperature()
bmp280.readPressure()
温度在摄氏度,而压力以帕斯卡表示
如果您使用的是 BME280,您也可以以同样的方式读取湿度。就这些,我们准备展示结果。
使用 ESP32 和 SSD1306 显示传感器读数
在 ESP32 项目开始的最后一部分中,我们将显示从传感器读取的值,并使用 LCD 显示屏 (SSD1306) 显示它们。您可以使用另一个兼容的显示器来显示结果。让我们看看代码:
Java
Ⅹ1h>2#include<Adafruit_SSD1306。h>
3
4Adafruit_SSD1306显示器(12864&电线-1);
5
6空设置setup() |
7...
8开始(SSD1306_SWITCHCAPVCC, 0x3c) |9串行。println(F("SSD1306 分配失败") );
10//不要继续,永远循环
11}
12
13显示。设置文本大小(1);
14显示。透明显示();
15设置文本颜色(SSD1306_WHITE);16}
17
18空环() |
19串行。打印(WiFi.本地 IP());
20浮动温度=bmp280。读取温度();
21浮动压机=bmp280。读取压力/100;
22串行。印刷品("温度"):24串行。印刷品(温度);
25
26显示。透明显示();
27显示。设置游标(0,0);
28显示。打印("温度"):
29显示。印刷品(温度);
30打印("压力):;31显示。(记者)
32显示。显示();
33
34延迟(6000);
35}
在 ESP32 代码的这一部分需要注意的一些事项。首先,如果您不知道如何导入库来管理 SSD1306,请转到下一段。导入定义后,在第 4 行,我们定义将处理显示的对象。此 ESP32 气象站中使用的显示屏是 LCD 128×64,宽度和高度是定义中使用的值在第 8 行,代码尝试连接到显示器。最后,它配置了设置文本大小和文本颜色的显示。
在
loop()
该方法中,我们只需显示从传感器读取的温度和压力。就这样。您已经使用 ESP32 建造了气象站。ESP32 是一个伟大的设备,它可以在几个方案中使用。例如,您可以阅读如何将 ESP32 连接到 AWS IoT 核心。
设置 ESP32 IDE
连接引脚后,我们可以将注意力集中在如何设置用于构建 ESP32 气象站项目的 IDE 上。如前所说,我们将使用带有平台IO插件的可视化工作室代码。你可以从这个链接下载视觉工作室代码。然后点击左侧菜单上的扩展,查找 PlatformIO 插件。安装后,您将获得类似内容:
这就是我们准备使用 IDE 的所有功能。
创建新的 ESP32 项目
是时候创建新的 ESP32 项目了。打开 PlatformIO 插件并创建新项目。然后,选择 ESP32 平台。就这样。。。现在,您可以创建新的项目,我们将开发开始与ESP32气象站。
导入库
创建项目后,我们可以导入库来处理 BMP280 和 SSD1306。单击"库"(左侧菜单)并查找:
- BMP280
- SSD1306
找到 Adafruit 库后,您可以将其导入到项目中,即可使用它们。
包装...
在本文的末尾,您可以了解如何开始使用 ESP32 构建一个简单的气象站。本教程介绍了如何将 ESP32 与 BMP280 连接,以及如何使用 SSD1306 显示传感器读数。您可以进一步改进此 ESP32 项目,添加新传感器或新功能。
Comments are closed.