Скетч Arduino + USB обсуждаем, пишем, тестируем
Модератор: immortal
Re: Скетч Arduino + USB обсуждаем, пишем, тестируем
За скетч конечно отдельное благодарство. Но еще к нему не хватает инструкции, для новичка, по настройке в самом мажордоме. У меня так и ничего не заработало. Не хватаем в настройках мажордома банального выбора КОМ-порта или ЮСБ или хотя б протокола передачи. Я уже перепробовал несколько SKADA систем и ни одна не понравилась. Да и настраивать их тоже геморно.
- ser009
- Сообщения: 595
- Зарегистрирован: Сб окт 13, 2012 9:55 am
- Благодарил (а): 4 раза
- Поблагодарили: 43 раза
Re: Скетч Arduino + USB обсуждаем, пишем, тестируем
Вот как нужно настроить систему для получения состояния D8
Скетч ArduinoCodeNoEthernet_v02_1.rar в начале темы
Скетч ArduinoCodeNoEthernet_v02_1.rar в начале темы
Re: Скетч Arduino + USB обсуждаем, пишем, тестируем
ser009, хочу решить задачку про GET - строку. Пожалуйста, дайте еще разок здесь полный текст строки вкл - выкл.
Я подумал, что это нужно решать строковыми функциями. Система же выдает стандартный запрос типа GET и бла-бла? И другого не надо. Потом без мороки выходить на Ethernet.
Я подумал, что это нужно решать строковыми функциями. Система же выдает стандартный запрос типа GET и бла-бла? И другого не надо. Потом без мороки выходить на Ethernet.
С уважением, Петр.
- ser009
- Сообщения: 595
- Зарегистрирован: Сб окт 13, 2012 9:55 am
- Благодарил (а): 4 раза
- Поблагодарили: 43 раза
Re: Скетч Arduino + USB обсуждаем, пишем, тестируем
GET /objects/?object=D8&op=m&m=status_d_input&status=1
И так:
D8 - вкладка "объект" Digital8 (8 порт на Arduino)
status_d_input - вкладка "метод" обработчик статуса для дискретных входов
status - вкладка "свойства"
1 - непосредственно сам статус 1 или 0
И так:
D8 - вкладка "объект" Digital8 (8 порт на Arduino)
status_d_input - вкладка "метод" обработчик статуса для дискретных входов
status - вкладка "свойства"
1 - непосредственно сам статус 1 или 0
Re: Скетч Arduino + USB обсуждаем, пишем, тестируем
Нашел все же http://arduino.ru/forum/programmirovani ... -v-arduino темку. И подумалось, а если мы из системы стучимся в ардуину напрямую, может есть возможность толкнуть в сериал команду покороче? Пока из первого прочтения понял, что с длинной строкой и проблем поболее. В частности памяти отъест. Как бы для Меги это и не страшно, просто такие "бантики" http://www.ebay.com/itm/130835832238?ss ... 1497.l2649 дешевле будут... но нужно позаботится о байтиках.
С уважением, Петр.
Re: Скетч Arduino + USB обсуждаем, пишем, тестируем
Приветствую всех участников проекта!
читаю форум некоторое время и так и нет полной картины как все таки запустить проект: компьютер с ардуино через USB.
с Majordomo на порт можно отправить данные без проблем а вот чтобы обратно нужна программа ArduinoGW http://smartliving.ru/Main/ArduinoDirect для мониторинга порта и отправки проекту данных c датчиков подключенных к ардуине.
Но как быть если у меня убунту?
читаю форум некоторое время и так и нет полной картины как все таки запустить проект: компьютер с ардуино через USB.
с Majordomo на порт можно отправить данные без проблем а вот чтобы обратно нужна программа ArduinoGW http://smartliving.ru/Main/ArduinoDirect для мониторинга порта и отправки проекту данных c датчиков подключенных к ардуине.
Но как быть если у меня убунту?
-
- Сообщения: 422
- Зарегистрирован: Ср сен 05, 2012 7:30 am
- Откуда: Киров
- Благодарил (а): 0
- Поблагодарили: 70 раз
- Контактная информация:
Re: Скетч Arduino + USB обсуждаем, пишем, тестируем
тогда аналогично делаем как тут http://smartliving.ru/Main.DlinkHub ,Sail писал(а): Но как быть если у меня убунту?
Re: Скетч Arduino + USB обсуждаем, пишем, тестируем
Спасибо получилось! считал показание датчиков ds1820 и показал их в системе, реализовал отправку команды на включение светодиода как описывалось http://smartliving.ru/forum/viewtopic.php?f=4&t=524
но как заставить работать все вместе? т.к. если ком порт открыт и идет его чтение в цикле баш скриптом, то светодиод не включается.
появилась идея, в мажордоме сделать таймер секунд на 10-30 и опрашивать ардуино (пустой командой либо командой на включение исполнительных механизмов), которое в свою очередь будет отправлять ответ с показаниями датчиков.
Хотя не уверен что это надежно.
но как заставить работать все вместе? т.к. если ком порт открыт и идет его чтение в цикле баш скриптом, то светодиод не включается.
появилась идея, в мажордоме сделать таймер секунд на 10-30 и опрашивать ардуино (пустой командой либо командой на включение исполнительных механизмов), которое в свою очередь будет отправлять ответ с показаниями датчиков.
Хотя не уверен что это надежно.
Re: Скетч Arduino + USB обсуждаем, пишем, тестируем
В общем получилось реализовать отправку команд и чтение показания датчиков одновременно через файл
В баше идет постоянное чтение датчиков и отправка команд в ардуино если файлик не пустой :
#!/bin/sh
ARDUINO_PORT=/dev/ttyACM0
stty -F $ARDUINO_PORT raw speed 9600
while read LINE; do
date
echo "$LINE"
stR=$LINE
len=`expr length $stR` # длинна строки
pos=`expr index $stR :` # координата первого двоеточия
pos=`expr $pos + 1` # увеличить на единицу
st2=`expr substr $stR $pos $len` # изъятие строки после двоеточия
len=`expr length $st2` # длинна изъятой строки
pos=`expr index $st2 :` # координата второго двоеточия
pos=`expr $pos - 1` # для изъятия без : уменьщить на единицу
st3=`expr substr $st2 1 $pos`
#echo название датчика $st3
pos=`expr $pos + 2` # для изъятия без : увеличить на 2
st4=`expr substr $st2 $pos $len`
#echo данные датчика $st4.
URL='http://localhost/objects/?object='$st3' ... temp='$st4
wget -q -T 5 -O - $URL
as=`wc -l /home/as/A | grep -o '[0-9]*'`
if [ "$as" != 0 ]; then #проверка наличие строк в файле
while read LINE; do
echo "$LINE"
as=$LINE
echo $as > $ARDUINO_PORT
done </home/as/A
cp /dev/null /home/as/A # очистка файла
# echo 'очищен '
fi
#echo A>$ARDUINO_PORT.
done < $ARDUINO_PORT
вот Код кнопки :
if ($params['VALUE']) {
$fp =fopen("/home/as/A", "a");
$si="A\n";
fwrite($fp, $si);
fclose($fp);
say("Светодиод включен",5);
} else {
$fp =fopen("/home/as/A", "a");
$si="B\n";
fwrite($fp, $si);
fclose($fp);
say("Светодиод выключен",5);
}
В баше идет постоянное чтение датчиков и отправка команд в ардуино если файлик не пустой :
#!/bin/sh
ARDUINO_PORT=/dev/ttyACM0
stty -F $ARDUINO_PORT raw speed 9600
while read LINE; do
date
echo "$LINE"
stR=$LINE
len=`expr length $stR` # длинна строки
pos=`expr index $stR :` # координата первого двоеточия
pos=`expr $pos + 1` # увеличить на единицу
st2=`expr substr $stR $pos $len` # изъятие строки после двоеточия
len=`expr length $st2` # длинна изъятой строки
pos=`expr index $st2 :` # координата второго двоеточия
pos=`expr $pos - 1` # для изъятия без : уменьщить на единицу
st3=`expr substr $st2 1 $pos`
#echo название датчика $st3
pos=`expr $pos + 2` # для изъятия без : увеличить на 2
st4=`expr substr $st2 $pos $len`
#echo данные датчика $st4.
URL='http://localhost/objects/?object='$st3' ... temp='$st4
wget -q -T 5 -O - $URL
as=`wc -l /home/as/A | grep -o '[0-9]*'`
if [ "$as" != 0 ]; then #проверка наличие строк в файле
while read LINE; do
echo "$LINE"
as=$LINE
echo $as > $ARDUINO_PORT
done </home/as/A
cp /dev/null /home/as/A # очистка файла
# echo 'очищен '
fi
#echo A>$ARDUINO_PORT.
done < $ARDUINO_PORT
вот Код кнопки :
if ($params['VALUE']) {
$fp =fopen("/home/as/A", "a");
$si="A\n";
fwrite($fp, $si);
fclose($fp);
say("Светодиод включен",5);
} else {
$fp =fopen("/home/as/A", "a");
$si="B\n";
fwrite($fp, $si);
fclose($fp);
say("Светодиод выключен",5);
}
-
- Сообщения: 949
- Зарегистрирован: Пт дек 06, 2013 11:30 am
- Откуда: Москва
- Благодарил (а): 68 раз
- Поблагодарили: 94 раза
Re: Скетч Arduino + USB обсуждаем, пишем, тестируем
Подскажите, как в итоге считать на ардуине считать строку вида D9 C255 (9 пин значение 255) и заставить ардуинку эту команду выполнить?