This project uses an ESP32 board to monitor temperature with a DS18B20 sensor. It provides a web interface for real-time temperature data display and configuration settings. The system also supports alerting through webhooks for specified temperature thresholds.
- Real-time temperature monitoring with DS18B20 sensor
- Web server for data display and settings configuration
- Temperature threshold alerting via webhooks
- WiFi connectivity with support for WPA2-Personal and WPA2-Enterprise
- Dynamic web content with live temperature updates
- ESP32 board
- DS18B20 temperature sensor
- 4.7k resistor
- Arduino IDE
- DNSServer for setting up a DNS server
- WiFi for managing WiFi connections
- AsyncTCP as a dependency for ESPAsyncWebServer
- ESPAsyncWebServer for creating an asynchronous web server on the ESP32
- OneWire for communication with OneWire devices like the DS18B20 temperature sensor
- DallasTemperature for interfacing with the DS18B20 temperature sensors
- esp_wpa2 for WPA2 Enterprise WiFi security
- HTTPClient for sending HTTP requests
- ArduinoJson for JSON parsing and serialization
- Install the Arduino IDE and the required libraries.
- Clone or download this repository.
- Open the project in Arduino IDE.
- Update the
secrets.h
file with your desired passcode and webhook details. - Compile and upload the code to the ESP32 board.
- On first boot, connect to the ESP32's WiFi network for initial setup.
- Access the web server using the ESP32's IP address and a device on the same network.
- Set the desired temperature thresholds through the web interface.
- The web interface displays live temperature readings.
- Configure alert thresholds to receive notifications via webhooks.
- Use the
/data
and/info
endpoints for JSON formatted data.
/data
: Returns temperature data in JSON format./info
: Provides device and connection information.
- Handle WiFi credentials and webhook URLs securely.
- Use SSL certificates for secure HTTP connections.
Contributions are welcome. Please adhere to coding standards and include tests and documentation with your contributions.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.