MegaD-328/2561 FAQ

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Andrey_B
Администратор
Сообщения: 3527
Зарегистрирован: 18 мар 2011, 12:06

Re: MegaD-328 FAQ

Сообщение Andrey_B » 18 янв 2013, 10:44

Evgeny_K, если брать предложенную Али схему как есть, то в ней используется микросхема DS2760 с цифровым интерфейсом 1-wire. В настоящее время в MegaD нет поддержки 1-wire.
DS2760 используется главным образом как АЦП. Теоретически можно переделать схему под MegaD.

Evgeny_K
Сообщения: 4
Зарегистрирован: 18 янв 2013, 01:27

Re: MegaD-328 FAQ

Сообщение Evgeny_K » 18 янв 2013, 22:02

Спасибо за ваш ответ!

Контроллер заинтересовал в плане реализации системы автоматического полива.
Однако чем дальше прорабатывается проблема, тем больше возникает вопросов.

Заранее прошу извинить за некоторые повторы того, про что уже было написано выше. Просто прочтение данного FAQ не совсем прояснило ситуацию. И также просьба строго не судить, если вопросы окажутся глупыми, поскольку знания электротехники минимальные и навыки программирования тоже.

1. Приведенная статья описывает только один из возможных примеров реализации исполнительного модуля, и схемотехнику входов и выходов необходимо уточнять при заказе, либо MegaD-7i70 - это законченный неизменяемый модуль? Т.е. для данного модуля P0-P6 являются всегда входами и через веб-интерфейс выходами их нельзя сделать, также как P7-P13 всегда будут только выходами 220 В и их нельзя настроить как вход?

В частности сбивает с толку, например, следующее. Согласно статьи любой из 14 портов может быть как входом, так и выходом, при этом некоторые порты могут быть сконфигурированы как АЦП или ШИМ. Если, к примеру, рассмотреть порт P11, который, согласно описания, может быть сконфигурирован как вход АЦП. Однако в приведенной на картинке схеме исполнительного модуля это является выходом 220В. Как это все согласуется? Возможно ли пояснить на примере?

2. В одном из первых постов вы поясняете, что, к примеру, какой-либо аналоговый датчик необходимо подключать к интерфейсному, а не исполнительному, модулю.
Имеются также статьи про подключение датчиков освещенности и влажности. Однако там не указано, куда именно датчик нужно подключить. Нельзя ли приложить фото? На имеющихся фото не совсем учевидно, где в интерфейсном модуле "клеммы для подключения датчиков" и есть ли они там вообще. А вот на один из входов P0-P6 вполне очевидно (в смысле после прочтения описания чайником как я) подключить либо аналоговые датчики, либо дискретные, либо просто кнопки. Как все же на самом деле обстоит дело?

3. Реализация контроллера предусматривает выполнение действий по умолчанию, в случае, если сервер не отвечает. Скажите, возможно ли реализовать выполнение каких-либо действий (включение или выключение каких-либо устройств) на основании данных аналогового датчика без участия сервера? Т.е. если сервер по какой-то причине молчит, а сигнал с датчика влажности поступает на контроллер, может ли он самостоятельно принять решение о запуске, скажем, насоса на основании показания датчика? Возможно ли это в принципе, если да, то потребуется ли вносить изменения в прошивку контроллера? Или только при помощи веб-сервера возможно принятие решения о запуске насоса на основании данных периодического опроса соответствующего порта контроллера?

4. Понимаю, что основные принципы программирования не зависят от языка. Однако как обычно отсутствует время даже на базовое освоение синтаксиса PHP. Дело в том что для реализации системы прорабатываются также другие вопросы - гидравлический расчет, выбор насоса, выбор и планировка прокладки труб и т.д., что занимает время - т.е. полностью предполагается реализация своими руками. В связи с этим хотелось бы узнать, можно ли управлять работой контроллера посредством языка c#? Просто это единственный язык, синтаксисом которого я хоть сколько-нибудь владею и имею навык создания небольших приложений.

5. С каким типом аналоговых датчиков работает АЦП контроллера? Необходимы "активные" датчики (запитывающиеся отдельно и выдающие унифицированный токовый сигнал 4-20мА)? Либо датчики должны быть "пассивными" (без отдельного внешнего питания) и использовать 3,3 В в качестве опорного напряжения и значение измеряемой величины будет при этом пропорционально изменению напряжения в цепи датчика?

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

Re: MegaD-328 FAQ

Сообщение Andrey_B » 18 янв 2013, 23:41

Evgeny_K, как говорится, не бывает глупых вопросов, бывают глупые ответы ;)

1. Комплект не случайно разделен на два модуля: интерфейсный и исполнительный. Интерфейсный модуль имеет в своем распоряжении некоторое количество портов, которые могут быть настроены как угодно. Исполнительный модуль осуществляет поддержку этой настройки в железе. Таким образом, чтобы изменить _конечную_ функциональность устройства, необходимо произвести изменения в настройке интерфейсного модуля и подключить к нему соответствующий исполнительный модуль. Преимущество такого подхода в том, что а) существует единый исполнительный модуль и единая прошивка к нему (это главное) б) в случае изменения конфигурации меняется только исполнительный модуль. Конечно, если аппаратно в исполнительном модуле реализован выход 220В, то входом или АЦП он быть никак не может. Сейчас для заказа доступна только одна версия исполнительного модуля, но я надеюсь, что скоро будут доступны и другие.
2. Для подключения аналоговых датчиков должен быть специальный исполнительный модуль. Вместе с тем в новой ревизии MegaD-328, в котором используется Atmega328 в SMD-варианте, будет доступно два дополнительных АЦП порта. Они не будут выведены в исполнительный модуль (поскольку 6DIN-корпус просто не позволяет разместить дополнительные клеммы). Вместо этого разъемы будут смонтированы прямо в интерфейсном модуле. Таким образом, типовой комплект будет снабжен 7 входами, 7 выходами 220В, и 2 АЦП портами.
3. Такой вариант развития событий в принципе возможен. В текущий момент он не заложен, но то, о чем вы пишите, в дальнейшем можно будет реализовать в прошивке.
4. Можно управлять работой контроллера с помощью ЛЮБОГО языка программирования и из ЛЮБОЙ операционной системы. MegaD-328 просто обращается по указанному в настройках адресу по протоколу HTTP. Что там ему отвечает - не важно. Это может быть даже обычный HTML, даже просто TXT-файл. ASP.NET ? Никаких проблем! Причем не нужны даже какие-то библиотеки для работы с TCP-протоколом. Это просто вывод на страничку текстовых данных, типа "Hello World". В этом вся соль.
5. Совершенно неважно как питается аналоговый датчик. Важно, чтобы напряжение на его выходе было ниже опорного 3.3В. А уж как интерпретировать полученные значения - это ваше дело.

Evgeny_K
Сообщения: 4
Зарегистрирован: 18 янв 2013, 01:27

Re: MegaD-328 FAQ

Сообщение Evgeny_K » 19 янв 2013, 21:46

Спасибо за ответ! Теперь ситуация полностью прояснилась!

Если честно, несколько разочарован. Но только тем фактом, что пока нет в наличии готового модуля для работы с аналоговыми датчиками. А общей идеей единого интерфейсного модуля и реализацией работы с ним я всецело проникся!

Теперь моя проблема по сути сводится только к одному. Поскольку специальных навыков, как я уже говорил, у меня нет, то самостоятельно подключать аналоговые датчики в интерфейсный модуль я не рискну! Но и отказываться от идеи использования МегаДевайса все равно не хочется. Тем более что вы планируете расширение модификаций исполнительного модуля.

В своем случае выход вижу в использовании... ну если можно так выразиться... "дискретных" датчиков влажности, которые бы подключались ко входам типа "сухой контакт". Т.е. в определенный момент почва увлажнилась - "сухой" контакт замыкается, высохла - размыкается (или наоборот, не суть важно). Понимаю, что это уже флуд, но не посоветуете какой-нибудь датчик с подобным принципом? Соответствующая ветка форума не помогла, а гугл пока выдает только промышленные датчики, у которых стоимость сопоставима со стоимостью Меги! Возможно есть что-то доступнее? Буду благодарен за любую информацию.

Evgeny_K
Сообщения: 4
Зарегистрирован: 18 янв 2013, 01:27

Re: MegaD-328 FAQ

Сообщение Evgeny_K » 21 янв 2013, 11:40

Еще одно небольшое уточнение. Если, к примеру, сработала кнопка (сухой контакт замкнулся), то вызывается серверный скрипт, прописанный в настройках соответствующего порта. Что происходит в случае, если эта же самая кнопка размыкается? Обращение к скрипту происходит?

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

Re: MegaD-328 FAQ

Сообщение Andrey_B » 21 янв 2013, 16:07

Evgeny_K, можно попробовать подключить датчик влажности (элементарно две токопроводящие пластинки с зазором) непосредственно к входу типового модуля 7I7O. Вход высокоомный, должно хватить. Чем больше площадь контактов, тем лучше. Только это тестировать надо.
По поводу "размыкания" было обсуждение в соседней теме. Решили, что надо что-нибудь придумать по этому поводу. Будем думать.

Sharapudin
Сообщения: 1
Зарегистрирован: 22 янв 2013, 13:16

Re: MegaD-328 FAQ

Сообщение Sharapudin » 22 янв 2013, 22:20

Доброго времени суток, уважаемые форумчане!

Приобретался готовый модуль MegaD-328 ver.3.02 (Огромный респект автору и всем "соучастникам"). У меня такой вопрос: используя get-запросы из Javascript наподобие $.get('http://192.168.1.210/c01/?cmd=7:2'); включаю/отключаю выхода на контроллере. Попытка получить состояние порта запросом типа $.get('http://192.168.1.210/c01/?pt=7&cmd=get'); не увенчалась успехом (при выводе на экран переменной, в которую заносится полученное по запросу значение - вижу [object Object] - должно было быть OFF/ON, как я понимаю. Может надо как-то по-другому?

Спасибо!

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

Re: MegaD-328 FAQ

Сообщение Andrey_B » 23 янв 2013, 00:12

Sharapudin,
http://en.wikipedia.org/wiki/Same_origin_policy

Browser-side programming languages не могут получать данные с внешних URL.
jQuery.get() будет физически делать запрос по указанному URL, но не вернет данные и не вызовет callback-функцию.

Единственное решение - проксирование запроса. То есть, в рамках текущего домена можно разместить PHP-скрипт с функциями curl(), file_get_contents(), а Javascript уже будет обращаться к нему через jQuery.get().

xace
Сообщения: 56
Зарегистрирован: 12 май 2011, 18:07

Re: MegaD-328 FAQ

Сообщение xace » 31 янв 2013, 20:56

Буду благодарен если кто нибудь выложит кусок кода по работе с нагрузкой ON-OFF

Увы в PHP не силен.

как с помощью ссылки отправить GET запрос на смену положения.. или это как то по другому решается.
Спасибо!

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

Re: MegaD-328 FAQ

Сообщение Andrey_B » 31 янв 2013, 23:30

Так как возникает некоторое количество вопросов относительно исполнительного модуля MegaD-7I7O, попытаюсь сделать более развернутое описание. Сразу оговорюсь, это касается только этого исполнительного модуля, так как в перспективе должны появиться и другие.
Итак, модуль MegaD-7I7O
Каждый вход предназначен для подключения:
1. "Сухого контакта". Это могут быть механические контакты - два замыкаемых друг с другом провода, контакты реле, кнопки, микропереключателя, геркона, и т.д. То есть, любые две соприкасающиеся друг с другом, когда это нужно, железяки.
2. Какая-либо электронная схема, имеющая на выходе полупроводник - транзистор с открытым коллектором или стоком, то есть схема, на выходе которой нет собственного напряжения.

Эти две вещи можно подключать запросто, обращая лишь внимание на правильность полярности в случае 2.
Всё остальное, имеющее на выходе какие-то уровни, напряжения, прущие изнутри, подключить наверняка возможно, но потребуется анализ типа "а как сделать, чтобы не...".
Каждый вход 7I7O представляет собой последовательную цепочку: "+" источника питания модуля Мега-328, в нашем случае 12 В, токоограничивающий резистор, светодиод оптрона, светодиод сигнальный на верхней панели, правый вывод пары клеммника. Левый вывод пары соединен с общим проводом. При этом на правом выводе присутствует потенциал около 9,7 В - напряжение питания минус падение напряжения на светодиодах. Вот его и нужно учитывать при подключении активных схем. Это "входная часть" входа. "Выходная часть" образована фототранзистором оптрона, замыкающим на общий провод соответствующий вход микроконтроллера, подтянутый внешним резистором к +3,3 В.
В исходном состоянии контакты клеммника разомкнуты, ток во входной части не течёт, светодиоды оптрона и сигнальный не горят. Фототранзистор оптрона закрыт, на входе МК "1".
При замыканиии контактов клеммника зажигаются светодиоды оптрона и сигнальный. Фототранзистор оптрона открывается, на входе МК "0". Это активное состояние входа: "0" на клеммнике, "0" на МК.
Зная вышесказанное, можно разрабатывать схемы сопряжения активных устройств с входами 7I7O. Например, применительно к датчику HC-SR501, если творчески в нем не колупаться, проще всего присоединить его через согласующий маломощный транзистор n-p-n. Коллектор - к входу 7I7O, эмиттер - к общему проводу, базу через резистор порядка 10 кОм - к выходу датчика. Все уровни будут согласованы, и логика работы будет правильной - при срабатывании датчика сработает вход Мегадевайса.

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

Re: MegaD-328 FAQ

Сообщение Andrey_B » 31 янв 2013, 23:43

xace писал(а):Буду благодарен если кто нибудь выложит кусок кода по работе с нагрузкой ON-OFF
Дайте более конкретное описание задачи.
Из какой ОС вы хотите отправить команду? Это будет автоматический скрипт или ручное управление?

Вообще, отправлять HTTP-запросы можно с помощью любых программ. Не обязательно это PHP. Из Windows команды можно отправлять с помощью, например, программы curl. Версию для Windows можно скачать в Интернете. Тогда не потребуется вообще касаться каких-либо языков программирование и ограничиться только cmd-скриптами (aka bat в DOS).

xace
Сообщения: 56
Зарегистрирован: 12 май 2011, 18:07

Re: MegaD-328 FAQ

Сообщение xace » 01 фев 2013, 11:59

Задача более менее простая

Есть маленькая машинка на ней стоит debian имеет ip 192.168.1.100
Есть мега девай ip 192.168.1.110

На сервере стоит apache+mysql+php и крутится простая страничка , которая сейчас отображает лишь информацию с датчиков 1-wire.
Хочу на эту страницу добавить 3 кнопки (ON-OFF + желательно отображение состояния) управления нагрузкой, например 3 прожекторами.

xace
Сообщения: 56
Зарегистрирован: 12 май 2011, 18:07

Re: MegaD-328 FAQ

Сообщение xace » 09 фев 2013, 19:30

Буду рад какому нибудь рабочему примеру

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

Re: MegaD-328 FAQ

Сообщение Andrey_B » 12 фев 2013, 22:01

Вот простейший PHP-скрипт для управления MegaD-328 через собственный Web-интерфейс сервера.
В примере предполагается, что порты с 7 по 13 включительно являются выходами.

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

<?
$ip = "192.168.0.14";

if ( $_GET['port'] == "all" )
{
	for ( $i = 7; $i < 14; $i++ )
	file_get_contents("http://$ip/sec/?cmd=$i:".$_GET['cmd']);
}
elseif ( !empty($_GET['port']) )
file_get_contents("http://$ip/sec/?cmd=".$_GET['port'].":".$_GET['cmd']);

for ( $i = 0; $i < 14; $i++ )
{
	$state = strip_tags(file_get_contents("http://$ip/sec/?pt=$i&cmd=get"));
	if ( empty($state) )
	$state = "N/A";
	echo "Port P$i: $state";

	if ( $i > 6 )
	echo " [<a href=\"".$_SERVER['PHP_SELF']."?port=$i&cmd=1\">ON</a> | <a href=\"".$_SERVER['PHP_SELF']."?port=$i&cmd=0\">OFF</a>]";

	echo "<br>";
}
echo "<a href=\"".$_SERVER['PHP_SELF']."?port=all&cmd=1\">All ON</a> | <a href=\"".$_SERVER['PHP_SELF']."?port=all&cmd=0\">All OFF</a>";
?>

xace
Сообщения: 56
Зарегистрирован: 12 май 2011, 18:07

Re: MegaD-328 FAQ

Сообщение xace » 12 фев 2013, 22:14

Большое спасибо! Думаю многим это поможет разобраться.

Валентин_
Сообщения: 2
Зарегистрирован: 14 мар 2013, 17:30

Re: MegaD-328 FAQ

Сообщение Валентин_ » 14 мар 2013, 17:35

Здравствуйте!
Подскажите пожалуйста такой вопрос. В статье Вы писали что к интерфейсному модулю можно подключить любой исполнительный. Если мне необходимо чтоб исполнительный поддерживал ШИМ, то не могли бы Вы привести пример такого девайса в миру. И еще, подскажите какие условия и цена приобретения МегаДевайса (интерфейсный+исполнительный) - это можно в личку. Заранее благодарен

И еще - есть ли какие-то ограничения у этого девайса по силе тока (выход)?

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

Re: MegaD-328 FAQ

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

Валентин_, совершенно готовых законченных исполнительных устройств "в миру" для данного проекта нет, так как это пока не "промышленный стандарт". ;)
Сейчас разрабатывается и вскоре будет выпускаться исполнительный модуль аналогичный 7I7O, но только не на симисторах, а на реле. В дальнейшем планируется расширить линейку исполнительных модулей. Исполнительный модуль можно собрать самостоятельно, если соблюсти распиновку соединительного шлейфа.
Что касается тока, то для текущего исполнительного модуля на симисторах (для 110В-220В) - это примерно 1,3А-1,4А. Это не очень много, но для подавляющего числа задач хватает. Кроме того, никто не запрещает использовать в случае необходимости промежуточные реле. В исполнительном модуле на реле максимальный ток будет порядка 10А. Но о сроках его выхода пока говорить рано.

