Created
December 4, 2016 09:21
-
-
Save lithiumhead/de9b65758b7d834754d02d3675ec368b to your computer and use it in GitHub Desktop.
This file contains 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
#include <ESP8266WiFi.h> | |
#include <WiFiClient.h> | |
#include <ESP8266WebServer.h> | |
#include <ESP8266mDNS.h> | |
#include "DHT.h" | |
// Uncomment one of the lines below for whatever DHT sensor type you're using! | |
//#define DHTTYPE DHT11 // DHT 11 | |
//#define DHTTYPE DHT21 // DHT 21 (AM2301) | |
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 | |
MDNSResponder mdns; | |
// Replace with your network details | |
const char* ssid = "Temperature_Server"; | |
const char* password = "vishaworld.com"; | |
ESP8266WebServer server(80); | |
String webPage = ""; | |
// DHT Sensor | |
const int DHTPin = 4; | |
DHT dht(DHTPin, DHTTYPE); | |
static char celsiusTemp[7]; | |
static char fahrenheitTemp[7]; | |
static char humidityTemp[7]; | |
float h,t,f; | |
void setup(void) { | |
IPAddress Ip(10, 10, 10, 10); | |
IPAddress NMask(255, 255, 255, 0); | |
WiFi.mode(WIFI_AP); | |
WiFi.softAPConfig(Ip, Ip, NMask); | |
WiFi.softAP(ssid, password); | |
delay(1000); | |
Serial.begin(9600); | |
Serial.println(""); | |
// Wait for connection | |
delay(5000); | |
Serial.println(""); | |
Serial.print("SoftAP IP address: "); | |
Serial.println(WiFi.localIP()); | |
dht.begin(); | |
if (mdns.begin("esp8266", WiFi.localIP())) { | |
Serial.println("MDNS responder started"); | |
} | |
server.on("/", []() { | |
webPage = ""; | |
webPage += "<!DOCTYPE HTML>"; | |
webPage += "<html>"; | |
webPage += "<head></head><body><h1>ESP8266 - Temperature and Humidity</h1><h3>Temperature in Celsius: "; | |
webPage += celsiusTemp; | |
webPage += "*C</h3><h3>Temperature in Fahrenheit: "; | |
webPage += fahrenheitTemp; | |
webPage += "*F</h3><h3>Humidity: "; | |
webPage += humidityTemp; | |
webPage += "%</h3><h3>"; | |
webPage += "</body></html>"; | |
server.send(200, "text/html", webPage); | |
}); | |
server.begin(); | |
Serial.println("HTTP server started"); | |
} | |
void loop(void) { | |
server.handleClient(); | |
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) | |
float h = dht.readHumidity(); | |
// Read temperature as Celsius (the default) | |
float t = dht.readTemperature(); | |
// Read temperature as Fahrenheit (isFahrenheit = true) | |
float f = dht.readTemperature(true); | |
// Check if any reads failed and exit early (to try again). | |
if (isnan(h) || isnan(t) || isnan(f)) { | |
Serial.println("Failed to read from DHT sensor!"); | |
strcpy(celsiusTemp, "Failed"); | |
strcpy(fahrenheitTemp, "Failed"); | |
strcpy(humidityTemp, "Failed"); | |
} | |
else { | |
// Computes temperature values in Celsius + Fahrenheit and Humidity | |
float hic = dht.computeHeatIndex(t, h, false); | |
dtostrf(hic, 6, 2, celsiusTemp); | |
float hif = dht.computeHeatIndex(f, h); | |
dtostrf(hif, 6, 2, fahrenheitTemp); | |
dtostrf(h, 6, 2, humidityTemp); | |
} | |
delay(2000); | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment