интересный код, судя по коду кнопки ведут вот на эти адреса
http://ip_servera/?off3
http://ip_servera/?on2
и т.д., ну и соответственно из МД так же управляем, хотя судя по коду можно наверно и так
http://ip_servera/?3
http://ip_servera/?2
не, не понятный код, скоро свой допилю и выложу.
Помогите найти информацию как управлять реле через езернет
Модератор: immortal
-
- Сообщения: 1138
- Зарегистрирован: Вт янв 29, 2013 9:16 am
- Откуда: Белозерск
- Благодарил (а): 16 раз
- Поблагодарили: 400 раз
- Контактная информация:
Re: Помогите найти информацию как управлять реле через езерн
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
-
- Сообщения: 1138
- Зарегистрирован: Вт янв 29, 2013 9:16 am
- Откуда: Белозерск
- Благодарил (а): 16 раз
- Поблагодарили: 400 раз
- Контактная информация:
Re: Помогите найти информацию как управлять реле через езерн
Снял видео про использование реле
https://youtu.be/WdOBJn7erZU
забыл правда добавить использование HC-11 (HC-12)
https://youtu.be/WdOBJn7erZU
забыл правда добавить использование HC-11 (HC-12)
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
- woow
- Сообщения: 821
- Зарегистрирован: Пн июл 04, 2016 8:46 am
- Откуда: Mazeikiai
- Благодарил (а): 125 раз
- Поблагодарили: 46 раз
Re: Помогите найти информацию как управлять реле через езерн
Бросил эту затею с web server'ом и прикрутил mqtt, и вот что получилось. Железяка собрана Arduino Nano+W5100+HL-58S(8relay panel).
Это всё работает с МД и управляется выключателем On/Off. Цель создания такого устройства- управление нагрузкой в щитовой. Например типа такого "уходя из дома гаси свет". Есть разные группы ел. потребителей которые желательно отключать, например освещение, розетки с бытовыми приборами (микроволновка, кофеварка, зарядники мобилок и т.д.) Чего там не хватает:
1.Запоминания, последнего положения всех реле, это нужно для того, если пропадёт электричество и потом будет восстановлено.
2. Сообщений когда теряется связь (редкость, но бывает)
3. И создать сценарий всем этим управлять автоматический т.е. по умному.
Ну вот, может кто поможет разобраться, как записать каждое изменение, и потом в считывать. Я на Arduino умею только в "ручную" заносить кнопками в память... А здесь на этом модуле и SD карты нет, значит надо чтобы где-то МД сервер запоминал.
4. Не закончена часть кода AllOff и AllOn. Я его не пробовал создавать на Arduino, я думаю это нужно справлять в МД. Только как это.
Кому перечисленные прибамбасы не нужны, тогда код рабочий на рассмотрение.
Это всё работает с МД и управляется выключателем On/Off. Цель создания такого устройства- управление нагрузкой в щитовой. Например типа такого "уходя из дома гаси свет". Есть разные группы ел. потребителей которые желательно отключать, например освещение, розетки с бытовыми приборами (микроволновка, кофеварка, зарядники мобилок и т.д.) Чего там не хватает:
1.Запоминания, последнего положения всех реле, это нужно для того, если пропадёт электричество и потом будет восстановлено.
2. Сообщений когда теряется связь (редкость, но бывает)
3. И создать сценарий всем этим управлять автоматический т.е. по умному.
Ну вот, может кто поможет разобраться, как записать каждое изменение, и потом в считывать. Я на Arduino умею только в "ручную" заносить кнопками в память... А здесь на этом модуле и SD карты нет, значит надо чтобы где-то МД сервер запоминал.
4. Не закончена часть кода AllOff и AllOn. Я его не пробовал создавать на Arduino, я думаю это нужно справлять в МД. Только как это.
Кому перечисленные прибамбасы не нужны, тогда код рабочий на рассмотрение.
СпойлерПоказать
Код: Выделить всё
/*
connect to mqtt server, send and recive
Arduino Nano
W5100
HL-58S
*/
#include <SPI.h>
#include <Ethernet.h>
#include <PubSubClient.h>
//#include <EEPROM.h>
const int relay1 = 2;
const int relay2 = 3;
const int relay3 = 4;
const int relay4 = 5;
const int relay5 = 6;
const int relay6 = 7;
const int relay7 = 8;
const int relay8 = 9;
// Update these with values suitable for your network.
byte mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
byte server[] = { 192, 168, 1, 123 };
byte ip[] = { 192, 168, 1, 32 };
void callback(char* topic, byte* payload, unsigned int length)
{
int r,hl;
Serial.print("Message arrived [");
Serial.print(topic);
Serial.print("] ");
////****///
char receivedChar = (char)payload[0];
Serial.print(receivedChar);
if(receivedChar=='1')
hl = LOW;
else
hl = HIGH;
if(String(topic)=="PowerPanel/relay1")
r = relay1;
else if(String(topic)=="PowerPanel/relay2")
r = relay2;
else if(String(topic)=="PowerPanel/relay3")
r = relay3;
else if(String(topic)=="PowerPanel/relay4")
r = relay4;
else if(String(topic)=="PowerPanel/relay5")
r = relay5;
else if(String(topic)=="PowerPanel/relay6")
r = relay6;
else if(String(topic)=="PowerPanel/relay7")
r = relay7;
else if(String(topic)=="PowerPanel/relay8")
r = relay8;
else
r = relay1;
digitalWrite(r, hl);
Serial.println();
}
EthernetClient ethClient;
PubSubClient client(server, 1883, callback, ethClient);
void reconnect()
{
// Loop until we're reconnected
while (!client.connected())
{
Serial.println("Attempting MQTT connection...");
// Attempt to connect
if (client.connect("arduinoPowerPanel"))
{
Serial.println("connected");
}
else
{
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
delay(5000);
}
}
}
void setup()
{
Serial.begin(9600);
Ethernet.begin(mac, ip);
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
pinMode(relay5, OUTPUT);
pinMode(relay6, OUTPUT);
pinMode(relay7, OUTPUT);
pinMode(relay8, OUTPUT);
if (client.connect("arduinoPowerPanel"))
{
Serial.print("online");
client.publish("PowerPanel/relay1", "1");
client.subscribe("PowerPanel/relay1");
client.publish("PowerPanel/relay2", "1");
client.subscribe("PowerPanel/relay2");
client.publish("PowerPanel/relay3", "1");
client.subscribe("PowerPanel/relay3");
client.publish("PowerPanel/relay4", "1");
client.subscribe("PowerPanel/relay4");
client.publish("PowerPanel/relay5", "1");
client.subscribe("PowerPanel/relay5");
client.publish("PowerPanel/relay6", "1");
client.subscribe("PowerPanel/relay6");
client.publish("PowerPanel/relay7", "1");
client.subscribe("PowerPanel/relay7");
client.publish("PowerPanel/relay8", "1");
client.subscribe("PowerPanel/relay8");
}
}
void loop()
{
if (!client.connected())
{
reconnect();
}
client.loop();
}
Raspberry Pi 3B+
-
- Сообщения: 72
- Зарегистрирован: Вс апр 23, 2017 5:27 pm
- Благодарил (а): 25 раз
- Поблагодарили: 2 раза
Re: Помогите найти информацию как управлять реле через езерн
Всем доброго дня! Прошу помощи!
Как подключить к МЖД датчик температуры, который в свою очередь подключен к контроллеру Ардуино. При прямом обращении через браузер по ссылке:
http://192.168.1.37/getdev?=T0
вижу такой результат:
T0:28AF67FE05000077:21.37; Где последние цифры - это показания датчика температуры. Как это прикрутить к МЖД, чтобы температура отображалась на сцене?
Как подключить к МЖД датчик температуры, который в свою очередь подключен к контроллеру Ардуино. При прямом обращении через браузер по ссылке:
http://192.168.1.37/getdev?=T0
вижу такой результат:
T0:28AF67FE05000077:21.37; Где последние цифры - это показания датчика температуры. Как это прикрутить к МЖД, чтобы температура отображалась на сцене?
-
- Сообщения: 35
- Зарегистрирован: Вт сен 13, 2016 8:43 pm
- Благодарил (а): 9 раз
- Поблагодарили: 6 раз
Re: Помогите найти информацию как управлять реле через езерн
Вам нужно через веб-переменные вытаскивать данные и связать с каким-либо объект.свойство ... а потом уже привяжите информер на сцену...Neocivic писал(а):Всем доброго дня! Прошу помощи!
Как подключить к МЖД датчик температуры, который в свою очередь подключен к контроллеру Ардуино. При прямом обращении через браузер по ссылке:
http://192.168.1.37/getdev?=T0
вижу такой результат:
T0:28AF67FE05000077:21.37; Где последние цифры - это показания датчика температуры. Как это прикрутить к МЖД, чтобы температура отображалась на сцене?
поищите на форуме примеры (полно было описано)...
- Рейтинг: 1.16%