Добрый день!
Использую приложение Blynk на Андроид 4.4.4. Blynk Library 0.6.1, Arduino IDE 1.8.13
Для визуализации использую виджет ValueDispley - 2 графика с опросом по 5сек каждый (или Push)
Схема: два датчика DS18B20 сидят на GPIO 0 модуля ESP-01. Опрос вызывается по таймеру.
Если делаю:
3000L = раз в 3 секунды, 1час = 264кб (185 МБ/мес)
30000L = раз в 30сек, 1час = 75кб (54 МБ/мес)
60000L = раз в 1мин, 1час = 61кб (42 МБ/мес)
Т.е. трафик складывается из:
- неуменьшаемого остатка 0.93кб/мин (55 кБ/час или 39.6 Мб/месяц);
- полезные данные: каждое считывание 180байт/раз.
Не пойму куда уходят эти 55 кб/час и как от них избавиться…
Если в “void loop” добавить “delay (10000)” трафик падает до 38кб в час, но появляются нестабильные пропуски с дисконнектами.
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
// #include <Blynk.h>
char auth[] = "---------"; // проект в приложении Blynk: "Esp-relay-ds18b20"
char ssid[] = "---------";
char pass[] = "----";
#include <SimpleTimer.h>
SimpleTimer timer;
#include <DallasTemperature.h>
#include <OneWire.h> // для датчика температуры
#define IN_DS18b20 2 // определяем название для ноги на которой сидит датчик температуры (вход GP2)
#define OUT_Relay 0 // определяем название для ноги на которой сидит управление реле (GP0)
#define OUT_LED 1 // определяем название для ноги на которой сидит управление реле (GP1)
OneWire oneWire(IN_DS18b20); // активируем объект OneWire (датчик на ноге GP3)
DallasTemperature DS18B20(&oneWire);
int temp_0; // значение температуры от первого датчика DS18B20
int temp_1; // значение температуры от второго датчика DS18B20
// ------------------------------- Установки ---------------------------------
void setup()
{
Serial.begin(9600); // если совсем заремовать, то трафик вырастает до 5мб в час, 2400 - не дает эффекта
Blynk.begin(auth, ssid, pass);
DS18B20.begin();
timer.setInterval(60000L, getSendData); // - для DS18b20 посл. 60000L прошил 4.09.2020
pinMode(IN_DS18b20, INPUT); // датчик температуры
pinMode(OUT_Relay, OUTPUT); // реле
digitalWrite(OUT_LED, 1); // светодиод отключить
digitalWrite(OUT_Relay, 0); // реле отключить
}
// ---------------- отправка данных датчиков в Blynk ------------------------
void getSendData()
{
DS18B20.requestTemperatures();
temp_0 = DS18B20.getTempCByIndex(0); // Sensor 0 показания для датчика 1 в цельсиях
temp_1 = DS18B20.getTempCByIndex(1); // Sensor 0 показания для датчика 2 в цельсиях
Blynk.virtualWrite(10, temp_0); //вывод данных на виртуальный пин V10
Blynk.virtualWrite(11, temp_1); //вывод данных навиртуальный пин V11
}
// ------------------------------- Главный Цикл ------------------------------
void loop()
{
Blynk.run();
timer.run();
delay(1000); // задержка 1 сек ничего не дает, с 10 сек трафик падает до 38кб в час, но появляются пропуски...
}
Подскажите пожалуйста, что может “высасывать” трафик и можно ли его уменьшить как-то?