Acest proiect poate fi realizat de către autor contra cost

Server web cu NodeMCU/ESP8266 si DHT11 in Arduino IDE

Am facut acest proiect pentru a scapa de drumurile prin frig pana la camera tehnica a centralei si a ma atentiona (prin intermediul unui client - proiect separat) daca temperatura din aceea camera scade sub 3 grade Celsius (pericol de inghet al tevilor, vad temperatura aceea .. am timp sa incalzesc camera).

De ce e nevoie: 
- modul NodeMCU sau direct ESP8266
- sursa de alimentare pentru modulul de mai sus (folosesc un vechi incarcator de telefon cu mufa de iesire de microUSB)
- senzorul de temperatura si umiditate DHT11

Pasul 1: Codul sursa (Arduino IDE)

/**
 * DOCS:
 *    https://github.com/esp8266/Arduino/blob/master/doc/reference.md
 *    http://playground.arduino.cc/Main/DHT11Lib
 */
 
#include <ESP8266WiFi.h>
#include <WiFiClient.h> 
#include <ESP8266WebServer.h>
#include <dht11.h>

const char* ssid = "NAME_AP";
const char* password = "PASSWORD_AP";

ESP8266WebServer server(80);

dht11 DHT11;
#define DHT11PIN 5
String temp_txt = "";

void handleRoot()
{
  server.send(200, "text/plain", get_temp_humidity_string());
}

void setup()
{
  delay(5000);
  Serial.begin(115200);
  delay(5000);
  connect_as_hosting_wifi();
}

void connect_as_hosting_wifi()
{
  WiFi.softAP(ssid, password);
  temp_txt = "WiFi setup with " + (String) ssid + ":" + (String) password;
  Serial.println(temp_txt);

  IPAddress myIP = WiFi.softAPIP();
  
  server.on("/", handleRoot);
  
  server.begin();
  temp_txt = "HTTP Server started on " + (String) myIP;
  Serial.println(temp_txt);
}

String get_temp_humidity_string()
{
  String txt;
  int chk = DHT11.read(DHT11PIN);
  switch (chk)
  {
    case DHTLIB_OK: 
      // OK!
      txt = "T: " + (String) DHT11.temperature + " C  ";
      txt += " H: " + (String) DHT11.humidity + "%";
      return txt; 
    break;
    case DHTLIB_ERROR_CHECKSUM: 
      return "Checksum error"; 
    break;
    case DHTLIB_ERROR_TIMEOUT: 
      return "Time out error"; 
    break;
    default: 
      return "Unknown error"; 
    break;
  }
}

void loop()
{
  server.handleClient();
}

Pasul 2: Testarea noului server

Server web cu NodeMCU/ESP8266 si DHT11 in Arduino IDE - Testarea noului server

Pentru a putea accesa noul server trebuie sa ne conectam la reteaua WiFi nou creata. Vedem ce IP are noul AP (de obicei 192.168.4.1) si-l deschidem in browser: "http://192.168.4.1".

Asta e tot :) Urmatorul tutorial o sa fie despre cum sa facem un client robust pentru acest server care sa ne afiseze temperatura si umiditatea pe un ecran LCD 16x2.


Despre autor

sorin
Telefon: 0724540234
Trimite-i un email


Faci ceva interesant?

Adaugă proiectul tău acum!