项目简介
本项目基于Arduino编程语言,利用ESP32 NodeMCU开发板搭建Web服务器,结合DS18B20温度传感器和RTC DS3231实时时钟模块,实现温度数据的采集、存储和管理。采集到的温度数据会存储在SD卡的SQLite数据库中,用户可通过API接口对数据进行记录和查询。
项目的主要特性和功能
- 利用ESP32构建Web服务器,实现与外界交互。
- 通过DS18B20传感器实时获取环境温度。
- 借助RTC DS3231记录温度数据的时间戳。
- 将温度数据持久化存储在SD卡的SQLite数据库中。
- 提供POST和GET两种API接口,分别用于记录新的温度数据和查询特定时间范围内的温度数据。
安装使用步骤
前提条件
用户已下载本项目的源码文件。
硬件连接
- DS18B20温度传感器连接:
- 信号引脚接ESP32数字引脚(如D4)。
- VCC引脚接ESP32的3.3V或5V引脚。
- GND引脚接ESP32的GND引脚,数据引脚和VCC引脚间连4.7k欧姆电阻。
- RTC DS3231连接:
- SDA引脚接ESP32的SDA引脚。
- SCL引脚接ESP32的SCL引脚。
- VCC引脚接ESP32的3.3V或5V引脚。
- GND引脚接ESP32的GND引脚。
- SD卡连接:
- CS引脚接ESP32的GPIO5。
- SCK引脚接ESP32的GPIO18。
- MOSI引脚接ESP32的GPIO23。
- MISO引脚接ESP32的GPIO19。
- VCC引脚接ESP32的3.3V引脚。
- GND引脚接ESP32的GND引脚。
代码上传
- 通过USB将ESP32连接到计算机。
- 在Arduino IDE中选择正确的COM端口和ESP32开发板类型。
- 点击“上传”按钮,将代码上传到ESP32。
使用API
当ESP32连接到网络后,可通过以下URL进行操作:
- 记录温度数据:使用POST请求访问 http://[ESP32的IP地址]/setTemperature
,示例请求:http://192.168.1.10/setTemperature?temperature=23.4×tamp=1677649200
,成功响应为 {"status": "success"}
。
- 查询温度数据:使用GET请求访问 http://[ESP32的IP地址]/getTemperatures
,示例请求:http://192.168.1.10/getTemperatures?startTime=1677649100&endTime=1677649300
,响应格式为 [{"id": 1, "value": 23.4, "timestamp": 1677649200}]
。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】