Created
October 7, 2015 16:31
-
-
Save celem/1ef48d9326b2690cfa3d to your computer and use it in GitHub Desktop.
Arduino SD Card Module and Temperature Sensor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Reads temperature from HT11 sensor and writes to SD card | |
SD card read/write via LC Technology SD Module (www.lctech-inc.com) | |
From dzrmo.wordpress.com | |
* SD card attached to SPI bus as follows: | |
** MOSI - pin 11 | |
** MISO - pin 12 | |
** SCK - pin 13 | |
** CS - pin 4 | |
** GND - GND | |
** +3.3 - 3.3V | |
HT11 Sensor is wired per below. Note: with checked openings facing you, | |
pin 1 is to the left. | |
** PIN 1 - 3.3V or 5V | |
** PIN 2 - Data (to pins attached below (probably 2) | |
** PIN 3 - NC | |
** PIN 4 - Ground | |
This example code is in the public domain. | |
*/ | |
#define SOFTWARE_SPI 1 | |
#define ITERATIONS 25 | |
#include <SD.h> // SD Card library | |
#include <dht11.h> // DHT111 temperature probe Library | |
dht11 DHT11; | |
File myFile; | |
void shutdown() | |
{ | |
// add you emergency shutdown code here | |
while (1); // endless loop | |
} | |
void setup() | |
{ | |
// Open serial communications and wait for port to open: | |
Serial.begin(9600); | |
DHT11.attach(2); | |
Serial.println("DHT11 TEST PROGRAM "); | |
Serial.print("LIBRARY VERSION: "); | |
Serial.println(DHT11LIB_VERSION); | |
Serial.print("Initializing SD card..."); | |
// On the Ethernet Shield, CS is pin 4. It's set as an output by default. | |
// Note that even if it's not used as the CS pin, the hardware SS pin | |
// (10 on most Arduino boards, 53 on the Mega) must be left as an output | |
// or the SD library functions will not work. | |
pinMode(10, OUTPUT); | |
if (!SD.begin(4)) { | |
Serial.println("initialization failed!"); | |
return; | |
} | |
Serial.println("initialization done."); | |
// open the file. note that only one file can be open at a time, | |
// so you have to close this one before opening another. | |
myFile = SD.open("temps.txt", FILE_WRITE); | |
// if the file opened okay, write to it: | |
if (!myFile) { | |
// if the file didn't open, print an error: | |
Serial.println("error opening file - Halting system"); | |
shutdown(); | |
} | |
Serial.print("Test limited to "); | |
Serial.print(ITERATIONS, DEC); | |
Serial.println(" temperature readings"); | |
Serial.println("File on SD created, temperature tests will now start"); | |
} | |
void loop() | |
{ | |
int n, chk; | |
myFile.println("Test of LC Technology SD Module and DFRobot DHT11 Temperature & Humidity Sensor"); | |
myFile.print("Test limited to "); | |
myFile.print(ITERATIONS, DEC); | |
myFile.println(" temperature readings"); | |
for (n = 0; n < ITERATIONS; n++) { | |
chk = DHT11.read(); | |
Serial.print("Sensor read: "); | |
myFile.print("\nSensor read: "); | |
switch (chk) { | |
case 0: | |
Serial.println("OK"); | |
myFile.println("OK"); | |
myFile.print("Humidity (%): "); | |
myFile.println((float)DHT11.humidity, DEC); | |
myFile.print("Temperature ("); | |
myFile.print((char)176); // Print degree symbol | |
myFile.print("C): "); | |
myFile.println((float)DHT11.temperature, DEC); | |
myFile.print("Temperature ("); | |
myFile.print((char)176); | |
myFile.print("F): "); | |
myFile.println(DHT11.fahrenheit(), DEC); | |
myFile.print("Temperature ("); | |
myFile.print((char)176); | |
myFile.print("K): "); | |
myFile.println(DHT11.kelvin(), DEC); | |
myFile.print("Dew Point ("); | |
myFile.print((char)176); | |
myFile.print("C): "); | |
myFile.println(DHT11.dewPoint(), DEC); | |
myFile.print("Dew PointFast ("); | |
myFile.print((char)176); | |
myFile.print("C): "); | |
myFile.println(DHT11.dewPointFast(), DEC); | |
break; | |
case -1: | |
Serial.println("Checksum error"); | |
Serial.println("Checksum error"); | |
break; | |
case -2: | |
Serial.println("Time out error"); | |
myFile.println("Time out error"); | |
break; | |
default: | |
Serial.println("Unknown error"); | |
myFile.println("Unknown error"); | |
break; | |
} | |
delay(2000); // 2-second pause | |
} | |
Serial.println("Test Complete - Halting system"); | |
myFile.close(); | |
shutdown(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment