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); //вывод данных навиртуальный пин }
Где Вы взяли этот код?
на ютубе у турка одного, что-то добавил от себя
вот оригинал
Не, ну я не понял, а как Вы узнаете где находится датчик?
повешу, потрогаю ручками и прономерую)
повешу, потрогаю ручками и прономерую)
Про Вас все понятно - сенсист. А программа как узнает?
не понял о чем вы
можете помочь с кодом?
можете помочь с кодом?
Гы, а может с программой?
можете помочь с кодом?
Лично я - нет. Лучше, к турку обратитесь.
А вот конструкции типа
могут подвести Вас. При долгой работе (50 суток) устройства, когда millis перейдёт через 0 на второй круг, эта конструкция обязательно даст сбой.
можете помочь с кодом?
Гы, а может с программой?
хоть чем нибудь, что поможет работе)
можете помочь с кодом?
Лично я - нет. Лучше, к турку обратитесь.
А вот конструкции типа
могут подвести Вас. При долгой работе (50 суток) устройства, когда millis перейдёт через 0 на второй круг, эта конструкция обязательно даст сбой.
если бы я мог обратиться к нему, тут скорее всего не писал бы)
можете помочь с кодом?
Лично я - нет. Лучше, к турку обратитесь.
А вот конструкции типа
могут подвести Вас. При долгой работе (50 суток) устройства, когда millis перейдёт через 0 на второй круг, эта конструкция обязательно даст сбой.
да мне
не принципиально, я просто отредактировал что было] мне главное чтоб уведомление пришло хотя бы 2 раза
А...а, ну я тупой. Вам надо рассказать про библиотеку BlynkSimpleEsp8266(). Так я про нее ничего не знаю, как и 99.9% пользователей этого форума. Экслюзив, гля...
А...а, ну я тупой. Вам надо рассказать про библиотеку BlynkSimpleEsp8266(). Так я про нее ничего не знаю, как и 99.9% пользователей этого форума. Экслюзив, гля...
на этих форумах кто нибудь когда нибудь кому нибудь нормально отвечает? вроде понятным языком написал, ЧТО Я БЛ НОВИИИИИЧООООООООККК, попросил помочь с кодом, а не умничать делая тупое выражение лица.
Во- первых строках письма шлю тебе... (цытата) превед
зачем Вы выкинули подключение библиотек для датчиков ?
зачем Вам timer? Сделайте через millis
Что делает blynk и вообще зачем оно Вам?
Зачем куча индикации в подпроцессе из timer там надо только получать температуру раз в заданный период.
как дружат timer и blink вообще тёмное дело.
а как вообще Вам надо, чтобы оно работало?
если Вы НОВЬИЧОК это не смягчающий фактор, а отягчающий. С этим заявлением вероятность посылания науй выше, чем без него.
покажите как именно Вы пытались разобраться и что именно у Вас не получилось, или в самом лёком случае будете посланы в « ищу исполнителя».
на этих форумах кто нибудь когда нибудь кому нибудь нормально отвечает?
На этих форумах кто-нибудь, кого-нибудь нормально спрашивает?