Raspberry Pi + МД

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

Модератор: immortal

pavelt
Сообщения: 43
Зарегистрирован: Ср июн 10, 2015 10:46 pm
Благодарил (а): 0
Поблагодарили: 6 раз

Re: Raspberry Pi + МД

Сообщение pavelt » Сб апр 02, 2016 2:59 pm

Поверил точно... не работает..
а так работает:

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

PIN=0

gpio mode $PIN out

while true; do
  gpio write $PIN 1
  sleep 0.5
  gpio write $PIN 0
  sleep 0.5
done

Необходимо указывать пин не по номеру расположения, а по номеру в колонке BCM. Так у меня пин #12 соответствует GPIO18 и, соответственно нужно запускать с ключом -p 18. У меня с самого утра работает и мигает :-)
anshmd
Сообщения: 49
Зарегистрирован: Чт сен 10, 2015 3:02 pm
Благодарил (а): 6 раз
Поблагодарили: 11 раз

Re: Raspberry Pi + МД

Сообщение anshmd » Сб апр 02, 2016 3:48 pm

pavelt писал(а):
Поверил точно... не работает..
а так работает:

Необходимо указывать пин не по номеру расположения, а по номеру в колонке BCM. Так у меня пин #12 соответствует GPIO18 и, соответственно нужно запускать с ключом -p 18. У меня с самого утра работает и мигает :-)
У меня подключено к физическому пину 11. Это BCM 17 и wPi 0.
пробовал с ключом -p 17 и -p 0 но не работает...
У вас OrangePI?
pavelt
Сообщения: 43
Зарегистрирован: Ср июн 10, 2015 10:46 pm
Благодарил (а): 0
Поблагодарили: 6 раз

Re: Raspberry Pi + МД

Сообщение pavelt » Сб апр 02, 2016 8:27 pm

anshmd писал(а):
pavelt писал(а):
Поверил точно... не работает..
а так работает:

Необходимо указывать пин не по номеру расположения, а по номеру в колонке BCM. Так у меня пин #12 соответствует GPIO18 и, соответственно нужно запускать с ключом -p 18. У меня с самого утра работает и мигает :-)
У меня подключено к физическому пину 11. Это BCM 17 и wPi 0.
пробовал с ключом -p 17 и -p 0 но не работает...
У вас OrangePI?
Нет, у меня Raspberry PI 2.
pavelt
Сообщения: 43
Зарегистрирован: Ср июн 10, 2015 10:46 pm
Благодарил (а): 0
Поблагодарили: 6 раз

Re: Raspberry Pi + МД

Сообщение pavelt » Сб апр 02, 2016 8:35 pm

Посмотрите вот эту библиотеку http://www.orangepi.org/Docs/WiringPi.html.Там все просто.

Сначала до входа в цикл и до вызова функции daemon() выполняете следующее:

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

wiringPiSetup () ;
pinMode (PIN, OUTPUT) ;
 
Цикл мигания для моего примера будет следующим. Класс Gpio нужно убрать

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

while(!isExit) {
        value[0] = '0'+stick;
        digitalWrite(PIN, stick);
        stick=1-stick;
        cout << ".";
        cout.flush();
        sleep(3);
    }
 
Здесь PIN замняете номером вашего пина
anshmd
Сообщения: 49
Зарегистрирован: Чт сен 10, 2015 3:02 pm
Благодарил (а): 6 раз
Поблагодарили: 11 раз

Re: Raspberry Pi + МД

Сообщение anshmd » Сб апр 02, 2016 10:02 pm

Да, я ее уже поставил. Из командной строки включаю и выключаю. А как теперь мне настроить объект и сцену в MD?
Создал объект в "Relays" а в поле PHP код команда включения "gpio write 0 1" не сохраняется...


заработало когда написал в коде так

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

