Ардуино + USB + Win. Вопрос от новичка.

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

NoFear
Сообщения: 9
Зарегистрирован: Вт дек 10, 2013 6:49 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Ардуино + USB + Win. Вопрос от новичка.

Сообщение NoFear » Вт дек 10, 2013 7:05 pm

Добрый вечер! Недавно вступил в ряды "Фанатиков Умных Домов". Сейчас на стадии проектирования система, состоящая из связки - Arduino>USB>MajorDoMo. Осмыслив функционал системы, понял, что хочу реализовать всё таким образом:
1. Ардуино занимается тем, что слушает все датчики и COM порт на предмет изменений.
2. В случае изменения со стороны датчика - выполняет команду (Свет, жалюзи, кран и т.д.), а после выполнения отсылает результат действий(обновляет статус) на сервер.
3. Получая информацию с сервера - меняет параметр переключенного устройства согласно поступившей информации и перенаправляет сигнал на конечное устройство. (приняла команду на включение света, сменила значение в переменной и отправила сигнал на пин)

Собственно вопрос:
Возможно ли это реализовать на этой ЦМС-ке, и если да, то как выполнить 2-й пункт (Желательно с примерами и скриншотами, а то уже несколько дней по форуму ищу информацию и в голове каша :( ).
За это сообщение автора NoFear поблагодарил:
Otto (Вт июн 07, 2016 8:57 pm)
Рейтинг: 1.16%
fillauto
Сообщения: 14
Зарегистрирован: Ср окт 23, 2013 2:39 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Ардуино + USB + Win. Вопрос от новичка.

Сообщение fillauto » Вт дек 10, 2013 9:31 pm

Тут есть информация - http://smartliving.ru/Main/ArduinoDirect

Что касается п.3 - передать информацию от сервера в ардуину не получилось у меня. Насколько я понял все это нормально работает через Ethernet, а по USB еще никто не делал и не проверял. Заказал себе Ethernet шилд к ардуине, но было бы интересно заставить работать через USB. Сергей обещал посмотреть arduino_gw когда руки дойдут.
За это сообщение автора fillauto поблагодарил:
Otto (Вт июн 07, 2016 8:57 pm)
Рейтинг: 1.16%
ErmolenkoM
Сообщения: 560
Зарегистрирован: Ср сен 04, 2013 10:31 am
Откуда: Самара
Благодарил (а): 99 раз
Поблагодарили: 140 раз
Контактная информация:

Re: Ардуино + USB + Win. Вопрос от новичка.

Сообщение ErmolenkoM » Вт дек 10, 2013 11:08 pm

Добрый ночь!
Поздравляю к присоединению к нам! Спрашивай, не стесняйся!
По поводу ардуино.
Немного поправлю идеалогию. Цепочка: сервер-ардуино-датчик.
На ардуино логика должна быть ТУПАЯ. То есть пин поменял значение, ардуино отправило на сервер (пин, значение). Или сервер прислал сообщение (пин, значение) ардуино установило его.
Такая логика позволит залить на арду скетч один раз и забыть о ней, а всю настройку вести на МЖД.
Реализовать задуманное можно. Я подобное делал, правда под Linux. Сейчас передел на 1-wire и другие контроллеры. Выше тебе правильно написали, в основном все работают через эзернетшилд. Да и то, определенный!
Если есть Raspberri Pi, систему можно установить на нее, в USB воткнуть arduino, получить желаемое - так тоже делали - отлично работает.
Удачи!
За это сообщение автора ErmolenkoM поблагодарил:
Otto (Вт июн 07, 2016 8:58 pm)
Рейтинг: 1.16%
aka msh555
Cubian на Cubietruck, Connect
NoFear
Сообщения: 9
Зарегистрирован: Вт дек 10, 2013 6:49 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Ардуино + USB + Win. Вопрос от новичка.

Сообщение NoFear » Ср дек 11, 2013 2:27 am

fillauto писал(а):Тут есть информация - http://smartliving.ru/Main/ArduinoDirect

Что касается п.3 - передать информацию от сервера в ардуину не получилось у меня. Насколько я понял все это нормально работает через Ethernet, а по USB еще никто не делал и не проверял. Заказал себе Ethernet шилд к ардуине, но было бы интересно заставить работать через USB. Сергей обещал посмотреть arduino_gw когда руки дойдут.
Насколько я понимаю - с отправкой на Арду справляется вот такой вот кодик в методах

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

exec("mode com3: BAUD=9600 PARITY=N data=8 stop=1 xon=off"); 
$fp =fopen("COM3", "w"); 
fwrite($fp, chr(1));
fclose($fp); 
say("Светодиод включен",5);
а вот принимать надо через запрос типа GET. Я знаю как послать этот самый GET, но мне надо его нормально получить.. а вот тут-то и есть трудность для меня. Я пока нигде толком не увидел как GET запросом менять статус объекта.
NoFear
Сообщения: 9
Зарегистрирован: Вт дек 10, 2013 6:49 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Ардуино + USB + Win. Вопрос от новичка.

Сообщение NoFear » Ср дек 11, 2013 2:33 am

msh555 писал(а):Добрый ночь!
Поздравляю к присоединению к нам! Спрашивай, не стесняйся!
По поводу ардуино.
Немного поправлю идеалогию. Цепочка: сервер-ардуино-датчик.
На ардуино логика должна быть ТУПАЯ. То есть пин поменял значение, ардуино отправило на сервер (пин, значение). Или сервер прислал сообщение (пин, значение) ардуино установило его.
Такая логика позволит залить на арду скетч один раз и забыть о ней, а всю настройку вести на МЖД.
Реализовать задуманное можно. Я подобное делал, правда под Linux. Сейчас передел на 1-wire и другие контроллеры. Выше тебе правильно написали, в основном все работают через эзернетшилд. Да и то, определенный!
Если есть Raspberri Pi, систему можно установить на нее, в USB воткнуть arduino, получить желаемое - так тоже делали - отлично работает.
Удачи!
В том-то и дело, что хочется для ускорения отклика доверить Ардуинке всю грязную работу.
Кстати, что касается 1-wire - хочется в будущем на этом протоколе сделать управление климатом. Там не требуется такая скорость реакции как при включении света и регулировке штор, кранов и т.д.

Rasberri Pi пока не очень хочу брать.. Линуксоид во мне не проснулся, а как туда форточки заливать не хочется вникать. Может в будущем перейду на это чудо, но не сейчас.
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: Ардуино + USB + Win. Вопрос от новичка.

Сообщение dmw » Ср дек 11, 2013 5:52 am

NoFear
Сообщения: 9
Зарегистрирован: Вт дек 10, 2013 6:49 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Ардуино + USB + Win. Вопрос от новичка.

Сообщение NoFear » Ср дек 11, 2013 6:51 am

Спасибо за ссылку. На момент написания топика - прочитал эту тему несколько раз, но так и не понял. Сейчас же я собрал тестовую модель, которая подоючаясь через usb полностью синхронизирует работу светодиода на 13й ноге. Чуть позже выложу свой вариант на всеобщее обозрение. Спасибо всем за советы.
fillauto
Сообщения: 14
Зарегистрирован: Ср окт 23, 2013 2:39 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Ардуино + USB + Win. Вопрос от новичка.

Сообщение fillauto » Ср дек 11, 2013 8:40 am

NoFear писал(а):
Насколько я понимаю - с отправкой на Арду справляется вот такой вот кодик в методах

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

exec("mode com3: BAUD=9600 PARITY=N data=8 stop=1 xon=off"); 
$fp =fopen("COM3", "w"); 
fwrite($fp, chr(1));
fclose($fp); 
say("Светодиод включен",5);
а вот принимать надо через запрос типа GET. Я знаю как послать этот самый GET, но мне надо его нормально получить.. а вот тут-то и есть трудность для меня. Я пока нигде толком не увидел как GET запросом менять статус объекта.
Насколько я понимаю, именно для этого и написана утилита arduino_gw. Она постоянно мониторит COM порт на предмет появления строки типа GET /objects/?object=sensorGarage&op=m&m=statusChanged&status=1 и при обнаружении такой строки вызывает http://localhost/objects/?object=sensor ... d&status=1, что в свою очередь вызывает метод statusChanged объекта sensorGarage и передает в него значение status=1. А в методе уже можно присвоить соответсвующее значение нужному свойству.
Так вот при таком способе обмена с ардуиной вышеприведенный код работать не будет, потому что ардуинный COM порт будет открыт arduino_gw. А значит и послать что-то в этот COM порт сможет только arduino_gw. По задумке автора это должно выполняться запуском arduino_gw из командной строки с параметром в виде данных, которые необходимо переслать в порт, но у меня это сделать не получилось.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Ардуино + USB + Win. Вопрос от новичка.

Сообщение sergejey » Ср дек 11, 2013 11:03 am

По задумке автора это должно выполняться запуском arduino_gw из командной строки с параметром в виде данных, которые необходимо переслать в порт, но у меня это сделать не получилось.
Именно :)
Могу даже в коде показать как оно сделано, но почему не работает пока не разбирался -- в самое ближайшее время попробую починить, обещаю :)

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
fillauto
Сообщения: 14
Зарегистрирован: Ср окт 23, 2013 2:39 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Ардуино + USB + Win. Вопрос от новичка.

Сообщение fillauto » Ср дек 11, 2013 11:45 am

sergejey писал(а): Именно :)
Могу даже в коде показать как оно сделано, но почему не работает пока не разбирался -- в самое ближайшее время попробую починить, обещаю :)
Категорически верю! :) Мне вообще кажется, что это я делаю что-то не то...
Ответить