Very basic IoT thermometer with REST API and Web-UI. Implemented according to the "KISS" approach - Keep It Simple and Stupid
- 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
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
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:
Symbol of a short-circuit proof, closed safety transformerMinimal build up with SMD resistor on the back and only one connected DS18B20.
You have two options to upload the software to the WeMos D1 mini.
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
- 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"
}
]
}
# | scheme | primary color | badge |
---|---|---|---|
1 | 100prznt | #ff2e64 |
|
2 | Classic | #1e87f0 |
|
3 | Total | #30a4a1 |
|
4 | Power | #325c84 |
|
5 | Sun | #f08a00 |
|
6 | Dark | #060d2a |
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 ->
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.
3d-printed enclousure with Temp2IoT icon
Blackened inside so that the LED produces a focused light spot
Found this project on the german Poolpowershop-Forum.
This app is made possible by contributions from:
- Elias Rümmler (@rmmlr) - core contributor
- 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.
The Temp2IoT project is licensed under MIT. Refer to LICENSE.txt for more information.
Contributions are welcome. Fork this repository and send a pull request if you have something useful to add.