у меня наблюдается подобная сложность, вызвана она скорее всего тем, что кто то еще "трогает" СОМ порт, у меня этот "кто-то" драйвер адроидотелефона...я выхожу из положения шаманством...
1) в командной строке mode COM3 - мне показывает скорость, как правило 57600
2) включаю/выключаю ардуино
3) перезаливаю скетч
З.Ы. драйвер телефона удалить не могу, потому мирюсь с таким шаманством, а вообще собираюсь придлелать к ардуино модуль блутуса, авось меньше проблем станет
Вообще приложения на php, использующие связь с arduino для чтения используют php serial, а это возможно только на линуксе, а на линуксе проблемы - смотри посты выше.
С SerProxy у меня получилось читать, но что-то не нравится она мне...
echo '<br/>Значения датчиков - '; Это какие датчики Вы считываете? Я так понимаю, что состояния пинов Ардуины? Если не сложно, покажите скетч Ардуины для этого скрипта.
Заработало на линуксе. Удалось передать и прочитать данные.
Проблема заключалось в настройках php - open_basedir. Пришлось поставить там корневой каталог.
А что если с помощью php_serial.class.php открыть порт и после него цикл сделать бесконечный и в нем ждать прием данных и манипулировать с ними! Так получится?
Тема уже древняя, но, может, кому пригодится. Я тоже решил поиграться с Ардуино UNO, через PHP и локальный сервер на компьютере. У меня Денвер, винда восьмерка, хотелось не только управлять, но и получать с ардуины данные. Короче, нашел PHP Serial Extension, тут . Судя по всему, написанное специально для работы под виндой. Все подробно расписано в мануале. Без граблей не обходится, и если рекомендованное для установленной у вас версии PHP расширение не подходит, надо пробовать ближние версии. Во всяком случае, у меня получилось именно так, но после установки все работает, как часы. Можно передавать и принимать пакеты данных, функции для строк и отдельно для байтов.
у меня наблюдается подобная сложность, вызвана она скорее всего тем, что кто то еще "трогает" СОМ порт, у меня этот "кто-то" драйвер адроидотелефона...я выхожу из положения шаманством...
1) в командной строке mode COM3 - мне показывает скорость, как правило 57600
2) включаю/выключаю ардуино
3) перезаливаю скетч
З.Ы. драйвер телефона удалить не могу, потому мирюсь с таким шаманством, а вообще собираюсь придлелать к ардуино модуль блутуса, авось меньше проблем станет
Вообще приложения на php, использующие связь с arduino для чтения используют php serial, а это возможно только на линуксе, а на линуксе проблемы - смотри посты выше.
С SerProxy у меня получилось читать, но что-то не нравится она мне...
echo '<br/>Значения датчиков - '; Это какие датчики Вы считываете? Я так понимаю, что состояния пинов Ардуины? Если не сложно, покажите скетч Ардуины для этого скрипта.
Написал у себя в блоге небольшую статью. Делюсь своим опытом Arduino и вебинтерфейс.
Это какие датчики Вы считываете? Я так понимаю, что состояния пинов Ардуины?
температуры - ds18b20 и фоторезистор
как бы ничего серьезного...
Заработало на линуксе. Удалось передать и прочитать данные.
Проблема заключалось в настройках php - open_basedir. Пришлось поставить там корневой каталог.
Написал у себя в блоге небольшую статью. Делюсь своим опытом Arduino и вебинтерфейс.
Большое спасибо за статью, пошел читать:)
http://www.youtube.com/watch?v=tq7lQ4b85VQ&feature=channel&list=UL
Накидал динамику на php. Строит диаграмму данных с Arduino. В данном случае - данные с фоторезистора.
http://www.youtube.com/watch?v=tq7lQ4b85VQ&feature=channel&list=UL
Накидал динамику на php. Строит диаграмму данных с Arduino. В данном случае - данные с фоторезистора.
Уважаемый, очень хотелось бы узнать на чем это все написано и исходники если вам не жалко :)
<html> <head> <meta http-equiv="Content-Type" content="text/html; Charset=UTF-8"> <style type="text/css"> .elemClass{ width: 10px; position: absolute; bottom: 0; } #dia{ height: 600px; position:relative; background-color: #808080; } </style> <script> var tm; var px = 0; function createElem(w) { var col; if(parseInt(w) < 300){col="black"} else if(parseInt(w) > 500){col="red"} else if(parseInt(w) > 300 && parseInt(w) < 500){col="green"}; px=px+10; var pxt = px + "px"; var parent = document.getElementById('dia'); var newP = document.createElement('div'); newP.className = 'elemClass'; //newP.style.width = '10px'; newP.style.height = w; newP.style.background = col; newP.style.color = '#000'; newP.style.display = 'inline-block'; newP.style.cssFloat ="left"; newP.style.left =pxt; parent.appendChild(newP); }; function showContent() { var cont = document.getElementById('contentBody'); var loading = document.getElementById('loading'); cont.innerHTML = loading.innerHTML; var http = createRequestObject(); if( http ) { http.open('get', 'http://localhost/ard/index.php'); http.onreadystatechange = function () { if(http.readyState == 4) { cont.innerHTML = http.responseText; createElem(http.responseText); } } http.send(null); } else { document.location = link; } } // создание ajax объекта function createRequestObject() { try { return new XMLHttpRequest() } catch(e) { try { return new ActiveXObject('Msxml2.XMLHTTP') } catch(e) { try { return new ActiveXObject('Microsoft.XMLHTTP') } catch(e) { return null; } } } } function stopp(){ clearInterval(tm); }; function startt(){ tm = setInterval('showContent();', 500); }; </script> </head> <body> <p>Диаграмма Света</p> <form> <input onclick="startt();" type="button" value="Старт"> <input onclick="stopp();" type="button" value="Стоп"> </form> <div id="contentBody"> </div> <div id="loading" style="display: none"> Идет загрузка... </div> <div id="dia"> </div> </body> </html>PHP:
include "php_serial.class.php"; $serial = new phpSerial; $serial->deviceSet("/dev/ttyACM0"); $serial->confBaudRate(9600); $serial->confParity("none"); $serial->confCharacterLength(8); $serial->confStopBits(1); $serial->confFlowControl("none"); $serial->deviceOpen(); $read = null; while($read == null){ $read = $serial->readPort(); }; echo $read; $serial->deviceClose();А скетч на ардуино не могли бы выложить?
А что если с помощью php_serial.class.php открыть порт и после него цикл сделать бесконечный и в нем ждать прием данных и манипулировать с ними! Так получится?
Тема уже древняя, но, может, кому пригодится. Я тоже решил поиграться с Ардуино UNO, через PHP и локальный сервер на компьютере. У меня Денвер, винда восьмерка, хотелось не только управлять, но и получать с ардуины данные. Короче, нашел PHP Serial Extension, тут . Судя по всему, написанное специально для работы под виндой. Все подробно расписано в мануале. Без граблей не обходится, и если рекомендованное для установленной у вас версии PHP расширение не подходит, надо пробовать ближние версии. Во всяком случае, у меня получилось именно так, но после установки все работает, как часы. Можно передавать и принимать пакеты данных, функции для строк и отдельно для байтов.
P.S. - пробовать ближние версии расширения, естественно.