Let op: Tweakers stopt per 2023 met Tweakblogs. In
dit artikel
leggen we uit waarom we hiervoor hebben gekozen.
soldeerprojectjes
ESP8266 CV temperatuur-sensor
Allereerst credits aan Atomstar om mij te introduceren bij dit onderwerp door middel van zijn reeks blogs en custom PCB voor een door hem genaamde 'BigSensor'.
Dit heeft mij geinspireerd om eens aan de slag te gaan met een ESP8266, door middel van ESPHome via een add-on in Home Assistant. Zelf was ik ook nog een complete noob in zowel ESPHome als HomeAssistant, maar dankzij de voorbeelden en enorme resource op internet is het wel gelukt
.
Mijn blog gaat over het maken van een ESP8266 met twee DS18B20 ('Dallas') temperatuursensors om de aanvoer- en retourtemperatuur van mijn CV installatie in de gaten te houden. Waarom dat handig kan zijn lees je in dit topic op GoT.
Starting with the end in mind:

Dit heb ik gemaakt door middel van:
De pin header soldeer je aan de 5V kant van je Wemos D1 mini (of andere ESP8266).
Voor mij kwam het zo het netste uit (klikbaar voor groot):
NB: ik ben bepaald geen soldeerkoning, maar deze pins hebben een prima spacing, dus dat lukt je wel!
Vervolgens combineer je de draden van de DS18B20's en verbind je ze onder de scroeven van de pin headers alsvolgt:
Noot: De DS18B20 werkt volgens een 1-wire protocol. We kunnen dus prima de beide data-draden aan 1 GPIO pin verbinden en vervolgens in de software de twee signalen (digitale signalen) uit elkaar houden door middel van de sensor-adressen welke automatisch worden meegstuurd. It's amazing
Dan prop je het geheel met beleid in het huisje. Je kunt de D1 mini met een schroefje aan de behuizing vastmaken zodat eea niet teveel beweegt (nog niet op de foto):
Vervolgens ga je verder met de software integratie en debugging (waar nodig) voordat je het geheel monteert bij je CV ketel:
NB: de sensor zal door het meten van de skin-temp van je pijp natuurlijk wat vertraging hebben. ook de 'waterdichte behuizing' van de DS18B20 die ik hier gebruik is iets 'trager'. In de praktijk echter snel genoeg en sinds het mij met name om de verschiltemperatuur gaat, en beide sensoren even snel/traag reageren, zie ik hier geen enkel probleem in.
SOFTWARE INTEGRATIE
Ik ga er voor het gemak even vanuit dat je zoiets als een ESPHome add-on hebt draaien op Home Assistant of otherwise. Dit lukt een Tweaker wel. Er zijn hier heel veel wegen die naar Rome leiden en Google is je vriend, RTFM, etc.
Je kunt een ESP8266 bordje heel makkelijk verbinden met Home Assistant. Voor de eerste keer programmeren dien je je bouwsel met behulp van USB aan de instance die ESPHome draait te verbinden (e.g. je Raspberry Pi met Home Assistant).
In je ESPHome dashboard maak je een nieuw project aan, geef deze een naam en kies de Wemos D1 mini als bordje. Er wordt dan ongeveer deze YAML aangemaakt:
In mijn ervaring verbind de Wemos makkelijker (of uberhaupt) met je WifI als je deze een static IP meegeeft. Ook voeg ik een tweede wifi netwerk toe aan de code, dit kun je natuurlijk achterwege laten. We gaan meteen de code toevoegen om de 'Dallas' temperatuursensors uit te lezen.
Ignore het verhaal over 3.3V en de external pull-up resistor. Een DS18B20 kan ook met 5V input omgaan en onze Wemos heeft een internal pull-up die we gaan activeren
Push de code naar je Wemos en als het goed is verbind hij nu met je WiFi en gaat hij logging uitspugen.
Je zou nu sensor-adressen moeten kunnen vinden in je logging, ongeveer zoiets:
Deze adressen gebruiken we vervolgens om software-matige sensoren te definiëren die data uitspugen richting Home Assistant (MQTT kan ook).
Uiteindelijke YAML code
De finale code is dan iets als:
Upload de code (wirelessly, of via USB) naar je Wemos, en Home Assistant zal je verzelf vertellen dat hij nieuwe sensors heeft gevonden
RESULT


IDEAS
Misschien nog een derde DS18B20 toevoegen aan de warmwaterleiding; vervolgens je badkamerventilator starten/harder laten draaien na x minuten warm-water?
De mogelijkheden zijn zo groot als je fantasie (ok, en tijd...).
TOT SLOT
Dit is mijn eerste Tweakblog. Trying to give back to the community. Be gentle
Dit heeft mij geinspireerd om eens aan de slag te gaan met een ESP8266, door middel van ESPHome via een add-on in Home Assistant. Zelf was ik ook nog een complete noob in zowel ESPHome als HomeAssistant, maar dankzij de voorbeelden en enorme resource op internet is het wel gelukt
Mijn blog gaat over het maken van een ESP8266 met twee DS18B20 ('Dallas') temperatuursensors om de aanvoer- en retourtemperatuur van mijn CV installatie in de gaten te houden. Waarom dat handig kan zijn lees je in dit topic op GoT.
Starting with the end in mind:

Dit heb ik gemaakt door middel van:
- A. 1 x Wemos D1 mini ESP8266 wifi bordje
- Inmiddels is de v3 niet meer leverbaar, je zou de v4 met usb-c kunnen gebruiken: https://www.tinytronics.nl/shop/nl/development-boards/microcontroller-boards/met-wi-fi/wemos-d1-mini-v4-esp8266-ch340
- B. 1x Een opgesoldeerde schroefterminal
- C. 2x DS18B20 digitale temperatuursensors met kabel
- D. 1 x dit huisje
- E. Een micro-USB kabel en 5V USB-adapter als voeding. Die heb je nog liggen

