...
Arduino UNO + PHP интерфейс
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Чт, 19/01/2012 - 20:31
Пытаюсь обратиться к Arduino UNO через php_serial.class на локальном сервере osx.
Ardhuino подключено через USB, подключиться через терминал к /dev/tty.usbmodemfd131 и отправлять команды - получается. А вот через PHP интерфейс - нет. Просто висит страничка.
Возможно причина в настройках моего apache, нужно дать пользователю доступ к serial портам? Кто сталкивался с похожим или знает как решить - пожалуйста, подскажите.
Я делал так:
php:
if (isset($_GET['param'])) { $fp = fopen("com7", "w"); fwrite($fp, chr(1)); fclose($fp); }А в arduino слушл Serial порт
for(;;){ if (Serial.available()){ var p = Serial.read(); } }P/s апач у меня на винде
На osx все заработало - запустилось. Но поменялась задача - нужно запустить РНР скрипт на винде, который бы управлял Ардуино подключенной к этому же компьютеру. Тут мне ваш опыт будет очень полезен, поделитесь пожалуйста подробнее. Какую программу-прослойку для общения РНР с портом использовали?
Уточняющая информация по моей системе:
Windos 7 64bit, Arduino UNO, XAMPP (Апач запущен)
Проблема: не получается управлять Arduino через РНР.
Использую serial2socket
порт 8080 там по дефолту dl.dropbox.com/u/15881557/Screen%20shot%202012-01-23%20at%202.26.42%20PM.png — вот так выгляди окно serial2proxy
код php:
<?php
$fp = fsockopen(«127.0.0.1», 8080, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)
\n";
} else {
fwrite($fp, «1»);
fclose($fp);
}
?>
На ардуино слушают 1 или 0 в зависимости от этого зажигаю 13 лед - но проблема в том что через прокси команда один раз проходит, а на второй запрос пишет Refused connection from 127.0.0.1 как показано в скрине выше, подскажите пожалуйста в чем может быть проблема? Или какой прокси использовать?
Через сервер апач на винде - работает на "ура", но тмы пользуемся com-портом, если хотите работать через сокеты на прямую - это интересно, можно поробовать через С++. Пусть программка слушает сокет, если подключились - создаем поток и коннектимся к дуине, тут можно обойтись и без пхп. Только нужен ip и проброшенный порт до компа, на котором програмулина и ардуина.
Завтра посмотрю.
А по-поводу проблеммы сокетов в пхп: может, после первого обращения с сокетом он "открыт"/"используется", из-за этого пхп и ругается? Я б попробовал закрывать сокет после общения.
Оу, вчитался еще разок и понял проблемму.
Чтоб подружить ардуину с компом через com порт, под управлением php установите denwer: www.denwer.ru/dis/Base/latest
После установки у вас будет полноценный php(и не только)-сервер, к которому Вы можете обращаться из вне и контролировать com порты.
В деррикторию www кладете ваш php скрипт, обращаетесь к нему, а он управляет дуиной. Необходимый код я выкладывал ранее.