Умный Дом по Ethernet

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Rik
Сообщения: 65
Зарегистрирован: 28 фев 2012, 01:17
Откуда: Украина Харьков

Re: Умный Дом по Ethernet

Сообщение Rik » 25 мар 2013, 16:42

Выходы от датчиков и другого LAN оборудования, при вводе в шкаф решил предварительно подключать вот к таким планкам, сегодня получил, качество хорошее:
Изображение
заказывал вот здесь: http://www.ebay.com/itm/390204401529?ss ... 1497.l2649

digitalhome1
Сообщения: 75
Зарегистрирован: 03 май 2012, 22:45

Re: Умный Дом по Ethernet

Сообщение digitalhome1 » 25 мар 2013, 18:15

_sa_ писал(а):Зависит от того какой датчик выберете. Если цифрофой, работающий по 1-wire, то на на одну шину их можно повесить несколько, грубо говоря, разрезал петлю, выдернул оттуда два провода, от к ним припаял датчик, в следующей петле на эти же два провода, еще датчик.

Опять же, в витой паре 8 проводов. Можно на разные провода повесить разные датчики.

Один вопрос - длинна. Думаю, далассовский датчик можно метров на 20 на проводах от контроллера расположить
Я все равно не очень понимаю как витую пару проложить. Нельзя объяснить? Ну т.е. берешь вот так витуху (купил медную сечением 0.5), ее в гофру, около батари петлю вытаскиваешь (? Какой длинны) и дальше что там, розетку ставить надо?
Буду конечно 1-wire использовать

_sa_
Сообщения: 27
Зарегистрирован: 09 янв 2013, 17:20

Re: Умный Дом по Ethernet

Сообщение _sa_ » 25 мар 2013, 18:47

Rik писал(а): дальше что там, розетку ставить надо
Я бы прикинул, хватил ли 8 проводов витой пары под все задачи. Если хватит, то сделал бы петлю с выводом в подрозетник. То есть, заштробил бы ее в стену, в гофре и петельку вывел подрозетнике там, где планируется использовать датчик. Размер петели я бы сделал такой, чтобы можно было поковыряться в проводах. Какие-то разрезать, подпаять провода до самого датчика.

Ну грубо. Подрозетник за батареей, в него розетку для телефонного провода (как она там называется, где не 8 контактов, а 4), например, датчик на кусочек провода и воткнуть в розетку.

Если отнестись к витой паре не как к мифической паре, а как к 8 проводам, которые можно перекусить и спаять, то концепт мира изменится

_sa_
Сообщения: 27
Зарегистрирован: 09 янв 2013, 17:20

Re: Умный Дом по Ethernet

Сообщение _sa_ » 25 мар 2013, 18:48

Внутри этой коробки витая пара припаянная у датчику расстояния ультрасоник. Направление для мысли, так сказать.

Изображение

digitalhome1
Сообщения: 75
Зарегистрирован: 03 май 2012, 22:45

Re: Умный Дом по Ethernet

Сообщение digitalhome1 » 25 мар 2013, 21:30

Спасибо за ответы! Обмозгую и представлю вариант

Vir
Сообщения: 12
Зарегистрирован: 09 апр 2013, 19:10

Re: Умный Дом по Ethernet

Сообщение Vir » 10 апр 2013, 18:03

Прошил Arduino UNO все замечательно работает, замечательная реализация, сейчас обзавелся Arduino Mega хочется ее заиспользовать на полную, никто не подскажет где копать в коде
1. чтобы увеличить количество обрабатываемых портов штук до 40?
2. на нескольких кнопках реализовать обработку долгого нажатия средствами самого устройства?

alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 11 апр 2013, 02:57

никто не подскажет где копать в коде
извольте
char *aio[IO_SIZE] = {"C5", "D0", "C4", "D1", "C3", "C2", "D3", "B1", "D7", "D6", "D5", "C0", "D4", "C1"};отредактируйте тот массив в соответствии с вашими запросами
т к наверняка появятся дополнительные порты
вот сдесь
for ( i = 0; i < IO_SIZE; i++ )
{
port_letter = aio[0];
port_num = atoi(&aio[1]);
srv_timeout = 0;
srv_timeout_act = 0;

if (_port_type == 1 )
{
if ( port_letter == 'D' )
{
DDRD |= (1<<port_num);
if (_port_d == 1 )
PORTD|= (1<<port_num);
else
PORTD &= ~(1<<port_num);

// Выключаем ШИМ
if ( port_num == 6 )
TCCR0A &= ~(1 << COM0A1);
else if ( port_num == 5 )
TCCR0A &= ~(1 << COM0B1);
else if ( port_num == 3 )
TCCR2A &= ~(1 << COM2B1);

}
else if ( port_letter == 'C' )
{
DDRC |= (1<<port_num);
if (_port_d == 1 )
PORTC|= (1<<port_num);
else
PORTC &= ~(1<<port_num);
}
else if ( port_letter == 'B' )
{
DDRB |= (1<<port_num);
if (_port_d == 1 )
PORTB|= (1<<port_num);
else
PORTB &= ~(1<<port_num);
}

// Включаем ШИМ
if ( _port_m == 1 )
{
if ( port_letter == 'D' )
{
if ( port_num == 6 )
{
OCR0A = 0;
TCCR0A |= (1 << COM0A1);
// set fast PWM Mode
TCCR0A |= (1 << WGM01) | (1 << WGM00);
TCCR0B |= (1 << CS01);
}

if ( port_num == 5 )
{
OCR0B = 0;
TCCR0A |= (1 << COM0B1);
// set fast PWM Mode
TCCR0A |= (1 << WGM01) | (1 << WGM00);
TCCR0B |= (1 << CS01);
}

if ( port_num == 3 )
{
OCR2B = 0;

TCCR2A |= (1 << COM2B1);
// set fast PWM Mode
TCCR2A |= (1 << WGM21) | (1 << WGM20);
TCCR2B |= (1 << CS21);
}

}
}
}
else
{
if ( port_letter == 'D' )
DDRD &= ~(1<<port_num);
if ( port_letter == 'C' )
DDRC &= ~(1<<port_num);
if ( port_letter == 'B' )
DDRB &= ~(1<<port_num);
}

}
вероятно сдесь
if ( srv_cmd == '1' )
{
if ( port_letter == 'D' )
PORTD|= (1<<port_num);
else if ( port_letter == 'C' )
PORTC|= (1<<port_num);
else if ( port_letter == 'B' )
PORTB|= (1<<port_num);
}
// OFF
else if ( srv_cmd[i] == '0' )
{
if ( port_letter == 'D' )
PORTD &= ~(1<<port_num);
else if ( port_letter == 'C' )
PORTC &= ~(1<<port_num);
else if ( port_letter == 'B' )
PORTB &= ~(1<<port_num);
}
// Toggle
else if ( srv_cmd[i] == '2' )
{
if ( port_letter == 'D' )
PORTD ^= (1<<port_num);
else if ( port_letter == 'C' )
PORTC ^= (1<<port_num);
else if ( port_letter == 'B' )
PORTB ^= (1<<port_num);
}
сдесь
if ( port_letter == 'D' )
{
avr_port = DDRD;
avr_port_port = PORTD;
avr_port_pin = PIND;
}
else if ( port_letter == 'C' )
{
avr_port = DDRC;
avr_port_port = PORTC;
avr_port_pin = PINC;
}
else if ( port_letter == 'B' )
{
avr_port = DDRB;
avr_port_port = PORTB;
avr_port_pin = PINB;
}
может быть еще в паре мест , будете испытывать найдете :D
// Обработка нажатия кнопки.
char my_mask;
char my_mask2;
if (port_letter == 'D')
{
my_mask = get_key_press(1 << port_num);
my_mask2 = get_key_release(1 << port_num);
}
else
{
my_mask = get_key_press2(1 << port_num);
my_mask2 = get_key_release2(1 << port_num);
}
данная прошивка не приспособлена для обработки длительного нажатия
вам необходимо организовать таймер завести его при нажатии кнопки и через требуемый интервал опросить ее снова, если кнопка до сих пор нажата сделать вывод, таймер должен быть организован не с применением задержек типа Delay вот в принципе и все
Удачи

Vir
Сообщения: 12
Зарегистрирован: 09 апр 2013, 19:10

Re: Умный Дом по Ethernet

Сообщение Vir » 11 апр 2013, 08:23

alexsis_76 Спасибо будем пробовать!

asteroid
Сообщения: 42
Зарегистрирован: 13 апр 2013, 02:16

Re: Умный Дом по Ethernet

Сообщение asteroid » 13 апр 2013, 02:26

Всем доброго времени.
Собрал я схему, все прошилось и заработало даже с первого раза.
Неудобство пожалуй только в том, что хочется таки приделать wifi.
Пока получилось разместить плату прямо в wifi роутер, таким образом можно управлять и с планшета.
Может есть у кого мысли, как доработать по spi радиомодуль ?

nevson
Сообщения: 5
Зарегистрирован: 05 апр 2013, 19:51

Re: Умный Дом по Ethernet

Сообщение nevson » 13 апр 2013, 09:18

Как защитить входы atmega от помех? Провода от кнопок до мегадевайса 20 м.

dimonix
Сообщения: 368
Зарегистрирован: 19 фев 2012, 22:01
Откуда: Сколково

Re: Умный Дом по Ethernet

Сообщение dimonix » 13 апр 2013, 11:04

nevson писал(а):Как защитить входы atmega от помех? Провода от кнопок до мегадевайса 20 м.
как минимум включить в меге подтягивающие резисторы. в этой теме есть сообщение как это сделать.
другой вариант - припаять эти самые подтягивающие резисторы. 5-10 ком должно быть Ок.
в крайнем случае делать токовую петлю с оптронной развязкой.

nevson
Сообщения: 5
Зарегистрирован: 05 апр 2013, 19:51

Re: Умный Дом по Ethernet

Сообщение nevson » 13 апр 2013, 11:11

dimonix писал(а): в крайнем случае делать токовую петлю с оптронной развязкой.
Можно подробнее?

dimonix
Сообщения: 368
Зарегистрирован: 19 фев 2012, 22:01
Откуда: Сколково

Re: Умный Дом по Ethernet

Сообщение dimonix » 13 апр 2013, 11:15

asteroid писал(а):Всем доброго времени.
Собрал я схему, все прошилось и заработало даже с первого раза.
Неудобство пожалуй только в том, что хочется таки приделать wifi.
Пока получилось разместить плату прямо в wifi роутер, таким образом можно управлять и с планшета.
Может есть у кого мысли, как доработать по spi радиомодуль ?
проще и дешевле сделать из роутера мегадевайс. да и возможностей у такого мода будет гораздо больше как в аппаратном плане (1wire, i2c, UART, wifi, ...), так и программном (owfs, ser2net, webmin/luci, php, ...).
видимо пора создавать отдельную тему по этому поводу - что-типа "применение RoC (router on-chip) в домашней автоматизации". цены на подобные модули на основе RoC упали уже ниже 10 баксов ...

dimonix
Сообщения: 368
Зарегистрирован: 19 фев 2012, 22:01
Откуда: Сколково

Re: Умный Дом по Ethernet

Сообщение dimonix » 13 апр 2013, 11:29

nevson писал(а):
dimonix писал(а): в крайнем случае делать токовую петлю с оптронной развязкой.
Можно подробнее?
попробуйте для начала подтягивающие резисторы. мне этого вполне хватило для борьбы с ложными срабатываниями.
готовой схемы токовой петли у меня нет. проще всего спросить здесь, в разделе "картинки" ;)

alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 13 апр 2013, 12:14

вот токовая петля http://easyelectronics.ru/tokovaya-petlya.html только в цепь правого оптрона со стороны диода ставите кнопку, обычная оптронная развязка
попробуйте для начала подтягивающие резисторы
мысль хорошая
по входам на которые повешены кнопки, такие резисторы включенны в самом контроллере(без них не работает), но их сопротивление велико (порядка сотен килоом)поэтому на длинных линиях помехоустойчивость низкая при утечках на землю или действиях помех на высокоомном резисторе подтяжки происходит большое падение напряжения (закон Ома),он контроллер (тупая железяка, что с него взять)воспринимает эти ложые сигналы как нажатия кнопок , выход припаять внешние резисторы подтяжки на 10ком , (посмотрите на вывод RESET контроллера там сделано именно так)

asteroid
Сообщения: 42
Зарегистрирован: 13 апр 2013, 02:16

Re: Умный Дом по Ethernet

Сообщение asteroid » 13 апр 2013, 13:52

dimonix писал(а):проще и дешевле сделать из роутера мегадевайс. да и возможностей у такого мода будет гораздо больше как в аппаратном плане (1wire, i2c, UART, wifi, ...), так и программном (owfs, ser2net, webmin/luci, php, ...).
...
Да, возможно и проще. Сейчас цена на роутер и правда обойдется кабы не столько же как и все ИМС для обсуждаемого тут девайса.
Но, как для меня, паять могу. А вот программировать, - только переделать готовую под свои нужды могу.
С нуля написать, не, у меня не выйдет.
По этому я очень даже "ЗА" создание темы переделки роутера под мегадевайс для дома.

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Умный Дом по Ethernet

Сообщение Andrey_B » 16 апр 2013, 23:49

Добавил в прошивку Мегадевайса поддержку цифрового датчика влажности и температуры DHT11.
megad-dht11.jpg
megad-dht11.jpg (40.89 КБ) 29411 просмотров
На фотографии готовый интерфейсный модуль с отсоединенным от исполнительного модуля шлейфом. Датчик влажности можно подсоединять к любому из 14 доступных портов (но не к доп. АЦП портам ADC6/ADC7, которые появились в 4 релизе!) Ну и (для неподготовленных пользователей) к готовому исполнительному модулю MegaD-7I7O этот датчик цеплять не нужно - ничего не выйдет.
megad-dht11-web.gif
megad-dht11-web.gif (5.1 КБ) 29411 просмотров
Тип порта DSen (что означает Digital Sensor)

Внимание! Прошивка тестовая!
Поддержка DHT22 тоже будет. В коде она уже есть, но во-первых, у меня нет DHT22, чтобы проверить, а во-вторых, надо как-то объединить код, так как DHT22 возвращает float, а DHT11 int, а тупо дублировать на 80% повторяющийся код как-то не хочется. В то же время, к одному Мегадевайсу могут быть подключены и те и другие датчики.

Температуру DHT11 показывает более-менее сносно, а влажность - по-моему врет по-черному. Ну, точнее, датчик вполне сгодится для определения резких скачков влажности, например, в ванной.

http://ab-log.ru/files/File/ip_manager3 ... _beta1.zip
http://ab-log.ru/files/File/ip_manager3 ... a1_hex.zip

andvas
Сообщения: 177
Зарегистрирован: 07 ноя 2011, 23:04
Откуда: Россия, Самара
Контактная информация:

Re: Умный Дом по Ethernet

Сообщение andvas » 17 апр 2013, 12:00

Andrey_B писал(а):Добавил в прошивку Мегадевайса поддержку цифрового датчика влажности и температуры DHT11.
Вот за это большое спасибо Andrey_B. Давно ждал когда добавите поддержку температуры. У меня правда есть и тот и тот датчик, так что сегодня попробую залить прошивку и протестировать DHT11.

andvas
Сообщения: 177
Зарегистрирован: 07 ноя 2011, 23:04
Откуда: Россия, Самара
Контактная информация:

Re: Умный Дом по Ethernet

Сообщение andvas » 17 апр 2013, 23:45

andvas писал(а):Вот за это большое спасибо Andrey_B. Давно ждал когда добавите поддержку температуры. У меня правда есть и тот и тот датчик, так что сегодня попробую залить прошивку и протестировать DHT11.
Andrey_B прошил я контроллер готовым hex. И почему то не заработал датчик. Описываю что делал , один датчик DHT11 и одно устройство Mega. У DHT11 1 нога-VCC (слева направо) , 2 нога-data, 4 нога -gnd. Сделал одну из ног в тип DSen. А показатели остались нулевые, попробовал на разных выводах, но результат везде отсутствовал.
И еще заметил в прошивке одну ошибку скорее всего, для меня по крайней мере. В свежем прошитом контроллере все ноги в состоянии NC. Беру любой вывод делаю его OUT. Появляются ссылки на ON, OFF, Type, Default state. Вывод прекрасно отключается и включается. Потом этот вывод делаю в type DSen, данных так и нет с датчика. Потом возвращаю вывод в состояние Out, при этом пропадают ссылки ON, OFF и появляется PWM(0-255). И никаким образом ссылки ON и OFF не появляются, если только не перепрошить atmega.

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Умный Дом по Ethernet

Сообщение Andrey_B » 18 апр 2013, 00:05

andvas, во-первых, следует проверить корректность подключения датчика (наличие подтягивающего резистора, см Datasheet). Во-вторых, код работы с датчиком сильно чувствителен к величине задержек, от которых зависит корректность работы протокола. Прошивка адаптирована к "фабричной" версии Мегадевайса, когда тактирование (F_CPU) идет от ENC28J60 и МК работает на частоте 12,5Мгц. При любом другом варианте работать не будет и нужно модифицировать прошивку.
Насчет описанной вами ситуации с конфигурацией посмотрю, спасибо.

Ответить