УМНЫЙ ДОМ Двухканальная умная розетка (управление через Алису)

Пользуетесь ли Вы устройствами умного дома?


  • Всего проголосовало
    13

LordZET

✩✩✩✩✩✩✩
1 Мар 2022
15
2
53
Всем привет! Хочу поделится проектом который возможно будет кому то полезен. v2.0
6910895876.jpg
Выкинул кнопку питания и 6 USB зарядных портов.
Добавил то что было нужно для проекта
smart_socket_2ch.png
и все работает. Устройство подключается и управляется через сервер Blynk.
Голосовое управление для Алисы подключено при помощи Навык Домовенок Кузя
Все ссылки есть внутри проекта.
DC-DC модуль для стабильной работы WeMos D1 mini.
Двухканальный релейный модуль взял с малыми токами нагрузки, т.к.для лампы и небольшого паяльника хватает.
SmartSocket 2chanel v2.0

Подключение:
При подаче питания начнётся подключение к роутеру
Если подключение не будет установлено за 15 секунд, устройство запустит свою точку доступа WiFi при этом LED постоянно горит
Точка называется SmartSocket2ch пароль 123456789
При подключении к точке доступа должна автоматически открыться страница конфигурации (веб-интерфейс).
Если не открылась — перейди в браузере по адресу 192.168.4.1
При сохранении настроек устройство будет перезагружено и процесс подключения начнётся заново
При успешном подключении устройство перейдёт в режим работы. LED будет промаргивать 1 раз в 5 секунд (200msON 4800msOFF)
При успешном подключении к роутеру но НЕ успешном к серверу Blynck LED будет мерцать 1 раз в 2 секунды (1800msON 200msOFF)
При НЕ успешном подключении к роутеру LED будет промаргивать 1 раз в 2 секунды (200msON 1800msOFF)
При НЕ успешном подключении в любом из случаев, устройство по истечении 1 минут попытается переподключится.
Пример индикации LED можно посмотреть тут https://wokwi.com/projects/421963631594607617

Настройки:
• Нужно указать на странице конфигурации данные для подключения к роутеру

Параметры от сервера Blynk нужно вбить в скетче в строках:
#define BLYNK_TEMPLATE_ID "ваш_TEMPLATE_ID"
#define BLYNK_TEMPLATE_NAME "ваш_TEMPLATE NAME"
#define BLYNK_AUTH_TOKEN "ваш_TOKEN"
#define PORT_T_OUT 60 // сек. автоматическое закрытие configportal через n секунд
#define CONN_T_OUT 10 // сек. как долго нужно пытаться подключиться к WiFi
#define BLYNK_T_OUT 10 // сек. как долго нужно пытаться подключиться к Blynk
#define RECONECT_T 1 // минут. Через сколько минут повторить попытку подключиться

кнопка сброса WIFI или перезапуска перенесена на pin 0(D3). Смотрите изменения в схеме.
• #define BUTT_REST_WIFI D3

Замена и добавление библиотек:
• Добавлена ElegantOTA для обновления прошивки по воздуху через WEB интерфейс.
• GyverButton заменена на EncButton

Управление:
• кнопка "Управление канал 1" включает\выключает "ВЫХОД Канал 1"
• кнопка "Управление канал 2" включает\выключает "ВЫХОД Канал 2"
• кнопка "Сброс WiFi" при нажатии перезапускает esp
• кнопка "Сброс WiFi" при удержании 5секунд, сбрасывает сохраненные настройки WiFi
Очень хочется сменить сервер Blynk (сегодня он доступен а завтра может быть уже нет) на другой, желательно отечественный. Буду рад помощи.
 
Изменено:

LordZET

✩✩✩✩✩✩✩
1 Мар 2022
15
2
53
@3aPa3a, Спасибо за отзыв и рекомендации.
Вторую неделю пытаюсь разобраться как работает библиотека WiFiManager.
Думаю что близок к решению своих вопросов.
По поводу espsmart.ru, тут пока больше ничего не хочу менять, попробую в других проектах.
 
Изменено:

mertv0e

✩✩✩✩✩✩✩
5 Фев 2025
3
0
Для владельцев Home Assistant можно дополнить управление ESP-хой через GET запросы, интегрировать с HA через REST, а уже в самом HA добавить реле в интеграцию Yaha Cloud. Тем самым можно управлять голосом через Алису. Проговорил в слух и напомнило фильм "Начало". Интеграция в интеграции... Но как вариант. Код будет выглядеть как то так
C:
#include <WiFi.h>
#include <AsyncTCP.h>
#include <ESPAsyncWebServer.h>

const char* ssid = "ИМЯ_ТОЧКИ ДОСТУПА";
const char* password = "ПАРОЛЬ";


// Create AsyncWebServer object on port 80
AsyncWebServer server(80);

void setup(){
  // Serial port for debugging purposes
  Serial.begin(115200);

  // Connect to Wi-Fi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi..");
  }

  // Print ESP Local IP Address. Delay for cut boot garbage
  delay(3000);
  Serial.println(WiFi.localIP());

  // Send a GET request to <ESP_IP>/update?output=<inputMessage1>&state=<inputMessage2>
  server.on("/chanel1", HTTP_GET, [] (AsyncWebServerRequest *request) {
    request->send(200, "text/plain", "some text");
   // ТУТ ОБРАБОТКА КНОКПИ КАНАЛ1

  });

  server.on("/chanel2", HTTP_GET, [] (AsyncWebServerRequest *request) {
    request->send(200, "text/plain", "some text");
   // ТУТ ОБРАБОТКА КНОКПИ КАНАЛ2

  });

  // Start server
  server.begin();
}

void loop() {

}