РОЗУМНА РОЗЕТКА | SMART SOCKET

Звичайно смарт розеткою на даний час вже нікого на здивуєш, але серед різноманіття дорогих, або не сильно якісних варіантів важко щось вибрати. Тому я вирішив спробувати зробити свій власний бютжетний варіант “розумної розетки”.

За основу візьмемо такі компоненти:

Найважчим як виявлось зібрати сам корпус 🙂 Мало того, що немає інструкції… та щей прийшлось шукати гвинтики (яких в комплекті не було)

Після довго “складання пазла” у вигляді корпуса настав час перевірити саму електроніку. Я думаю так як принцип підключення простий, то малювати схему немає сенсу (а по правді кажучи мені просто лінь 🙂 ). Перш ніж підключити WiFi-ку до модуля реле потрібно залляти туди відповідний скетч. За задумкою вона повинна підключатись до домашнього роутера, щоб будь який пристрій в локальні мережі зміг підключитись до неї (в подальшому прокину все глобальну мережу для доступу з будь якої точки земної кулі). Нижче приведений скетч був знайдений на просторах інтернет і допилений для конкретно мого випадку.

#include <ESP8266WiFi.h>                      // Підключаєм бібліотеку ESP8266WiFi
 
const char* ssid = "****";                   // Назва Вашої WiFi мережі
const char* password = "****";               // Пароль від Вашої WiFi мережі

#define RELAY 0                               // Пін до якого підключений датчик
WiFiServer server(80);                        // Вказуєм порт Web-сервера
 
void setup(){
  delay(2200);      
  Serial.begin(115200);                       // Швидкість передачі 115200 
  pinMode(RELAY,OUTPUT);                      // Вказуєм вихід RELAY як вихід
  digitalWrite(RELAY, HIGH);                  // Встановлюєм  RELAY в HIGH
  Serial.println();                           // Друк пустої сторінки 
  Serial.print("Connecting to ");             // Друк "Підключення до:"
  Serial.println(ssid);                       // Друк "Назва Вашої WiFi мережі"
 
  WiFi.begin(ssid, password);                 // Підключення до WiFi мережі
 
  while (WiFi.status() != WL_CONNECTED)       // Перевірка підключення до WiFi мережі
  { 
    delay(500);                               // Пауза 500 мкс
    Serial.print(".");                        // Друк "."
  }
  Serial.println("");                         // Друк пустої сторінки  
  Serial.println("WiFi connected");           // Друк "WiFi connected"
 
  server.begin();                             // Запуск сервера
  Serial.println("Server started");           // Друк "Server starte"
  Serial.print("Use this URL to connect: ");  // Друк "Use this URL to connect:" 
  Serial.print(WiFi.localIP());               // Друк виданого IP адреса          
}
 
void loop(){
   WiFiClient client = server.available();    // Отримуєм данні, відправлені клієнтом 
  if (!client)                                
  {
    return;
  }
  Serial.println("new client");               // Відправка "new client"
  while(!client.available())                  // Поки є зв'язок з клієнтом 
  {
    delay(1);                                 // пауза 1 мс
  }

  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();
 
  int value = HIGH;
   if (request.indexOf("/RELAY=OFF") != -1)  
  {
    Serial.println("RELAY=OFF");
    digitalWrite(RELAY,HIGH);
    value = HIGH;
  }
  if (request.indexOf("/RELAY=ON") != -1)  
  {
    Serial.println("RELAY=ON");
    digitalWrite(RELAY,LOW);
    value = LOW;
  }
  
  delay(1);
  Serial.println("Client disonnected");
  Serial.println("");
}

Як виявилось щоб прошити esp-01 потрібно на піни CH_PD та VCC підкинути резистор 10 кОм. Коротше кажучи допилити напильником, щоб залляти туди код (хоча з версією модуля esp-01s таких проблем немає).

Ну а далі все збираєм 🙂 Один контакт від вилки йде на розетку, інши через реле, ну і не забуваєм прокинути проводки до модуля живлення, щоб завести нашу електроніку. Кріпимо це все як завжди на термосомлі.

Можливо не з першого разу, але все почало працювати.

Залишилось допилити примітивний додаток під android.

В подальшому планую розширити фунціонал розетки. Додати таймер, можливість включення/виключення в певний період і веб морду для більш зручнішого налаштування параметрів підключення (щоб не шити кожен раз модуль).

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

42 − = 40