- Of dus usb-c als je de mini v4 gebruikt.
- Let op dat je een 'korte stekker' aan de micro-USB kant hebt zitten, zodat het geheel in de behuizing past. Elke andere behuizing die je zelf nog hebt liggen of maakt kan je natuurlijk ook toepassen voor dit projectje.
- De laatste revisie van de Wemos D1 mini (v4) is uitgevoerd met USB-C voor de liefhebber.
De pin header soldeer je aan de 5V kant van je Wemos D1 mini (of andere ESP8266).
Voor mij kwam het zo het netste uit (klikbaar voor groot):
NB: ik ben bepaald geen soldeerkoning, maar deze pins hebben een prima spacing, dus dat lukt je wel!
Vervolgens combineer je de draden van de DS18B20's en verbind je ze onder de scroeven van de pin headers alsvolgt:
- Rood (Vcc) --- 5V
- Geel (data) --- D3
- Wit (of Zwart) (Gnd) --- GND
Noot: De DS18B20 werkt volgens een 1-wire protocol. We kunnen dus prima de beide data-draden aan 1 GPIO pin verbinden en vervolgens in de software de twee signalen (digitale signalen) uit elkaar houden door middel van de sensor-adressen welke automatisch worden meegstuurd. It's amazing
Dan prop je het geheel met beleid in het huisje. Je kunt de D1 mini met een schroefje aan de behuizing vastmaken zodat eea niet teveel beweegt (nog niet op de foto):
Vervolgens ga je verder met de software integratie en debugging (waar nodig) voordat je het geheel monteert bij je CV ketel:
NB: de sensor zal door het meten van de skin-temp van je pijp natuurlijk wat vertraging hebben. ook de 'waterdichte behuizing' van de DS18B20 die ik hier gebruik is iets 'trager'. In de praktijk echter snel genoeg en sinds het mij met name om de verschiltemperatuur gaat, en beide sensoren even snel/traag reageren, zie ik hier geen enkel probleem in.
SOFTWARE INTEGRATIE
Ik ga er voor het gemak even vanuit dat je zoiets als een ESPHome add-on hebt draaien op Home Assistant of otherwise. Dit lukt een Tweaker wel. Er zijn hier heel veel wegen die naar Rome leiden en Google is je vriend, RTFM, etc.
Je kunt een ESP8266 bordje heel makkelijk verbinden met Home Assistant. Voor de eerste keer programmeren dien je je bouwsel met behulp van USB aan de instance die ESPHome draait te verbinden (e.g. je Raspberry Pi met Home Assistant).
In je ESPHome dashboard maak je een nieuw project aan, geef deze een naam en kies de Wemos D1 mini als bordje. Er wordt dan ongeveer deze YAML aangemaakt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| esphome:
name: soepkipsensor
esp8266:
board: d1_mini
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
password: "22cbbfcbd7ecdb5188f629dd4cd5a700"
wifi:
ssid: "mijn_SSID"
password: "password"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Soepkipsensor Fallback Hotspot"
password: "FeIJmlrN4viG"
captive_portal: |
In mijn ervaring verbind de Wemos makkelijker (of uberhaupt) met je WifI als je deze een static IP meegeeft. Ook voeg ik een tweede wifi netwerk toe aan de code, dit kun je natuurlijk achterwege laten. We gaan meteen de code toevoegen om de 'Dallas' temperatuursensors uit te lezen.
Ignore het verhaal over 3.3V en de external pull-up resistor. Een DS18B20 kan ook met 5V input omgaan en onze Wemos heeft een internal pull-up die we gaan activeren
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| esphome:
name: soepkipsensor
platform: ESP8266
board: d1_mini
wifi:
networks:
- ssid: "netwerk1"
password: "password1"
- ssid: "netwerk2"
password: "password2"
manual_ip:
# Set this to the IP of the ESP
static_ip: 192.168.1.161
# Set this to the IP address of the router. Often ends with .1
gateway: 192.168.1.1
# The subnet of the network. 255.255.255.0 works for most home networks.
subnet: 255.255.255.0
#fast_connect: True # Required to connect to hidden SSIDs and only with one network
domain: ".lan"
# reboot_timeout: 0s # Do not reboot if no wifi (can be useful for offline use)
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: CV Temp Fallback Hotspot
password: password123
logger:
# Enable Home Assistant API for logging over wifi.
# Disable reboot loop by setting reboot_timeout to 0s!
api:
reboot_timeout: 0s
# Disable webserver, Can be useful for diagnostics, but takes up quite some memory
# web_server:
# port: 80
# Allow OTA updates
ota:
# For Dallas temp sensors connected to pin GPIO0 = D3, enable internal pull-up
# resistor
dallas:
pin:
number: GPIO0
# D3 = GPIO 0
# inverted: True
mode: INPUT_PULLUP
update_interval: 1s #adjust to your own preference |
Push de code naar je Wemos en als het goed is verbind hij nu met je WiFi en gaat hij logging uitspugen.
Je zou nu sensor-adressen moeten kunnen vinden in je logging, ongeveer zoiets:
Deze adressen gebruiken we vervolgens om software-matige sensoren te definiëren die data uitspugen richting Home Assistant (MQTT kan ook).
Uiteindelijke YAML code
De finale code is dan iets als:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
| esphome:
name: soepkipsensor
platform: ESP8266
board: d1_mini
wifi:
networks:
- ssid: "netwerk1"
password: "password1"
- ssid: "netwerk2"
password: "password2"
manual_ip:
# Set this to the IP of the ESP
static_ip: 192.168.1.161
# Set this to the IP address of the router. Often ends with .1
gateway: 192.168.1.1
# The subnet of the network. 255.255.255.0 works for most home networks.
subnet: 255.255.255.0
#fast_connect: True # Required to connect to hidden SSIDs and only with one network
domain: ".lan"
# reboot_timeout: 0s # Do not reboot if no wifi (can be useful for offline use)
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: CV Temp Fallback Hotspot
password: password123
logger:
# Enable Home Assistant API for logging over wifi.
# Disable reboot loop by setting reboot_timeout to 0s!
api:
reboot_timeout: 0s
# Disable webserver, Can be useful for diagnostics, but takes up quite some memory
# web_server:
# port: 80
# Allow OTA updates
ota:
# For Dallas temp sensors connected to pin GPIO0 = D3, enable internal pull-up
# resistor
dallas:
pin:
number: GPIO0
# D3 = GPIO 0
# inverted: True
mode: INPUT_PULLUP
update_interval: 1s #adjust to your own preference
sensor:
- platform: dallas
address: 0x280000000b333728
name: "CV_supply_temp"
id: CV_supply_temp
- platform: dallas
address: 0x590000000e2e4c28
name: "CV_return_temp"
id: CV_return_temp
- platform: template
id: CV_delta_temp
name: "CV_delta_temp"
unit_of_measurement: °C
update_interval: 1s
lambda: 'return id(CV_supply_temp).state - id(CV_return_temp).state;' |
Upload de code (wirelessly, of via USB) naar je Wemos, en Home Assistant zal je verzelf vertellen dat hij nieuwe sensors heeft gevonden
RESULT


IDEAS
Misschien nog een derde DS18B20 toevoegen aan de warmwaterleiding; vervolgens je badkamerventilator starten/harder laten draaien na x minuten warm-water?
De mogelijkheden zijn zo groot als je fantasie (ok, en tijd...).
TOT SLOT
Dit is mijn eerste Tweakblog. Trying to give back to the community. Be gentle