You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

108 lines
2.4 KiB
Markdown

# ESP32 温度监控及 Web 应用项目
该项目包括两个主要部分:使用 MQTT 发送温度数据的 ESP32 设备和一个用于显示这些数据的基于 Flask 的 Web 应用程序。
![webui.png](_assets/webui.png)
## 第 1 部分ESP32 温度监控
### 系统要求
- ESP32 开发板
- DS18B20 温度传感器
- 支持 ESP32 的 Arduino IDE
- Wi-Fi 连接
### 配置和设置
1. **安装 Arduino IDE**
从 [Arduino 网站](https://www.arduino.cc/en/software) 下载并安装。
2. **在 Arduino IDE 中添加 ESP32 支持**
按照[这里](https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/)的说明操作。
3. **安装所需的库**
在 Arduino IDE 中,转到 `Sketch` > `Include Library` > `Manage Libraries...` 并安装:
- `WiFi`
- `PubSubClient`
- `ArduinoJson`
- `OneWire`
- `DallasTemperature`
4. **配置 Wi-Fi 和 MQTT 设置**
在 Arduino IDE 中用您的 Wi-Fi 和 MQTT 详细信息修改提供的 ESP32 代码。
5. **将 DS18B20 传感器连接到 ESP32**
- DS18B20 VCC 接 ESP32 3.3V
- DS18B20 GND 接 ESP32 GND
- DS18B20 数据接 ESP32 GPIO 25
![esp32](./_assets/esp32.png)
6. **上传代码**
将 ESP32 连接到计算机,在 Arduino IDE 中选择正确的板和端口,然后上传。
## 第 2 部分Flask Web 应用程序
### 系统要求
- Python 3.8 或更高版本
- 虚拟环境工具(如 `virtualenv`
### 本地设置
1. **克隆仓库**
```
git clone [仓库 URL]
cd [仓库名称]
```
2. **创建虚拟环境**
```
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
```
3. **安装依赖**
```
pip install -r requirements.txt
```
4. **`app.py` 中配置 MQTT 设置**
修改 `app.py` 中的 MQTT 配置。
5. **运行应用程序**
```
python app.py
```
`http://localhost:8080` 访问。
### 部署到 Fly.io
1. **安装 Fly.io CLI**
按照 [Fly.io 文档](https://fly.io/docs/getting-started/installing-flyctl/) 中的说明进行操作。
2. **登录 Fly.io**
```
flyctl auth login
```
3. **初始化 Fly.io 应用**
```
flyctl launch
```
4. **部署应用程序**
```
flyctl deploy
```
5. **验证部署**
```
flyctl status
```