Мигание сведодиодом на ESP8266 через BLYNK
- Войдите на сайт для отправки комментариев
Ср, 07/08/2019 - 16:47
Всем добрый день. Сразу прошу прощения за, наверное, простейший вопрос.
Подскажите пожалуйста, завел на приложении BLYNK кнопку и задал ей виртуальный пин. Светодиод исправно включается по нажатии. Теперь хочу усложнить задачу и сделать так, чтобы встроенный светодиод при нажатии кнопки в приложении моргал с заданной частотой, до тех пор, пока не выключу кнопку в приложении.
Вот код, которым включаю штатный светодиод. :
#define BLYNK_PRINT Serial #define Ledpin 2 #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> char auth[] = "XXXXXXXXXXXXXXXX"; char ssid[] = "YYYYYYY"; char pass[] = "ZZZZZZZ"; /*BLYNK_CONNECTED(){Blynk.syncVirtual(V1);}*/ BLYNK_WRITE(V1) { int pinValue = param.asInt(); if (pinValue == 1) { pinMode(Ledpin, OUTPUT); digitalWrite (Ledpin, LOW); delay (500); digitalWrite (Ledpin, HIGH); delay (250); /*Blynk.virtualWrite(V1, LOW);*/ } } void setup() { Serial.begin(9600); Blynk.begin(auth, ssid, pass); } void loop() { Blynk.run(); }
Подскажите пожалуйста направление, как сделать мигание непрерывным и при этом, чтобы не терялась связь с приложением, чтобы программа могла увидеть изменение состояния пина V1.
Спасибо заранее.
https://github.com/blynkkk/blynk-library/blob/master/examples/More/Strob...
Готовый скетч с регулировкой частоты в приложении.
Большое спасибо. буду разбираться как оно работает.
Всем добрый день! вчера обновились некие библиотеки и теперь даже этот мой код перестал работать нормально. Если раньше при нажатии кнопки светодиод загорался и тух. то теперь он почемуто просто загорается и не тухнет. Подскажите пожалуйста, тут идёт не так??
Спасибо.
Подскажите пожалуйста, тут идёт не так??
мало информации.
Напоминает "Товарищи ученые, у меня в подполе иногда раздается стук..." Подскажите, что это?
Перестал работать код из первого моего сообщения. Через блинк нажимал кнопку, светодиод включался и выключался бесконечно, согласно выставленным интервалам в delay и обрывалась связь с приложением. Подумал, что контроллер не может повторно опросить кнопку и сваливается в бесконечный цикл еще в операторе if. Добавлял for, к примеру с счётом от 0 до 4, нажимал кнопку, светодиод моргал 5 раз и успокаивался. Потом в конце добавил принудительный возврат кнопки в приложении в выключенное состояние - закомментированый участок.
Следующим этапом, хотел всё таки заставить контроллер мигать по нажатии бесконечно, пока не отожму кнопку опять. Как мне подсказали, посмотрел стробоскоп, там реализовано на таймере, но вчера возникли две проблемы. 1. Код стробоскопа компилируется, но в приложении нет подключения к контроллеру. В том коде есть только строка, где вводится токен блинка. Не могу понять как в контроллер внести данные сети - имя и пароль. 2. Решив прикрутить таймер к уже имеющемуся скетчу, столкнулся с ситуацией, что теперь даже вариант, конда светодиод бесконечно моргает не работает. Т.е. при нажатии кнопки в приложении, вместо того, чтобы включить и потом выключить светодиод, пусть хоть 1 раз, хоть бесконечно, светодиод просто включается. Связь с приложением не теряется, и повторным нажатием, светодиод гаснет.
Я в тупике. Простейшая, по идее логика, выдать на пин низкий уровень, чтобы включить светодиод и через определённую задержку выдать на пин высокий уровень. Перестало работать даже это((((
Ну и вопрос номер 3. откуда и по какому принципу подключаюся библиотеки, например того же BLYNK? В списке библиотек у меня нет #include <BlynkSimpleEsp8266.h>. Но если удалю - не будет работать скетч. В скетче стробоскопа эта библиотека не используется вообще...
На этом форуме, я, видимо, самый дно....
Может для тебя и не будет откровением, но библиотека это просто кусок программы, оформленный специальным образом, что бы можно было использовать не "открывая". Библиотеки могут быть огромными, но компилятор в конечный код возмёт только то что нужно для работы программы. Поэтому можно подключить хоть сотню разных библиотек, конечный код от этого неизменится. А вот если не подключить нужную библиотеку, то компилятор не найдет необходимый код и будет ругаться. Т.е. нужно подключать только те библиотеки к подпрограммам которых ты обращаешся в своей программе. Если программа не твоя, а чесно стыренная из сети, то надо или всё оставлять как есть или разбираться до последнего оператора, что бы знать какие стороки что делают и какие подпрограммы вызываются из каких библиотек.
На форуме есть тема блинк без делэй. Тебе надо сделать тоже самое, только запускать блиньк нужно когда флаг блинька будет истина. А менять значение флага ложь или истина нужно по приходу нажатия кнопки в BLYNK на смарфоне.
Всем доброго дня!
Спасибо всем, кто откликнулся, увидел некоторые свои ошибки и направление движения.
С кнопкой разобрался - создавал новый проект и на кнопку обозначил хардовый пин 2, а не виртуальный.
Попробовал скетч со стробоскопом. Не смог подключить ESP к блинку, потому попробовал немного изменить скетч, на основе примера
StandAlone. Светодиод мигает, но нет управления частотой со слайдера. В этот раз несколько раз перепроверил. Кнопку и слайдер повесил на виртуальные пины, слайдеру поставил значения от 100 до 1000, как в примере. Светодиод мигает с интервалом в полсекунды. Подскажите пожалуйста, что не так с кодом? Такое впечатление, что либо вообще не обрабатывается код для слайдера, либо значение ползунка не прописывается в интервал таймера. Вот код, который собрал из двух:
Пробовал добавить второй таймер в виджет слайдера, чтобы также обращался к функции ledBlynk со своими параметрами, но то ли он игнорируется, толи опять же код для слайдера V2 игнорируется.
Помогите с направлением, пожалуйста