железо на ардуино+С

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

Модератор: immortal

Ответить
stepani
Сообщения: 3
Зарегистрирован: Пн дек 03, 2012 11:52 am
Благодарил (а): 0
Поблагодарили: 0

железо на ардуино+С

Сообщение stepani » Пн дек 03, 2012 1:36 pm

доброго времени суток,
Я занимаюсь мкроконтроллерами, в php и http программирование только начинающий. Есть у меня железо, где используются платы от ардуино, но софт для микроконтроллеров написан на С в оболочке AVRStudio 4. Как вы смотрите чтобы адаптировать этот проект под ваш? Если правильно понимаю, команды извне главный сервер на компе воспринимает только вот таким способом?
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: железо на ардуино+С

Сообщение sergejey » Пн дек 03, 2012 1:51 pm

Добрый день,

Очень интересное железо. События извне могут поступать как http запросы, как описано по той ссылке. Но, в принципе, можно сделать любой интерфейс, было бы желание :)

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Killer_Angel
Сообщения: 38
Зарегистрирован: Сб дек 01, 2012 9:05 am
Благодарил (а): 0
Поблагодарили: 1 раз

Re: железо на ардуино+С

Сообщение Killer_Angel » Пн дек 03, 2012 11:41 pm

один из вариантов :
у меня контролер управляющий светом/звуком, принимающий события от ик датчиков и кнопок общается с сервером через tcp , так вот я сделал чтобы по команде с сервера он выдавал все свои параметры в виде "ROOM_L=0&HALL_L=0&TOAL_L=0&BATH_L=0&KTCH_L=0&ROOM_A=1"
далее запускается небольшой php скрипт который висит и в цикле раз в пару секунд опрашивает контролер, далее через parse_str разбивает ответ от мк в переменные, а переменные в свою очередь записываются напрямую в базу данных mysql по своим ячейкам
PS: скрипт уровня "быдлокод" ) но все работает, xx - номер ячейки в таблице pvalues

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

#!/usr/bin/php
<?
 include_once('/var/www/config.php');

while (1 == 1) {
  $fp = fsockopen("my_controler_host", 4444); if (!$fp) {echo "$errstr ($errno)n"; exit();}
  fwrite($fp, "l"); $content = fgets($fp);  parse_str($content); fclose($fp);

  $mysqli = @new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);  if (mysqli_connect_errno()) {echo "Подключение невозможно: ".mysqli_connect_error();}
  $mysqli->query("set character_set_client='utf8';");  $mysqli->query("set character_set_results='utf8';");  $mysqli->query("set collation_connection='utf8_general_ci';");
    $mysqli->query("UPDATE ihome.pvalues SET VALUE = ".$ROOM_L." WHERE pvalues.ID = xx;");
    $mysqli->query("UPDATE ihome.pvalues SET VALUE = ".$HALL_L." WHERE pvalues.ID = xx;");
    $mysqli->query("UPDATE ihome.pvalues SET VALUE = ".$ROOM_A." WHERE pvalues.ID = xx;");
    $mysqli->query("UPDATE ihome.pvalues SET VALUE = ".$HALL_A." WHERE pvalues.ID = xx;");
  $mysqli->close();
  sleep(2);
}
?>
PPS: управление из majordomo происходит как команда в порт мк типа "e01" "d01" где e/d - вкл/выкл , а 01 номер порта для управления
stepani
Сообщения: 3
Зарегистрирован: Пн дек 03, 2012 11:52 am
Благодарил (а): 0
Поблагодарили: 0

Re: железо на ардуино+С

Сообщение stepani » Пн дек 10, 2012 8:44 pm

Немного доработал железо. Теперь можно в строку message вводить строку типа "192.168.0.2/objects/?object=sensorMovement&op=m&m=statusChanged+&" и при определенном действии (в зависимости от сенсора это нажатие или движение или температура и т.д.) будет вызываться соответствующий скрипт на сервере. Максимальная длина строки = 70 символов.
stepani
Сообщения: 3
Зарегистрирован: Пн дек 03, 2012 11:52 am
Благодарил (а): 0
Поблагодарили: 0

Re: железо на ардуино+С

Сообщение stepani » Пн дек 10, 2012 8:49 pm

но теперь модуль либо посылает сообщения непосредственно другому модулю, либо на сервер. Чтобы работало и то и то, думаю сделать чтобы каждое сообщение от модуля к модулю дублировалось на сервер, т.е. сервер будет слушать сеть и писать все сообщения в лог и на определенные как-нибудь реагировать.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: железо на ардуино+С

Сообщение sergejey » Вт дек 11, 2012 10:26 am

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

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Ответить