Помогите найти информацию как управлять реле через езернет

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai
Благодарил (а): 125 раз
Поблагодарили: 46 раз

Помогите найти информацию как управлять реле через езернет

Сообщение woow » Пн апр 03, 2017 4:16 pm

Чтобы не изобретать велосипед заново, хочу из имеющееся деталей Arduino_UNO+W5100+8_Relay_Shield сделать управление с МД по проводам т.е. LAN. Может быть есть уже готовое решение.
Искал по форуму, но тут только основном про датчики т.е. собирание информации на МД, а мне нужно и собирать и отправлять.
Есть вот тут https://www.instructables.com/id/Ethern ... h-Arduino/ но конечно связи с МД не надо будит мудрить и зря засорять форум.
Raspberry Pi 3B+
Teo
Сообщения: 19
Зарегистрирован: Сб фев 11, 2017 9:07 pm
Благодарил (а): 0
Поблагодарили: 5 раз

Re: Помогите найти информацию как управлять реле через езерн

Сообщение Teo » Пн апр 03, 2017 4:34 pm

Посмотрите здесь
viewtopic.php?f=8&t=496
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Помогите найти информацию как управлять реле через езерн

Сообщение Gelezako » Пн апр 03, 2017 5:09 pm

Тоже уже несколько месяцев ищу любую информацию про ethernet реле, но беспроводные девайсы более популярны, поэтому и примеров решений не так уж и много. Я пока остановился на вот таких реле https://goo.gl/GVHIN6 . Есть на 4 и на 8 реле. Они уже идут с прошивкой, через которую можно управлять релюхами через http протокол, по-моему удобно, буду пробовать.
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

Re: Помогите найти информацию как управлять реле через езерн

Сообщение Jager » Пн апр 03, 2017 5:40 pm

woow писал(а):Чтобы не изобретать велосипед заново, хочу из имеющееся деталей Arduino_UNO+W5100+8_Relay_Shield сделать управление с МД по проводам т.е. LAN. Может быть есть уже готовое решение.
Искал по форуму, но тут только основном про датчики т.е. собирание информации на МД, а мне нужно и собирать и отправлять.
Есть вот тут https://www.instructables.com/id/Ethern ... h-Arduino/ но конечно связи с МД не надо будит мудрить и зря засорять форум.
Замените шилд на enc28j60 и залейте прошивку от MegaD. Получите вполне универсальное устройство и интеграцию в МДМ.
Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai
Благодарил (а): 125 раз
Поблагодарили: 46 раз

Re: Помогите найти информацию как управлять реле через езерн

Сообщение woow » Пн апр 03, 2017 7:34 pm

Jager писал(а):Замените шилд на enc28j60 и залейте прошивку от MegaD. Получите вполне универсальное устройство и интеграцию в МДМ.
На сколько знаю W5100 лучше enc28j60, а там поправить не очень то и поправишь HEX, по крайней мере я и схемы железяки как собрать эту MegaD пока не нашёл и по состоянию что 60 листов форума с проблемами не очень радует. Наверно задел очень сложную тему управления реле через web.
Teo писал(а):Посмотрите здесь
viewtopic.php?f=8&t=496
Тема как бы та , но там пока дискуссия на уровне поисков и как я уже писал выше о подключении датчиков и сборе информации, не совсем то что нужно.
Последний раз редактировалось woow Пн апр 03, 2017 9:28 pm, всего редактировалось 2 раза.
Raspberry Pi 3B+
Teo
Сообщения: 19
Зарегистрирован: Сб фев 11, 2017 9:07 pm
Благодарил (а): 0
Поблагодарили: 5 раз

Re: Помогите найти информацию как управлять реле через езерн

Сообщение Teo » Пн апр 03, 2017 9:37 pm

Если хотите, могу свой скетч урезать и вам основной код показать, он для меги.
immortal
Сообщения: 1138
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 16 раз
Поблагодарили: 402 раза
Контактная информация:

Re: Помогите найти информацию как управлять реле через езерн

Сообщение immortal » Пн апр 03, 2017 10:22 pm

если Вы используете этот скетч, то я думаю вот эти строки:

Код: Выделить всё

              //Prints the ON Buttons
              client.print(" <td><INPUT TYPE=\"button\" VALUE=\"Switch ON - Pin  ");
              client.print(var);
              client.print("\" onClick=\"parent.location='/?H");
              client.print(var);
              client.print("'\"></td>\n");
             
              //Prints the OFF Buttons
              client.print(" <td><INPUT TYPE=\"button\" VALUE=\"Switch OFF - Pin  ");
              client.print(var);
              client.print("\" onClick=\"parent.location='/?L");
              client.print(var);
              client.print("'\"></td>\n");
отвечают за кнопки и на сколько я понимаю тут javascript который выполнить из внешнего приложение путем http запроса невозможно (поправьте меня если не так) и по этому надо искать другой скетч или переделывать этот.

У меня есть скетч для ESP8266 для реле все не доходят руки до ардуины, в прочем модернизировать первый скетч для ардуины думаю не составит труда.
Я пока остановился на вот таких реле https://goo.gl/GVHIN6
дорого, я напробывался всяких аналогичных реле, в том числе и iMatic и HLK-SW16 и вот такое не понятного производителя
На сегодняшний момент я четко понимаю, что готовые модули реле это дорого и не всегда просто с ними работать по этому лично я остановился для себя на двух вариантах: ESP8266 и через PCF8574 подключенную к i2c порту OrangePi PC (Raspberri Pi и т.п.), про использование ESP8266 ссылка на статью выше, про PCF8574 через i2c OPiPC статья в разработке и скоро увидит свет.

Сбор данных с датчиков это отдельная тема и лично я бы отделил сбор с датчиков от управления реле, кстати по датчикам 18b20 пишу развернутую статью.
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
SolarW
Сообщения: 179
Зарегистрирован: Вс июл 31, 2016 11:24 pm
Благодарил (а): 35 раз
Поблагодарили: 24 раза

Re: Помогите найти информацию как управлять реле через езерн

Сообщение SolarW » Пн апр 03, 2017 11:33 pm

woow писал(а):по крайней мере я и схемы железяки как собрать эту MegaD пока не нашёл
http://ab-log.ru/forum/viewtopic.php?t=6 - вот вам стописят вариантов схем.

http://jager-f.livejournal.com/47289.html - в том числе вариант MegaD-совместимого устройства от уважаемого Jager.


Отправлено с моего Redmi Note 2 через Tapatalk
Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai
Благодарил (а): 125 раз
Поблагодарили: 46 раз

Re: Помогите найти информацию как управлять реле через езерн

Сообщение woow » Вт апр 04, 2017 12:01 am

Вау! Такой форум и не первый год, но как похлопать релюшкой до сих пор нет, я думал, что не могу найти, а тут оказывается, не я один такой. Ну что поиграем. Умный дом и занимает время не на то чтобы он в реальности что то работало, а сплошные эксперименты т.е. песочница для мужиков с детским маразмом. Ну да ладно на себя наговаривать.
Есть немного инфо но до МД придётся копать в "ручную"
https://www.youtube.com/watch?v=SKbElfiOUUE
https://www.youtube.com/watch?v=r_d5GIHMzwU
А тут код простой и кривой, памяти на Уно не хватает, надо выпиливать лишнее:
СпойлерПоказать

Код: Выделить всё

//zoomkat 8-04-12
//simple button GET server code to control arduino pins
//for use with IDE 1.0 or later
//open serial monitor to see what the arduino receives
//use ' instead of " in the html 
//address will look like http://192.168.1.102:84 when submited
//for use with W5100 based ethernet shields
///note that the below bug fix may be required
// http://code.google.com/p/arduino/issues/detail?id=605 

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 1, 102 }; // ip in lan
byte gateway[] = { 192, 168, 1, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(84); //server port

String readString; 

//////////////////////

void setup(){

  pinMode(5, OUTPUT); //pin selected to control
  pinMode(6, OUTPUT); //pin selected to control
  pinMode(7, OUTPUT); //pin selected to control
  pinMode(8, OUTPUT); //pin selected to control
  //start Ethernet
  Ethernet.begin(mac, ip, gateway, gateway, subnet);
  server.begin();

  //enable serial data print 
  Serial.begin(9600); 
  Serial.println("server multi pin button test 1.0"); // so I can keep track of what is loaded
}

void loop(){
  // Create a client connection
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();

        //read char by char HTTP request
        if (readString.length() < 100) {

          //store characters to string 
          readString += c; 
          //Serial.print(c);
        } 

        //if HTTP request has ended
        if (c == '\n') {

          ///////////////
          Serial.println(readString); //print to serial monitor for debuging 

          client.println("HTTP/1.1 200 OK"); //send new page
          client.println("Content-Type: text/html");
          client.println();

          client.println("<HTML>");
          client.println("<HEAD>");
          client.println("<TITLE>Arduino GET test page</TITLE>");
          client.println("</HEAD>");
          client.println("<BODY>");

          client.println("<H1>Zoomkat's simple Arduino button</H1>");
          
          // For simple testing, pin 5, 6, 7, and 8 are used in buttons
          // DIY buttons
          client.println("<a href=/?on2 >5 ON</a>"); 
          client.println("<a href=/?off3 >5 OFF</a>"); 
          client.println("&nbsp;<a href=/?off357 >ALL OFF</a><br><br>"); 

          // mousedown buttons
          client.println("<input type=button value='6 ON' onmousedown=location.href='/?on4;'>"); 
          client.println("<input type=button value= '6 OFF' onmousedown=location.href='/?off5;'>");        
          client.println("&nbsp;<input type=button value='ALL OFF' onmousedown=location.href='/?off3579;'><br><br>");        
                   
          // mousedown radio buttons
          client.println("<input type=radio onmousedown=location.href='/?on6;'>7 ON</>"); 
          client.println("<input type=radio onmousedown=location.href='/?off7;'>7 OFF</>"); 
          client.println("&nbsp;<input type=radio onmousedown=location.href='/?off3579;'>ALL OFF</><br><br>");    
   
          
          // custom buttons
          client.print("<input type=submit value='8 ON' style=width:100px;height:45px onClick=location.href='/?on8;'>");
          client.print("<input type=submit value='8 OFF' style=width:100px;height:45px onClick=location.href='/?off9;'>");
          client.print("&nbsp;<input type=submit value='ALL OFF' style=width:100px;height:45px onClick=location.href='/?off3579;'>");

          client.println("</BODY>");
          client.println("</HTML>");

          delay(1);
          //stopping client
          client.stop();

          ///////////////////// control arduino pin
          if(readString.indexOf('2') >0)//checks for 2
          {
            digitalWrite(5, HIGH);    // set pin 5 high
            Serial.println("Led 5 On");
          }
          if(readString.indexOf('3') >0)//checks for 3
          {
            digitalWrite(5, LOW);    // set pin 5 low
            Serial.println("Led 5 Off");
          }
          
          if(readString.indexOf('4') >0)//checks for 4
          {
            digitalWrite(6, HIGH);    // set pin 6 high
            Serial.println("Led 6 On");
          }
          if(readString.indexOf('5') >0)//checks for 5
          {
            digitalWrite(6, LOW);    // set pin 6 low
            Serial.println("Led 6 Off");
          }
          
           if(readString.indexOf('6') >0)//checks for 6
          {
            digitalWrite(7, HIGH);    // set pin 7 high
            Serial.println("Led 7 On");
          }
          if(readString.indexOf('7') >0)//checks for 7
          {
            digitalWrite(7, LOW);    // set pin 7 low
            Serial.println("Led 7 Off");
          }     
          
            if(readString.indexOf('8') >0)//checks for 8
          {
            digitalWrite(8, HIGH);    // set pin 8 high
            Serial.println("Led 8 On");
          }
          if(readString.indexOf('9') >0)//checks for 9
          {
            digitalWrite(8, LOW);    // set pin 8 low
            Serial.println("Led 8 Off");
          }         
             
          //clearing string for next read
          readString="";

        }
      }
    }
  }
}  
Raspberry Pi 3B+
immortal
Сообщения: 1138
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 16 раз
Поблагодарили: 402 раза
Контактная информация:

Re: Помогите найти информацию как управлять реле через езерн

Сообщение immortal » Вт апр 04, 2017 12:40 am

woow писал(а):Вау! Такой форум и не первый год, но как похлопать релюшкой до сих пор нет, я думал, что не могу найти, а тут оказывается, не я один такой. Ну что поиграем. Умный дом и занимает время не на то чтобы он в реальности что то работало, а сплошные эксперименты т.е. песочница для мужиков с детским маразмом. Ну да ладно на себя наговаривать.
Есть немного инфо но до МД придётся копать в "ручную"
https://www.youtube.com/watch?v=SKbElfiOUUE
https://www.youtube.com/watch?v=r_d5GIHMzwU
А тут код простой и кривой, памяти на Уно не хватает, надо выпиливать лишнее:
как хлопать релюшкой есть, в том числе и на ардуино, но лично я первые релюшки хлопал вот такие через МД лет 5 назад
eCKsKgScmyU.jpg
eCKsKgScmyU.jpg (84.22 КБ) 8303 просмотра
до сих пор там работают и ещё на 3-х объектах, просто тем не было поскольку вопросов не возникало видимо.
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
Ответить