momentan arbeite ich an einem Projekt mit dem DHT 22 Sensor.
Die Temperatur und die Luftfeuchtigkeit sollen im "Seriellen Monitor" ausgegeben werden. Wenn ich versuche meinen Sketch auf den Arduino zu übertragen, bekomme ich folgende Fehlermeldung:
Arduino: 1.8.9 (Windows 10), Board: "Arduino/Genuino Uno" In file included from C:\Users\Niklas\Documents\Arduino\sketch_jul22a\sketch_jul22a.ino:2:0: C:\Users\Niklas\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.
Ich habe unterschiedliche Versionen der DHT-Library installiert. Des Weiteren installierte ich zuerst die Library manuell. Als der Fehler auftrat versuchte ich diese über die Arduino IDE zu installieren, leider ohne Erfolg. Außerdem habe ich versucht den Sketchspeicherort anzupassen was ebenfalls fruchtlos war.
Der ausgewählte Sketchspeicherort ist:
C:\Users\Niklas\Documents\Arduino
Dieser Speicherort sollte nach Möglichkeit beibehalten oder so verändert werden, dass es möglich ist noch weitere Libraries einzubinden (z.B. für ein LCD-Display).
Bitte CODE TAGs Ikone </> für den Sketch und Fehlermeldungen verwenden. Bitte Deinen Post edittiren und ändern.
C:\Users\Niklas\Documents\Arduino\libraries\DHT_sensor_library/DHT_U.h:36:29: fatal error: Adafruit_Sensor.h: No such file or directory
Die Bibliothek wird nicht gefunden. Hast Du sie installiert bzw richtig installiert?
Die mit der Bibliothek mitgelieferten Beispiele kompilieren ohne Fehler?
Schmeiß die manuell installierten Libs für den DHT raus und installiere über die Bibliotheksverwaltung die Libs "DHT sensor library" und die "Adafruit Unified Sensor", jeweils "by Adafruit", damit sollte es klappen. Kurze Erklärung, die Adafruit Unified Sensor enthält die benötigte Adafruit_Sensor.h.
Edit: Dir fehlt zusätzlich noch ein #include <Adafruit_Sensor.h> ganz oben, zumindest steht es so in den Beispielen.
Nun funktioniert der Sketch und das Kompilieren einwandfrei.
Der Fehler lag darin, dass die "Adafruit Unified Sensor"-Library nicht installiert war.
Diese habe ich über die Arduino IDE installiert.
Außerdem ist mir ein kleiner Tippfehler unterlaufen:"prinln" anstelle von "println"
Dies waren die einzigen Änderungen, die durchgeführt werden mussten, damit der Sketch zum Laufen gebracht werden konnte.
Beiläufig habe ich zum Abschluss noch eine Frage: Wofür ist die "Adafruit Unified Sensor"-Library zuständig, wenn ich die "DHT sensor library" bereits installiert habe?
Ich bin gespannt auf eure Antworten und nochmals vielen Dank.
Knese:
Außerdem ist mir ein kleiner Tippfehler unterlaufen:"prinln" anstelle von "println"
Ups, der ist komplett untergegangen...
Beiläufig habe ich zum Abschluss noch eine Frage: Wofür ist die "Adafruit Unified Sensor"-Library zuständig, wenn ich die "DHT sensor library" bereits installiert habe?
Das musst du wohl den Programmierer der Lib fragen, so wie ich es grade auf die Schnelle sehen konnte, wird die von DHT_U.h benötigt, aber deren Sinn erschließt sich mir noch nicht.
Ich persönlich nutze den DHT22/AM2302 mit der Lib "DHTlib" von Rob Tillaart, die gibt es aber nicht über die Bibliotheksverwaltung, hab die über Github runtergeladen.
Wenn du die mal testen willst, schreib ich dir später mal ein kleines Beispiel? Um den DHT damit abzufragen werden ca. 5-7 Zeilen im Sketch benötigt, inkl. Serieller Ausgabe. Und keine weiteren Libs.
Knese:
Beiläufig habe ich zum Abschluss noch eine Frage: Wofür ist die "Adafruit Unified Sensor"-Library zuständig, wenn ich die "DHT sensor library" bereits installiert habe?
Ich vermute, dass die „Unified“ ein paar Dinge definiert, die in der zweiten Bibliothek benutzt werden. Dass Bibliotheken aufeinander aufbauen ist nicht selten. Weil das Abhängigkeiten schafft, sind fremde Bibliotheken bei mir überhaupt nicht gerne gesehen.
Adafruit Unified Sensor-Lib bildet das Grundgerüst für alle Adafruit-Sensoren. Sie stellt Konstanten und gemeinsame Klassen bereit, die durch die konkreten Sensorlibs mit Inhalten/Funktionalitäten gefüllt werden.
Das war eine stark vereinfachte Erläuterung für tiefer gehende Erkenntnisse setze Dich mit einem guten C++ Buch an die Adafruit_Sensor.h und verstehe sie.