Валентин_
Сообщения: 2
Зарегистрирован: 14 мар 2013, 17:30

Re: MegaD-328 FAQ

Сообщение Валентин_ » 14 мар 2013, 18:24

Andrey_B
Так как я далеко не волшебник, я только учусь (с), не подскажите, промежуточное реле, это какое? Если можно, то ссылочку на устройство. Как я понял, то подключить к вашему интерфейсному модулю что-то, что позволит модулировать ШИМ сигналы пока что нельзя. Сам я , к сожалению, собрать аналог не смогу (

Да, на счет силы тока - это имеется в виду на каждый выход по 1,3 А или нет?

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

Re: MegaD-328 FAQ

Сообщение Andrey_B » 16 мар 2013, 09:16

Валентин_, промежуточных реле от разных производителей очень много. Большая их часть может также устанавливаться на DIN-рейку. Поищите в Интернете. Управляющее напряжение должно быть 220В.

1.3А на канал.

Mixman
Сообщения: 395
Зарегистрирован: 17 фев 2013, 23:49
Откуда: Волгодонск, Ростовская обл.
Контактная информация:

Re: MegaD-328 FAQ

Сообщение Mixman » 20 май 2013, 11:47

Подскажите, как можно подключить к исполнительному модулю (сух. контакт) выключатель с 2-мя кнопками и ОБЩИМ контактом, т.е. не 4 клеммы, а 3, одна из которых общая. Вот и интересует эта общая клемма.

Ответить