Страница 1 из 2
Получение данных из Arduino в MojorDoMo
Добавлено: Пн сен 16, 2013 3:51 pm
kbnn
Люди добрые, ну объясните пожалуйста.
Есть Arduino с Ethernet Shieldом и сенсором температуры. Есть MojorDoMo.
Как сделать, что бы MojorDoMo получала температуры из Arduino?
PS. Вот интересный проект, но не хватает примеров реализации.
Re: Получение данных из Arduino в MojorDoMo
Добавлено: Пн сен 16, 2013 10:40 pm
LutsenkoDenis
Если кратко то...
Majordomo
Создать класс, объект с методом и свойства класса. Описание тут:
http://smartliving.ru/Main/BasicsObjects
Arduino:
Получить данные с датчика и вызвать метод класса. Обсуждение с примерами.
http://smartliving.ru/forum/viewtopic.p ... 6&start=10
Хороший пример с комментами тут:
https://github.com/sochkasov/majordomo- ... roller.ino
Re: Получение данных из Arduino в MojorDoMo
Добавлено: Вт сен 17, 2013 4:14 pm
sergejey
Вот ещё в копилку -- подключение Arduino без ethernet-shield-а и передача данных в MajorDoMo:
http://smartliving.ru/Main/ArduinoDirect
Re: Получение данных из Arduino в MojorDoMo
Добавлено: Ср сен 18, 2013 7:43 am
kbnn
Огромное спасибо. Получилось.
Re: Получение данных из Arduino в MojorDoMo
Добавлено: Вт сен 24, 2013 10:59 am
dmw
http://smartliving.ru/Main/ArduinoDirect - тут в статье описывается возможность только для Windows систем, а как сделать для Ubuntu?
Пока использую библиотеку php_serial.class (файл php_serial.class.php сложил в папку /www/lib).
PHP скрипт:
Код: Выделить всё
<?php
include "./lib/php_serial.class.php";
$serial = new phpSerial;
//Путь к Arduino
$serial->deviceSet("/dev/ttyACM0");
//Это стандарт
$serial->confBaudRate(9600);
$serial->confParity("none");
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->confFlowControl("none");
$serial->deviceOpen();
sleep (4);
//Читаем ответ Arduino
$read = $serial->readPort();
echo "Data: " . $read . "\n";
?>
работает, т.е. выдает первые строки при инициализации Arduino и завершает работу.
Как сделать чтобы он мог постоянно висеть в памяти и мониторить все что выдает arduino в serial?
Re: Получение данных из Arduino в MojorDoMo
Добавлено: Вт сен 24, 2013 11:19 am
sergejey
Код: Выделить всё
//Читаем ответ Arduino
$read = $serial->readPort();
echo "Data: " . $read . "\n";
меняем на
Код: Выделить всё
//Читаем ответ Arduino
while(1) {
$read = $serial->readPort();
echo "Data: " . $read . "\n";
}
Re: Получение данных из Arduino в MojorDoMo
Добавлено: Вт сен 24, 2013 1:20 pm
dmw
Спасибо, действительно работает. Однако процессор загружается с обычных 18% до 99,4%.
Поставил задержку в 50 миллисекунд, вроде полегчало, теперь загрузка 19%:
Код: Выделить всё
<?php
include "./lib/php_serial.class.php";
$serial = new phpSerial;
//Путь к Arduino
$serial->deviceSet("/dev/ttyACM0");
//Это стандарт
$serial->confBaudRate(9600);
$serial->confParity("none");
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->confFlowControl("none");
$serial->deviceOpen();
//Читаем ответ Arduino
while(1) {
usleep(50000); //Задержка 50 миллисекунд
$read = $serial->readPort();
if ($read<>"") {
echo "Data: " . $read . "\n";
}
}
Или оптимальней будет попробовать интегрировать этот кусок в главный цикл cycle.php? Как это безболезненно сделать?
Re: Получение данных из Arduino в MojorDoMo
Добавлено: Вт сен 24, 2013 2:15 pm
sergejey
dmw писал(а):Спасибо, действительно работает. Однако процессор загружается с обычных 18% до 99,4%.
Поставил задержку в 50 миллисекунд, вроде полегчало, теперь загрузка 19%:
Код: Выделить всё
<?php
include "./lib/php_serial.class.php";
$serial = new phpSerial;
//Путь к Arduino
$serial->deviceSet("/dev/ttyACM0");
//Это стандарт
$serial->confBaudRate(9600);
$serial->confParity("none");
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->confFlowControl("none");
$serial->deviceOpen();
//Читаем ответ Arduino
while(1) {
usleep(50000); //Задержка 50 миллисекунд
$read = $serial->readPort();
if ($read<>"") {
echo "Data: " . $read . "\n";
}
}
Или оптимальней будет попробовать интегрировать этот кусок в главный цикл cycle.php? Как это безболезненно сделать?
Всё правильно, с задержкой оно, конечно, меньше нагружать будет.
Интегрировать с запуском главного цикла очень легко -- просто положить этот скрипт в папку ./scripts/ и назвать cycle_arduino.php (название можно любое, главное что б с cycle_ начиналось). В таком случае, основной цикл запустит этот скрипт паралельно с остальными циклами сразу после проверки того, что база данных доступна.
Re: Получение данных из Arduino в MojorDoMo
Добавлено: Ср апр 12, 2017 8:36 am
kabir
Доброго времени суток, прочитал всю ветку, но так и не понял, как настроить MDM для получения данных о температуре и управления реле.
Orange pi pc (Установлен MDM Diet)
Arduino UNO (Прошивка
https://github.com/sochkasov/majordomo- ... rWebServer)
Через веб-интерфейс вижу температуру.
Заранее спасибо...
Re: Получение данных из Arduino в MojorDoMo
Добавлено: Вс ноя 05, 2017 8:38 pm
Петр
kabir, у меня аналогичная проблема...
Но я так понял, что на форуме все заняты "высокими материями" и не очень готовы помогать новичкам