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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.12.2014, 16:26   #111
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   #112
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   #113
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 вне форума   Ответить с цитированием
Ответ


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

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

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

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

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


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


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