#1 23-06-2019 22:02:12

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

SMART HOME - УМНЫЙ ДОМ.

Сегодня, привинтил уже стационарный модуль управления нагрузками. Основа модуля SMART HOME - ESP 8266/ESP-12F/Witty cloud.
Копеечный микрокомпьютер. На борту Witty cloud уже есть RGB светодиод и фоторезистор весит на единственном входе АЦП(разрядностью 9bit).
Брал тут.
https://ru.aliexpress.com/item/ESP8266- … 33ed0LSrj7
Если брать 1 шт, то 200 руб с доставкой.
Если заказывать больше 3 шт, доставка 100 руб и каждый девайс по 150 руб(это вместе с программатором каждая плата идёт).
Я заказывал 5 шт. Получилось по 150 руб за шт + 100 руб доставка.
Самый дешевый микрокомпьютер в мире, ещё и с программатором. На данный момент, уже устаревший чип, но его вполне достаточно для моих целей и ценник адекватный. У этого прадована, есть ещё хорошие разъёмы под эту плату.
https://ru.aliexpress.com/item/10pcs-40 … 33ed0LSrj7
Приехала посылка через 16 дней. Очень резвый продАван.
Девайс.

1-457.jpg

1-458.jpg

1-459.jpg
Светодиодная лента 12В, которой сейчас рулит прибор. Питание девайса 12В(+30В/-3В).


1-460.jpg

1-461.jpg

Не в сети

#2 23-06-2019 22:34:56

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: SMART HOME - УМНЫЙ ДОМ.

В данный момент, прибор умеет включать/выключать четыре нагрузки через локальную сеть - смартфоном/ПК/планшетом(без выхода в Интернет, просто девайс должен быть подключен к любой точке доступа через WiFi) или c любого пульта ИК может управляться. Прибор, будет сопровождаться схемами/прошивками/фотографиями. Прожект, абсолютно открытый будет. Среда программирования - Arduino IDE. Язык - C++.
Фото управляющих девайсов. Пульт ИК(любой) или смартфон/ПК подключённый к той же локальной сети.

DSCF8122.jpg

IMG-20190623-224038.jpg

IMG-20190623-224044.jpg
На дисплее смартфона, такую вот картинку/меню управления, формирует локальный сервер ESP.
Screenshot-2019-06-23-23-40-46-593-com-android-chrome.png

Не в сети

#3 24-06-2019 00:42:14

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: SMART HOME - УМНЫЙ ДОМ.

Плата.

image.jpg

Не в сети

#4 25-06-2019 22:05:13

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: SMART HOME - УМНЫЙ ДОМ.

#include <Arduino.h>
#include <IRremoteESP8266.h>
#include <IRrecv.h>
#include <IRutils.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

MDNSResponder mdns;

// Wi-Fi
//const char* ssid = "tele2";
//const char* password = "ta20242024";
const char* ssid = "77777";
const char* password = "5K9S7Y8B875K9S7Y8B87";
byte arduino_mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
IPAddress ip(192,168,43,155);
IPAddress gateway(192,168,1,1);
IPAddress subnet(255,255,255,0);

ESP8266WebServer server(80);
int a = 0;
int D0_pin = 15;
int D2_pin = 12;
int D1_pin = 13;
const uint16_t kRecvPin = 14;
/////////////////
const int ledPinG = 12;//ЗЕЛЁНЫЙ
const int ledPinB = 13;//СИНИЙ
const int ledPinR = 15;//красный
const int ledPin16 = 16;//GPIO 16 белый провод
const int ledPin5 = 5;//GPIO 5 жёлтый провод
IRrecv irrecv(kRecvPin);

decode_results results;

void setup(void){
  // preparing GPIOs
  pinMode(D0_pin, OUTPUT);
  digitalWrite(D0_pin, LOW);
  pinMode(D2_pin, OUTPUT);
  digitalWrite(D2_pin, LOW);
  pinMode(D1_pin, OUTPUT);
  digitalWrite(D1_pin, LOW);


  delay(100);
  Serial.begin(115200);
//////////////////////
   pinMode(ledPinG, OUTPUT);
  pinMode(ledPinB, OUTPUT);
  pinMode(ledPinR, OUTPUT);
  pinMode(ledPin16, OUTPUT);
  pinMode(ledPin5, OUTPUT);
  irrecv.enableIRIn();  // Start the receiver
  while (!Serial)  // Wait for the serial connection to be establised.
    delay(50);
  Serial.println();
  Serial.print("IRrecvDemo is now running and waiting for IR message on Pin ");
  Serial.println(kRecvPin);
  /////////////////////
 
  WiFi.begin(ssid, password);
  WiFi.config(ip, gateway, subnet);
 

  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
   Serial.print(".");
   if (a==30){break;}
   a=a+1;
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
 
  if (mdns.begin("esp8266", WiFi.localIP())) {
    Serial.println("MDNS responder started");
  }
 
  //+++++++++++++++++++++++ START  LED-1 ++++++++++++++++++++
  server.on("/", [](){
    server.send(200, "text/html", webPage());
  });
  server.on("/socket1On", [](){
    digitalWrite(D0_pin, HIGH);
    server.send(200, "text/html", webPage());
    delay(100);
   
  });
  server.on("/socket1Off", [](){
    digitalWrite(D0_pin, LOW);
    server.send(200, "text/html", webPage());
    delay(100);
   //+++++++++++++++++++++++ END  LED-1 ++++++++++++++++++++
   
   //+++++++++++++++++++++++ START  LED-2  ++++++++++++++++++++
  });
  server.on("/socket2On", [](){
    digitalWrite(D2_pin, HIGH);
    server.send(200, "text/html", webPage());
    delay(100);   
  });
  server.on("/socket2Off", [](){
    digitalWrite(D2_pin, LOW);
    server.send(200, "text/html", webPage());
    delay(100);
   
   // +++++++++++++++++++++++ END  LED-2 ++++++++++++++++++++
   
   //+++++++++++++++++++++++ START  LED-3  ++++++++++++++++++++
  });
  server.on("/socket3On", [](){
    digitalWrite(D1_pin, HIGH);
    server.send(200, "text/html", webPage());
    delay(100);   
  });
  server.on("/socket3Off", [](){
    digitalWrite(D1_pin, LOW);
    server.send(200, "text/html", webPage());
    delay(100);
   
   // +++++++++++++++++++++++ END  LED-3 ++++++++++++++++++++
   
   
  });
  server.begin();
  Serial.println("HTTP server started");
}

void loop(void){
///////////////////////////
if (irrecv.decode(&results)) {
  serialPrintUint64(results.value, HEX);
  Serial.println("-");
if (results.value==0x1FE40BF){//REC/RED
digitalWrite(ledPinR, HIGH);}
if (results.value==0xFB6A95){//REC/RED
digitalWrite(ledPinR, HIGH);}
if (results.value==0x1FE20DF) {//UP
digitalWrite(ledPin16, HIGH);}
if (results.value==0x1FE609F) {//DOWN//жёлтый
digitalWrite(ledPin5,HIGH);}
if (results.value==0xFBF807) {//DOWN//жёлтый
digitalWrite(ledPin5,HIGH);}
if (results.value==0x1FEA05F) {//MENU
digitalWrite(ledPinG,HIGH);}
if (results.value==0xFBEA15) {//MENU
digitalWrite(ledPinG,HIGH);}
if (results.value==0x1FE10EF) {//MODE
digitalWrite(ledPinB,HIGH);}
if (results.value==0xFBDA25) {//MODE
digitalWrite(ledPinB,HIGH);}
if (results.value==0x1FE7887) {//ON/OFF//mute
digitalWrite(ledPinR,LOW);
digitalWrite(ledPinG,LOW);
digitalWrite(ledPinB,LOW);
digitalWrite(ledPin16,LOW);
digitalWrite(ledPin5,LOW);
}

if (results.value==0xFB10EF) {//ON/OFF//mute
digitalWrite(ledPinR,LOW);
digitalWrite(ledPinG,LOW);
digitalWrite(ledPinB,LOW);
digitalWrite(ledPin16,LOW);
digitalWrite(ledPin5,LOW);
}
irrecv.resume();
}
a=0;
  // Wait for connection
  if (WiFi.status() != WL_CONNECTED) {
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
   Serial.print(".");
   if (a==2){break;}
   a=a+1;
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
 
  if (mdns.begin("esp8266", WiFi.localIP())) {
    Serial.println("MDNS responder started");
  }
  }
  server.handleClient();
}

String webPage()
{
  String web;
  web += "<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/> <meta charset=\"utf-8\"><title>ESP 8266</title><style>button{color:red;padding: 10px 27px;}</style></head>";
  web += "<h1 style=\"text-align: center;font-family: Open sans;font-weight: 100;font-size: 20px;\">ESP8266 Web Server</h1><div>";
  //++++++++++ LED-1  +++++++++++++
  web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">----RED----</p>";
  if (digitalRead(D0_pin) == 1)
  {
    web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #43a209;margin: 0 auto;\">ON</div>";
  }
  else
  {
    web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #ec1212;margin: 0 auto;\">OFF</div>";
  }
  web += "<div style=\"text-align: center;margin: 5px 0px;\"> <a href=\"socket1On\"><button>ON</button></a>&nbsp;<a href=\"socket1Off\"><button>OFF</button></a></div>";
  // ++++++++ LED-1 +++++++++++++
 
  //++++++++++ LED-2  +++++++++++++
  web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">----GREEN----</p>";
  if (digitalRead(D2_pin) == 1)
  {
    web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #43a209;margin: 0 auto;\">ON</div>";
  }
  else
  {
    web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #ec1212;margin: 0 auto;\">OFF</div>";
  }
  web += "<div style=\"text-align: center;margin: 5px 0px;\"> <a href=\"socket2On\"><button>ON</button></a>&nbsp;<a href=\"socket2Off\"><button>OFF</button></a></div>";
  // ++++++++ LED-2 +++++++++++++
 
  //++++++++++ LED-3  +++++++++++++
  web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">---BLUE---</p>";
  if (digitalRead(D1_pin) == 1)
  {
    web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #43a209;margin: 0 auto;\">ON</div>";
  }
  else
  {
    web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #ec1212;margin: 0 auto;\">OFF</div>";
  }
  web += "<div style=\"text-align: center;margin: 5px 0px;\"> <a href=\"socket3On\"><button>ON</button></a>&nbsp;<a href=\"socket3Off\"><button>OFF</button></a></div>";
  // ++++++++ LED-2 +++++++++++++
 
  // ========REFRESH=============
  web += "<div style=\"text-align:center;margin-top: 20px;\"><a href=\"/\"><button style=\"width:158px;\">REFRESH</button></a></div>";
  // ========REFRESH=============
 
 
  web += "</div>";
  return(web);
}

Не в сети

#5 25-06-2019 22:09:08

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: SMART HOME - УМНЫЙ ДОМ.

Последний скетч, коды сайта, вроде код не переколбасили текст в самйлы. Сейчас, девайс умеет управлять пятью нагрузками через два  разных ИК пульта и тремя нагрузками через браузер/локальную сеть.

Не в сети

#6 25-06-2019 22:11:10

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: SMART HOME - УМНЫЙ ДОМ.

15614754327141202579973458764282.jpg
Девайс, теперь выглядит так. Впаял на радиаторную плату от светодиодного фонаря 5 полевых транзисторов с неисправной материнской платы. Транзисторы крутейшие 50N024.
http://html.alldatasheet.com/html-pdf/1 … 24-06.html
С ультранизким сопротивлением открытого канала. Сейчас такой полевик открыт напряжением 3,25 В( непосредственно с маломощного выхода GPIO).  Ток в управляемой цепи 4 А(при 12В) и падение напряжения на затворе всего 42 мВ. На транзисторе выделяется U*I=0,042*4=0,168 Вт. Можно не заморачиваться с радиатором, просто сделать под него полигон на плате, в качестве радиатора.
И стоят копейки.
https://ru.aliexpress.com/item/32918015 … 549050fb75
На нормальном радиаторе, 10 ампер потянут без проблем.

15614755667352090953640228713555.jpg
Управление по ИК каналу идёт с двух пультов.

15614773862448747660089269843731.jpg
Коды принимаемые ИК приёмником выводятся в серийный порт. Локальный IP девайса(в конкретной сети), тоже выводится в серийный порт.

Не в сети

#7 27-06-2019 20:44:43

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: SMART HOME - УМНЫЙ ДОМ.

Схема. Прикрутил ещё градусник DS18B20. Данные с градусника, тоже выводятся в браузер. Теперь порт GIPIO 5, отдан под градусник DS18B20. Новую программу, позже выложу.

LOCAL-WEBSERVER.gif


Screenshot-2019-06-27-20-27-11-029-com-android-chrome.png

Не в сети

#8 08-12-2019 19:14:39

IvanAltay
Administrator
Зарегистрирован: 03-05-2018
Сообщений: 4,586

Re: SMART HOME - УМНЫЙ ДОМ.

15758071233166991996266186636059.jpg

15758074114972070749979519917877.jpg

Не в сети

Подвал раздела

Работает на FluxBB (перевод Laravel.ru)