DHT22 & arduino Langer kabel?


Ik zou beginnen met de pull-up de juiste waarde te maken. (max. kabellengte op 3.3v is 1m, op 5v is 20m)
Is zou te zien een 1-wire achtige interface...

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Ik zou een 2e arduino micro pakken deze dicht bij de sensor houden

Ga dan meteen aan de gang met een wmos dingetje. Dan heb je geen draad meer nodig ook.

Pull-up aangeraden is 5k1

Er is nu al een 10K pull-up aan de ene kant - misschien waard om te proberen met een tweede 10K aan de andere kant?

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord

Met dit soort protocols is het meestal een timing probleem; het steekt nogal nauw met die vrij korte tijden...
(ook veel voorkomende fout: men laat de interrupts aanstaan tijdens het 'binnenharken' van de data, dat geeft variabele en onvoorspelbare extra delays)

Je kunt ook de data binnen een timerinterrupt binnenhalen, dan klopt de timming altijd.

[Bericht gewijzigd door Arco op 15 oktober 2021 11:33:26 (15%)]

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com
buckfast_beekeeper

Golden Member

Op 15 oktober 2021 10:45:20 schreef Ex-fietser:
[...]

Ga dan meteen aan de gang met een wmos dingetje. Dan heb je geen draad meer nodig ook.

Is wel kort door de bocht. Moet je nog steeds de spanning voorzien. Met WiFi verbruikt dat wemos bordje (ESP8266) net wat meer als een ATtiny.

Van Lambiek wordt goede geuze gemaakt.

Met WiFi verbruikt dat wemos bordje (ESP8266) net wat meer als een ATtiny.

Da's heel netjes uitgedrukt... ;) (verschil is 5mA vs 250mA...)

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

waarom hang je voor 1,5€ er geen arduino nano aan achter die 4meter, laat je die de dht uitlezen en dat die zijn gegevens over RX terug stuurt, desnoods aan lage snelheid. zo zou ik het toch altijd doen als ik over verre afstand met onbekende procotollen moet werken.

meen me te herinneren dat die dht library idd een paar precise flanken maakt om te communiceren

ik hou van werken ..., ik kan er uren naar kijken
bprosman

Golden Member

Op 15 oktober 2021 09:00:15 schreef Arco:
Meeste (half chinese) datasheets ervan bevatten inderdaad bijna geen nuttige informatie, heb er wel een gevonden...
Pull-up aangeraden is 5k1 (4k7 wordt dat dus)
Bij 3.3v voeding is de max. kabellengte 1m.

Volgens mij zijn die sensors allemaal "Sensirion clonen".
https://www.sensirion.com/en/download-center/

De jongere generatie loopt veel te vaak zijn PIC achterna.

Ik ken deze sensor niet, maar het protocol lijkt simpel: De datalijn heeft een pullup, de microcontroller trekt hem laag voor > 1ms en kijkt wat er terug komt.
https://www.sparkfun.com/datasheets/Sensors/Temperature/DHT22.pdf

Mijn gevoel, op basis van vrij goede ervaringen met het op papier veel kritischer 1-wire en I2C over wat langere afstand, is dat het tenzij de sensor een zeer slappe open drain heeft zou moeten gaan, allicht niet foutloos maar een gemiste meting is bij zoiets toch geen ramp? Er is niet voor niets een checksum.
Wordt dit mogelijk niet goed afgehandeld en/of zitten er torren in de code?

Op UTP zou ik data en ground samen in een pair nemen, dat is de meest kritische stroomkring. De voeding laat zich ontkoppelen.

Komt vaak door slechte firmware functies. De sensor moet 40 bits data verzenden. Veel firmware wacht dan tot die binnen zijn.
Als er dan een bitje 'zoekraakt', blijft de boel eindeloos op dat bitje wachten. (vaak wordt niet in een timeout voorzien...)

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Op 15 oktober 2021 11:31:15 schreef Arco:
Je kunt ook de data binnen een timerinterrupt binnenhalen, dan klopt de timming altijd.

Pfoeh! timer interrupt??? Tricky lijkt me.

Mijn truuk met "het datasignaal is gewoon het gestuurde bitje als je 30 µs wacht na de opgaande flank is redelijk te doen met een pin change interrupt. Op de opgaande flank de interupt nemen, dan 30 microseconden verdoen en dan het databit pakken en opslaan.

Overweeg om "lastbit=digitalRead (DHT_PIN); return" te doen als de 30 microseconden over zijn. In die 30 microseconden kan je dan rustig het "lastbit" verwerken, en bijvoorbeeld "lastbit" op 42 zettten. Dan de teller met het aantal bits ophogen. Het hoofdprogramma weet dan dat er haast nieuwe data is bij 40 bits en dat ie dan moet wachten op "lastbit != 42" voordat hij ook het laatste bit kan verwerken en de gemeten data kan interpreteren.

Dit is wel "klote code" want voor iedere code wijziging moet je eigenlijk opnieuw calibreren hoelang je code nodig heeft en hoeveel microseocnden er nog bij moet om op 30 uit te komen....

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

ik heb ge-googled.... maar max lengte zo 30 meter zijn op 5 volt? en heb ook 60 meter gezien....

en ik heb het over 3 meter.... en dan doet hij het al niet lekker meer...

vandaar dat ik het vraag....

maar ik ga dus eerst naar 4k7

en dan een elco op de + en - , aan de sensor kant?

Ontkoppelcondensator 100nF die zit dan tussen de data lijn en de min?

cnc filmpjes op Http://www.arjan-swets.com
buckfast_beekeeper

Golden Member

Ontkoppel altijd tussen + en -. Je gaat de steilheid van de datalijn alleen verslechteren met een 100n c er over.

Storing in de omgeving kan altijd een invloed hebben. Bij gebruik van afgeschermde kabel, maar 1 zijde van de afscherming aan GND leggen.

Als je een elco plaatst, zet er dan een 100n naast.

Van Lambiek wordt goede geuze gemaakt.

Met een 100nF tussen datalijn en gnd werkt er gegarandeerd niks meer... ;)

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Op 15 oktober 2021 21:46:38 schreef Arjan Swets:
..maar max lengte zo 30 meter zijn op 5 volt? en heb ook 60 meter gezien....
en ik heb het over 3 meter....

Ik heb "vroeger" ook zo'n DHT2x gebruikt. Op een Arduino Nano deed ie het prima, weken achter elkaar zonder problemen. Toen naar een ESP12...ging een paar uur goed, daarna was ie "kwijt" geen response meer. Ik heb de driver aangepast, extra delays erin, die dingen, niks. Maw, het is een vrij kritisch ding. Dat het bij jouw met 3m kabel (!!!) nog werkt is op zich al bijzonder.
Tip: gebruik BMP280 of BME280.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

kabel iets korter gemaakt.... weerstand veranderd... elco er bij...
en nu doet hij het goed....

dus eerst maar ff zo kijken....

allemaal bedankt!!!

cnc filmpjes op Http://www.arjan-swets.com
buckfast_beekeeper

Golden Member

Op 16 oktober 2021 09:42:30 schreef flipflop:
[...]
Ik heb "vroeger" ook zo'n DHT2x gebruikt. Op een Arduino Nano deed ie het prima, weken achter elkaar zonder problemen. Toen naar een ESP12...ging een paar uur goed, daarna was ie "kwijt" geen response meer. Ik heb de driver aangepast, extra delays erin, die dingen, niks. Maw, het is een vrij kritisch ding. Dat het bij jouw met 3m kabel (!!!) nog werkt is op zich al bijzonder.
Tip: gebruik BMP280 of BME280.

Met BME280 moet je ook niet verder gaan. Hier was het na goed 1m al over. De langste afstand haal je met een DS18B20. Tot 10m geen probleem als je 5V gebruikt voor de sensor. Datalijn kan dan nog naar 3V3 getrokken worden met 4k7. Dan heb je wel geen relatieve vochtigheid. Het zou me echter verbazen dat die binnen een woonruimte enorm zou verschillen.

Van Lambiek wordt goede geuze gemaakt.

Die dingen zijn ook niet bedoeld om aan een lang eind kabel te hangen...
(er zit niet voor niets meestal een NTC aan 'bedrade' temperatuurmeters met externe sensor)

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Op 16 oktober 2021 13:34:40 schreef Arjan Swets:
... elco er bij...
en nu doet hij het goed....

En de 100nF ontkoppel condensator?

Ik had hem genoemd iemand anders heeft dat herhaald.

Die ontkoppelcondensator als die ontbreekt levert dat eens in de zoveel keer ontzettend vervelende problemen op. Dus dingen als: "Project afgerond en ineens onbetrouwbaar" en dan "5 uur lopen zoeken, maar niets kunnen vinden".

Normaal bij een verzekering betaal je premie, maar dat is dan weet je eigenlijk zeker dat uitbetaling * kans-dat-het-uitbetaald kleiner is dan de premie. Hier is de verzakeringspremie: een condensatortje van een paar cent het dubbel en dwars waard.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

:-)

ik weet niet wat een ontkoppel condensator is.... ik heb alleen lts electro...

Ik heb wel een 10uF elco (geloof ik uit me hoofd) over de voeding gezet...

maar heb je misschien een kladje?

edit: dit ff zitten lezen: https://www.circuitsonline.net/forum/view/59887/1

Dus ook over de voeding, nog een C-tje van 100nF

dus een Elko, en een c-tje beide?

[Bericht gewijzigd door Arjan Swets op 20 oktober 2021 12:31:33 (30%)]

cnc filmpjes op Http://www.arjan-swets.com
mel

Golden Member

Zet een c van 100n par.aan die elco. :)

u=ir betekent niet :U bent ingenieur..

Ja, dat bedoel ik (eva).

Uitleg ontkoppelen:

Stel, je hebt een voeding die 1A kan leveren, maar je gebruikt daar maar een fractie van.

Nu zit je sensor op 3 meter er vandaan, verbruikt nu 1mA maar wil "plotseling" 10mA gebruiken. Gedurende de 10ns dat licht er over doet om die 3 meter te overbruggen is het ONMOGELIJK dat de voeding ook maar iets van die extra stroom gaat leveren.

De locale elko zal die stroom moeten leveren. Heeft die elco nu een ESR van 1 Ohm dan valt daar nu 9mA * 1 ohm = 9mV over.

De chip zal het nu moeten doen met zeg 4.991 V ipv 5.000V. Dat gaat gewoon goed.

Maar als ie piekjes gebruikt die veel groter zijn, en/of de ESR is nog (veel) groter, dan kan de spanning onder het "minimum benodigd om betrouwbaar te werken" komen. En verdacht kleine chipjes die gemiddeld maar een paar mA gebruiken kunnen op heel korte tijdschaal best pieken van amperes trekken! Die heel forse pieken kunnen best zeldzaam zijn en alleen voorkomen in heel speciale gevallen. En dat laatste maakt dat het probleem dan lastig te vinden zal zijn.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Shiptronic

Golden Member

Op 20 oktober 2021 12:30:14 schreef mel:
Zet een c van 100n par.aan die elco. :)

Aan het begin of het eind van de kabel ;)

Wie de vraag stelt, zal met het antwoord moeten leren leven.
mel

Golden Member

u=ir betekent niet :U bent ingenieur..

Op 16 oktober 2021 15:29:13 schreef buckfast_beekeeper:
..Met BME280 moet je ook niet verder gaan. Hier was het na goed 1m al over....

Nee ok, nogal wiedes. Het is i2c en dat moet niet via een kabel. Net zo min als die DHT sensoren.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein