Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Reads temperature from HT11 sensor and writes to SD card
- SD card read/write via LC Technology SD Module (www.lctech-inc.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();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement