• Система автоматизации с открытым исходным кодом на базе 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)
 
Сверху Снизу