Arduino – Loger temperatury DTH22 zapis na mikroSD

Z racji tego, że potrzebowałem Loger temperatur,  który trzeba było  zrobić na szybko, a jedyne co miałem pod ręką to Arduino. Z racji gabarytu padło na Arduino Nano, czujnik DTH22 oraz moduł karty  mikroSD. Poniższy układ odczytuje dane odnoście temperatury oraz wilgotności, a następnie zapisuje nam te dane do pliku zapis.txt na karcie mikroSD. Dane później przetwarzam do wykresy który będzie można zobaczyć w dalszej części wpisu

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

– Arduino NANO (lub odpowiednik)
– układ DTH22
– MikroSD adapter
– biblioteki SdFat, dth

Opis połączenia:

Czujnik DHT22
Czujnik Arduino
DAT D2
VCC 5V
GND GND

 

Czytnik mikro SD
Czytnik Arduino
CS D10
SCK D13
MOSI D11
MISO D12
VCC 5V
GND GND

Kod programu:

//
// Copyright 2016 © by swistak
// for www.tranzystor.pl
//

#include<stdlib.h>
#include „DHT.h”
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

 

#include <SPI.h>
#include <SD.h>

const int chipSelect = 10;

void setup()
{

Serial.begin(19200);
while (!Serial) {
;
}

Serial.println(„Pomiar temperatury i wilgotnosci z zapisem na karte SD”);
Serial.println(„Dane zapisywane do zapis.txt na karcie MicroSD”);
Serial.println(„Inicjacja karty MicroSD… „);
pinMode(10, OUTPUT);
if (!SD.begin(chipSelect)) {
Serial.println(„ERROR karty SD”);
return;
}
Serial.println(„Karta SD ok!”);

Serial.println(„Sensor OK!”);

dht.begin();
}

void loop()
{

// co ile ma pobierać temp / wilg
delay(10000);

float h = dht.readHumidity();
// dla Celsiusza
float t = dht.readTemperature();
// dla Fahrenheit
float f = dht.readTemperature(true);

// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(„ERROR: Problem z sensorem nie wykryto DTH22 !”);
return;
}

float hi = dht.computeHeatIndex(t, h);

Serial.print(„Wilgotnosc: „);
Serial.print(h);
Serial.print(” %\t”);
Serial.print(„Temperatura: „);
Serial.print(t);
Serial.println(” *C\t”);

// make a string for assembling the data to log:
String dataString = „”;

char buffer[10];
String stringH = dtostrf(h,6,2,buffer);
dataString = stringH;
dataString += „,”;
String stringF = dtostrf(t,6,2,buffer);
dataString += stringF;
File dataFile = SD.open(„zapis.txt”, FILE_WRITE);

if (dataFile) {
dataFile.println(dataString);
dataFile.close();

Serial.println(dataString);
}
else {
Serial.println(„błąd zapis.txt”);
}
}

Wykres temperatur po obróbce:

Wykres temperatur loger DTH22

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. *