mirror of
https://github.com/letscontrolit/ESPEasy.git
synced 2026-09-12 17:45:49 +00:00
148 lines
6.1 KiB
ReStructuredText
148 lines
6.1 KiB
ReStructuredText
.. include:: ../Plugin/_plugin_substitutions_p00x.repl
|
|
.. _P004_DS18b20_page:
|
|
|
|
DS18b20
|
|
=======
|
|
|
|
|P004_typename|
|
|
|P004_status|
|
|
|
|
.. image:: P004_DS18b20_1.jpg
|
|
|
|
Introduction
|
|
------------
|
|
|
|
The DS18B20 manufactured by Dallas and Maxxim is a very simple to use temperature sensor with a tolerance of +/- 0.5°C.
|
|
|
|
.. note:: Cheap remakes from Chinese market might have bigger tolerance and also might have different pinouts.
|
|
|
|
It's advantages: very simple to use due to "1-wire" data protocol. Chainable, it is possible to chain up to 100
|
|
sensors on one cable (remember ESP Easy has 12 tasks max...). No calibration necessary if the tolerance fits your
|
|
needs as the sensor gives digital data directly. Many forms available from bare chip to waterproof and tube sensors.
|
|
|
|
Specifications:
|
|
* Temperature (-55C to +125C)
|
|
* Voltage requirements: 3.3-5V
|
|
|
|
.. note:: The DS18B20 runs well on 3.3V so no level shifter or special power supply is needed. But the official
|
|
statement is that you should use 5V and a level shifter if you have multiple sensors on a long wire.
|
|
|
|
Wiring
|
|
------
|
|
|
|
.. image:: P004_DS18b20_5.jpg
|
|
|
|
.. code-block:: none
|
|
|
|
ESP DS18b20
|
|
GPIO (14) <--> 1-wire/D (yellow)
|
|
|
|
Power
|
|
3.3/5.0V <--> VDD (red)
|
|
GND <--> GND (black)
|
|
|
|
The sensor needs a pull up resistor. If you use the breakout board type the resistor usually is already on the board.
|
|
This gets you into problems if using several DS18B20 breakout boards. There should be **only one resistor for the entire line**
|
|
so you might have to remove resistors leaving just one at one end of the line.
|
|
|
|
Typical value for the pull up resistor is 4k7. For multiple sensors on the same wire this value may need to be lowered a bit.
|
|
|
|
Do not use very thin cabling! Tested with a 3x0.14mm² cable the length with 5 Sensors was 10 meters, longer cabling did not work.
|
|
Use a phone line cable (2x2x0.6mm²) instead if you need long distances up to 50..100 meters. remember: One (!) pull-up resistor for the whole line!
|
|
|
|
The preferred structure is a straight line. If possible avoid "stubs". If necessary it can be cabled in a "star" infrastructure.
|
|
But be aware that stubs and star form reduce the possible cable length.
|
|
|
|
Setup
|
|
-----
|
|
|
|
.. image:: P004_Setup_DS18b20_1.png
|
|
|
|
Task settings
|
|
~~~~~~~~~~~~~
|
|
|
|
* **Device**: Name of plugin
|
|
* **Name**: Name of the task (example name **TempN**, where N is a number).
|
|
* **Enable**: Should the task be enabled or not
|
|
|
|
Sensor
|
|
^^^^^^
|
|
|
|
* **GPIO <--> 1-wire**: Pulse input is generally set to **GPIO 14 (D5)**.
|
|
|
|
after pressing submit the following settings are revealed:
|
|
|
|
* **Device address**: Pick your **sensor address**, hold your hand around it to see which one is changing temperature.
|
|
Every DS18b20 has a unique address burned in at production time.
|
|
This UID (Unique IDentifier) is used to tell the sensors apart on one single cable.
|
|
* **Device resolution**: 9..12 bits, the **lower the resolution the accuracy decreases and the speed increases**.
|
|
As temperatures do not change very fast usually a high accuracy can be chosen without problem.
|
|
|
|
.. note:: If you need a star infrastructure or stubs or if you need just longer cabling there is a way out.
|
|
One line runs on one GPIO. But nobody said you can't use two GPIO's. If the cabling gets too long or
|
|
you have too much stubs or star cables try to split into two circuits. Place the ESP in the mid and
|
|
cut the line into two circuits, for example "Ground Floor" and "1st Floor". Use two GPIO's, one for each circuit.
|
|
|
|
.. note:: Usually the DS18B20 works without issues. It's also usual that most problems result from cabling mistakes.
|
|
With long cabling you might get wrong data sometimes. It might be helpful to reduce the resistor a bit, 2.2 kOhm is lowest possible.
|
|
If nothing works disconnect all sensors from line and connect back one by one, checking every time. Cable may be too long
|
|
(or too thin for the given distance). Keep cabling away from other cables to avoid interferences. If necessary place a
|
|
10µF capacitor on the sensors between 3.3v and GND.
|
|
|
|
Data acquisition
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
* **Send to controller** 1..3: Check which controller (if any) you want to publish to. All or no controller can be used.
|
|
* **Interval**: How often should the task publish its value (5..15 seconds is normal).
|
|
|
|
|
|
Indicators (recommended settings)
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
.. csv-table::
|
|
:header: "Indicator", "Value Name", "Interval", "Decimals", "Extra information"
|
|
:widths: 8, 5, 5, 5, 40
|
|
|
|
"Temperature", "Celsius", "10", "1", ""
|
|
|
|
Rules examples
|
|
--------------
|
|
|
|
.. code-block:: none
|
|
|
|
On Temp1#Celsius Do
|
|
If [Temp1#Celsius]>37
|
|
NeoPixelAll,255,0,0 //Your body temperature is too high!
|
|
Else
|
|
NeoPixelAll,0,255,0 //Body temperature is OK.
|
|
EndIf
|
|
EndOn
|
|
|
|
.. Commands available
|
|
.. ~~~~~~~~~~~~~~~~~~
|
|
|
|
.. .. include:: P004_commands.repl
|
|
|
|
Where to buy
|
|
------------
|
|
|
|
.. csv-table::
|
|
:header: "Store", "Link"
|
|
:widths: 5, 40
|
|
|
|
"AliExpress","`Link 1 ($) <http://s.click.aliexpress.com/e/bWymv0bQ>`_"
|
|
"Banggood","`Link 2 ($) <https://www.banggood.com/DS18B20-Waterproof-Digital-Temperature-Temp-Sensor-Probe-1M-2M-3M-5M-10M-15M-p-1211828.html?p=V3270422659778201806>`_ `Link 3 ($) <https://www.banggood.com/10Pcs-DS18B20-Temperature-Sensor-DALLAS-18B20-TO-92-Encapsulation-p-953364.html?p=V3270422659778201806>`_ `Link 4 ($) <https://www.banggood.com/5pcs-PT100-DS18B20-Temperature-Sensor-Stainless-Steel-Bushing-Blind-Tube-Protect-Case-Sleeve-6x50mm-p-1212105.html?p=V3270422659778201806>`_"
|
|
"eBay","`Link 5 ($) <https://rover.ebay.com/rover/1/711-53200-19255-0/1?icep_id=114&ipn=icep&toolid=20004&campid=5338336929&mpre=https%3A%2F%2Fwww.ebay.com%2Fsch%2Fi.html%3F_from%3DR40%26_trksid%3Dm570.l1313%26_nkw%3DDS18B20%26_sacat%3D0%26LH_TitleDesc%3D0%26_osacat%3D0%26_odkw%3Dfluid%2Bsensor%2Bmeter>`_"
|
|
|
|
|affiliate|
|
|
|
|
|
|
More pictures
|
|
-------------
|
|
|
|
.. image:: P004_DS18b20_2.jpg
|
|
|
|
.. image:: P004_DS18b20_3.jpg
|
|
|
|
.. image:: P004_DS18b20_4.jpg
|