• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Обсуждение Blynk и ESP8266

dimaris

New member
Напряжение питания готового модуля общая земля должна быть обязательно. Есть готовые релейные модули ардуиновские с опторазвязкой, так там соединяется минус оптронов и подключаются управляющие сигналы, а питание релюшек отдельно.
 

nikolz

Well-known member
Транзистор, чтобы Gpio-0 и In реле соединялись с задержкой, я правильно понял?
Как известно, реле включается не напряжением, а током.
Т е когда Вы один конец обмотки реле вкл на источник напряжения, а другой к ESP, то через катушку реле течет ток E/(R+R_ESP), где E - это напряжение а R -сопротивление катушки, R_ESP -сопротивление выхода ESP.
Этот ток создает электромагнитную индукцию и возникшее магнитное поле притягивает якорь реле и контакты замыкаются. Если тока мало то и магнитной силы мало и контакты не замыкаются.
Тока мало может быть по двум причинам. Мало E. либо большое R+R_ESP.
Транзистор, надо, чтобы уменьшить R_ESP и тем самым увеличить ток через реле.
Кроме того, если напряжение E существенно больше чем напряжение питания ESP, то без транзистора выход ESP может пробить по обратному напряжению.
Примерно так.
----------------------------
Поэтому определите по марке реле ток срабатывания померьте сопротивление обмотки реле и посчитайте какое надо напряжение. потом собирайте.
--------------------------
Ученье и труд - все перетрут.
Лишь одно дело требует спешки - чесать, где чешется.
 

nikolz

Well-known member
Так у автора твердотельное реле, там должен быть оптрон.
SDR-12VDC-SL-C
Реле электромеханическое +12В/10А
Технические характеристики SRD-12VDC-SL-C
Параметр Значение
Напряжение управляющее постоянное, В +12
Коммутируемое напряжение переменное, В ~250
Коммутируемый ток, А 10
Габаритные размеры, ДхШхВ, мм 19,0 х 15,5 х 15,2
Температура эксплуатации, °С -30...+70
Производитель Songle
Мощность катушки: 0.36 Вт
Напряжение изоляции катушка-контакты: 1500 В
Площадь: 3.738 см2
Рабочая температура: -30...70 °C
Тип выводов: в отверстия
Вес 9.162 г
Тип контактов: 1C
Герметичность корпуса (степень защиты от флюса): брызгозащищенное
Тип реле: Силовое
Нагрузка по постоянному току: 10A/28VDC
Нагрузка по переменному току: 10A/250VAC
Объём: 5.681 см3
-------------------------
Вопросы есть?
 

CodeNameHawk

Moderator
Команда форума
Реле явно не такое, как у вас в описании, на схеме видны VCC, GND, IN.
Автору. Если у вас простое реле, не подключайте к ESP, ESP сгорит нафиг.
 
Последнее редактирование:

Nikitkaa

New member
Реле явно не такое, как у вас в описании, на схеме видны VCC, GND, IN.
Автору. Если у вас простое реле, не подключайте к ESP, ESP сгорит нафиг.
Фото 12В модуля приложил, чтобы внести ясность. Также схема как сейчас собрано.

Ардуинка как блок питания. От 5В блок реле не срабатывает, но показывает срабатывание зелёным светодиодом.
1) Просто подаю питание на ардуину через USB. На ESP загораются красный и синий светодиоды и не гаснут. На блоке реле загораются зелёный и красный светодиоды и не гаснут. Маршрутизатор не видит новый клиентов. В приложении Blynk модуля ESP в сети не видно.

2) Размыкаем контакт IN - реле и GPIO-0 ESP. Подаём питание на ардуинку. Замыкаем обратно. ESP загорается красным, потом пару раз мыргает синим, получает ip и регается в приожении Blynk. На модуле реле загорается красный светодиод.
 

Вложения

nikolz

Well-known member
развязка нужна от управляемой цепи.
В электромеханическом реле эту развязку обеспечивает магнитная индукция. Т е внешняя цепь (силовая) замыкается не через провода а через электромагнитное поле.
 
Нужна помощь или совет подцепил термодатчик АМ2302 к Esp-01 залил скетч с 4 страницы данной темы все заработало. Но вот проблема время от времени данные с датчика в программе blynk скачат как на снимке. Подскажите в чём проблема Screenshot_2016-07-11-23-32-15.jpg Screenshot_2016-07-11-23-31-30.jpg
 
Последнее редактирование:
-----------------------
Так в этом-то вся фишка того, когда на халяву и без понимания.
Оно вроде бы как бы работает, но иногда точно не работает.
То есть как бы вещь хорошая, но лишь как игрушка.
Ну а что зделаеш пока только осваиваю конечно хочется что-то своё сделать но пока нет навыков помаленьку пытаюсь разобраться, параллельно пользуюсь чужими проектами. А с такими о ответами как ваше ещё долго буду осваевать
 
Последнее редактирование:

Jon

Member
Это глючит сам датчик, а не Blink. Чем длине провода и хуже питание, тем больше собирается помех.
Я у себя программно запретил принимать не реальные значения, и забыл про такие выкрутасы.
 

StalSan

New member
Всем доброго времени суток, хочу приспособить ESP для открытия/закрытия ворот, а так же контроля состояния ворот в любой момент, написал скетч, залил, и вижу как ESP в терминале постоянно реконнектится, подскажите в чем ошибка?
Код:
#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>


char auth[] = "XXXXXXXXXXXXXX";
const int OSPin = 12; //open State Pin
const int CSPin = 14; //close State Pin
const int LedOSPin = V12; //open State VPin for Led
const int LedCSPin = V14; //close State VPin for Led
const int LCDPin1 = V1; //VPin for LCD строка 1
const int LCDPin2 = V2; //VPin for LCD строка 2
boolean LastStateCSPin; //Флаг последнего состояния пина close State Pin
boolean LastStateOSPin; //Флаг последнего состояния пина open State Pin
boolean StateCSPin; //Флаг текущего состояния пина close State Pin
boolean StateOSPin; //Флаг текущего состояния пина open State Pin
int state; //флаг состояния ворот для цикла проверки

void setup()
{
  Serial.begin(9600);
  Blynk.begin(auth, "XXXXXXX", "XXXXXXX");

  while (Blynk.connect() == false) {
  // Wait until connected
  }
  pinMode(OSPin, INPUT);
  pinMode(CSPin, INPUT);
  Blynk.virtualWrite(LedOSPin, 0);
  Blynk.virtualWrite(LedCSPin, 0);
}

void checkState()
{
  if(StateOSPin==HIGH&&state!=0)
  {
    state = 0;
    Blynk.virtualWrite(LCDPin1, " open"); //вывод состояни на виджет LCD, строка 1
    Blynk.virtualWrite(LCDPin2, " "); //вывод состояни на виджет LCD, строка 2
    Blynk.virtualWrite(LedOSPin, 1023); //включаем виджет LED состояния "открыто"
    Blynk.virtualWrite(LedCSPin, 0); //тушим виджет LED состояния "закрыто"
    Blynk.notify("gate open"); //шлем на смартфон оповещение "ворота открыты"
  }
    if(StateCSPin==HIGH&&state!=1)
  {
    state = 1;
    Blynk.virtualWrite(LCDPin1, "close"); //вывод состояни на виджет LCD, строка 1
    Blynk.virtualWrite(LCDPin2, " "); //вывод состояни на виджет LCD, строка 2
    Blynk.virtualWrite(LedOSPin, 0); //тушим виджет LED состояния "открыто"
    Blynk.virtualWrite(LedCSPin, 1023); //включаем виджет LED состояния "закрыто"
    Blynk.notify("gate close");  // шлем на смартфон оповещение "ворота закрыты"
  }
    if(StateOSPin==LOW&&StateCSPin==LOW&&LastStateCSPin==HIGH&&state!=3)
  {
    state = 3;
    Blynk.virtualWrite(LCDPin1, "opening"); //вывод состояни на виджет LCD, строка 1
    Blynk.virtualWrite(LCDPin2, "<--<--<--"); //вывод состояни на виджет LCD, строка 2
    Blynk.virtualWrite(LedOSPin, 0); //тушим виджет LED состояния "открыто"
    Blynk.virtualWrite(LedCSPin, 0); //тушим виджет LED состояния "закрыто"
    Blynk.notify("gate opening"); //шлем на смартфон оповещение "ворота открываются"
  }
    if(StateOSPin==LOW&&StateCSPin==LOW&&LastStateOSPin==HIGH&&state!=4)
  {
    state = 4;
    Blynk.virtualWrite(LCDPin1, "closing"); //вывод состояни на виджет LCD, строка 1
    Blynk.virtualWrite(LCDPin2, "-->-->-->"); //вывод состояни на виджет LCD, строка 2
    Blynk.virtualWrite(LedOSPin, 0); //тушим виджет LED состояния "открыто"
    Blynk.virtualWrite(LedCSPin, 0); //тушим виджет LED состояния "закрыто"
    Blynk.notify("gate closing..."); //шлем на смартфон оповещение "ворота закрываются"
  }
  LastStateCSPin = StateCSPin; //запоминаем последнее состояние пина close State Pin
  LastStateOSPin = StateOSPin; //запоминаем последнее состояние пина open State Pin
}
 
void loop()
{
  Blynk.run();
  StateCSPin = digitalRead(CSPin); //запоминаем текущее состояние пина close State Pin
  StateOSPin = digitalRead(OSPin); //запоминаем текущее состояние пина open State Pin
  delay(1000);
  checkState();
}
 

Stanislav_labs

New member
Всем доброго времени суток, хочу приспособить ESP для открытия/закрытия ворот, а так же контроля состояния ворот в любой момент, написал скетч, залил, и вижу как ESP в терминале постоянно реконнектится, подскажите в чем ошибка?

Походу память плывет..
 

CodeNameHawk

Moderator
Команда форума
написал скетч, залил, и вижу как ESP в терминале постоянно реконнектится, подскажите в чем ошибка?
Первое что на ум приходит, если нет ошибок в проге то возможно слабый уровень сигнала, помехи. Помехи по питанию.
 

StalSan

New member
Stanislav_labs, что значит плывет память? модуль можно в мусорку? как это протестировать?
CodeNameHawk, уровнь сигнала - роутер в двух метрах, помехи по питанию - пробовал питание от отдельного импульсного БП, от USB порта компа, и потом от АКБ, поведение идентично.
Несколько месяцев назад, когда только начинал это делать, задавал впорос в другой теме, мне ответили следующее:
Все свои процедуры, связанные с обращением к сервису, нужно запускать через таймер не чаще 1 сек. Нельзя их на прямую запихивать в loop , сервис автоматом сбрасывает такие соединение.
Тогда я немного перерихтовал код и все благополучно отработало 3 месяца, пока не заметил, что esp-шка постоянно реконнектится, и, естественно, отрабатывает команды на открытие и закрытие не сразу или вообще не отрабатывает.
Ткните носом где почитать про таймеры и как правильно их использовать, простое добавление delay с любыми значениями ничего не дает, только реконнекты становятся с интервалом, который указываю в delay.
 

Jon

Member
про таймеры обсуждают здесь: Помогите с SimpleTimer. | Аппаратная платформа Arduino
В гугле ищется все по "SimpleTimer.h"
Если
esp-шка постоянно реконнектится
дело в железе, а вот если Blink постоянно реконнектится, то это скорей всего в программе существуют большие задержки.
У меня около десятка устройств под бликом сидят и ведут они все по разному. Управление только сервоприводами, допустим ни когда не зависает, а там где идет сбор данных с датчиков и еще вывод на дисплей- регулярно перезагружается. Вывод для себя сделал такой: Блинк - вещь в себе. Она хочет управлять и получать данные напрямую с GPIO. Все что отвлекает по алгоритму от основного цикла сбивает блинк с толку. Бывает и сервер у них виснет, но ребята усердно обновляют программу и она работает все стабильнее.
 
Сверху Снизу