Temp2IoT
Temp2IoT copied to clipboard
Very basic IoT thermometer with REST API and web UI, based on ESP8266 hardware (WeMos D1 mini)
Temp2IoT
Very basic IoT thermometer with REST API and Web-UI. Implemented according to the "KISS" approach - Keep It Simple and Stupid
Features
- Temperature measurement at one or two measuring points using DS18B20 sensors
- Shows the measured values on integrated web UI
- REST API for integration with master systems (e.g. ioBroker)
- Configuration also via a web UI
Hardware
BOM
Description | Qty. | Price | ASIN (partner-link from amazon.de) |
---|---|---|---|
WeMos D1 mini | 1 | EUR 6,49 | B01N9RXGHY |
DS18B20 waterproof | 1 or 2 | EUR 3,50 | B01MZG48OE |
Resistor 2K2 (0,6 W) | 1 | EUR 0,99 | B007R3QXUE |
---------------------- | -------- | ----------- | --------------------------------------- |
Total | EUR 10,98 |
quoted prices from 2022/09/08
Also a USB-micro cable and a USB power supply is required
Wiring
Power Supply
:warning: Caution Danger to life :warning:
If the thermometer is used to measure water temperatures, it is essential to use an appropriately classified power supply unit. It is important that the power supply is designed as a safety transformer.
A simple USB power supply that meets these requirements can be found here:
Photos
Minimal build up with SMD resistor on the back and only one connected DS18B20.
Setup
You have two options to upload the software to the WeMos D1 mini.
ESP8266 Flasher (Windows)
You can download the compiled Flasher Tool from the GitHub Repository
- Clone or download the repository
- Start the ESP8266Flasher.exe
- Select the pre-compiled Temp2IoT binary on the config-tab, find at:
src\Temp2IoT\Temp2IoT.ino.d1.bin
- Switch back to the operation-tab and select the right COM-port
- Press the Flash-Button
REST API
- URL:
http://<Temp2IoT IP>/api
- Method:
GET
{
"systemname": "My Temp2IoT instance",
"secure_counter": 50,
"firmware": "2.2.04-b",
"sensors": [
{
"name": "water",
"value": 23.625,
"mean-1": {
"count": 5,
"value": 23.6,
"period": 3600
},
"mean-24": {
"count": 5,
"value": 23.6,
"period": 86400
},
"unit": "Celsius",
"time": "Fri Jul 9 13:12:36 2021"
},
{
"name": "ambient",
"value": 23.9375,
"unit": "Celsius",
"time": "Fri Jul 9 13:12:37 2021"
}
]
}
Web UI
- URL:
http://<Temp2IoT IP>/
Web UI on a desktop browser
Web UI on a smartphone browser
System Setup
- URL:
http://<Temp2IoT IP>/setup/
Setup page on a smartphone browser
Color Scheme
Colors
# | scheme | primary color | badge |
---|---|---|---|
1 | 100prznt | #ff2e64 |
|
2 | Classic | #1e87f0 |
|
3 | Total | #30a4a1 |
|
4 | Power | #325c84 |
|
5 | Sun | #f08a00 |
|
6 | Dark | #060d2a |
Debug Output
Feel free to take a look at the serial monitor (115200 baud).
21:54:57.656 ->
21:54:57.656 -> _____ ___ ___ _____
21:54:57.656 -> |_ _|__ _ __ _ __|_ )_ _|__|_ _|
21:54:57.702 -> | |/ -_) ' \| '_ \/ / | |/ _ \| |
21:54:57.702 -> |_|\___|_|_|_| .__/___|___\___/|_|
21:54:57.702 -> |_|
21:54:57.702 ->
21:54:57.702 -> **************************************************
21:54:57.702 -> a 100prznt.de project by E. Ruemmler
21:54:57.702 -> v2.2.04-b
21:54:57.702 ->
Enclosure
In the folder hardware/enclosure you will find 2 STL files of a suitable enclosure. If the cover is printed upside-down, you can print the first two layers in a different color to make the Temp2IoT icon stand out better.
Photos
3d-printed enclousure with Temp2IoT icon
Blackened inside so that the LED produces a focused light spot
Community
Found this project on the german Poolpowershop-Forum.
Credits
This app is made possible by contributions from:
- Elias Rümmler (@rmmlr) - core contributor
Open Source Project Credits
- Follower Counter - The architeture of Temp2IoT based on a awesome code from @jegade used for his followercounter project.
- Used Arduino libraries are described in the code.
License
The Temp2IoT project is licensed under MIT. Refer to LICENSE.txt for more information.
Contributions
Contributions are welcome. Fork this repository and send a pull request if you have something useful to add.