• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь ESP8266 реле + контактор + DHT22 - зависает

Maxim Keegan

New member
Привет. Купил сборку блок питания + ESP8266 + Два реле + DHT22 от Electrodragon. Wifi IoT Relay Board SPDT Based on ESP8266 - ElectroDragon
Собрал все на монтаже - все работает. Релюшки хлопают. Подключил питание от 220 вольт - все работает. Подключил к реле контакторы. Если переключать их достаточно быстро - ESP перезагружается и перестают поступать данные с DHT22. Все напряжения проверил - все в норме. Это помехи какие-то мешают или как отладить можно?

Спасибо за помощь!

Схема контроллера


Код:
#include <DHTesp.h>

#include <ESP8266WiFi.h>          //ESP8266 Core WiFi Library (you most likely already have this in your sketch)

#include <DNSServer.h>            //Local DNS Server used for redirecting all requests to the configuration portal
#include <ESP8266WebServer.h>     //Local WebServer used to serve the configuration portal
#include <WiFiManager.h>          //https://github.com/tzapu/WiFiManager WiFi Configuration Magic
#include <SimpleTimer.h>

#define BLYNK_PRINT Serial


#include <BlynkSimpleEsp8266_SSL.h>

#define DHTPIN 14     // Номер пина, который подключен к DHT22
#define DHTTYPE DHTesp::DHT22   // Указываем, какой тип датчика мы используем

DHTesp dht;
WidgetTerminal terminal(V5);
SimpleTimer timer;

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "oVyJ24fc2-ux5oX3_GpQiIweT";

int timeSinceLastRead = 0;

BLYNK_CONNECTED() {
  // Request Blynk server to re-send latest values for all pins
  Blynk.syncAll();
}

void setup()
{
  // Debug console
  Serial.begin(9600);

  WiFiManager wifiManager;
  wifiManager.autoConnect();
 
  Blynk.config(auth);

  dht.setup(DHTPIN, DHTTYPE);

  timer.setInterval(2000L, sendSensor);
}

void loop()
{
  Blynk.run();
  timer.run();
}

void sendSensor()
{
  float h = dht.getHumidity(); // Влажность
  float t = dht.getTemperature(); // Температура

  if (isnan(h) || isnan(t)) {
    terminal.println("No data. Restart.");
  return;
  }
  String data = (String)"h: " + h + (String)"% t: " + t + (String)"*C";
  terminal.println(data);

  Blynk.virtualWrite(V0, t);
  Blynk.virtualWrite(V1, h);
}
 

Shyster

New member
Ну да помехи. Лучше использовать твердотельное реле с переходом 0, если нагрузка не большая. или бороться с искрением и помехами. конденсатор на ресет, конденсаторы на питание, не использовать длинные провода и дорожки. Ставить rc фильтр на контакты реле.
читать http://www.wel.net.ua/Russian/PDF/RC-3.pdf
 

nikolz

Well-known member
перезагрузка при частом переключении реле может быть вызвана срабатыванием WDT
это можно определить по коду перезагрузки
попробуйте отключить WDT
добавьте перед включением реле
ets_wdt_disable();
 

Maxim Keegan

New member
Выпаял реле с платы, подключил SSR Fotek на пробу. Все стало работать стабильно. Видимо заменю реле во всех платках на SSR с фильтром на выходе.
 
Сверху Снизу