exec ('gpio write 0 1');
а как мне теперь следить за состоянием пина?
Последний раз редактировалось anshmd Сб апр 02, 2016 10:52 pm, всего редактировалось 1 раз.
pavelt
Сообщения: 43
Зарегистрирован: Ср июн 10, 2015 10:46 pm
Благодарил (а): 0
Поблагодарили: 6 раз

Re: Raspberry Pi + МД

Сообщение pavelt » Сб апр 02, 2016 10:51 pm

anshmd писал(а):Да, я ее уже поставил. Из командной строки включаю и выключаю. А как теперь мне настроить объект и сцену в MD?
Создал объект в "Relays" а в поле PHP код команда включения "gpio write 0 1" не сохраняется...
Для этого нужно создать метод класса Relays и уже в нем вызвать команду gpio... , используя php функцию system вызвать нужную команду
anshmd
Сообщения: 49
Зарегистрирован: Чт сен 10, 2015 3:02 pm
Благодарил (а): 6 раз
Поблагодарили: 11 раз

Re: Raspberry Pi + МД

Сообщение anshmd » Вс апр 03, 2016 2:24 am

anshmd писал(а): а как мне теперь следить за состоянием пина?
Получилось...)
положил цикл cycle_gpio.php в /var/www/scripts
СпойлерПоказать
<?php

chdir(dirname(__FILE__).'/../');

include_once("./config.php");
include_once("./lib/loader.php");
include_once("./lib/threads.php");

set_time_limit(0);

// connecting to database
$db = new mysql(DB_HOST, '', DB_USER, DB_PASSWORD, DB_NAME);

ini_set("enable_dl","On");

     exec ('sudo gpio mode 0 out');
     exec ('sudo gpio mode 2 out');

     exec ('sudo gpio mode 3 in');
     exec ('sudo gpio mode 1 in');
     exec ('sudo gpio mode 4 in');
     exec ('sudo gpio mode 5 in');
     exec ('sudo gpio mode 6 in');

     exec ('sudo gpio mode 3 down');
     exec ('sudo gpio mode 1 down');
     exec ('sudo gpio mode 4 up');
     exec ('sudo gpio mode 5 up');
     exec ('sudo gpio mode 6 up');

$wPi_arr = array(0,3,1,4,5,6);

$i=0;
while(1) {
//echo "Working...\n";
echo date("H:i:s") . " running " . basename(__FILE__) . "\n";
if ($i>1) {
 //здесь нужные нам действия (раз в 10 секунд)

foreach ($wPi_arr as $wPi) {

$gpio=exec ( 'sudo gpio read '.$wPi);

$urlcmd='http://127.0.0.1/objects/?object=relayO ... .'='.$gpio;

//getURL($urlcmd);
file_get_contents($urlcmd);

//setGlobal('Sens_wPi'.$wPi.'.status',$gpio);

//echo $urlcmd."\n";
//echo getGlobal('Sens_wPi'.$wPi.'.updatedTimestamp')."\n";
//echo getGlobal('Sens_wPi'.$wPi.'.status')."\n";
}
 //----

 $i=0;
}
$i++;
sleep(1);
}

DebMes("Unexpected close of cycle: " . basename(__FILE__));

?>
Добавил для объекта "relayOrangePI" свойство "relayOrangePI.gpio0" и метод "statusChanged" с кодом

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

$this->setProperty('gpio0',$params['gpio0']); // установка свойство статуса, передаваемого в параметре status 
За это сообщение автора anshmd поблагодарил:
Amarok (Пн апр 18, 2016 10:58 am)
Рейтинг: 1.16%
Rad81
Сообщения: 193
Зарегистрирован: Пт апр 01, 2016 2:42 pm
Благодарил (а): 10 раз
Поблагодарили: 10 раз

Re: Raspberry Pi + МД

Сообщение Rad81 » Пн апр 18, 2016 10:50 am

Здравствуйте.
А кто не быт может примере показать как должна отправляться POST запросы ???
У меня для включения команда Http://X:Y.192.168.1.2/Element/1/on
а для выключения команда Http://X:Y.192.168.1.2./Element/1/off
метод отправки Post.
Ответить