micropython esp8266教程_MicroPython网络服务器使用ESP32/ESP8266获取压力,温度和湿度数据...

背景知识视频教程

在本文中,您将学习如何将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秒自动刷新一次: