Der "serial plotter" ist zwar primitiv, aber bei dynamischen Vorgängen oft eine wirkliche Hilfe. Ich habe ihn gerade erst zum ersten Mal benutzt. Man kann auch Texte (z.B. Beschriftung für die Zahlenwerte) zwischen die Zahlen setzen. Der Monitor zeigt natürlich die gesamte Zeile, aber der Plotter sucht nur nach den Zahlen und zeigt diese an. So kann man den Output sowohl für den Monitor als auch für den Plotter lesbar gestalten.
Den Plotter kannte ich schon länger, hatte aber nie eine vernünftige Anwendung dazu. Ideal wäre es, wenn man den Plotter und den Monitor gleichzeitig laufen lassen könnte. Oder noch besser: man schreibt ein eigenes serielles Auswertungsprogramm. Mit Processing oder Python dürfte das kein all zu grosses Problem sein.
@@HobbyelektronikerCh ja stimmt. Das bringt mich auf eine meiner Lieblings-Ideen: Irgendjemand muss mal einen solchen “serial plotter“ als Gerät für Sigrok definieren. Das wäre cool, wenn man da einfach einen Arduino anschließt und dann beliebig lange aufzeichnen könnte, und hinterher hinein zoomen oder die Decoder benutzen. Ich kann sowas leider nicht. Aber das würde auch dem Projekt Sigrok bestimmt einen Schub versetzen...
Ich habe schon Beispiele gesehen, die serielle Daten vom Arduino via sigrok-cli übermitteln. Für eine direkte Programmierung müsste man sich vermutlich mit libsigrok beschäftigen. Allerdings habe ich mich damit zu wenig beschäftigt, um dazu brauchbare Aussagen zu machen.
Hallo, Danke für die anschauliche Präsentation der beiden Sensoren. Ich möchte als Familienprojekt eine Taupunkt gesteuerte Kellerlüftung bauen. Mir wurde mitgeteilt, dass der DHT 22 sehr empfindlich sei, und es einen Nachfolger gibt, der robuster ist. Können sie da weiterhelfen? Viele Grüße Michael
Da ist mir nichts bekannt. Der DHT 22 (auch als AM2302 bekannt) ist weit verbreitet. Ich halte ihn eigentlich für recht robust, er ist allerdings nicht besonders genau. Genauer wären zum Beispiel Module, die auf dem SHT21 basieren. Allerdings werden diese vollständig anders angesteuert. Zur Robustheit kann ich aber nichts sagen. Eine andere Alternative wäre ein BME280 von Bosch. Gruss René.
Der Widerstand wird vom Hersteller des Sensors empfohlen, daher würde ich ihn so lassen. Ich denke aber, dass die Schaltung auch mit 1K oder 10K läuft. Da für die Ansteuerung eine Bibliothek verwendet wird, ist auch nicht klar, ob der eingebaute PULL_UP verwendet werden könnte. Falls dieser dort eingeschaltet ist, würde vermutlich die Schaltung auch ohne Widerstände funktionieren. Du kannst das gefahrlos ausprobieren.
@@HobbyelektronikerChIn der DHT.cpp zeile 62 steht: pinMode(_pin, INPUT_PULLUP); /*! * @brief Setup sensor pins and set pull timings * @param usec * Optionally pass pull-up time (in microseconds) before DHT reading *starts. Default is 55 (see function declaration in DHT.h). */ void DHT::begin(uint8_t usec) { // set up the pins! pinMode(_pin, INPUT_PULLUP); // Using this value makes sure that millis() - lastreadtime will be // >= MIN_INTERVAL right away. Note that this assignment wraps around, // but so will the subtraction. _lastreadtime = millis() - MIN_INTERVAL; DEBUG_PRINT("DHT max clock cycles: "); DEBUG_PRINTLN(_maxcycles, DEC); pullTime = usec; }
@@HobbyelektronikerCh Super,.. ich werde es die Tage mal ausprobieren. Möchte eine Art Wetterstation mit einem Master und mehreren Slaves über WLAN verwirklichen. Leider ist diese Library sehr schwer zu finden und vielleicht interessiert dich das auch deshalb hier ein Link: schullebernd.de/tag/sbnetwork/ Das erlaubt einem gleich neue Möglichkeiten. Werde es evtl. unter Themenvorschläge in deinem Forum posten.
Was bedeutet das bitte: "man sollte nicht zu schnell messen, sonst wird das ganze Ungenau"? Im video 5min00sec. Wird sich der Sensor bei jeder 100ms Messung erwärmen? Keine Angst, ich werde in 10sec Interval messen, es interesiert mich nur.
Nach meinen Erfahrungen wird die Temperatur bei zu schneller Ausleserate zu hoch angegeben. Das deutet auf eine Erwärmung hin. Ganz klar geht das aus den Datenblättern auch nicht hervor. Da steht zum Beispiel: 'but is not recommended to repeatedly read the sensors, each read sensor interval is greater than 5 seconds can be obtained accurate data' (DHT11) oder 'we recommend repeatedly to read sensors, and each read sensor interval is greater than 2 seconds to obtain accurate data' (AM2302)
Grundsätzlich schon. Der DHT11 hat misst die Temperatur ziemlich Ungenauigkeit (+/- 2 Grad bei 25 Grad). Bei der relativen Feuchtigkeit sieht es noch schlechter aus, da kann der absolute Fehler +/- 5 % rel. Luftfeuchtigkeit betragen. Die Reproduzierbarkeit ist aber recht gut. Das bedeutet, dass der Fehler recht konstant ist und daher auskorrigiert werden könnte. Der von mir beim DTH11 festgestellte Fehler ist aber wesentlich grösser, so dass ich vermute, dass der Sensor defekt ist.
Da gibt es eigentlich gar nicht viel dazu zu sagen. Du brauchst ein möglichst genaues Vergleichsmessgerät. Dann addierst du einfach die Differenz zu den Messwerten deines Sensors. Das wird funktionieren, so lange du nicht weit vom Referenzmesswert entfernt bist. Je weiter du dich davon entfernst, um so ungenauer wird es. Um genauer zu werden müsste man viele Vergleichsmessungen anstellen und versuchen eine mathematische Formel zu finden, die die gemessenen Abweichungen möglichst genau trifft. Dann können auch die interpolierten Werte als mehr oder weniger genau betrachtet werden. Es kann aber auch mit einer Wertetabelle und einer linearen Interpolation zwischen den nächstliegenden Werten gearbeitet werden. Diese Massnahmen gehen aber recht weit und sind eigentlich bei einfachen Arduino - Projekten nicht angebracht.
Bei mir kommt immer die Fehlermeldung: Arduino: 1.8.9 (Windows 10), Board: "Arduino/Genuino Uno" In file included from E:\Users\*\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.cpp:15:0: E:\Users\*\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.h:36:29: fatal error: Adafruit_Sensor.h: No such file or directory compilation terminated. exit status 1 Fehler beim Kompilieren für das Board Arduino/Genuino Uno. Weiß jemand, was ich da machen kann?
Du benötigst noch die Adafruit Unified Sensor Library. Sie ist etwas mühsam zu finden, wenn du aber als Suchbegriff 'adafruit unified sensor by adafruit' eingibst, sollte sie als einziger Vorschlag angezeigt werden. Momentan ist die Version 1.0.3 aktuell.
Deine videos sehe ich mir immer gern an, auch mehrmals. Man müsste im Studium einen Prof wie dich haben.
Der "serial plotter" ist zwar primitiv, aber bei dynamischen Vorgängen oft eine wirkliche Hilfe. Ich habe ihn gerade erst zum ersten Mal benutzt. Man kann auch Texte (z.B. Beschriftung für die Zahlenwerte) zwischen die Zahlen setzen. Der Monitor zeigt natürlich die gesamte Zeile, aber der Plotter sucht nur nach den Zahlen und zeigt diese an. So kann man den Output sowohl für den Monitor als auch für den Plotter lesbar gestalten.
Den Plotter kannte ich schon länger, hatte aber nie eine vernünftige Anwendung dazu. Ideal wäre es, wenn man den Plotter und den Monitor gleichzeitig laufen lassen könnte. Oder noch besser: man schreibt ein eigenes serielles Auswertungsprogramm. Mit Processing oder Python dürfte das kein all zu grosses Problem sein.
@@HobbyelektronikerCh ja stimmt. Das bringt mich auf eine meiner Lieblings-Ideen: Irgendjemand muss mal einen solchen “serial plotter“ als Gerät für Sigrok definieren. Das wäre cool, wenn man da einfach einen Arduino anschließt und dann beliebig lange aufzeichnen könnte, und hinterher hinein zoomen oder die Decoder benutzen. Ich kann sowas leider nicht. Aber das würde auch dem Projekt Sigrok bestimmt einen Schub versetzen...
Ich habe schon Beispiele gesehen, die serielle Daten vom Arduino via sigrok-cli übermitteln. Für eine direkte Programmierung müsste man sich vermutlich mit libsigrok beschäftigen. Allerdings habe ich mich damit zu wenig beschäftigt, um dazu brauchbare Aussagen zu machen.
Sehr cool, Danke
Hallo, Danke für die anschauliche Präsentation der beiden Sensoren. Ich möchte als Familienprojekt eine Taupunkt gesteuerte Kellerlüftung bauen. Mir wurde mitgeteilt, dass der DHT 22 sehr empfindlich sei, und es einen Nachfolger gibt, der robuster ist. Können sie da weiterhelfen?
Viele Grüße Michael
Da ist mir nichts bekannt. Der DHT 22 (auch als AM2302 bekannt) ist weit verbreitet. Ich halte ihn eigentlich für recht robust, er ist allerdings nicht besonders genau. Genauer wären zum Beispiel Module, die auf dem SHT21 basieren. Allerdings werden diese vollständig anders angesteuert. Zur Robustheit kann ich aber nichts sagen. Eine andere Alternative wäre ein BME280 von Bosch. Gruss René.
da bin ich auch in der Überlegung. Hast du da schon was umgesetzt?
Kann es sein das der eine sensor die absolute Feuchtigkeit an gibt und nicht die relative?
Kann man auch den eingebauten pull up Widerstand verwenden oder muss dieser genau 4,7 kOhm haben?
Der Widerstand wird vom Hersteller des Sensors empfohlen, daher würde ich ihn so lassen. Ich denke aber, dass die Schaltung auch mit 1K oder 10K läuft.
Da für die Ansteuerung eine Bibliothek verwendet wird, ist auch nicht klar, ob der eingebaute PULL_UP verwendet werden könnte. Falls dieser dort eingeschaltet ist, würde vermutlich die Schaltung auch ohne Widerstände funktionieren. Du kannst das gefahrlos ausprobieren.
@@HobbyelektronikerCh ok danke erstmal. Heißt das ich kann einfach die dht.h oder dht.cpp öffnen und nachsehen ob PULL_UP verwendet wird?
@@HobbyelektronikerChIn der DHT.cpp zeile 62 steht:
pinMode(_pin, INPUT_PULLUP);
/*!
* @brief Setup sensor pins and set pull timings
* @param usec
* Optionally pass pull-up time (in microseconds) before DHT reading
*starts. Default is 55 (see function declaration in DHT.h).
*/
void DHT::begin(uint8_t usec) {
// set up the pins!
pinMode(_pin, INPUT_PULLUP);
// Using this value makes sure that millis() - lastreadtime will be
// >= MIN_INTERVAL right away. Note that this assignment wraps around,
// but so will the subtraction.
_lastreadtime = millis() - MIN_INTERVAL;
DEBUG_PRINT("DHT max clock cycles: ");
DEBUG_PRINTLN(_maxcycles, DEC);
pullTime = usec;
}
PULLUP wird hier aktiviert, die Schaltung sollte also ohne den externen Widerstand funktionieren.
@@HobbyelektronikerCh Super,.. ich werde es die Tage mal ausprobieren. Möchte eine Art Wetterstation mit einem Master und mehreren Slaves über WLAN verwirklichen. Leider ist diese Library sehr schwer zu finden und vielleicht interessiert dich das auch deshalb hier ein Link:
schullebernd.de/tag/sbnetwork/
Das erlaubt einem gleich neue Möglichkeiten. Werde es evtl. unter Themenvorschläge in deinem Forum posten.
Was bedeutet das bitte: "man sollte nicht zu schnell messen, sonst wird das ganze Ungenau"? Im video 5min00sec. Wird sich der Sensor bei jeder 100ms Messung erwärmen?
Keine Angst, ich werde in 10sec Interval messen, es interesiert mich nur.
Nach meinen Erfahrungen wird die Temperatur bei zu schneller Ausleserate zu hoch angegeben. Das deutet auf eine Erwärmung hin. Ganz klar geht das aus den Datenblättern auch nicht hervor. Da steht zum Beispiel:
'but is not recommended to repeatedly read the sensors, each read sensor interval is greater than 5 seconds can be obtained accurate data' (DHT11)
oder
'we recommend repeatedly to read sensors, and each read sensor interval is greater than 2 seconds to obtain accurate data' (AM2302)
Könnte man evtl. mit einem Ausgleichswert den Fehler anpassen?
Grundsätzlich schon. Der DHT11 hat misst die Temperatur ziemlich Ungenauigkeit (+/- 2 Grad bei 25 Grad). Bei der relativen Feuchtigkeit sieht es noch schlechter aus, da kann der absolute Fehler +/- 5 % rel. Luftfeuchtigkeit betragen. Die Reproduzierbarkeit ist aber recht gut. Das bedeutet, dass der Fehler recht konstant ist und daher auskorrigiert werden könnte. Der von mir beim DTH11 festgestellte Fehler ist aber wesentlich grösser, so dass ich vermute, dass der Sensor defekt ist.
Der Hobbyelektroniker könntest du das mal zeigen das Thema Korrektur wert an unterschiedlichen Senoren vielleicht
Da gibt es eigentlich gar nicht viel dazu zu sagen. Du brauchst ein möglichst genaues Vergleichsmessgerät. Dann addierst du einfach die Differenz zu den Messwerten deines Sensors. Das wird funktionieren, so lange du nicht weit vom Referenzmesswert entfernt bist. Je weiter du dich davon entfernst, um so ungenauer wird es. Um genauer zu werden müsste man viele Vergleichsmessungen anstellen und versuchen eine mathematische Formel zu finden, die die gemessenen Abweichungen möglichst genau trifft. Dann können auch die interpolierten Werte als mehr oder weniger genau betrachtet werden. Es kann aber auch mit einer Wertetabelle und einer linearen Interpolation zwischen den nächstliegenden Werten gearbeitet werden. Diese Massnahmen gehen aber recht weit und sind eigentlich bei einfachen Arduino - Projekten nicht angebracht.
Bei mir kommt immer die Fehlermeldung:
Arduino: 1.8.9 (Windows 10), Board: "Arduino/Genuino Uno"
In file included from E:\Users\*\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.cpp:15:0:
E:\Users\*\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.h:36:29: fatal error: Adafruit_Sensor.h: No such file or directory
compilation terminated.
exit status 1
Fehler beim Kompilieren für das Board Arduino/Genuino Uno.
Weiß jemand, was ich da machen kann?
Du benötigst noch die Adafruit Unified Sensor Library. Sie ist etwas mühsam zu finden, wenn du aber als Suchbegriff 'adafruit unified sensor by adafruit' eingibst, sollte sie als einziger Vorschlag angezeigt werden. Momentan ist die Version 1.0.3 aktuell.
@@HobbyelektronikerCh super, jetzt geht es. Danke