ESP8266 управление реле и считывание датчиков

Тема в разделе "ESP8266, ESP32", создана пользователем turenergo, 12 фев 2018.

  1. turenergo

    turenergo Нуб

    Здравствуйте, помогите советом имеется ESP8266 три датчика температуры 18b20, и 4 реле, благодаря ютубу не знаю можно или нельзя вкладывать ссылки но оно вот (

    ) немного подредактировал скетч, сделал проброс портов роутере занеся мой ESP в DMZ и сейчас всё работает, но Вопрос как установить пароль входа на моё ESP ? а то любой набравший мой ip может творить что угодно и посмотрите скетч мне кажется он оооочень корявенький периодически слетают датчики . Спасибо
     
    Последнее редактирование: 12 фев 2018
  2. DIYMan

    DIYMan Guest

    Для вставки кода есть кнопочка "<>" на тулбаре редактора. Без этого - читать невозможно.
     
  3. turenergo

    turenergo Нуб

    Понял попробую
     
  4. turenergo

    turenergo Нуб

    Здравствуйте, помогите советом имеется ESP8266 три датчика температуры 18b20, и 4 реле, благодаря ютубу не знаю можно или нельзя вкладывать ссылки но оно вот (


    ) немного подредактировал скетч, сделал проброс портов роутере занеся мой ESP в DMZ и сейчас всё работает, но Вопрос как установить пароль входа на моё ESP ? а то любой набравший мой ip может творить что угодно и посмотрите скетч мне кажется он оооочень корявенький периодически слетают датчики . Спасибо
    Код (C++):

    #include <ESP8266WiFi.h>
    #include <WiFiClient.h>
    #include <ESP8266WebServer.h>
    #include <ESP8266mDNS.h>

    #include <OneWire.h>
    #include <DallasTemperature.h>


    #define ONE_WIRE_BUS 14
    #define ONE_WIRE_BUS 13
    #define ONE_WIRE_BUS 12


    OneWire oneWire(ONE_WIRE_BUS);
    DallasTemperature sensors(&oneWire);

    MDNSResponder mdns;

    // Wi-Fi
    const char* ssid = "TP-LINK_A70AF6";
    const char* password = "xxxxxx";

    byte arduino_mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
    IPAddress ip(192,168,1,35);
    IPAddress gateway(192,168,1,1);
    IPAddress subnet(255,255,255,0);

    ESP8266WebServer server(80);

    int D0_pin = 16;
    int D1_pin = 5;

    void setup(void){
      // preparing GPIOs
      pinMode(D0_pin, OUTPUT);
      digitalWrite(D0_pin, LOW);
      pinMode(D1_pin, OUTPUT);
      digitalWrite(D1_pin, LOW);
     
      sensors.begin();

      delay(100);
      Serial.begin(115200);
      WiFi.begin(ssid, password);
      WiFi.config(ip, gateway, subnet);
     
      Serial.println("");

      // Wait for connection
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
       Serial.print(".");
      }
      Serial.println("");
      Serial.print("Connected to ");
      Serial.println(ssid);
      Serial.print("IP address: ");
      Serial.println(WiFi.localIP());
     
      if (mdns.begin("esp8266", WiFi.localIP())) {
        Serial.println("MDNS responder started");
      }
     
      //+++++++++++++++++++++++ START  LED-1 ++++++++++++++++++++
      server.on("/", [](){
        server.send(200, "text/html", webPage());
      });
      server.on("/socket1On", [](){
        digitalWrite(D0_pin, HIGH);
        server.send(200, "text/html", webPage());
        delay(100);
       
      });
      server.on("/socket1Off", [](){
        digitalWrite(D0_pin, LOW);
        server.send(200, "text/html", webPage());
        delay(100);
    });  
       //+++++++++++++++++++++++ END  LED-1 ++++++++++++++++++++

    //+++++++++++++++++++++++ START  LED-3  ++++++++++++++++++++

      server.on("/socket3On", [](){
        digitalWrite(D1_pin, HIGH);
        server.send(200, "text/html", webPage());
        delay(100);  
      });
      server.on("/socket3Off", [](){
        digitalWrite(D1_pin, LOW);
        server.send(200, "text/html", webPage());
        delay(100);
       });
       // +++++++++++++++++++++++ END  LED-3 ++++++++++++++++++++
       
     
      server.begin();
      Serial.println("HTTP server started");
    }
    void loop(void){
      server.handleClient();
    }

    String webPage()
    {
      sensors.requestTemperatures();
      byte temperature = 0;
      byte humidity = 0;
      String web;
      web += "<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/> <meta charset=\"utf-8\"><title>ESP 8266</title><style>button{color:red;padding: 10px 27px;}</style></head>";
      web += "<h1 style=\"text-align: center;font-family: Open sans;font-weight: 100;font-size: 20px;\">Web Server HOME</h1><div>";
      //++++++++++ LED-1  +++++++++++++
      web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">----KOTEL----</p>";
      if (digitalRead(D0_pin) == 1)
      {
        web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #43a209;margin: 0 auto;\">ON</div>";
      }
      else
      {
        web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #ec1212;margin: 0 auto;\">OFF</div>";
      }
      web += "<div style=\"text-align: center;margin: 5px 0px;\"> <a href=\"socket1On\"><button>ON</button></a>&nbsp;<a href=\"socket1Off\"><button>OFF</button></a></div>";
      // ++++++++ LED-1 +++++++++++++

    //++++++++++ LED-3  +++++++++++++
      web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">----TEN2----</p>";
      if (digitalRead(D1_pin) == 1)
      {
        web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #43a209;margin: 0 auto;\">ON</div>";
      }
      else
      {
        web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #ec1212;margin: 0 auto;\">OFF</div>";
      }
      web += "<div style=\"text-align: center;margin: 5px 0px;\"> <a href=\"socket3On\"><button>ON</button></a>&nbsp;<a href=\"socket3Off\"><button>OFF</button></a></div>";
      // ++++++++ LED-3 +++++++++++++
     
     
       //++++++++++ temp DOM  +++++++++++++
      web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">----T KOTLA----</p>";
      web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #5191e4;margin: 0 auto;\">"+ String(sensors.getTempCByIndex(0))+"</div>";
      // ++++++++ DS18B20 TEMP  +++++++++++++

    //++++++++++ temp ULICA  +++++++++++++
      web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">----T DOMA----</p>";
      web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #5191e4;margin: 0 auto;\">"+ String(sensors.getTempCByIndex(1))+"</div>";
      // ++++++++ DS18B20 TEMP  +++++++++++++


    //++++++++++ temp ULICA  +++++++++++++
      web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">----T ULICA----</p>";
      web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #5191e4;margin: 0 auto;\">"+ String(sensors.getTempCByIndex(2))+"</div>";
      // ++++++++ DS18B20 TEMP  +++++++++++++

     
     
      // ========REFRESH=============
      web += "<div style=\"text-align:center;margin-top: 20px;\"><a href=\"/\"><button style=\"width:158px;\">REFRESH</button></a></div>";
      // ========REFRESH=============
     
     
      web += "</div>";
      return(web);
    }
     
  5. DIYMan

    DIYMan Guest

  6. turenergo

    turenergo Нуб

    Спасибо, я читал, но в силу своей необразованности, так и не смог реализовать на конкретном примере, что писать как писать необходимо ли подключать библиотеки, может есть какой то пример реализации оного
     
  7. Airbus

    Airbus Радиохулиган Модератор

    Загрузите Blynk. " это как раз для тупых для тех кому некогда.
    Код (C++):
    /*************************************************************
      This example runs directly on ESP8266 chip.
      Note: This requires ESP8266 support package:
      Change WiFi ssid, pass, and Blynk auth token to run :)
      Feel free to apply it to any other example. It's simple!
      Скомпилено!
    *************************************************************/

    #define BLYNK_PRINT Serial
    #include <ESP8266WiFi.h>
    #include <BlynkSimpleEsp8266.h>
    char auth[] = "Ваш токен"; //Токен
    char ssid[] = "Sky Line"; //имя сети
    char pass[] = "222222222"; //пароль

    void setup()
    {
      Serial.begin(9600);
      Blynk.begin(auth, ssid, pass);
    }

    void loop()
    {
      Blynk.run();
    }
    Вешь реально мощная и красивая!
     
  8. turenergo

    turenergo Нуб

    не хотелось связываться с посредниками, хочется реализовать всё на своём
     
  9. turenergo

    turenergo Нуб

    Можно пример скетча или ссылку на непочитать а скопировать на готовый пример организации входа в esp по паролю и какие необходимы библиотеки. Спасибо, блинк поставил работает, но всетаки хотелось бы реализовать своё
     
    Последнее редактирование: 18 фев 2018