Приложение Esp и Blynk

Можно ли управлять одним реле с помощью приложения Blynk, а также с помощью atmega? Чтобы лучше понять, подумайте о реле, которое включит вентилятор, когда вы используете приложение blynk. но когда у вас нет телефона рядом с вами, с помощью кнопки вы можете включить его оттуда (кнопка будет подключена к atmega)



void setup()
{
  Serial.begin(9600);
  pinMode(relCh1,OUTPUT);

  pinMode(relCh2,OUTPUT);

  pinMode(relCh3,OUTPUT);

  pinMode(relCh4,OUTPUT);
  digitalWrite(relCh1,HIGH);
  pinMode(EspReadPin, INPUT);
  digitalWrite(relCh3,HIGH);
}
void loop()
{
Serial.println(digitalRead(6));
delay(400);
  if(digitalRead(EspReadPin == 1))
  {
    digitalWrite(relCh3,LOW);
  }
  else if(digitalRead(EspReadPin == 0))
  {
    digitalWrite(relCh3,HIGH);
  }
}

, 👍0


1 ответ


1

Да, это возможно.

Используйте пример скетча Blynk, чтобы активировать вывод esp8266. Считайте вывод esp8266 с помощью ATMega. Обработайте в скетче ATmega контакт esp8266 как вторую кнопку.

,

я не могу понять. Не могли бы вы объяснить более подробно?, @Iulian Chirvasa

не могли бы вы переписать свой вопрос более подробно, @Juraj

Конечно ! в основном я хочу управлять одним реле из двух разных мест. Один будет в доме (панель с кнопками) - где будет и эта кнопка для реле. и будет управляться атмегой(когда нажмешь - включится реле). а еще "локация" будет с телефона. но для этой части я буду использовать blynk и esp., @Iulian Chirvasa

и у вас работает локальная часть и вы хотите добавить esp8266 с Blynk?, @Juraj

Я использую пин от atmega в качестве вывода. и на макетной плате подключен к реле (как сигнал), но на той же линии (на макетной плате) я поставил также контакт от esp. и возникает проблема, что если я нажму кнопку - реле включится. но если я использую приложение blynk - ничего не происходит., @Iulian Chirvasa

так что на данный момент я могу управлять им, используя только atmega. если я удалю контакт, идущий от atmega, blynk работает отлично., @Iulian Chirvasa

так что прочитайте мой ответ еще раз. часть про "прочитать вывод esp8266 с помощью ATmega", @Juraj

так как мне это сделать? я имею в виду ... единственное решение, о котором я сейчас думаю, - это определить другой вывод atmega как ВХОД и прочитать его., @Iulian Chirvasa

это проблема?, @Juraj

боюсь не получится., @Iulian Chirvasa

почему это не сработает? вот что делают микроконтроллеры, @Juraj

Я только что попробовал и ничего. .., @Iulian Chirvasa

он читает контакт как высокий, но только это, @Iulian Chirvasa

у тебя обычный esp8266? какой пин esp8266 вы использовали? (добавьте информацию к вопросу), @Juraj

нет, у меня есть NodeMCU и используется контакт D0 = GPIO 16, @Iulian Chirvasa

Вы загрузили скетч Blynk в NodeMcu?, @Juraj

да. Esp и blynk работают идеально. Проблема проявляется на стороне атмеги. даже релейный модуль сходит с ума. Даже если я установлю их в функции настройки открытыми, при загрузке скетча они закрываются. и я не могу понять почему., @Iulian Chirvasa

Я проверил то, что вы сказали мне сделать, на arduino nano, и я установил контакт в качестве входа. если он высокий, то встроенный светодиод будет гореть, иначе он должен быть выключен. и работает. Ничего страшного. а на мега... что-то сходит с ума., @Iulian Chirvasa

в любом случае, ты мне помог. Спасибо!, @Iulian Chirvasa

реле активны LOW?, @Juraj

да. если я ставлю их как низкие - они закрыты, @Iulian Chirvasa

здесь происходит что-то странное. Я написал скетч, чтобы проверить одну кнопку и, если она высока, включить реле. Хорошо ... я загрузил код, а затем, если я нажму кнопку, atmega увидит, что он высокий, и выполнит «digitalWrite (relay, HIGH); Проблема в том, что реле не замыкается. Я использую dmm для измерения напряжения на сигнальном контакте реле и составляет 4,7 В - обычно он должен замыкаться. но нет. светодиод перед реле еле светится., @Iulian Chirvasa

только подтягивание на контакте INPUT? не ВЫВОД? смотри номера пинов в скетче, @Juraj

теперь, если я проверю его, используя еще 2 условия - он работает, @Iulian Chirvasa

я разместил код выше. поэтому, если я удалю в операторах if && и все после. это не работает, @Iulian Chirvasa

if (b == HIGH || a == LOW) {} else {}?, @Juraj

я проверил с вашим предложением. вот что бывает. светодиод перед реле (тот, который показывает, получает ли реле напряжение) едва загорается в обеих ситуациях (если я использую приложение или нажимаю кнопку), НО если я нажимаю кнопку и использую приложение одновременно. реле закрыть., @Iulian Chirvasa

быстро включается и выключается?, @Juraj

нет. если я нажму кнопку на blynk, чтобы включить его. он не включится. вместо этого светодиод светится (едва-как будто он получает минимальное напряжение на переходе, чтобы пропустить ток), но если я измерю напряжение- будет 4,7 В, но реле не замкнется., @Iulian Chirvasa

Глядя в последовательный монитор, похоже, что реле закроется только тогда, когда получит 0, но это для НИЗКОГО уровня. и я установил его на ВЫСОКИЙ. У меня болит голова.. не знаю, что здесь происходит. Очень вероятно, что я сделал что-то не так., @Iulian Chirvasa

кнопка имеет подтягивающий резистор? лучше подключить кнопку к земле и использовать внутреннюю подтяжку с режимом INPUT_PULLUP, как в примере DigitalInputPullup, @Juraj