123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- /*********
- Rui Santos
- Complete project details at http://randomnerdtutorials.com
- *********/
- // Including the ESP8266 WiFi library
- #include <ESP8266WiFi.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
- // Replace with your network details
- const char* ssid = "KS61T5SH";
- const char* password = "Gurken651salat";
- // Web Server on port 80
- WiFiServer server(80);
- // DHT Sensor
- const int DHTPin = 13;
- // Initialize DHT sensor.
- DHT dht(DHTPin, DHTTYPE);
- // Temporary variables
- static char celsiusTemp[7];
- static char fahrenheitTemp[7];
- static char humidityTemp[7];
- // only runs once on boot
- void setup() {
- // Initializing serial port for debugging purposes
- Serial.begin(115200);
- delay(10);
- dht.begin();
-
- // Connecting to WiFi network
- Serial.println();
- Serial.print("Connecting to ");
- Serial.println(ssid);
-
- WiFi.begin(ssid, password);
-
- while (WiFi.status() != WL_CONNECTED) {
- delay(500);
- Serial.print(".");
- }
- Serial.println("");
- Serial.println("WiFi connected");
-
- // Starting the web server
- server.begin();
- Serial.println("Web server running. Waiting for the ESP IP...");
- delay(10000);
-
- // Printing the ESP IP address
- Serial.println(WiFi.localIP());
- }
- // runs over and over again
- void loop() {
- // Listenning for new clients
- WiFiClient client = server.available();
-
- if (client) {
- Serial.println("New client");
- // bolean to locate when the http request ends
- boolean blank_line = true;
- while (client.connected()) {
- if (client.available()) {
- char c = client.read();
-
- if (c == '\n' && blank_line) {
- // 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);
- // You can delete the following Serial.print's, it's just for debugging purposes
- Serial.print("Humidity: ");
- Serial.print(h);
- Serial.print(" %\t Temperature: ");
- Serial.print(t);
- Serial.print(" *C ");
- Serial.print(f);
- Serial.print(" *F\t Heat index: ");
- Serial.print(hic);
- Serial.print(" *C ");
- Serial.print(hif);
- Serial.print(" *F");
- Serial.print("Humidity: ");
- Serial.print(h);
- Serial.print(" %\t Temperature: ");
- Serial.print(t);
- Serial.print(" *C ");
- Serial.print(f);
- Serial.print(" *F\t Heat index: ");
- Serial.print(hic);
- Serial.print(" *C ");
- Serial.print(hif);
- Serial.println(" *F");
- }
- client.println("HTTP/1.1 200 OK");
- client.println("Content-Type: text/html");
- client.println("Connection: close");
- client.println();
- // your actual web page that displays temperature and humidity
- client.println("<!DOCTYPE HTML>");
- client.println("<html>");
- client.println("<head></head><body><h1>ESP8266 - Temperature and Humidity</h1><h3>Temperature in Celsius: ");
- client.println(celsiusTemp);
- client.println("*C</h3><h3>Temperature in Fahrenheit: ");
- client.println(fahrenheitTemp);
- client.println("*F</h3><h3>Humidity: ");
- client.println(humidityTemp);
- client.println("%</h3><h3>");
- client.println("</body></html>");
- break;
- }
- if (c == '\n') {
- // when starts reading a new line
- blank_line = true;
- }
- else if (c != '\r') {
- // when finds a character on the current line
- blank_line = false;
- }
- }
- }
- // closing the client connection
- delay(1);
- client.stop();
- Serial.println("Client disconnected.");
- }
- }
|