• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Не отправляются данные в blynk

doc6789

New member
Добрый день!

Есть простой скетч, отправляет данные температуры и состояние батареи в blynk.
Вчера добавил: ESP.deepSleep(60e6);
Температура приходит, а напряжение - нет.
Помогите разобраться, в чем моя ошибка.

Код:
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <OneWire.h>
#include <DallasTemperature.h>

char auth[] = "токен";


char ssid[] = "TP-Link";
char pass[] = "пасс";

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

// переменные для мониторинга напряжения
unsigned int raw=0;
float volt=0.0;

void sendTemps()
{
  sensors.requestTemperatures();
  float temp = sensors.getTempCByIndex(0);
  Serial.println(temp);
  Blynk.virtualWrite(V11, temp);
}

void Volt_v()
{
 // мониторинг напряжения - вычисление
  pinMode(A0, INPUT);
  raw = analogRead(A0);
  volt=raw/1023.0;
  volt=volt*4.2;
  Blynk.virtualWrite(V1, volt);
}

void setup()
{
  // Debug console
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  sensors.begin();
  Blynk.run();
  sendTemps();
  Volt_v();
  ESP.deepSleep(60e6);
}
void loop()
{
 
}
 

doc6789

New member
эм, нет, не работает.
странность какая-то.
Код:
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <OneWire.h>
#include <DallasTemperature.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "TP-Link";
char pass[] = "";


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


// переменные для мониторинга напряжения
unsigned int raw=0;
float volt=0.0;

void sendTemps()
{
  sensors.requestTemperatures();
  float temp = sensors.getTempCByIndex(0);
  Serial.println(temp);
  Blynk.virtualWrite(V11, temp);
}

void Volt_v()
{
 // мониторинг напряжения - вычисление
  pinMode(A0, INPUT);
  raw = analogRead(A0);
  volt=raw/1023.0;
  volt=volt*4.2;
  Blynk.virtualWrite(V1, volt);
}

void setup()
{
  // Debug console
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  sensors.begin();
  sendTemps();
  Volt_v();
  ESP.deepSleep(60e6);
}
void loop()
{
   Blynk.run();
}
 

doc6789

New member
а если добавить "Терминал", то напряжение показывается и в терминале и в "Value Display"
Код:
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <OneWire.h>
#include <DallasTemperature.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "TP-Link";
char pass[] = "";

WidgetTerminal terminal(V1);

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


// переменные для мониторинга напряжения
unsigned int raw=0;
float volt=0.0;

void sendTemps()
{
  sensors.requestTemperatures();
  float temp = sensors.getTempCByIndex(0);
  Serial.println(temp);
  Blynk.virtualWrite(V11, temp);
}

void Volt_v()
{
// мониторинг напряжения - вычисление
  pinMode(A0, INPUT);
  raw = analogRead(A0);
  volt=raw/1023.0;
  volt=volt*4.2;
  Blynk.virtualWrite(V1, volt);
  terminal.print(volt);  // To Terminal Widget
  terminal.flush();
}

void setup()
{
  // Debug console
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  sensors.begin();
  sendTemps();
  Volt_v();
  ESP.deepSleep(60e6);
}
void loop()
{
   Blynk.run();
}

отличие в 3х строчках. Терминал мне особо не нужен, хочется чтобы работало без него.
 

svs2007m

Active member
С одного раза сервер Blynk не всегда конектится.(ESP.deepSleep "гасить" эту связь каждый раз) А если нет конекта то и все остальное "мусор". В примерах все это есть !!! как организовать "грамотную" связь.
Если проблемы с Blynk только из-за ESP.deepSleep, попробуйте поставить задержку между функциями или организовать их опрос через таймеры (BlynkSimpleEsp8266.h)
 
Сверху Снизу