背景知识视频教程
在本文中,您将学习如何将BME280传感器模块与ESP32和ESP8266结合使用,以使用MicroPython固件获取压力,温度和湿度读数。 我们将构建一个简单的示例,以使您熟悉传感器和网络服务器以显示传感器读数。
前提
要遵循本教程,您需要在ESP32或ESP8266板上安装MicroPython固件。您还需要一个IDE来编写代码并将其上传到板上。我们建议使用Thonny IDE或uPyCraft IDE:
Thonny IDE安装和刷新固件
uPyCraft IDE安装和刷新固件
介绍BME280传感器模块
所述BME280传感器模块读取气压,温度和湿度。由于压力随海拔高度变化,因此您也可以估算海拔高度。该传感器模块有多种版本,但我们使用的是下图所示的版本。
零件
对于此项目,您需要将BME280传感器模块连接到ESP32或ESP8266 I2C引脚。以下是本教程所需的零件清单:
原理图
ESP32接线示意
ESP8266接线示意
MicroPython库
您需要将以下库上传到ESP32 / ESP8266开发板。
>
按照您正在使用的IDE的下一组说明进行操作:
使用uPyCraft IDE上传BME280库
使用Thonny IDE上传BME280库
使用uPyCraft IDE上传BME280库
使用Thonny IDE上传BME280库
源代码
将库上传到ESP32或ESP8266之后,将以下代码复制到main.py或boot.py文件中。它仅每5秒将温度,湿度和压力打印到外壳中一次。
>
代码分解
演示
将代码上传到板上后,按RST按钮运行代码。新的传感器读数应每5秒显示一次。
网络上显示读数
现在,您知道如何从传感器获取压力,温度和湿度,我们将在网络服务器上显示传感器读数,您可以在本地网络上访问该服务器。
您需要三个文件:
复制以下代码。
>
该文件导入必要的库,定义I2C引脚以连接到传感器并连接到网络。
我们将创建网络服务器并处理请求。将以下代码复制到您的文件中。
>
这段代码创建了一个套接字服务器,当它收到对ESP32或ESP8266 IP地址的请求时,将发送带有最新传感器读数的HTML页面。
基本上,我们有一个名为web_page()的函数,该函数返回HTML来构建具有最新传感器读数的网页。此HMTL文本构建了一个表格来显示读数:
>
演示
按以下顺序将所有先前的文件上传到ESP32或ESP8266板:
上载代码后,您的ESP32或ESP8266 IP地址应显示在串行监视器上。
在您的局域网中打开Web浏览器,然后键入您的ESP IP地址(在我们的示例中,该IP为http://192.168.1.71)。您应该获得一个包含最新传感器读数的页面,如下图所示。
使用此项目中提供的Web服务器脚本,您需要刷新网页以查看最新读数。如果在HTML
head>标记内添加下一个meta标记,您的网页将每10秒自动刷新一次: