Skip to content

Instantly share code, notes, and snippets.

@gantrim
Created April 24, 2020 13:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gantrim/471f3e62811f4e73caecd3e9e239ca76 to your computer and use it in GitHub Desktop.
Save gantrim/471f3e62811f4e73caecd3e9e239ca76 to your computer and use it in GitHub Desktop.
Server room temperature monitor code for blog post: https://kunzleigh.com/monitoring-server-room-temperature-with-particle-photon-and-iftt/ using Adafruit library
// This #include statement was automatically added by the Particle IDE.
#include <Adafruit_DHT_Particle.h>
#define DHTTYPE DHT22
#define DHTPIN D4
DHT dht(DHTPIN, DHTTYPE);
double serverTempMax = 85;
double serverHumidityMax = 60;
double serverTemp;
double serverHumidity;
bool overheatDetected = false;
bool tooHumid = false;
long timeSinceLastAlarm = 0;
void setup()
{
Serial.begin(9600);
Particle.variable("serverTemp", &serverTemp, DOUBLE);
Particle.variable("serverHumidity", &serverHumidity, DOUBLE);
dht.begin();
delay(2000);
}
void loop()
{
long currentTime = millis();
long elapsedTime = currentTime - timeSinceLastAlarm;
bool shouldSendAlarm = timeSinceLastAlarm==0 || elapsedTime >= 3600000;
serverTemp = dht.getTempFarenheit();
serverHumidity = dht.getHumidity();
if(serverTemp>=serverTempMax && shouldSendAlarm){
Particle.publish("server_temp", "overheat");
overheatDetected = true;
timeSinceLastAlarm = millis();
}
if(serverHumidity >= serverHumidityMax && shouldSendAlarm){
Particle.publish("server_humidity", "tooHumid");
tooHumid = true;
}
Serial.println(serverTemp,2);
delay(1000);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment