DHT22 hängt immer nach Arduino Firmware Reset

Ja: Endlich hat sich auch bei dieser Bibliothek der Autor der bisher im Arduino-Umfeld oft vergessenen Interruptbehandlung gewidmet à la “da war ja noch was”. Dafür gibt es zu jeder Zeit ein großes Hosianna-artiges Halleluja.

Bevor das bibliotheksseitig nicht ordentlich gelöst ist, braucht man sich über sporadisch auftretende Glitches aufgrund von Timing-Problemen nicht wundern, gerade wenn man nicht mehr selbst exklusiv auf dem Eisen läuft – also die Firmware [1]. Siehe auch Use realtime systems for reading digital sensors und Protect code when accessing shared resources.


  1. Das wiederum ist seit der Ankunft der immer populärer werdenden günstigen 32-Bit MCUs immanent, wo meist noch ein (Echtzeit-)OS drauf läuft und darauf erst die gewohnte Arduino-Umgebung. Sobald also irgendwo ein ESP32 (Dual Core!) aber auch schon ein ESP8266 unter der Haube ist oder man auch klassisch auf dem AVR schon Dinge wie LMIC an Bord holt, ist das Laufzeitverhalten ein grundlegend anderes als von früher gewohnt.

    Das fällt aktuell oft erst dann auf, sobald man ausgewachsenere Dinge auf andere Hardware portiert, während es bei einfachen Beispielsketches oft gerade noch so funktioniert. Ich bin heilfroh, dass das nun immer öfters schon upstream von den Hauptautoren erledigt wird, weil sonst die Gefahr hoch ist, dass das Ökosystem fragmentiert, wenn die notwendigen Patches wild zwischen Brennesseln wachsen und nicht wieder zurückgeführt werden. Bei Spring cleaning with multiarch support for the HX711 hatten wir richtig viel Freude – diesmal ironisch ;]. ↩︎

1 Like

Das mit dem Relais war mein Ernst. Fotobeweis:

Ist aber schon auch ein bisschen lustig. Geb ich zu.

Im Lösungsbeitrag diskutiere ich die Automatisierung der Relais-Steuerung.

1 Like

Makes my day. Turtles all the way…

Du hast jetzt aber nicht deine Lösung auf diesem Testboard oder ?
Das war nur ein kurzfristiger Testaufbau ?
Die Dinger können einen nämlich in den Wahnsinn treiben … habe ich mal bei nem Portexpander gehabt …

1 Like

Ich denke Modus ist sich dem durchaus bewusst.

Also eher ein provisorischer Testaufbau, im Langzeitbetrieb.

Wenn du möchtest @mois, kann ich mich mal an deiner Schaltung versuchen und sie gleich ätzen und verzinnen (oldshool).
Müsstest mir nur eine Skizze vom Schaltplan und die verwendeten Bauformen irgendwie zukommen lassen. Würde das dann allerdings mit Eagle und nicht mit fritzing machen.

1 Like

Ätzt Du die Leiterplatten komplett selbst ? Belichtung etc.?
Was hast Du für eine Ausrüstung?
Ich bin da noch auf den Lochstreifen … da habe ich aber keine Lust mehr drauf…

Vor 2 Jahren habe ich am RaspberryPi auch mit bis zu 10 DHT22 = AM1302 experimentiert und versucht, sie abzugleichen mit verschiedenen Salzlösungen.
Fazit: selten zeigen sie gleiche oder sehr ähnliche Werte an. Ausserdem können sie ganz einfach kaputt gehen und ergeben seltsame Ergebnisse.
Seit Okt. 2018 nutze ich den BME280 an verschiedenen ESP32 und FiPy mit Arduino-IDE und Micropython.
Fazit: Immer saubere Messwerte.
Empfehlung: von DHT22 auf BME280 wechseln

2 Likes

Nicht ganz, Belichtungsgerät usw. hätte ich zwar da. Benutze für kleine Einzelanfertigungen aber meist die Toner Transfer Methode, da ich noch einige Platten habe, wo der Fotolack zu alt ist.
Da mir der ganze Aufwand mit dem Lötstoplack oder Folie zu groß ist, verzinne ich sie anschließend mit Fittinglötpaste. Ist auch damit sie sich anschließend besser löten lassen. Galvanisch geht auch, wird aber nicht ganz so schön und ist wieder viel Chemie.
Geht super. Eine Platine ist nach dem Druck in ca. 20-30 Min fertig geätzt und verzinnt.
Allerdings mache ich hauptsächlich nur Einseitige Platinen, da die Durchkontaktierungen wieder ein Fall für viel Aufwand und Chemie sind.
Also im Layout ein bisschen mehr Hirnschmalz reinstecken.

Benötigt wird eigentlich nicht viel:
Zum Ätzen:

  • Laserdrucker
  • Katalogseiten oder Etikettenpapier(Wachspapier)
  • Bügeleisen oder Laminiergerät
  • Atzmittel z.B. Natriumpersulfat
  • Azeton ( zum reinigen vom Toner)
  • Dremel oder Kl. Standbohrmaschine

zum Verzinnen (muß nicht gemacht werden, empfehle ich aber):

  • Fittinglötpaste
  • Heißluftfön

Wer dann noch Langeweile hat kann dann ebenfalls mit der Transfermethode noch auf der Oberseite die Beschriftung aufbringen.

Will zum Wochenende eh noch eine Develop BoB Platine machen. falls Interesse besteht kann ich ja mal meinen Fotoapparat daneben legen.

1 Like

das ist ja ein tolles angebot. das nehme ich gerne zum anlass, meine schaltung aufzuzeichnen:

hier nochmal die pinbelegungen am arduino:
5V → Steckbrett
GND → Steckbrett
GND ← Power In
Vin <–Power In

A0 - Relais
A1 - not connected
A2 - not connected
A3 - not connected
A4 - TSL2591 SDA
A5 - TSL2591 SCL

14 - GND LED Pausenschaltung
D13 - Widerstand - LED Pausenschaltung
D12 - not connected
D11 - 100Ohm - Schalter Pausenschaltung
D10 - PDWN Waage1
D9 - PDWN Waage2
D8 - SCLK Waage2
D7 - SCLK Waage1
D6 - DRDY/DOUT Waage1
D5 - DRDY/DOUT Waage2
D4 - 1Wire DS18B20
D3 - DHT22 (über Relais)
D2 - DHT22
D1 - not connected
D0 - not connected

Bauformen?

  • Die DHT sind auf breakouts mit drei kabeln.
  • TSL2591 hat auch ein langes kabel, 4-adrig
  • einer der DS18B20 sitzt direkt auf dem breadboard, soll die temperatur in der messbox messen, der andere hat ein langes kabel, 3adrig.
  • die ADS1231 sehen so aus wie hier auf dem foto.
  • das relais sieht so aus.

für rückfragen bin ich noch diese woche da. dann bin ich erstmal wieder drei wochen weg.

2 Likes

Gut, damit sollte Ich klar kommen. Du willst du die Platine dann sicher ebenfalls als HAT auf den UNO Stecken oder?
Die Trägerplatine für die ADS1231 kann ich auch mit einzeichnen so das Du entweder Löten oder aufstecken kannst.

Hier gibt es ja schon ein shield im Arduino-Format, falls das hilft, ist allerdings Fritzing: Open Hive Shield for Seeeduino Stalker / Arduino Pro (3.3 V) and Yun / Uno (5 V)

Danke, habe alles, zur Not Bau ich mir selbst ein bis 2 Bauteile. Die Trägerplatine ist sicher ein Kandidat dafür, ist sicher schneller in die Lib gebastelt, als in der Bucht gesucht.

Ähm, ein Platinendesign für ein shield mit ADS1231, DHT- und DS18B20-Anschlüssen, zum “selbst” fertigen (lassen). Aber ich weiß, Fritzing ist Hobbyschleim! ;-)

Den Fipy habe ich übrigens auch nicht im www gefunden und kurzerhand selbst gebastelt.

Eagle gibt es wie Fusion 360 auch kostenlos, in einer nur für Privat Version. Ist nur die Platinengröße begrenzt. Finde gerade das Autorouting von Eagle echt stark.
Habe mich auch mal mit fitzing nur kurz auseinander gesetzt. Bin da aber nicht auf Anhieb mit klar gekommen und dann wieder bei Eagle geblieben.
Gibt da sogar richtig geniale Funktionen zum zusammenarbeiten und teilen und auch zum erstellen von 3d Designs in Verbindung mit F360 nur leider alles nicht open Source.

ja, das kenn ich. damit komm ich klar.

außerdem hab ich im hinterkopf den umstieg auf die bme280. die könnte ich dann problemlos noch dazu montieren. denn nach dieser anleitung für den betrieb mehrer bme280 brauch ich dafür fünf pins, und die wären vorhanden: A1 bis A3 sind bisher eh not connected und 02, 03 würden ja frei, wenn die dht22 abkommen.

ich würde die ads1231-chips tatsächlich sehr ungerne umlöten. also steckmöglichkeit für die gesamte trägerplatine wäre schon sehr elegant.

hab mir deine kleine einführung ins ätzen angeschaut. bin begeistert, dass du dir die mühe machen willst für meine schaltung. ich nehme das dann gerne auch verzinnt, denn der witterung ists ja definitiv ausgesetzt.
falls da materialkosten anfallen, dann gib bescheid, wenn es soweit ist und wir finden kompensation.

Wenn du die per I2C betreibst sogar nur 4 pins!

1 Like

und 2 davon sind VCC und GND also nur 2 Pins auf dem Arduino und 2 Pullup Widerstände. Kann ich gerne mit einbauen.

ja, sehr schick. vor allem deine serienproduktion, @clemens . ich bin da nie drauf angesprungen aus angst vor der fisseligen lötereiaufgaben.

sehr gut. nur zu. dann kann ich die dhts sogar weiterlaufen lassen und die bme dazuhängen.

Dankend für alle Hinweise hier schließe ich meinerseits diese Angelegenheit mit dem Hinweis darauf, dass ich die DHT22 endlich los bin und sie durch SHT30 ersetzt habe.

1 Like