I am building a humidity controller using the humidity and temperature sensor. So far everything is working correctly but I was wondering how I could get the temperature to read back in Fahrenheit rather than Celsius. I know the formula is 9/5*C+32=F but I don't know exactly how to get this to work with my code.
Here is the code I have written:
Code: [Select]
#include <Wire.h>
#include "Adafruit_HTU21DF.h"
Adafruit_HTU21DF htu = Adafruit_HTU21DF ();
int ledPin = 13;
int relayPin = 9;
void setup() {
 
   pinMode (ledPin, OUTPUT);
   pinMode (relayPin, OUTPUT);
   Serial.begin(9600);
   Serial.println("HTU21DF Humidity Controller");
   
   if (!htu.begin()) {
     Serial.println("Couldn't find sensor!");
   }
}
void loop() {
  if (htu.readHumidity()>=75) {
    Serial.print("Humidifier Off");
    digitalWrite(ledPin, LOW);
    digitalWrite(relayPin, LOW);
    Serial.print("\t\tTemp: "); Serial.print(htu.readTemperature());
    Serial.print("\t\tHum: "); Serial.println(htu.readHumidity());
  }
   
  else {
    Serial.print("Humidifier On");
    digitalWrite(ledPin, HIGH);
    digitalWrite(relayPin, HIGH);
    Serial.print("\t\tTemp: "); Serial.print(htu.readTemperature());
    Serial.print("\t\tHum: "); Serial.println(htu.readHumidity());
  }
 
  delay(1000);
   
}
This is the section of the file "Adafruit_HTU21DF.cpp" that deals with temperature:
Code: [Select]
float Adafruit_HTU21DF::readTemperature(void) {
 
  // OK lets ready!
  Wire.beginTransmission(HTU21DF_I2CADDR);
  Wire.write(HTU21DF_READTEMP);
  Wire.endTransmission();
 
  delay(50); // add delay between request and actual read!
 
  Wire.requestFrom(HTU21DF_I2CADDR, 3);
  while (!Wire.available()) {}
  uint16_t t = Wire.read();
  t <<= 8;
  t |= Wire.read();
  uint8_t crc = Wire.read();
  float temp = t;
  temp *= 175.72;
  temp /= 65536;
  temp -= 46.85;
  return temp;
}