esp8266+d1820+blynk
- Войдите на сайт для отправки комментариев
Пт, 29/11/2019 - 17:02
добрый день. Прошу помочь уже 3 день пытаюсь разобраться с кодом, в коде не особо понимаю, сделал уведомления на блинк, но уведомления приходят не корректно, первый датчик может раз 10 придти подряд между ними 1 раз может появится второй, как мне сделать чтобы уведомления от всех датчиков приходили одинакого или какую переменную использовать, чтобы выбрать количество уведомлений.ОЧЕНЬ ПРОШУ ОБЪЯСНИТЬ КАК НОВИЧКУ И НЕ СУДИТЬ ПО НАБРОСКУ КОДА.
/* ESP & Blynk */
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#define BLYNK_PRINT Serial
/* Blynk credentials */
char auth[] = "V91W53TJHCbmdciVJHM7a_lkcvsJj0AT";
/* WiFi credentials */
char ssid[] = "Unknown";
char pass[] = "05050505";
/* TIMER */
#include <SimpleTimer.h>
SimpleTimer timer;
/* DS18B20 Temperature Sensor */
#include <OneWire.h>
#include<DallasTemperature.h>
#define ONE_WIRE_BUS 2 // DS18B20 подключаем на D4 на плате
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature DS18B20(&oneWire);
float temp_0;
float temp_1;
float temp_2;
float temp_3;
float temp_4;
float tempnot1;
float tempnot2;
float tempnot3;
float tempnot4;
float tempnot5;
void setup()
{
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
DS18B20.begin();
timer.setInterval(5000L, getSendData);
Serial.println(" ");
Serial.println("Testing Dual Sensor data");
}
void loop()
{
timer.run(); // Initiates SimpleTimer
Blynk.run();
////////////////////1
if ( (temp_0 > 30 ) && (millis() > tempnot1+5000 ) )
{
tempnot1 = millis();
Blynk.notify(String("Датчик N1 выше ")+temp_0 + String("C"));
}
if ( (temp_0 < 13 ) && (millis() > tempnot1+5000 ) )
{
tempnot1 = millis();
Blynk.notify(String("Датчик N1 ниже ")+temp_0 + String("C"));
}
if ( (temp_1 > 30 ) && (millis() > tempnot2+6000 ) )
{
tempnot2 = millis();
Blynk.notify(String("Датчик N2 выше ")+temp_1 + String("C"));
}
if ( (temp_1 < 13 ) && (millis() > tempnot2+6000 ) )
{
tempnot2 = millis();
Blynk.notify(String("Датчик N2 ниже ")+temp_1 + String("C"));
}
///////////////////3
if ( (temp_2 > 30 ) && (millis() > tempnot3+7000 ) )
{
tempnot3 = millis();
Blynk.notify(String("Датчик N3 выше ")+temp_2 + String("C"));
}
if ( (temp_2 < 13 ) && (millis() > tempnot3+7000 ) )
{
tempnot3 = millis();
Blynk.notify(String("Датчик N3 ниже ")+temp_2 + String("C"));
}
///////////////////4
if ( (temp_3 > 30 ) && (millis() > tempnot4+50000 ) )
{
tempnot4 = millis();
Blynk.notify(String("Датчик N4 выше ")+temp_3 + String("C"));
}
if ( (temp_3 < 13 ) && (millis() > tempnot4+50000 ) )
{
tempnot4 = millis();
Blynk.notify(String("Датчик N4 ниже ")+temp_3 + String("C"));
}
/////////////////5
if ( (temp_4 > 30 ) && (millis() > tempnot5+50000 ) )
{
tempnot5 = millis();
Blynk.notify(String("Датчик N5 выше ")+temp_4 + String("C"));
}
if ( (temp_4 < 13 ) && (millis() > tempnot5+50000 ) )
{
tempnot5 = millis();
Blynk.notify(String("Датчик N5 ниже ")+temp_4 + String("C"));
}
}
/***************************************************
* Send Sensor data to Blynk
**************************************************/
void getSendData()
{
DS18B20.requestTemperatures();
temp_0 = DS18B20.getTempCByIndex(0); // Sensor 0 показания для датчика 1 в цельсиях
temp_1 = DS18B20.getTempCByIndex(1); // Sensor 0 показания для датчика 2 в цельсиях
temp_2 = DS18B20.getTempCByIndex(2); // Sensor 0 показания для датчика 2 в цельсиях
temp_3 = DS18B20.getTempCByIndex(3); // Sensor 0 показания для датчика 2 в цельсиях
temp_4 = DS18B20.getTempCByIndex(4); // Sensor 0 показания для датчика 2 в цельсиях
Serial.print("Temp_0: ");
Serial.print(temp_0);
Serial.print(" oC ");
Serial.print("Temp_1: ");
Serial.print(temp_1);
Serial.println(" oC");
Serial.print("Temp_2: ");
Serial.print(temp_2);
Serial.println(" oC");
Serial.print("Temp_3: ");
Serial.print(temp_3);
Serial.println(" oC");
Serial.print("Temp_4: ");
Serial.print(temp_4);
Serial.println(" oC");
Blynk.virtualWrite(11, temp_0);
Blynk.virtualWrite(12, temp_1); //вывод данных навиртуальный пин
Blynk.virtualWrite(13, temp_2);
Blynk.virtualWrite(14, temp_3); //вывод данных навиртуальный пин
Blynk.virtualWrite(15, temp_4); //вывод данных навиртуальный пин
}
Где Вы взяли этот код?
на ютубе у турка одного, что-то добавил от себя
вот оригинал
/* * gungor 01/01/2019 */ #define BLYNK_PRINT Serial #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> #include <OneWire.h> #include <DallasTemperature.h> OneWire oneWire(D2); // digital D2 pin DallasTemperature sensors(&oneWire); BlynkTimer timer; // You should get Auth Token in the Blynk App. char auth[] = "YourToken"; // Your WiFi credentials. char ssid[] = "YourNetworkName"; char pass[] = "YourPassword"; float temp = 0; float SonMesaj = 0; float SonEMail = 0; void setup() { Serial.begin(115200); Blynk.begin(auth, ssid, pass); sensors.begin(); // Setup a function to be called every second timer.setInterval(1000L, sendTemps); } void sendTemps() { sensors.requestTemperatures(); temp = sensors.getTempCByIndex(0); Serial.println(String("Sıcaklik=")+temp+ String(" C")); Blynk.virtualWrite(V1, temp); } void loop() { Blynk.run(); timer.run(); if ( (temp > 30 ) && (millis() > SonMesaj+3000 ) ) { SonMesaj = millis(); Blynk.notify(String("Uyari ")+temp + String("C")); } if ( (temp > 30 ) && (millis() > SonEMail+3000 ) ) { SonEMail = millis(); Blynk.email("gungoryalcin68@Gmail.com","Blynk Deneme",String("Uyari ")+temp + String("C")); } }Не, ну я не понял, а как Вы узнаете где находится датчик?
повешу, потрогаю ручками и прономерую)
повешу, потрогаю ручками и прономерую)
Про Вас все понятно - сенсист. А программа как узнает?
не понял о чем вы
можете помочь с кодом?
можете помочь с кодом?
Гы, а может с программой?
можете помочь с кодом?
Лично я - нет. Лучше, к турку обратитесь.
А вот конструкции типа
могут подвести Вас. При долгой работе (50 суток) устройства, когда millis перейдёт через 0 на второй круг, эта конструкция обязательно даст сбой.
можете помочь с кодом?
Гы, а может с программой?
хоть чем нибудь, что поможет работе)
можете помочь с кодом?
Лично я - нет. Лучше, к турку обратитесь.
А вот конструкции типа
могут подвести Вас. При долгой работе (50 суток) устройства, когда millis перейдёт через 0 на второй круг, эта конструкция обязательно даст сбой.
если бы я мог обратиться к нему, тут скорее всего не писал бы)
можете помочь с кодом?
Лично я - нет. Лучше, к турку обратитесь.
А вот конструкции типа
могут подвести Вас. При долгой работе (50 суток) устройства, когда millis перейдёт через 0 на второй круг, эта конструкция обязательно даст сбой.
да мне
не принципиально, я просто отредактировал что было] мне главное чтоб уведомление пришло хотя бы 2 раза
А...а, ну я тупой. Вам надо рассказать про библиотеку BlynkSimpleEsp8266(). Так я про нее ничего не знаю, как и 99.9% пользователей этого форума. Экслюзив, гля...
А...а, ну я тупой. Вам надо рассказать про библиотеку BlynkSimpleEsp8266(). Так я про нее ничего не знаю, как и 99.9% пользователей этого форума. Экслюзив, гля...
на этих форумах кто нибудь когда нибудь кому нибудь нормально отвечает? вроде понятным языком написал, ЧТО Я БЛ НОВИИИИИЧООООООООККК, попросил помочь с кодом, а не умничать делая тупое выражение лица.
Во- первых строках письма шлю тебе... (цытата) превед
зачем Вы выкинули подключение библиотек для датчиков ?
зачем Вам timer? Сделайте через millis
Что делает blynk и вообще зачем оно Вам?
Зачем куча индикации в подпроцессе из timer там надо только получать температуру раз в заданный период.
как дружат timer и blink вообще тёмное дело.
а как вообще Вам надо, чтобы оно работало?
если Вы НОВЬИЧОК это не смягчающий фактор, а отягчающий. С этим заявлением вероятность посылания науй выше, чем без него.
покажите как именно Вы пытались разобраться и что именно у Вас не получилось, или в самом лёком случае будете посланы в « ищу исполнителя».
на этих форумах кто нибудь когда нибудь кому нибудь нормально отвечает?
На этих форумах кто-нибудь, кого-нибудь нормально спрашивает?