#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <SD.h>
#define CS_PIN 10
File root;
//ANALOG_PIN (READING ANALOG INPUT)
#define ANALOG_PIN A0
LiquidCrystal_I2C lcd(0x27, 20, 4);
float analogValue,celcius,prevCelcius,fahrenheit,kelvin;
float getCelcius(){
const float BETA = 3950;
int analogValue = analogRead(A0);
float celcius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
return celcius;
}
float printData(){
lcd.clear();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Celcius: ");
lcd.print(celcius);
lcd.write(0xDF);
lcd.println("C");
lcd.setCursor(0, 1);
lcd.print("Fahrenheit: ");
lcd.print(fahrenheit);
lcd.write(0xDF);
lcd.println("F");
lcd.setCursor(0, 2);
lcd.print("Kelvin: ");
lcd.print(kelvin);
lcd.write(0xDF);
lcd.println("K");
}
void readFile(){
File textFile = SD.open("angel.txt");
if (textFile) {
while (textFile.available()) {
Serial.write(textFile.read());
}
textFile.close();
Serial.println();
} else {
Serial.println("error opening angel.txt!");
}
}
void setup(){
Serial.begin(9600);
pinMode(ANALOG_PIN, INPUT);
Serial.print("Initializing SD card... ");
if (!SD.begin(CS_PIN)) {
Serial.println("Card initialization failed!");
while (true);
}
Serial.println("initialization done.");
Serial.println("Files in the card:");
Serial.println("");
lcd.begin(20,4);
}
void loop(){
analogValue = analogRead(ANALOG_PIN);
celcius = getCelcius();
fahrenheit = (celcius*(9/5))+32;
kelvin = (celcius + 273.15);
if(celcius!=prevCelcius){
prevCelcius = celcius;
//write
File writeFile = SD.open("angel.txt", FILE_WRITE);
writeFile.print("Celcius: ");
writeFile.print(celcius);
writeFile.print(", Fahrenheit: ");
writeFile.print(fahrenheit);
writeFile.print(", Kelvin: ");
writeFile.print(kelvin);
writeFile.print("\n");
writeFile.close();
readFile();
}
delay(1000);
printData();
}