Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > CyberWrt

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.12.2014, 12:07   #1
zsm
Member
 
Регистрация: 28.05.2013
Сообщений: 71
Вес репутации: 0
zsm is an unknown quantity at this point
По умолчанию Re: CyberWrt модуль "HTML Кнопка"

Цитата:
Сообщение от Admin Посмотреть сообщение
dev/ttyATH0 > $QUERY_STRING Таким образом Вы направляете поток в фаил, в переменную таким образом записать поток не получится. Я уже приводил пример как это можно сделать

Читаем данные из порта, в течении 3-х сек.
PHP код:
while read -t 3 line; do
echo 
$line
done 
< /dev/ttyATH0 
Попробовал через поиск найти тему с примером, не нашел по чему то..

Не понял в какую переменную читается порт.
Почему в течении 3 секунд?
можно ли читать по событию - если есть данные то они читаются.
при добавлении примера начинает тормозить всё сильно..
zsm вне форума   Ответить с цитированием
Старый 23.12.2014, 13:13   #2
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: CyberWrt модуль "HTML Кнопка"

переменная $line
время ожидания можно изменить -t 3
Admin вне форума   Ответить с цитированием
Старый 23.12.2014, 16:26   #3
zsm
Member
 
Регистрация: 28.05.2013
Сообщений: 71
Вес репутации: 0
zsm is an unknown quantity at this point
По умолчанию Re: CyberWrt модуль "HTML Кнопка"

Цитата:
Сообщение от Admin Посмотреть сообщение
переменная $line
время ожидания можно изменить -t 3
Не знаю как благодарить) всё заработало!
а переменную line вы сами создали или она всё время есть как $QUERY_STRING?
и последний наверно вопрос, как переменную line очистить?

Последний раз редактировалось zsm; 23.12.2014 в 17:39.
zsm вне форума   Ответить с цитированием
Старый 25.12.2014, 19:19   #4
zsm
Member
 
Регистрация: 28.05.2013
Сообщений: 71
Вес репутации: 0
zsm is an unknown quantity at this point
По умолчанию Re: CyberWrt модуль "HTML Кнопка"

Цитата:
Сообщение от Admin Посмотреть сообщение
переменная $line
время ожидания можно изменить -t 3
а никто не знает как эту переменную line правильно забрать с помощью
jquery , хочется чтобы она без перезагрузки страницы обновлялась...
с товарищем всю голову сломали , пока ничего не выходит...
zsm вне форума   Ответить с цитированием
Старый 10.05.2015, 12:20   #5
melsem
Moderator
 
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 599
melsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud of
По умолчанию Re: CyberWrt модуль "HTML Кнопка"

Вот дописанный пример простой HTML Кнопки но с обратной связью.
Код:
#!/bin/sh
#Copyright (C) 2013 cyberwrt.ru, duino.ru, cyber-place.ru, mp3car.ru
echo "Content-type: text/html; charset=utf-8"
echo
echo "<title>Button</title>
`cat /www/menu.html`
<br>
<body bgcolor="#f0f0f0">
<style>
  .b1 {
font-size: 15pt;
text-align: center;
padding: 20px 40px;
margin-left: 20px;
cursor: pointer;
border-radius:inherit;
letter-spacing: 1px;
min-width: 150px;
max-width: 250px;
}
</style>
<table align=center border=1 style=background-color:f1e1f1 width=550><tr><td align=center>
<table>
<form method=GET action="index.cgi">"


#==========  Чтение порта  ==========#
echo R > /dev/ttyUSB0	# запрос к ардуйне для передачи состояния пинов

#head -n 1 /dev/ttyUSB0 > /tmp/arduino	# и читаем порт. Без задержки но иногда при ошибках чтения зависает

#===== или так читаем порт. С задержкой но не зависает
while read -t 1 line; do
echo $line > /tmp/arduino
done < /dev/ttyUSB0 
#=====#
#========== ====================#

krug=1
nols=0
odin=1
for a in 13 3 4 5 6; do
#================  button   =================================================#
if [ "$a" -eq "13" ]; then
a=LED
b=""
else
b=D
fi
echo " <tr><td>"Knopka " <b>$b$a</b></td><td>"
#
		pos=$(cat /tmp/arduino | awk -F "," '{print $'$krug'}')		# print $1 print $2 print $3 print $4 print $5 .....
	if [ "$pos" -eq "1" ]; then
		nolsu=$nols
		odinu=$odin
#=====	Для прямых уровней выходов =====#
#		vizor=". Включить . "
#		novizor="Выключить"
#		stl=""
#		stlon="style=background-color:FFFFCC"
#===============================#
#=====	Для инверсных уровней выходов =====#
		vizor="Выключить"
		novizor=". Включить . "
		stl="style=background-color:FFFFCC"
		stlon=""
#===============================#
	else
		nolsu=$odin
		odinu=$nols
#=====	Для прямых уровней выходов =====#
#		vizor="Выключить"
#		novizor=". Включить . "
#		stl="style=background-color:FFFFCC"
#		stlon=""
#===============================#
#=====	Для инверсных уровней выходов =====#
		vizor=". Включить . "
		novizor="Выключить"
		stl=""
		stlon="style=background-color:FFFFCC"
#===============================#
fi
		opros=$(echo $QUERY_STRING | awk -F "=" '{print $1}')
#		====== сама кнопка ===================================================
echo "<button type=subbmit"
	     if [ "$opros" -eq "$odinu" ]; then								# -eq "1"  -eq "3"  -eq "5" .....
		echo $nolsu > /dev/ttyUSB0								# echo 0   echo 2   echo 4   echo 6.....
		echo " name="$nolsu" class="b1" $stl>$vizor $b$a</button>"		# name=0    name=2   name=4   name=6.... 
	     else
		echo $odinu > /dev/ttyUSB0								# echo 1   echo 3   echo 5   echo 7.....
		echo " name="$odinu" class="b1" $stlon>$novizor $b$a</button>"	# name=1    name=3   name=5   name=7.... 
	     fi
#		==================================================================
	: $((krug = $krug + 1))
	: $((odin = $odin + 2))
	: $((nols = $nols + 2))
echo "</td></tr><tr><td></td></tr>"
#================ END  -  button   =================================================#
done

echo "</form></table></td></tr></table></body>"

#=====  Надо только при отладке скрипта. Визуал. что отправляем и принимаем =====#
#echo "<p><textarea rows="4" cols="64" name="text" spellcheck="false" placeholder=Text-print? >"
#	echo "$QUERY_STRING"
#	opros=$(echo $QUERY_STRING | awk -F "=" '{print $1}')
#	echo $opros
#	echo R > /dev/ttyUSB0
#	head -n 1 /dev/ttyUSB0
#
#echo "</textarea>"
#========================================================#
И код для Arduino.
PHP код:
#define ledPin 13
int pinOUT[4] = {3456}; // номера ПИНОВ (выводов) для управления силовыми ключами

void setup()
{
  
Serial.begin(115200); 
  
pinMode(ledPinOUTPUT);
    for (
int i 04i++){
    
pinMode(pinOUT[i], OUTPUT);
    
digitalWrite(pinOUT[i], HIGH);
    }
}

void loop()
{
  if (
Serial.available())
  {
    
byte inByte Serial.read();
    switch (
inByte)
    {
        case 
49:
        
digitalWrite(ledPinHIGH);
        break;
        case 
48:
        
digitalWrite(ledPinLOW);
        break;
        
        case 
'3':
        
digitalWrite(pinOUT[0], HIGH);
        break;
        case 
'2':
        
digitalWrite(pinOUT[0], LOW);
        break;
        
        case 
'5':
        
digitalWrite(pinOUT[1], HIGH);
        break;
        case 
'4':
        
digitalWrite(pinOUT[1], LOW);
        break;
        
        case 
'7':
        
digitalWrite(pinOUT[2], HIGH);
        break;
        case 
'6':
        
digitalWrite(pinOUT[2], LOW);
        break;
        
        case 
'9':
        
digitalWrite(pinOUT[3], HIGH);
        break;
        case 
'8':
        
digitalWrite(pinOUT[3], LOW);
        break;
        
        case 
'R':
        
serialPrintOut();
    
delay(50);
        break;
        
    }
  }
}
void serialPrintOut() // отправка данных
 
