Toon posts:

~24 1-wire DS18B20 sensoren op vloerverwarming bevestigen

Pagina: 1
Acties:

  • bucovaina89
  • Registratie: Juli 2010
  • Laatst online: 20:41
Ik ben zinnens om op PEX aan- en afvoerbuizen van de vloerverwarming DS18B20 temperatuursensoren te hangen op een one-wire bus gecontroleerd door een Raspberry PI. De data gaat naar een influxdb server op de NAS.

Mijn vraag situeert zich vooral in het praktische. Hoe begin je daaraan kwestie van alles aan elkaar te hangen zodat ik de sensoren netjes op hun plek kan bevestigen? De afstand is 2x 80cm (lengtes van de collectoren van aan- en afvoer) en 12 buizen per collector.

Ik heb het gevoel dat 1 lang kabel op 12 plekken gaan strippen en dan 12 sensoren erop gaan solderen erg arbeidsintensief gaat zijn. Tenzij misschien er een goede methode is om ergens in de loop van een kabel wat isolatiemateriaal weg te halen?

Anyway, misschien kent iemand een veel handigere/betere/robuustere methode om zoiets aan te pakken.

Niet geheel onbelangrijk: Gezien het relatief veel sensoren zijn, moet de hele bus zo low capacitance mogelijk zijn (vandaar dus toch maar cat5 desondanks de kleine lengtes). Ik lees regelmatig dat ~20 sensoren op een circuit zowat de max is bij een Raspberry PI. Het voordeel dat ik wel heb is slechts 1,60m voor alle sensoren nodig heb.

Alle tips zijn welkom, hoogstwaarschijnlijk zie ik nog wel iets over het hoofd :)

  • leecher
  • Registratie: December 2004
  • Laatst online: 00:02
Ik heb precies dat gedaan met DS18B20 sensoren. Ik heb 1 kabel genomen en telkens een stukje isolatie weggesneden en daar een kort aftakking naar een sensor gemaakt. De volgende keer zou ik het niet meer zo doen, ik zou DS18B20 sensoren allemaal een stukje kabel geven met een 3 pin dupont stekkertje erop. Die zou ik allemaal in een rij met header pins op zo'n stukje prototype-pcb prikken waar je alle bij elkaar horen de pinnen in 1 lange rij doorsoldeert. Je hebt iets meer kabel nodig maar dat scheelt een hoop prutswerk.

  • bucovaina89
  • Registratie: Juli 2010
  • Laatst online: 20:41
Thanks voor de input!

Enige wat ik me daarbij bedenk is dat ik meer kabel ga nodig hebben dan in mijn eerdere gedacht en is de kans iets groter dat de sensoren niet deftig uitgelezen kunnen worden. Maar goed, theorie/praktijk ... De moeite die ik er anders in zou steken maakt het wel een poging waard denk ik!

Hoeveel sensoren zitten er in jouw 1w-bus, hoeveel kabel heb je ongeveer en is een Raspberry PI de master?

En nog een ander vraagje, hoe heb je de sensoren op de PEX-buizen bevestigd? Heb je misschien een fototje? Of niet voor publicatie vatbaar? :)

En heb je misschien nog bedenkingen over dingen die je misschien anders zou gedaan hebben achteraf?

  • leecher
  • Registratie: December 2004
  • Laatst online: 00:02
Ik heb geen foto en er staat een hoop troep voor dus ik kan er niet makkelijk bij komen :P Ik heb ze bevestigd met een stukje klittenband (zoek op 'cable velcro' op ali) en ze daarmee strak tegen de buizen getrokken. Dat spul is ook weer makkelijk te verwijderen. Ik heb geen tape gebruikt want ik wist niet zeker of de kunststof buizen zulke lijm wel leuk vinden. Gewoon een tiewrap werkt ook prima. Ik heb ze niet op een rpi aangesloten maar op een esp8266.

Om zeker te zijn dat ze wel allemaal dezelfde temperatuur aangeven (nog meer aliexpress spul) heb ik de sensoren vooraf bij elkaar gebonden en ze even laten liggen. Vervolgens een gemiddelde van het meetresultaat genomen en het verschil met dat gemiddelde wordt bij elke meting als correctie toegepast. Verder is het ook wel handig om de laatste paar cijfers van de sensor ID op een stukje tape te schrijven en die op de kabel van de sensor te plakken.

  • bucovaina89
  • Registratie: Juli 2010
  • Laatst online: 20:41
Hmmm, een Raspberry PI ken ik, maar met een micro controller, nog nooit mee gewerkt. Als ik het goed begrijp, heb je gewoon stroom nodig en een relatief OK wifi signaal, (C?) code op de flash installeren aansluiten en de controller leest alle sensoren uit en pusht de gelezen waardes naar de influxdb over wifi?

Begrijp ik het goed dat de microcontroller ipv een OS een enkele C binary draait?

Klinkt an sich wel interessant, minder stroomverbruik er kan volgens mij een pak minder mis gaan (dus betrouwbaarder)

Nadeel voor mij is dat ik er nog nooit mee gewerkt heb, dus het zal script-kiddie worden (google-copy-paste)

  • leecher
  • Registratie: December 2004
  • Laatst online: 00:02
Het grootste deel van de code heb ik ook niet zelf geschreven. Ik verstuur mbv MQTT naar een server en die stopt het in een database. Standaard arduino DS18B20 en de pubsub libraries en je bent met minimale aanpassingen op weg. Stroomverbruik is nihil. Op zich gebruikt een esp8266 wel wat, maar hij wordt geschakeld met de vloerverwarming pomp dus staat niet 24/7 aan.

  • mjjveldt
  • Registratie: December 2013
  • Laatst online: 22:14
toevallig een soortgelijk prototype in elkaar geknutseld vorige week. het is wel broddelwerk maar het werkt wel.

Ik ben gegaan voor de waterdichte variant want dat was makkelijk met draadjes. En een esp8266 met esphome daarop. stuurt data naar HA en vanuit daar in de influxdb.

Wel slechts 12 sensoren, maar geen enkel probleem met het aantal nog dat er data mist.
Overigens wacht dit nog op een nette enclosure voordat er een definitieve montage komt.


  • bucovaina89
  • Registratie: Juli 2010
  • Laatst online: 20:41
Kan je de stap van HA overslaan en meteen naar influxdb pushen? Ik vermoed van wel. En kan je me een linkje geven van hoe ik de GPIO moet aansluiten?

  • TNW
  • Registratie: Januari 2007
  • Laatst online: 18-01 00:20
Qua aantal aders is het overkill, maar ik gebruik altijd UTP icm RJ45 splitters voor one-wire opzetjes. 1 aderpaar voor aarde en data en een losse ader voor +5V. De sensoren soldeer ik aan door midden geknipte netwerkkabels en werk ik af met krimpkous en smeltlijm.

Voordelen van deze opzet zijn lage kosten (oude utp en netwerkkabels kan je voor weinig scoren) en minimaal soldeerwerk.

Weblog | Straling!


  • mjjveldt
  • Registratie: December 2013
  • Laatst online: 22:14
Volgens mij kan esphome met behulp van http ook direct naar influx, nooit in verdiept.

https://esphome.io/components/sensor/dallas.html

  • leecher
  • Registratie: December 2004
  • Laatst online: 00:02
mjjveldt schreef op donderdag 13 januari 2022 @ 20:06:
toevallig een soortgelijk prototype in elkaar geknutseld vorige week. het is wel broddelwerk maar het werkt wel.

Ik ben gegaan voor de waterdichte variant want dat was makkelijk met draadjes. En een esp8266 met esphome daarop. stuurt data naar HA en vanuit daar in de influxdb.

Wel slechts 12 sensoren, maar geen enkel probleem met het aantal nog dat er data mist.
Overigens wacht dit nog op een nette enclosure voordat er een definitieve montage komt.

[Afbeelding][Afbeelding][Afbeelding]
[Afbeelding]
ongeveer precies wat ik in gedachte had voor een v2 als ik die ooit nog zou maken. nice. Die isolatie eromheen is ook een goed idee, mijn klittenband zal ook wel iets doen maar jouw oplossing is een stuk beter.

[Voor 3% gewijzigd door leecher op 13-01-2022 20:18]


  • bucovaina89
  • Registratie: Juli 2010
  • Laatst online: 20:41
mjjveldt schreef op donderdag 13 januari 2022 @ 20:17:
Volgens mij kan esphome met behulp van http ook direct naar influx, nooit in verdiept.

https://esphome.io/components/sensor/dallas.html
OK toppie, ik heb deze microcontroller besteld: https://www.amazon.de/-/e...OMA9&ref_=chk_typ_imgToDp

ik hoop dat die compatibel is :)

  • Jesse-
  • Registratie: Oktober 2015
  • Laatst online: 19:58
bucovaina89 schreef op donderdag 13 januari 2022 @ 20:19:
[...]


OK toppie, ik heb deze microcontroller besteld: https://www.amazon.de/-/e...OMA9&ref_=chk_typ_imgToDp

ik hoop dat die compatibel is :)
Dat is hij

  • leecher
  • Registratie: December 2004
  • Laatst online: 00:02
bucovaina89 schreef op donderdag 13 januari 2022 @ 20:19:
[...]


OK toppie, ik heb deze microcontroller besteld: https://www.amazon.de/-/e...OMA9&ref_=chk_typ_imgToDp

ik hoop dat die compatibel is :)
Ja daar gaat het helemaal mee lukken. Ik heb zelf een kale esp8266 gebruikt maar een nodemcu is makkelijker want daar zit een spanningsregelaar en usb ding al ingebouwd.

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 03-02 23:58

SA007

Moderator Tweaking
De isolatie is best belangrijk, ik heb wat to92's 18B20 aan leidingen getiewrapt gehad, maar zonder isolatie eromheen meet je voor een groot deel de omgevingstemperatuur ipv de leiding, thermische geleiding van plastic is waardeloos dus een klein beetje luchtstroming kan de sensor best koelen.

