DHT11/DHT22 — Wetterdaten aufzeichnen

Lesezeit: 4 Minuten

Seite als PDF

Das Pro­gramm soll die Wet­ter­dat­en im Seriellen Mon­i­tor anzeigen und gle­ichzeit­ig auf ein­er SD-Karte im CSV-For­mat aufze­ich­nen.
Diese Datei kann dann von ein­er Tabel­lenkalku­la­tion geöffnet wer­den.

So soll es ausse­hen:

Benötigte Bauteile:

  • RTC-Mod­ul DS3231
  • Tem­per­atur-/Feuchtigkeitssen­sor DHT11 oder DHT22
  • SD-Karten-Mod­ul (Daten­log­ger-Shield oder Eth­er­net-Shield)
  • Leitungs­drähte

Wenn du ein ⇒Eth­er­net-Shield hast, kannst du das Pro­gramm ohne Änderung mit dem dort ver­baut­en SD-Karten-Mod­ul ver­wen­den.
Mit einem ⇒Daten­log­ger-Shield musst du den Wert für den Daten­pin auf 10 set­zen.

Beispiele für DHT11/DHT22 Sen­soren

Die Pin­bele­gung kann sich von der hier gezeigten unter­schei­den. Achte auf die Beschrif­tung auf dem Mod­ul!

Beachte die Pin­bele­gung!
Die SD-Karte muss mit FAT32 for­matiert sein!

RTC-Mod­ul

SD-Karten-Mod­ul

Baue die Schal­tung auf.
(Fahre mit der Maus über das Bild, um die Beze­ich­nun­gen der Bauteile zu sehen)

Je größer die Pro­gramme wer­den, je mehr Vari­able ver­wen­det wer­den, desto größer ist der Spe­icherbe­darf im RAM. Über­steigt er die Gren­ze von 75%, wird eine War­nung aus­gegeben.

Der physis­che Spe­ich­er des UNO R3 kann nicht ver­größert wer­den, es gib aber Strate­gien, den Spe­icherbe­darf des Pro­gramms zu ver­ringern. Eine soll hier vorgestellt wer­den.

Der Arduino UNO R3 ver­fügt über drei Spe­icher­plätze:

Spe­ich­erBeschrei­bung
Flash 32 KB
(32256 Bytes)
5 kB sind für den Boot­loader reserviert, der Rest kann für das Pro­gramm ver­wen­det wer­den
der gespe­icherte Inhalt bleibt nach dem Auss­chal­ten erhal­ten

SRAM 2 KB
(2048 Bytes)
(sta­t­ic ran­dom access mem­o­ry) hier wer­den die Variablen/Arrays erstellt und verän­dert
der Inhalt wird beim Auss­chal­ten gelöscht
EEPROM 1 KB
(1024 Bytes)
der Inhalt wird beim Auss­chal­ten gelöscht
hier kön­nen Infor­ma­tio­nen gespe­ichert wer­den, die auch nach dem Auss­ch noch zur Ver­fü­gung ste­hen sollen

Spei­cher­aus­stat­tung ver­schie­de­ner Arduinos

In den meis­ten Pro­gram­men wer­den print-Anweisun­gen aus­ge­führt. Jede dieser Anweisun­gen belegt Spe­icher­platz im Pro­gramm­spe­ich­er. Da es sich aber nicht um Vari­able han­delt, ist die dauer­hafte Spe­icherung nicht notwendig.

Das ⇒ F‑Makro sorgt dafür, dass der Text nicht im Pro­gramm­spe­ich­er verbleibt, er wird vielmehr im SRAM abgelegt und stellt so Spe­icher­platz im Pro­gramm­spe­ich­er zur Ver­fü­gung.

Beispiele:

Serial.println(F(“Initialisierung abgeschlossen”));
Serial.println(F(“Schreibe Mess­dat­en in die Datei Messung.csv: ”));
Serial.println(F(“———————————–”));

Sketch ⇒ Bib­lio­thek ein­binden ⇒ Bib­lio­theken ver­wal­ten

Im Kopf des Pro­gramms wer­den die benötigten Bib­lio­theken einge­bun­den und die Vari­ablen definiert.
Beachte die Kom­mentare:

Der set­up-Teil ini­tial­isiert die SD-Karte, startet das RTC-Mod­ul und legt den pin­Mode für den Sen­sor fest.

Der loop-Teil. Beachte die Kom­mentare.

Im loop-Teil wer­den zwei Funk­tio­nen aufgerufen:


Startseite
Aufgaben A-Z
Suchen
Downloads
Fehlermeldungen
Seite als PDF

Verwandte Anleitungen:



    let­zte Aktu­al­isierung: Okt. 24, 2025 @ 12:40