Добрый день, сделал небольшое устройство на базе nodemcu и Blynk, которое управляет реле для открытия/закрытия откатных ворот.
Система работает исправно, однако недавно обнаружил очень неприятный косяк - когда я перезагружаю устройство через автомат в щитке, оно не запускается. Чтобы его запустить, приходится втыкать usb в nodemcu и только потом подавать 5В на блок реле и датчик холла.
Логика подсказывает мне, что проблема где-то в питании, но если это так, то почему же проблема возникает только при старте устройства, а потом все стабильно работает ?
Питаю плату через Vin пин, подавая туда 5в, и параллельно к этому пину припаян блок реле и датчик хола.
Смотрел в сериал порт при запуске от сети, там сплошные крякозябры на любой скорости порта, при старте через usb все корректно.
Скетч:
К посту приложил схему подключения и скриншот сериал порта
Система работает исправно, однако недавно обнаружил очень неприятный косяк - когда я перезагружаю устройство через автомат в щитке, оно не запускается. Чтобы его запустить, приходится втыкать usb в nodemcu и только потом подавать 5В на блок реле и датчик холла.
Логика подсказывает мне, что проблема где-то в питании, но если это так, то почему же проблема возникает только при старте устройства, а потом все стабильно работает ?
Питаю плату через Vin пин, подавая туда 5в, и параллельно к этому пину припаян блок реле и датчик хола.
Смотрел в сериал порт при запуске от сети, там сплошные крякозябры на любой скорости порта, при старте через usb все корректно.
Скетч:
C++:
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include "uptime_formatter.h"
#include "string.h"
// AUTH
char auth[] = "xxxx"; //тут токен из e-mail
char ssid[] = "xxxx"; //Название WiFi-сети
char pass[] = "xxxx"; //Пароль
BlynkTimer timer;
long rssi;
WidgetLCD lcd(V3);
// ESP pins
#define PIN_RELAY1 D6 // Physiс pin to Relay to full open
#define PIN_RELAY2 D5 // Physic pin to Relay short open
#define PIN_MAGNET D4 // Physic pin to a3144 sensor
// virtual pins for BLYNK
#define BL_UPTIME V5
#define BL_RSSI V6
#define BL_RELAY1 V1 // full open gate
#define BL_RELAY2 V2 // short open gate
BLYNK_READ(BL_UPTIME)
{
// This command writes Arduino's uptime in seconds to Virtual BL (5)
Blynk.virtualWrite(BL_UPTIME, uptime_formatter::getUptime());
}
// relay
BLYNK_WRITE(BL_RELAY1) //функция, отслеживающая изменение виртуального пина
{
int pinValue1 = param.asInt(); //переменная текущего состояния виртуального пина
if (pinValue1 == 1){
digitalWrite(PIN_RELAY1, LOW);
delay (500);
digitalWrite(PIN_RELAY1, HIGH);
//delay(200);
Blynk.virtualWrite(BL_RELAY1, 0);
}
else
{
digitalWrite(PIN_RELAY1, HIGH);
}
}
BLYNK_WRITE(BL_RELAY2) //функция, отслеживающая изменение виртуального пина
{
int pinValue2 = param.asInt(); //переменная текущего состояния виртуального пина
if (pinValue2 == 1){
digitalWrite(PIN_RELAY2, LOW);
delay (500);
digitalWrite(PIN_RELAY2, HIGH);
Blynk.virtualWrite(BL_RELAY2, 0);
}
else
{
digitalWrite(PIN_RELAY2, HIGH);
}
}
// Датчик холла
void garageMagSensor ()
{
int garageSensorSW = digitalRead(PIN_MAGNET);
if (garageSensorSW == !LOW)
{
lcd.print(1, 0, "Ворота открыты"); // LCD print, column 1, row 0.
}
else
{
lcd.print(1, 0, "Ворота закрыты"); // LCD print, column 1, row 0
}
}
void setup() //основная функция, выполняется один раз при подаче питания на микроконтроллер
{
Serial.begin(9600); //открываем серийный порт, чтобы видеть как проходит подключение к серверу blynk
pinMode(PIN_RELAY1, OUTPUT); //объявляем D4 "выходным" пином
pinMode(PIN_RELAY2, OUTPUT);
pinMode(PIN_MAGNET, INPUT);
digitalWrite(PIN_RELAY1, HIGH);
digitalWrite(PIN_RELAY2, HIGH);
Blynk.begin(auth, ssid, pass); //авторизируемся на сервере
// Setup a function with timer
timer.setInterval(5000L, garageMagSensor);
rssi=WiFi.RSSI(); // Functions to display RSSI and Ip address
Serial.print(rssi);
}
void loop() //основная функция, которая выполняется постоянно по кругу
{
Blynk.run(); //запускаем работу blynk. В этом примере - постоянную проверку виртуального пина 0
garageMagSensor ();
}
Вложения
-
132.7 KB Просмотры: 16
-
67.8 KB Просмотры: 14