Всем добрый день! Делаю для себя небольшой проект: устройство для нажатия кнопки через Telegram. Использую плату Wemos D1 mini и мосфет транзистор для замыкания контактов. Проблема в том, что после продолжительного простоя плата отключается от роутера и приходится его перезагружать. Перезагрузка платы почему-то не помогает. Иногда бывает, что ответ по команде приходит спустя 5-10 минут без перезагрузки. Дома есть еще несколько устройств на esp8266: это светодиодная лента на WLED плата NodeMCU и несколько выключателей Tuya. С ними все нормально, они не отключаются. Как можно решить проблему? Питается плата от usb компьютера. Схему условно нарисовал: лампочка и аккумулятор - как раз то, что нужно замыкать.
Код написал элементарный, использовал delay. Знаю, что лучше использовать таймер, но для такого кода, мне кажется, и так сойдет. библиотека для телеги от Алекса.
Код написал элементарный, использовал delay. Знаю, что лучше использовать таймер, но для такого кода, мне кажется, и так сойдет. библиотека для телеги от Алекса.
C++:
#include <ESP8266WiFi.h>
#include <FastBot.h>
#define WIFI_SSID "*********"
#define WIFI_PASS "*********"
#define BOT_TOKEN "******************"
FastBot bot(BOT_TOKEN);
void setup() {
pinMode(4, OUTPUT);
digitalWrite(4, 0);
delay(500);
Serial.begin(115200);
while (!Serial) {
; // * Ждём завершения инициализации шины UART.
}
WiFi.begin(WIFI_SSID, WIFI_PASS);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Connected");
Serial.println(WiFi.localIP());
bot.attach(newMsg);
}
void loop() {
bot.tick();
}
void newMsg(FB_msg& msg) {
Serial.println(msg.toString());
if (msg.text == "/on") {
digitalWrite(4, 1);
delay(200);
digitalWrite(4, 0);
bot.sendMessage("Включен", msg.chatID);
}
if (msg.text == "/off") {
digitalWrite(4, 1);
delay(15000);
digitalWrite(4, 0);
bot.sendMessage("Отключен", msg.chatID);
}
}