Arduino – DHT11 / DTH22 zapis danych na kartę SD

Arduino każdy zna, tak samo jak czujnik DTH11 oraz karty SD. Tym razem napotkałem się z potrzebą zapisywania temperatury oraz wilgotności w danym pomieszczeniu. A, że pod ręką miałem nasze Arduino, czemu z niego nie skorzystać. Poniższy układ odczytuje dane odnoście temperatury oraz wilgotności, a następnie zapisuje nam te dane do pliku log.csv na karcie mikroSD.

Do wykonania będą nam potrzebne następujące elementy:

– Arduino UNO (lub odpowiednik)
– układ DHT11 / DTH22
– MikroSD adapter
– płytka stykowa, przewody
– biblioteki SdFat, dth

Schemat połączeń do Arduino:

DHT11 / DTH22 zapis danych na kartę SD

Kod Programu
//
// Copyright 2015 © by swistak
// for www.tranzystor.pl
//

#define DHTTYPE DHT11
const int chipSelect = 10;
const int DHTvcc = 6;
const int DHTdat = 5;
const int DHTgnd = 3;

const int timeRate = 5;

#include
#include

dht DHT;
double DHTtemp , DHThumid;
int DHTread;

SdFat sd;
SdFile logFile;

void setup() {
// setup IO pins to power DHT11 / DHT22 sensor
pinMode (DHTdat, INPUT_PULLUP);
pinMode (DHTvcc, OUTPUT);
pinMode (DHTgnd, OUTPUT);
digitalWrite(DHTvcc, HIGH);
digitalWrite (DHTgnd, LOW);

Serial.begin(57600);
Serial.println(„Pomiar temperatury i wilgotnosci z zapisem na karte SD”);
Serial.println(„Dane zapisywane do log.csv na karcie MicroSD”);

delay(2000);
DHTread = DHT.read11(DHTdat);
switch (DHTread) {
case DHTLIB_OK: Serial.println(„Sensor OK.”);
break;
default: Serial.println(„ERROR: Problem z sensorem nie wykryto.”);
}

if (!sd.begin(chipSelect)) {
Serial.println(„ERROR karty SD .”);
} else {
Serial.println(„Karta SD ok!”);
}
}

void loop() {
delay(timeRate * 1000);
if (!logFile.open(„log.csv”, O_RDWR | O_CREAT | O_AT_END)) {
sd.errorHalt(„Blad pliku log.csv”);
} else {
Serial.print(„zapis danych. „);
}
DHTread = DHT.read11(DHTdat);
DHTtemp = DHT.temperature;
DHThumid = DHT.humidity;
Serial.print(„Temperatura: „);
Serial.print(DHTtemp); Serial.print(„C „);
Serial.print(” Wilgotnosc: „); Serial.print(DHThumid);
Serial.println(„%”);
logFile.print(” Temperatura: „);logFile.print(DHTtemp); logFile.print(” C”); logFile.print(„,”); logFile.print(” Wilgotność : „); logFile.println(DHThumid);logFile.print(” %”); // write data
logFile.close();
}

 

Post Author: swistak

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Potwierdz, że nie jesteś botem. *