DS18x20 driver supports DS18B20, DS18S20 and DS1822 1-Wire digital temperature sensors.
DS18b20 | ESP266 |
---|---|
1 GND | GND |
2 Data | GPIOx |
3 VCC | 3.3v |
You need to connect a 4.7K pullup resistor from data to 3.3V.
In the Configuration -> Configure Module page assign:
- GPIOx to
DS18x20 (4)
After a reboot webUI will display temperature measured.
Sensor sends a tele/%topic%/SENSOR
JSON reponse:
{"Time":"2019-01-01T00:00:00","DS18B20":{"Temperature":49.7},"TempUnit":"C"}
SetOption74
is used to enable/disable internal pullup for single DS18x20 sensor.
TempOffset
can be used for calibrating the measured temperature. This setting affects all temperature sensors on the device.
Tasmota supports multiple DS18b20 sensors connected to a single ESP8266 chip.
Every sensors will get a unique ID used in webUI and MQTT telemetry.
[!DANGER] BEWARE OF MANY VISUALLY SIMILAR BOARDS TO THIS RELAY BOARD but different schematics
Some modules have culprits:
- "CH_PD" is not set to HI (3.3V) as actually required. Usually this is done with a 10K resistor or directly to 3.3V, I have connected directly to the 3.3V
- A resistor (R2 10k) which is connected between the terminal GPIO0 to ground. This ensures that the GPIO0 is always pulled to ground, which actually places the ESP-01 in program mode (flashing). To make the module working it is necessary to remove (solder out).
Connect DS18B20 to the GPIO2 (see diagram below - soldering not necessary, it is possible to put the wires and the resistor directly in to the female part of the connector together with ESP 01S module pins)
After flashing, set up Tasmota (see images below):
- "Generic module"
- GPIO0 as Relay1 (21)
- GPIO2 as DS18x20(4)
Retrieving the temperature via HTTP
http://tasmota-ip/cm?user=<USER>&password=<PASS>&cmnd=status%2010
The temperature information will put published by MQTT to the tele/%topic%/SENSOR in the format of:
"Time":"2018-06-14T07:56:34","DS18B20":{"Temperature":21.9},"TempUnit":"C"}