{
     
delay(300);
      
Serial.print(digitalRead(13));
      
Serial.print(","); 
      
Serial.print(digitalRead(3));
      
Serial.print(","); 
      
Serial.print(digitalRead(4));
      
Serial.print(","); 
      
Serial.print(digitalRead(5));
      
Serial.print(","); 
      
Serial.print(digitalRead(6));
      
Serial.println(" "); 
 } 
Скорость в скетче 115200, у меня с такой работает.
Если не сменить (кому как) то прописать ее в rc.local, подключить ардуйну и перезагрузить.
А что бы не ждать перезагрузку то в путти дать команду с подключенной к юсб ардуйной.
Код:
stty -F /dev/ttyUSB0 cs8 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts -hupcl
Проверял с /dev/ttyUSB0
/dev/ttyACM0 других нету. А на UNO R3 ch340g убрал с платы. Подключил через pl2303.
С открытым вторым портом прием не работает.

Последний раз редактировалось melsem; 10.05.2015 в 12:31.
melsem вне форума   Ответить с цитированием
Старый 20.12.2014, 16:08   #6
zsm
Member
 
Регистрация: 28.05.2013
Сообщений: 71
Вес репутации: 0
zsm is an unknown quantity at this point
По умолчанию Re: CyberWrt модуль "HTML Кнопка"

Цитата:
Сообщение от mebitek Посмотреть сообщение
Видео на странице:
<img src='http://192.168.1.101:8082' width='320' height='240'>"
Спасибо за примеры.
Не получается почему то видео вставить..
адрес и порт на свои менял, не помогает
zsm вне форума   Ответить с цитированием
Старый 20.12.2014, 16:14   #7
zsm
Member
 
Регистрация: 28.05.2013
Сообщений: 71
Вес репутации: 0
zsm is an unknown quantity at this point
По умолчанию Re: CyberWrt модуль "HTML Кнопка"

получилось так , спасибо
<img src='http://192.168.1.102:8080'/?action=stream width='1280' height='720'>
zsm вне форума   Ответить с цитированием
Старый 20.12.2014, 18:04   #8
melsem
Moderator
 
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 599
melsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud ofmelsem has much to be proud of
По умолчанию Re: CyberWrt модуль "HTML Кнопка"

Цитата:
Сообщение от zsm Посмотреть сообщение
получилось так , спасибо
<img src='http://192.168.1.102:8080'/?action=stream width='1280' height='720'>
Еще бы вместо 192.168.1.102 и 8080 вставить вывод команд:
uci get network.lan.ipaddr
и
uci get mjpg-streamer.core.port.
То было бы универсальным. Не зависимо от смены ип-адреса и порта.
melsem вне форума   Ответить с цитированием
Старый 20.12.2014, 18:21   #9
zsm
Member
 
Регистрация: 28.05.2013
Сообщений: 71
Вес репутации: 0
zsm is an unknown quantity at this point
По умолчанию Re: CyberWrt модуль "HTML Кнопка"

Цитата:
Сообщение от melsem Посмотреть сообщение
Еще бы вместо 192.168.1.102 и 8080 вставить вывод команд:
uci get network.lan.ipaddr
и
uci get mjpg-streamer.core.port.
То было бы универсальным. Не зависимо от смены ип-адреса и порта.
Спасибо попробую.
zsm вне форума   Ответить с цитированием
Старый 20.12.2014, 18:43   #10
zsm
Member
 
Регистрация: 28.05.2013
Сообщений: 71
Вес репутации: 0
zsm is an unknown quantity at this point
По умолчанию Re: CyberWrt модуль "HTML Кнопка"

Цитата:
Сообщение от melsem Посмотреть сообщение
Еще бы вместо 192.168.1.102 и 8080 вставить вывод команд:
uci get network.lan.ipaddr
и
uci get mjpg-streamer.core.port.
То было бы универсальным. Не зависимо от смены ип-адреса и порта.
подскажите пожалуйста с синтаксисом, что то не получается ваши команды ввернуть
zsm вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 01:32. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика