Blynk + html+ espl01

fanat.arduino
Offline
Зарегистрирован: 10.11.2019

Здравствуйте, помогите пожалуйста. Столкнулся с проблемой( из-за не опытности), надо чтоб температуру c датчика dht11 передала на blynk и httml. Скетч нашел, соединить не могу, заранее спасибо.

#include "ESP8266WiFi.h"                                // Подключаем библиотеку ESP8266WiFi
#include "Adafruit_Sensor.h"                            // Adafruit_Sensor
#include "DHT.h"                                        // Подключаем библиотеку DHT
 
const char* ssid = "тут имя";               // Название Вашей WiFi сети
const char* password = "тут пароль";          // Пароль от Вашей WiFi сети
 
#define DHTPIN 2                                        // Пин к которому подключен датчик
#define DHTTYPE DHT11                                   // Используемый датчик DHT 11
  // #define DHTTYPE DHT21
  // #define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);                               // Инициализируем датчик
WiFiServer server(80);                                  // Указываем порт Web-сервера
 
void setup() 
{
  Serial.begin(115200);                                 // Скорость передачи 115200 
  delay(10);                                            // Пауза 10 мкс
  dht.begin();                                          // Инициализация DHT
                             
  Serial.println("");                                   // Печать пустой строки 
  Serial.print("Connecting to ");                       // Печать "Подключение к:"
  Serial.println(ssid);                                 // Печать "Название Вашей WiFi сети"
  
  WiFi.begin(ssid, password);                           // Подключение к WiFi Сети
  
  while (WiFi.status() != WL_CONNECTED)                 // Проверка подключения к WiFi сети
  {
   delay(500);                                          // Пауза 500 мкс
   Serial.print(".");                                   // Печать "."
  }
   Serial.println("");                                  // Печать пустой строки                                          
   Serial.println("WiFi connected");                    // Печать "Подключение к WiFi сети осуществлено"
   server.begin();                                      // Запуск Web сервера
   Serial.println("Web server running.");               // Печать "Веб-сервер запущен"
   delay(10000);                                        // Пауза 10 000 мкс
   Serial.println(WiFi.localIP());                      // Печатаем полученный IP-адрес ESP
}
void loop() 
{
 WiFiClient client = server.available();                // Получаем данные, посылаемые клиентом 
  
 if (client){
  Serial.println("New client");                         // Отправка "Новый клиент"
  boolean blank_line = true;                            // Создаем переменную, чтобы определить конец HTTP-запроса 
  while (client.connected()){                           // Пока есть соединение с клиентом 
    if (client.available()){                            // Если клиент активен 
     char c = client.read();                            // Считываем посылаемую информацию в переменную "с"
     if (c == '\n' && blank_line){                      // Вывод HTML страницы 
       float t = dht.readTemperature();                  // Запрос на считывание температуры
       float h = dht.readHumidity();
       client.println("HTTP/1.1 200 OK");               // Стандартный заголовок HTTP 
       client.println("Content-Type: text/html"); 
       client.println("Connection: close");             // Соединение будет закрыто после завершения ответа
       client.println("Refresh: 10");                   // Автоматическое обновление каждые 10 сек 
       client.println();
       client.println("<!DOCTYPE HTML>");               // Веб-страница создается с использованием HTML
       client.println("<html>");                        // Открытие тега HTML 
       client.println("<head>");
       client.print("<title>ESP8266 TEMP</title>");     // Название страницы
       client.println("</head>");
       client.println("<body>");
      client.println("<h1>ESP8266 - Temperature & Humidity</h1>"); 
       client.println("<h3>t = ");
       client.println(t);                               // Отображение температуры
       client.println("*C</h3>");
       client.println("</head>");
       client.println("<body>");
       client.println("<h3>H= ");
       client.println(h);                               // Отображение влажности
       client.println("</h3>");
       client.println("</body>");
     client.println("</html>");                       // Закрытие тега HTML 
    break;                                           // Выход
       }
        if (c == '\n'){                                 // Если "с" равен символу новой строки                                             
         blank_line = true;                             // Тогда начинаем новую строку
        }                                          
         else if (c != '\r'){                           // Если "с" не равен символу возврата курсора на начало строки                                        
          blank_line = false;                           // Тогда получаем символ на текущей строке 
         }                                        
    }
  }  
    client.stop();                                      // Закрытие соединения
    Serial.println("Client disconnected.");             // Печать "Клиент отключен"
}
}
/**************************************************************
 * Blynk is a platform with iOS and Android apps to control
 * Arduino, Raspberry Pi and the likes over the Internet.
 * You can easily build graphic interfaces for all your
 * projects by simply dragging and dropping widgets.
 *
 *   Downloads, docs, tutorials: http://www.blynk.cc
 *   Blynk community:            http://community.blynk.cc
 *   Social networks:            http://www.fb.com/blynkapp
 *                               http://twitter.com/blynk_app
 * Blynk library is licensed under MIT license
 *
 **************************************************************
 * Внимание :
 * Для этого скетча вам необходима данная библиотека:
 *   https://github.com/jfturcot/SimpleTimer
 *
 * DHT11 ----pin 2
 *  
 *
 **************************************************************/

#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
#include <dht11.h>
dht11 DHT;
#define DHT11_PIN 2
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "*******************************"; //Токен сгенерированый Блинком (Проверьте почту)
SimpleTimer timer;
void setup()
{
  Serial.begin(9600); // See the connection status in Serial Monitor
   Blynk.begin(auth, "***SSID*****", "***KEY**"); //сюда вписываем имя и пароль WiFi сети
 
  // Setup a function to be called every second
  timer.setInterval(1000L, sendUptime);
}
// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendUptime()
{
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(10, DHT.temperature); //Виртульный pin
  Blynk.virtualWrite(11, DHT.humidity); // Виртульный pin 
}
void loop()
{
  Blynk.run(); // Initiates Blynk
  timer.run(); // Initiates SimpleTimer
  int chk; 
  chk = DHT.read(DHT11_PIN);    // READ DATA
}

    

b707
Offline
Зарегистрирован: 26.05.2017

За что спасибо? Если хотите, чтобы кто-то сделал за вас- спасибом не отделаетесь

fanat.arduino
Offline
Зарегистрирован: 10.11.2019

это понятно, я не прям хочу, чтоб предоставили готовый скетч, мб ссылочку почитпть

sadman41
Offline
Зарегистрирован: 19.10.2016

Читать как кто-то соединял два точно таких же скетча или что?

fanat.arduino
Offline
Зарегистрирован: 10.11.2019

я пытался соединить 2 скетча, если было бы так просто в этой жизни.

sadman41
Offline
Зарегистрирован: 19.10.2016

Демонстрируйте, как пытались...

fanat.arduino
Offline
Зарегистрирован: 10.11.2019

Блин, скетч не сохранился, пытаюсь вспомнить 

b707
Offline
Зарегистрирован: 26.05.2017

fanat.arduino пишет:

Блин, скетч не сохранился, пытаюсь вспомнить 

если писали сами - вспомнить легко

fanat.arduino
Offline
Зарегистрирован: 10.11.2019
#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
#include <dht11.h>
#include <Adafruit_Sensor.h>                            // Adafruit_Sensor
#include <DHT.h>
#define DHTPIN 2    
DHT dht(DHTPIN, DHT11);
#define DHT11_PIN 2
char ssid[] = "тут имя";               
 char password[] = "тут пароль"; 
char auth[] = "8SjAfjfo72jlp6tD9WBPblf-mCVaQFK-"; //Токен сгенерированый Блинком (Проверьте почту)
SimpleTimer timer;
WiFiServer server(80);   
dht11 DHT;
void setup()
{
  Serial.begin(9600); // See the connection status in Serial Monitor
   Blynk.begin(auth, ssid, password); //сюда вписываем имя и пароль WiFi сети
 timer.setInterval(1000L, sendUptime);
 delay(10);                                            // Пауза 10 мкс
  dht.begin();                                          // Инициализация DHT
  Serial.println("");                                   // Печать пустой строки
  Serial.print("Connecting to ");                       // Печать "Подключение к:"
  Serial.println(ssid);                                 // Печать "Название Вашей WiFi сети"
  WiFi.begin(ssid, password);                           // Подключение к WiFi Сети
  while (WiFi.status() != WL_CONNECTED)                 // Проверка подключения к WiFi сети
  {
   delay(500);                                          // Пауза 500 мкс
   Serial.print(".");                                   // Печать "."
  }
   Serial.println("");                                  // Печать пустой строки                                         
   Serial.println("WiFi connected");                    // Печать "Подключение к WiFi сети осуществлено"
   server.begin();                                      // Запуск Web сервера
   Serial.println("Web server running.");               // Печать "Веб-сервер запущен"
   delay(10000);                                        // Пауза 10 000 мкс
   Serial.println(WiFi.localIP());                      // Печатаем полученный IP-адрес ESP
}
void sendUptime()
{
Blynk.virtualWrite(10, DHT.temperature); //Виртульный pin
 Blynk.virtualWrite(11, DHT.humidity); // Виртульный pin 
}
void loop()
{
  Blynk.run(); // Initiates Blynk
  timer.run(); // Initiates SimpleTimer
  int chk; 
 chk = DHT.read(DHT11_PIN);    // READ DATA
   html();
}
void html()
{
 WiFiClient client = server.available();                // Получаем данные, посылаемые клиентом
 if (client){
  Serial.println("New client");                         // Отправка "Новый клиент"
  boolean blank_line = true;                            // Создаем переменную, чтобы определить конец HTTP-запроса
  while (client.connected()){                           // Пока есть соединение с клиентом
    if (client.available()){                            // Если клиент активен
     char c = client.read();                            // Считываем посылаемую информацию в переменную "с"
     if (c == '\n' && blank_line){                      // Вывод HTML страницы
       float t = dht.readTemperature();                  // Запрос на считывание температуры
       float h = dht.readHumidity();
       client.println("HTTP/1.1 200 OK");               // Стандартный заголовок HTTP
       client.println("Content-Type: text/html");
       client.println("Connection: close");             // Соединение будет закрыто после завершения ответа
       client.println("Refresh: 10");                   // Автоматическое обновление каждые 10 сек
       client.println();
       client.println("<!DOCTYPE HTML>");               // Веб-страница создается с использованием HTML
       client.println("<html>");                        // Открытие тега HTML
       client.println("<head>");
       client.print("<title>ESP8266 TEMP</title>");     // Название страницы
       client.println("</head>");
       client.println("<body>");
      client.println("<h1>ESP8266 - Temperature & Humidity</h1>");
       client.println("<h3>t = ");
       client.println(t);                               // Отображение температуры
       client.println("*C</h3>");
       client.println("</head>");
       client.println("<body>");
       client.println("<h3>H= ");
       client.println(h);                               // Отображение влажности
       client.println("</h3>");
       client.println("</body>");
     client.println("</html>");                       // Закрытие тега HTML
    break;                                           // Выход
       }
        if (c == '\n'){                                 // Если "с" равен символу новой строки                                            
         blank_line = true;                             // Тогда начинаем новую строку
        }                                         
         else if (c != '\r'){                           // Если "с" не равен символу возврата курсора на начало строки                                       
          blank_line = false;                           // Тогда получаем символ на текущей строке
         }                                       
    }
  } 
    client.stop();                                      // Закрытие соединения
    Serial.println("Client disconnected.");             // Печать "Клиент отключен"
}
}

Получилось так, еще не пробовал, пока загружается. 

fanat.arduino
Offline
Зарегистрирован: 10.11.2019

Это работает, но чет криво, он конется к блинку секунд  через 5, а сервер дает секунд через 15, примерно

fanat.arduino
Offline
Зарегистрирован: 10.11.2019

Поставил ds18b20, на сервере показывает, а dht 11 не всегда, мб в  скетче проблема, а м б в питании, я все делаю на Breadboard'e

sadman41
Offline
Зарегистрирован: 19.10.2016

DHTxx должны читаться не чаще раза в 1-2 секунды (в зависимости от модели).

fanat.arduino
Offline
Зарегистрирован: 10.11.2019

Вкурсе, в скетче стоит 10 секунд. в блинке все норм, вроде как. Добавил еще ds18b20,  с ним все хорошо.

fanat.arduino
Offline
Зарегистрирован: 10.11.2019

уже задержку поставил 5 секунд, все равно не хочет, попробовал другой скетч. такая же фигня, мб сломал, когда припаивал его.