Klok is stuk :(


  • bucovaina89
  • Registratie: Juli 2010
  • Laatst online: 20:41
@SA007 : inderdaad, De collectoren staan bij ons in de berging die een deur heeft naar buiten. OK ook nog in een kast maar dat ga je hoogstwaarschijnlijk wel zien. Ik merk nu ook dat de 180B20 best nauwkeurig dingen laten zien die ik niet had verwacht.

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Interessant. Ik hik al een tijd ertegenaan om al mijn vloerverwarmingsbuizen te gaan monitoren. Ik zou het liefst gaan voor iets zonder draden, omdat dat meer flexibiliteit geeft een minder gedoe met monteren. Als je bijvoorbeeld een esp-achtig ding met wifi of bluetooth hebt en een batterijtje, zou je toch een eind moeten komen? Sensor erop met isolatie, klittenband erbij en je kunt gaan. Wellicht moet je wel een slimme sleep erin programmeren om de batterijduur te vergroten. Iemand al iets in deze richting geprobeerd?

  • bucovaina89
  • Registratie: Juli 2010
  • Laatst online: 20:41
@KabouterSuper : Ik denk dat de code van @leecher al aardig in de buurt gaat komen. Alleen dan nog een batterij/sleep management erbij. Geen idee hoe je dat doet :). Wat voor batterij zou je nemen en wat verwacht je van de batterijduur?
leecher schreef op donderdag 13 januari 2022 @ 17:29:
Ik heb precies dat gedaan met DS18B20 sensoren. Ik heb 1 kabel genomen en telkens een stukje isolatie weggesneden en daar een kort aftakking naar een sensor gemaakt. De volgende keer zou ik het niet meer zo doen, ik zou DS18B20 sensoren allemaal een stukje kabel geven met een 3 pin dupont stekkertje erop. Die zou ik allemaal in een rij met header pins op zo'n stukje prototype-pcb prikken waar je alle bij elkaar horen de pinnen in 1 lange rij doorsoldeert. Je hebt iets meer kabel nodig maar dat scheelt een hoop prutswerk.

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
bucovaina89 schreef op vrijdag 14 januari 2022 @ 07:55:
@KabouterSuper : Ik denk dat de code van @leecher al aardig in de buurt gaat komen. Alleen dan nog een batterij/sleep management erbij. Geen idee hoe je dat doet :). Wat voor batterij zou je nemen en wat verwacht je van de batterijduur?


[...]
Er is vrij veel te vinden hoe je sleepmanagement kunt implementeren, bijvoorbeeld https://www.mischianti.or...ng-manage-wifi-and-cpu-1/

Qua batterij, het liefst een knoopcel vanwege de grootte. Als je de metingen beperkt (1 per 5 minuten, elk uur doorsturen met wifi/bluetooth), dan hoop ik dat je er maanden mee kunt doen.

  • bucovaina89
  • Registratie: Juli 2010
  • Laatst online: 20:41
Makes sense.

Ik zat eerder te denken aan de aanvoertemperatuur ook te monitoren en te zien hoe vaak de ketel aan en af springt. Daarvoor is de resolutie van ~5 minuten me te laag. Eerder om de paar seconden. Met 5 minuten vertraging de cijfers in grafana zien verschijnen is dan weer wel goed :).

Ik was bereid om een raspberry PI zero W te gebruiken. Er staat ook een stopcontact naast de collector dus stroom is niet zo'n issue. Al is het wel fijn dat het zo goed als niets verbruikt.

  • bucovaina89
  • Registratie: Juli 2010
  • Laatst online: 20:41
Ik lees ook net dat je blijkbaar meerder one-wire bussen op een microcontroller kan aansluiten. Dan vervalt mijn zorg dat ~24 sensoren mogelijk teveel gaat zijn. Als dat zo is, dan split ik de bussen op in aan- en afvoer op dezelfde controller.

Maar dat schept wel mogelijkheden om met 1 controller veel meer readings te doen.

  • leecher
  • Registratie: December 2004
  • Laatst online: 00:02
bucovaina89 schreef op vrijdag 14 januari 2022 @ 07:55:
@KabouterSuper : Ik denk dat de code van @leecher al aardig in de buurt gaat komen. Alleen dan nog een batterij/sleep management erbij. Geen idee hoe je dat doet :). Wat voor batterij zou je nemen en wat verwacht je van de batterijduur?


[...]
Ik heb die van mij aan een simpele usb lader hangen. Een ESP8266 is niet heel geschikt om dit op een batterij te doen. Ik heb wel ESP8266's op een 18650 werken, maar met 2x meten per uur gaan ze een jaar mee. Ik meet de vloerverwarming 4x per minuut en dat is niet praktisch op batterijen. De Nodemcu die je hebt besteld heeft een minder efficiënte spanningsregelaar dus als je daar 4x per minuut mee gaat meten ben je zowat dagelijks batterijtjes aan het wisselen. Ik zou hem zeker gewoon aan het stopcontact hangen en het mooist is als je hem schakelt met de vloerverwarming pomp. Verwarming uit = alles uit.

  • bucovaina89
  • Registratie: Juli 2010
  • Laatst online: 20:41
Ik ga hem ook gewoon aan het stopcontact hangen hoor. Simpelste oplossing en voor die paar euro per jaar moet ik het niet laten.

Ik ga véél en véél meer winst halen door influxdb/grafana van de NAS (DS1815+) naar een RPI 4 te migreren en dan de NAS zo veel mogelijk uitschakelen.

  • bucovaina89
  • Registratie: Juli 2010
  • Laatst online: 20:41
Net deze aangekregen *O*



Maarreuh, hoe connecteer ik dat op een Mac? Met USB zie ik niets verschijnen in de Arduino IDE als ik de USB kabel in steek. Of is dat niet de bedoeling?

edit:

Gelukt:
Installeer VCP driver van Silicon Labs
Reboot
Installeer additional board managers voor ESP2866: https://arduino-esp8266.r...en/latest/installing.html

[Voor 14% gewijzigd door bucovaina89 op 14-01-2022 12:12]


  • bucovaina89
  • Registratie: Juli 2010
  • Laatst online: 20:41


So far so good. Blijkbaar lukt 30 devices best goed. Ze zitten natuurlijk wel dicht op elkaar.

Even lopen knoeien want #define ONE_WIRE_BUS 2 betekent blijkbaar dat je op D4 of IO2 moet aansluiten. Ik kreeg heel de tijd, no devices found. Na wat shotgun troubleshooten (gewoon andere pins proberen, plots:

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
Locating devices...
Found 30 devices.

Printing addresses...
Sensor 1 : 0x28, 0x88, ...
Sensor 2 : 0x28, 0x88, ...
Sensor 3 : 0x28, 0x48, ...
Sensor 4 : 0x28, 0x78, ...
Sensor 5 : 0x28, 0x44, ...
Sensor 6 : 0x28, 0x54, ...
Sensor 7 : 0x28, 0x9C, ...
Sensor 8 : 0x28, 0xC2, ...
Sensor 9 : 0x28, 0x92, ...
Sensor 10 : 0x28, 0x3A, ...
Sensor 11 : 0x28, 0x86, ...
Sensor 12 : 0x28, 0xE6, ...
Sensor 13 : 0x28, 0x0E, ...
Sensor 14 : 0x28, 0xFE, ...
Sensor 15 : 0x28, 0x21, ...
Sensor 16 : 0x28, 0x71, ...
Sensor 17 : 0x28, 0x39, ...
Sensor 18 : 0x28, 0xB9, ...
Sensor 19 : 0x28, 0x05, ...
Sensor 20 : 0x28, 0x45, ...
Sensor 21 : 0x28, 0x15, ...
Sensor 22 : 0x28, 0x15, ...
Sensor 23 : 0x28, 0x95, ...
Sensor 24 : 0x28, 0x0D, ...
Sensor 25 : 0x28, 0xBD, ...
Sensor 26 : 0x28, 0x43, ...
Sensor 27 : 0x28, 0x63, ...
Sensor 28 : 0x28, 0x6F, ...
Sensor 29 : 0x28, 0x1F, ...
Sensor 30 : 0x28, 0x5F, ...

  • EJonk
  • Registratie: November 2006
  • Laatst online: 04-02 00:04
Jammer dat je niet de waterdichte variant genomen hebt. Ik heb precies het zelfde gedaan, en kwam tot de conclusie dat er een temperatuur verloop van 3 a 4 graden was tussen 12 stuks sensoren. Ik heb ze allemaal ook 3 puntsgewijs gekalibreerd en heb het verloop nu tot 0.2 graden nauwkeurig.

Ik zou dit zeker controleren en eventueel een kalibratie meenemen!
Ik heb het precies zo gemonteerd! Isolatie is echt nodig! Zeker als je het geheel nog omkast!

[Voor 23% gewijzigd door EJonk op 14-01-2022 15:14]

You can't be happy all the time, they will come and break your legs!


  • bucovaina89
  • Registratie: Juli 2010
  • Laatst online: 20:41
@EJonk : puntsgewijs gekalibreerd? Wat bedoel je daarmee? Op 3 verschillende temperaturen dan?

Hoe heb je dat gedaan?

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
Sensor 1: 23.50⸮C
Sensor 2: 23.56⸮C
Sensor 3: 23.69⸮C
Sensor 4: 23.56⸮C
Sensor 5: 23.88⸮C
Sensor 6: 23.50⸮C
Sensor 7: 23.50⸮C
Sensor 8: 23.63⸮C
Sensor 9: 23.75⸮C
Sensor 10: 24.06⸮C
Sensor 11: 23.88⸮C
Sensor 12: 24.25⸮C
Sensor 13: 23.69⸮C
Sensor 14: 23.06⸮C
Sensor 15: 23.44⸮C
Sensor 16: 24.13⸮C
Sensor 17: 23.88⸮C
Sensor 18: 23.75⸮C
Sensor 19: 23.63⸮C
Sensor 20: 22.81⸮C
Sensor 21: 23.50⸮C
Sensor 22: 23.94⸮C
Sensor 23: 24.06⸮C
Sensor 24: 23.38⸮C
Sensor 25: 23.50⸮C
Sensor 26: 24.06⸮C
Sensor 27: 23.56⸮C
Sensor 28: 23.63⸮C
Sensor 29: 23.69⸮C
Sensor 29: 23.69⸮C
Sensor 30: 23.81⸮C


Het gemiddelde genomen van alle sensoren, dan de gemiddelde afwijking gecorrigeerd door +/- de afwijking per sensor? En dat dan op 3 verschillende temperaturen?

  • SlinkingAnt
  • Registratie: December 2001
  • Niet online
Dit is een projectje wat ik ook al een tijdje op de plank heb liggen.

Heb online ergens een printje gevonden waarop direct een ESP past en deze voor een paar euro in China laten maken, connectors via Ali besteld. Je kan deze ook nog daisy-chainen naar een volgend printje (heb ik ook ergens liggen) als je meer sensoren nodig hebt.

Ik heb nog genoeg printjes liggen, mocht je interesse hebben.

Intel C2Q 9450@3.3 | Gigabyte P35-DS4 | Sapphire R280x | 4x 2GiB PC6400 Kingston DDR2 | 1x Intel 320SSD 240GB | 2x Spinpoint F1 320GiB


  • EJonk
  • Registratie: November 2006
  • Laatst online: 04-02 00:04
bucovaina89 schreef op vrijdag 14 januari 2022 @ 15:18:
@EJonk : puntsgewijs gekalibreerd? Wat bedoel je daarmee? Op 3 verschillende temperaturen dan?

Hoe heb je dat gedaan?


Het gemiddelde genomen van alle sensoren, dan de gemiddelde afwijking gecorrigeerd door +/- de afwijking per sensor? En dat dan op 3 verschillende temperaturen?
Stukje code toepassen. Je werkt ondertussen met een Arduino/ESP toch? Dan zou dit ook nog moeten lukken.

https://www.instructables...-Sensor-With-Arduino-UNO/

Ik heb de kalibratie met 2 temperaturen gedaan, met nog een controle in het midden van het meetgebied met aceton. Hierop heb ik 2 sensoren toch een iets andere hoge waarde gegeven omdat dat bereik - 0 tot 56 graden - interessanter was dan 0 - 100.

Let wel op met aceton en dergelijke!

You can't be happy all the time, they will come and break your legs!


  • bucovaina89
  • Registratie: Juli 2010
  • Laatst online: 20:41
Misschien iets minder nauwkeurig, maar ik kan alle sensoren op dat bordje ergens zetten waar ik weet dat het ~40 graden is, de gemiddelde van alle sensoren meten en dat als "reference high" gebruiken. Exact hetzelfde met iets van om en bij de 19 graden.

Goed, even exact als jouw opstelling zal het niet worden maar meer dan goed genoeg denk ik.

  • bucovaina89
  • Registratie: Juli 2010
  • Laatst online: 20:41
Ik heb nu alle sensoren vlak bij elkaar gezet met een ventilator de lucht weg zuigt naast niets dat hitte zou kunnen maken. De temperatuur zou dus op een gegeven tijdstip echt wel dicht bij elkaar moeten liggen. Het verschil tussen de sensor die het minste meet en het meeste meet is onveveer 0.28 graden uit elkaar. Meer dan goed genoeg :).

Maar, nu zit ik met een probleem. Ik heb alle device addresses en heb een vermoeden dat ik weet welke sensor welke meting is, maar hoe kan ik in deze loop, niet alleen de gemeten temperatuur printen maar ook de serial van de sensor? Dat lukt me precies niet.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void loop()
{
  int serialno;
  float sensor_corrections[30] = { -0.15, -0.21, 0.02, -0.16, 0.16, -0.07, -0.30, -0.11, 0.02, 0.48, 0.29, 0.42, 0.06, -0.52, -0.24, 0.30, 0.23, 0.05, -0.11, -0.85, -0.21, 0.25, 0.46, -0.31,-0.08, 0.40, 0.04, -0.03, 0.05, -0.12};
  float sensor_corrected_value[30] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  Serial.print(" Requesting temperatures...");
  sensors.requestTemperatures(); // Send the command to get temperature readings
  Serial.println("DONE");

  for (int i = 0; i < sizeof sensor_corrections / sizeof sensor_corrections[0]; i++) {
    sensor_corrected_value[i] = sensors.getTempCByIndex(i) - sensor_corrections[i];
    Serial.print(sensor_corrected_value[i]);
    
    Serial.print("\n");
  }
  delay(5000);
}

  • bucovaina89
  • Registratie: Juli 2010
  • Laatst online: 20:41
't is feest in mijn hoofd *O* :
code:
1
2
3
4
5
6
7
8
name: Temperaturen_collector_vloerverwarming
time                Aanvoer Badkamer 1 Aanvoer Badkamer 2 Aanvoer Berging Aanvoer Gang-toilet Aanvoer Living 1 Aanvoer Living 2 Aanvoer Living 3 Aanvoer Living 4 Aanvoer Living 5 Aanvoer Living 6 Aanvoer Living 7 Aanvoer Man-cave 1 Aanvoer Man-cave 2 Aanvoer Traphal Aanvoer hoofdleiding Afvoer Badkamer 1 Afvoer Badkamer 2 Afvoer Berging Afvoer Gang-toilet Afvoer Living 1 Afvoer Living 2 Afvoer Living 3 Afvoer Living 4 Afvoer Living 5 Afvoer Living 6 Afvoer Living 7 Afvoer Man-cave 1 Afvoer Man-cave 2 Afvoer Traphal Afvoer hoofdleiding device
----                ------------------ ------------------ --------------- ------------------- ---------------- ---------------- ---------------- ---------------- ---------------- ---------------- ---------------- ------------------ ------------------ --------------- -------------------- ----------------- ----------------- -------------- ------------------ --------------- --------------- --------------- --------------- --------------- --------------- --------------- ----------------- ----------------- -------------- ------------------- ------
1642199196019552172 22.25              22.33              22.24           22.27               22.21            22.27            22.23            22.35            22.28            22.26            22.3             22.21              22.27              22.35           22.33                22.21             22.28             22.19          22.29              22.18           22.33           22.33           22.33           22.36           22.35           22.33           22.25             22.33             22.29          22.33               ESP8266
1642199204482537112 22.25              22.4               22.3            22.45               22.21            22.33            22.35            22.35            22.34            22.32            22.42            22.21              22.33              22.42           22.39                22.27             22.28             22.25          22.29              22.3            22.39           22.33           22.33           22.36           22.35           22.46           22.31             22.33             22.35          22.39               ESP8266
1642199337057120280 22.19              22.33              22.3            22.27               22.21            22.27            22.17            22.35            22.34            22.32            22.36            22.15              22.27              22.29           22.33                22.21             22.28             22.13          22.29              22.24           22.33           22.27           22.26           22.36           22.35           22.33           22.25             22.27             22.29          22.33               ESP8266
1642199345811929408 22.25              22.4               22.36           22.39               22.21            22.33            22.29            22.35            22.34            22.32            22.36            22.21              22.33              22.42           22.39                22.33             22.34             22.25          22.35              22.3            22.39           22.33           22.33           22.36           22.35           22.46           22.31             22.39             22.35          22.39               ESP8266
>


OK OK, de sensoren steken nog steeds op het breadboard wat op mijn bureau ligt maar:
  • 30 sensoren: check
  • connecteren op wifi: check
  • data uitlezen en naar influxdb schrijven: check
Er zijn nog een paar dingen die nog niet helemaal goed lopen. Het raarste voor de moment is dat als ik in onderstaande code de delay in de for loop (die de sensoren gaat corrigeren) weg haal, dan krijg ik een <<<<<<stack crash dump en start de MC terug op. Iemand een idee wat dat zou kunnen zijn? Zou dat iets bus-specifiek kunnen zijn dat ik met relatief veel sensoren te snel de bus query?

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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include <InfluxDb.h>

#include <OneWire.h>
#include <DallasTemperature.h>
#include <ESP8266WiFi.h>

#if defined(ESP8266)
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#elif defined(ESP32)
#include <WiFi.h>
#include <WiFiMulti.h>
#endif


#define ONE_WIRE_BUS 2



// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

const char* ssid     = "draadlozewifissid";
const char* password = "haha nee echt niet dit paswoord hoor";




DeviceAddress tempDeviceAddress;

void setup(void)
{

  Serial.begin(38400);
  sensors.begin();
  WiFi.begin(ssid, password);             // Connect to the network
  Serial.print("Connecting to ");
  Serial.print(ssid); Serial.println(" ...");

  int i = 0;
  while (WiFi.status() != WL_CONNECTED) { // Wait for the Wi-Fi to connect
    delay(1500);
    Serial.print(++i); Serial.print(' ');
  }


  Serial.println('\n');
  Serial.println("Connection established!");
  Serial.print("IP address:\t");
  Serial.println(WiFi.localIP());

#define INFLUXDB_URL "http://10.10.10.10:8087"
#define INFLUXDB_DB_NAME "test_esp"

}

void loop()
{


  int serialno;
  float sensor_corrections[30] = { -0.15, -0.21, 0.02, -0.16, 0.16, -0.07, -0.30, -0.11, 0.02, 0.48, 0.29, 0.42, 0.06, -0.52, -0.24, 0.30, 0.23, 0.05, -0.11, -0.85, -0.21, 0.25, 0.46, -0.31, -0.08, 0.40, 0.04, -0.03, 0.05, -0.12};
  float sensor_corrected_value[30] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  Serial.print(" Requesting temperatures...");
  sensors.requestTemperatures(); // Send the command to get temperature readings
  

  Serial.println("Correcting Sensors ...");
  for (int i = 0; i < sizeof sensor_corrections / sizeof sensor_corrections[0]; i++) {
    sensor_corrected_value[i] = sensors.getTempCByIndex(i) - sensor_corrections[i];
    delay(1);
  }


  InfluxDBClient client(INFLUXDB_URL, INFLUXDB_DB_NAME);

  // Define data point with measurement name 'device_status`
  Point pointDevice("Temperaturen_collector_vloerverwarming");
  // Set tags
  pointDevice.addTag("device", "ESP8266");
  // Add data
  
  pointDevice.addField("Aanvoer hoofdleiding", sensor_corrected_value[28]);
  pointDevice.addField("Afvoer hoofdleiding", sensor_corrected_value[28]);

  pointDevice.addField("Aanvoer Living 1", sensor_corrected_value[0]);
  pointDevice.addField("Aanvoer Living 2", sensor_corrected_value[1]);
  pointDevice.addField("Aanvoer Living 3", sensor_corrected_value[2]);
  pointDevice.addField("Aanvoer Living 4", sensor_corrected_value[3]);
  pointDevice.addField("Aanvoer Living 5", sensor_corrected_value[4]);
  pointDevice.addField("Aanvoer Living 6", sensor_corrected_value[5]);
  pointDevice.addField("Aanvoer Living 7", sensor_corrected_value[6]);
  pointDevice.addField("Aanvoer Berging", sensor_corrected_value[7]);
  pointDevice.addField("Aanvoer Traphal", sensor_corrected_value[8]);
  pointDevice.addField("Aanvoer Man-cave 1", sensor_corrected_value[9]);
  pointDevice.addField("Aanvoer Man-cave 2", sensor_corrected_value[10]);
  pointDevice.addField("Aanvoer Gang-toilet", sensor_corrected_value[11]);
  pointDevice.addField("Aanvoer Badkamer 1", sensor_corrected_value[12]);
  pointDevice.addField("Aanvoer Badkamer 2", sensor_corrected_value[13]);

  pointDevice.addField("Afvoer Living 1", sensor_corrected_value[14]);
  pointDevice.addField("Afvoer Living 2", sensor_corrected_value[15]);
  pointDevice.addField("Afvoer Living 3", sensor_corrected_value[16]);
  pointDevice.addField("Afvoer Living 4", sensor_corrected_value[17]);
  pointDevice.addField("Afvoer Living 5", sensor_corrected_value[18]);
  pointDevice.addField("Afvoer Living 6", sensor_corrected_value[19]);
  pointDevice.addField("Afvoer Living 7", sensor_corrected_value[20]);
  pointDevice.addField("Afvoer Berging", sensor_corrected_value[21]);
  pointDevice.addField("Afvoer Traphal", sensor_corrected_value[22]);
  pointDevice.addField("Afvoer Man-cave 1", sensor_corrected_value[23]);
  pointDevice.addField("Afvoer Man-cave 2", sensor_corrected_value[24]);
  pointDevice.addField("Afvoer Gang-toilet", sensor_corrected_value[25]);
  pointDevice.addField("Afvoer Badkamer 1", sensor_corrected_value[26]);
  pointDevice.addField("Afvoer Badkamer 2", sensor_corrected_value[27]);
  Serial.println("Committing data to database");
  client.writePoint(pointDevice);
}


De volgende stap is nu effectief de sensoren gaan mappen zodat ik fysiek weet welke sensor in de array overeen komt met het fysieke ding.
Daarna langere kabels er tussen en dan zien of het ook nog werkt.
Dan installeren maar :)

Even nog wat teveel data bij elkaar 8) ... Aan de legenda te zien (Er staat bij elke kleur lijn gewoon de titel van de measurement zijnde "Temperaturen_collector_vloerverwarming"), moet ik mijn data wel anders ordenen in influxdb. 1 measurement voor 1 sensor? Want nu heb ik alle sensoren in 1 measurement gegoten in verschillende kolommen



Maar goed, nu ga ik maar eens slapen. De kleine staat morgenvroeg weer paraat :d

  • iKiddo
  • Registratie: Juli 2001
  • Laatst online: 23:41
SlinkingAnt schreef op vrijdag 14 januari 2022 @ 15:21:
Dit is een projectje wat ik ook al een tijdje op de plank heb liggen.
Heb online ergens een printje gevonden waarop direct een ESP past en deze voor een paar euro in China laten maken, connectors via Ali besteld. Je kan deze ook nog daisy-chainen naar een volgend printje (heb ik ook ergens liggen) als je meer sensoren nodig hebt.

Ik heb nog genoeg printjes liggen, mocht je interesse hebben.
Cool! Scheelt weer soldeerwerk, als ik het plaatje zo bekijk. Klopt dat?

  • rfickert
  • Registratie: September 2013
  • Laatst online: 31-01 19:11
Na het waterzijdig inregelen van alle radiatoren, is de vloerverwarming op de begane grond aan de beurt. Nu zie ik dat jullie al aardig aan het meten zijn geraakt. Hebben jullie bewust alle toevoerleidingen ook gemeten? Is alleen de retour van iedere groep niet voldoende?

Ik ben benieuwd naar jullie redenen, behalve dan de kleine moeite dat het kost om het dubbele aantal aan te sluiten. ;)

  • Thonz
  • Registratie: Oktober 2008
  • Laatst online: 17:26
Ik ben ook bezig met een 10-tal sensoren ds18b20 die ik van aliexpress heb gehaald.
Helaas kan ik ze niet met ijswater/kokend water calibreren omdat ik van de TO-92 variant gebruik maak, dus ik moet iets anders vinden.
Wat me wel opvalt, is dat er een flinke afwijking tussen de verschillende sensoren zit. Wat googlen geeft me het volgende artikel. Voor mijn doeleinde (niet de vloerverwarming) is dit helaas een dealbreaker. Kijk dus goed uit waar je de sensoren koopt!

  • heintjeput
  • Registratie: Juni 2003
  • Laatst online: 27-01 18:46
rfickert schreef op dinsdag 6 december 2022 @ 15:54:
Na het waterzijdig inregelen van alle radiatoren, is de vloerverwarming op de begane grond aan de beurt. Nu zie ik dat jullie al aardig aan het meten zijn geraakt. Hebben jullie bewust alle toevoerleidingen ook gemeten? Is alleen de retour van iedere groep niet voldoende?

Ik ben benieuwd naar jullie redenen, behalve dan de kleine moeite dat het kost om het dubbele aantal aan te sluiten. ;)
Ik meet het volgende
- algemene aanvoerleiding vanaf CVketel
- algemene retourleiding naar CVketel
- aanvoer van 1vd vloerverwarmingleidingen (zouden allemaal hetzelfde moeten zijn)
- alle retourleidingen van de vloerverwarming

Daarmee heb je volgens mij alle info die je wilt.

Ik heb een keer de offset bepaald toen ze geïnstalleerd waren een hele lineaire curve was me te veel moeite.

  • rfickert
  • Registratie: September 2013
  • Laatst online: 31-01 19:11
heintjeput schreef op dinsdag 6 december 2022 @ 19:10:
[...]

Ik meet het volgende
- algemene aanvoerleiding vanaf CVketel
- algemene retourleiding naar CVketel
- aanvoer van 1vd vloerverwarmingleidingen (zouden allemaal hetzelfde moeten zijn)
- alle retourleidingen van de vloerverwarming

Daarmee heb je volgens mij alle info die je wilt.

Ik heb een keer de offset bepaald toen ze geïnstalleerd waren een hele lineaire curve was me te veel moeite.
Dat idee had ik al inderdaad. Bedankt voor je input! Toevoer 1x vanuit het blok is inderdaad belangrijk om de ingestelde temperatuur mee te nemen.

Ik ga wel even kijken naar de offset.

  • zw7
  • Registratie: November 2001
  • Laatst online: 14:39
Ik heb de oplossing van @SlinkingAnt gebruikt met nu 15 sensoren, maar krijg het niet stabiel.Ik heb het zo aangesloten nu met 3 sensoren per terminal. Ik heb de draadjes met een draadeindhulsje vastgezet. Met een paar sensoren werkt het goed, maar met allemaal dan krijg ik ineens maar 3 of 4 sensoren data van door. Geen peil op te trekken. Ik meet wel netjes 3.3v tussen de vcc en ground en 0.13v tussen data en vcc.


  • iCrOn
  • Registratie: April 2002
  • Laatst online: 22:01
Waar krijg je geen data door? In de log van de esp zelf of in bijv. HA? Het viel mij op dat als je bijvoorbeeld esphome gebruikt in combinatie met HA dat hij indien de temperatuur waarde hetzelfde blijft data HA niet wordt weg geschreven. De sensor geeft dan in HA aan laatste 4 minuten of nog langer (zolang de waarde hetzelfde blijft) niet gezien.

In de log zag ik wel dat de sensors uitgelezen werden, maar dat de waarde gelijk bleef met de vorige temperatuur registratie.

[Voor 0% gewijzigd door iCrOn op 13-12-2022 13:07. Reden: typo]


  • zw7
  • Registratie: November 2001
  • Laatst online: 14:39
iCrOn schreef op dinsdag 13 december 2022 @ 13:06:
Waar krijg je geen data door? In de log van de esp zelf of in bijv. HA? Het viel mij op dat als je bijvoorbeeld esphome gebruikt in combinatie met HA dat hij indien de temperatuur waarde hetzelfde blijft data HA niet wordt weg geschreven. De sensor geeft dan in HA aan laatste 4 minuten of nog langer (zolang de waarde hetzelfde blijft) niet gezien.

In de log zag ik wel dat de sensors uitgelezen werden, maar dat de waarde gelijk bleef met de vorige temperatuur registratie.
Als ik de logs van ESPHOME bekijk dan zie ik soms staan "no sensors found" daarna vind hij er wel een paar en schrijft ie deze weg. En sinds gisteren heeft ie ze allemaal gevonden en worden ze allemaal naar HA gestuurd. Het is dus niet een heel stabiel verhaal, met soms wel soms niet. Voor ik het in de trapkast ga ophangen,en alles aan de vloerverwarming vast maak wil ik zeker zijn dat het stabiel werkt, want dat is nogal een rotklusje die ik liever maar een keer doe.

  • iCrOn
  • Registratie: April 2002
  • Laatst online: 22:01
Heb toevallig vorige week hetzelfde aantal sensor op m'n verdeler geplaatst met een ESP. Het werkte in 1x, maar heb niet zo'n printje gebruikt. Draadjes van 5 sensors steeds bij elkaar in gedraaid dan in samen in een wago 221-415 en dan van daaruit naar de esp. Zit de 4.7 k resistor trouwens in dat printje ingebouwd?

Ik heb ook nog gelijk een delta T berekening template toegevoegd aan de esp:
code:
1
2
3
4
5
6
7
8
#delta T berekeningen
  - platform: template
    name: "Delta T Verdeler 1"
    id: Verdeler_1_Td
    unit_of_measurement: °C
    update_interval: 60s
    lambda: |-
      return (id(supply_v1).state - (id(retour_v1).state));

  • zw7
  • Registratie: November 2001
  • Laatst online: 14:39
iCrOn schreef op donderdag 15 december 2022 @ 15:24:
Heb toevallig vorige week hetzelfde aantal sensor op m'n verdeler geplaatst met een ESP. Het werkte in 1x, maar heb niet zo'n printje gebruikt. Draadjes van 5 sensors steeds bij elkaar in gedraaid dan in samen in een wago 221-415 en dan van daaruit naar de esp. Zit de 4.7 k resistor trouwens in dat printje ingebouwd?

Ik heb ook nog gelijk een delta T berekening template toegevoegd aan de esp:
code:
1
2
3
4
5
6
7
8
#delta T berekeningen
  - platform: template
    name: "Delta T Verdeler 1"
    id: Verdeler_1_Td
    unit_of_measurement: °C
    update_interval: 60s
    lambda: |-
      return (id(supply_v1).state - (id(retour_v1).state));
Hmmm, misschien moet ik dat maar proberen. Dan moet ik wel die draadhulsjes erafknippen. Die resistor zit in de print. Misschien anders eens zonder de print proberen?

  • S0epkip
  • Registratie: September 2002
  • Laatst online: 04-02 13:24
Resistor is niet nodig als je de internal pull-up van je ESP bordje kunt gebruiken, trouwens.

2430Wp ZW


  • iCrOn
  • Registratie: April 2002
  • Laatst online: 22:01
zw7 schreef op donderdag 15 december 2022 @ 15:42:
[...]


Hmmm, misschien moet ik dat maar proberen. Dan moet ik wel die draadhulsjes erafknippen. Die resistor zit in de print. Misschien anders eens zonder de print proberen?
Ik zou om te proberen even kijken of zo'n hulsje niet gewoon al in zo'n wago past, dat scheelt weer wat werk als je toch weer alles op je printje wil aansluiten mocht dat toch niet het probleem zijn.

Weet niet voor de rest hoe het printje standaard zou moeten werken? Zijn die onderling gewoon allemaal door verbonden of komen deze als aparte hub op? Zou je even kunnen testen met de multimeter.
Mochten de schroefterminals onderling allemaal verbonden zijn gaat alles verbinden aan een wago ook geen verschil maken.

  • heintjeput
  • Registratie: Juni 2003
  • Laatst online: 27-01 18:46
Wat voor sensoren je? Met of zonder metalenhuls? Ik heb wel eens gehad dat ze op de een of andere manier kortsluiting maakte met de metalen buis. Met een tapeje er tussen was dat opgelost. Volgens mij werd dat ook erger als het meerdere sensoren waren.

  • zw7
  • Registratie: November 2001
  • Laatst online: 14:39
heintjeput schreef op donderdag 15 december 2022 @ 22:02:
Wat voor sensoren je? Met of zonder metalenhuls? Ik heb wel eens gehad dat ze op de een of andere manier kortsluiting maakte met de metalen buis. Met een tapeje er tussen was dat opgelost. Volgens mij werd dat ook erger als het meerdere sensoren waren.
Ik gebruik de waterdichte versie van de sensoren. Het bijzondere is dat ze het nu 90% van de tijd doen, maar af en toe valt er eentje uit. De anderen geven dan nog wel data door. Heel vreemd. het is ook niet te reproduceren. Een van de sensoren geeft geen data door, ik ga die er tussenuit halen, wellicht dat dat helpt.

Update: heb de kapotte sensor er tussenuit gehaald maar dat heeft dus geen effect. Krijg nog steeds af en toe wel / af en toe geen data door van sommige sensoren.

[Voor 10% gewijzigd door zw7 op 24-12-2022 11:02]

Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee