![]() |
|
|
#1 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Многие пользователи часто спрашивают как сделать кнопку что бы она могла посылать код в порт Arduino
Привожу пример на три лампочки без CSS рюшечек Этот код нужно скопировать и поместить в фаил с именем index.html Код:
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>Button</title> </head> <body> <form method="get" action="serial.php"><button value="1" type="submit" name="send_m">Light ON </button></form> <form method="get" action="serial.php"><button value="0" type="submit" name="send_m">Light OFF</button></form> <form method="get" action="serial.php"><button value="3" type="submit" name="send_m">Room ON </button></form> <form method="get" action="serial.php"><button value="2" type="submit" name="send_m">Room OFF</button></form> <form method="get" action="serial.php"><button value="5" type="submit" name="send_m">ON </button></form> <form method="get" action="serial.php"><button value="4" type="submit" name="send_m">OFF</button></form> </body> </html> Нужно создать фаил с именем serial.php и поместить в него ниже выложенный код PHP код:
Код:
#define ledPin 13
#define ledPin1 12
#define ledPin2 11
void setup()
{
Serial.begin(57600);
pinMode(ledPin, OUTPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
}
void loop()
{
if (Serial.available() > 0)
{
byte inByte = Serial.read();
switch (inByte)
{
case 49:
digitalWrite(ledPin, HIGH);
delay(50);
Serial.println("Light ON");
break;
case 48:
digitalWrite(ledPin, LOW);
delay(50);
Serial.println("Light OFF");
break;
case 51:
digitalWrite(ledPin1, HIGH);
delay(50);
Serial.println("Room ON");
break;
case 50:
digitalWrite(ledPin1, LOW);
delay(50);
Serial.println("Room OFF");
break;
case 53:
digitalWrite(ledPin2, HIGH);
delay(52);
Serial.println("ON");
break;
case 52:
digitalWrite(ledPin2, LOW);
delay(52);
Serial.println("OFF");
break;
}
}
}
|
|
|
|
|
|
#2 |
|
Member
Регистрация: 17.03.2012
Адрес: Мариуполь (UA)
Сообщений: 72
Вес репутации: 0 ![]() |
Chip, конечно этот код более правильный и красивый. Но и мой тоже умеет отправлять данные в Ардуинку. И получать тоже. А вот принимать и получать одновременно...
|
|
|
|
|
|
#3 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Добавил код который отправляет и принимает
Если кому нибудь понадобится, могу выложить кнопки на CSS Выглядеть будут как на скриншоте |
|
|
|
|
|
#4 |
|
Member
Регистрация: 17.03.2012
Адрес: Мариуполь (UA)
Сообщений: 72
Вес репутации: 0 ![]() |
Chip, я хочу реализовать следующее - одна кнопка на включение и выключение. Т.е. при нажатии, PHP отправляет в ардуину "1". Соответственно меняется состояние пина с 0 на 1 и ардуина возвращает состояние пина в PHP, который в свою очередь меняет состояние (отображение) кнопки. Это для того, чтобы открыв страницу своего дома, я сразу видел, что включено, а что нет. Я реализовывал подобное, но использовал NySQL, а сейчас хочу напрямую состояние пинов ардуины читать.
|
|
|
|
|
|
#5 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Код проверил? Я выложил то что ты хотел
|
|
|
|
|
|
#6 |
|
Member
Регистрация: 17.03.2012
Адрес: Мариуполь (UA)
Сообщений: 72
Вес репутации: 0 ![]() |
Только увидел. Попробую.
|
|
|
|
|
|
#7 |
|
Member
Регистрация: 23.11.2012
Сообщений: 47
Вес репутации: 185 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Мой вариант кнопки, кнопка одна.
нажимаем -включаем, нажимаем выключаем кнопка меняет цвет. Обратной связи не делал, пока нет необходимости. Если кто сделает , просьба поделиться. PHP код:
Последний раз редактировалось NEXT; 20.01.2013 в 21:15. |
|
|
|
|
|
#8 |
|
Member
Регистрация: 17.03.2012
Адрес: Мариуполь (UA)
Сообщений: 72
Вес репутации: 0 ![]() |
Chip, ну это близко к истинне. Но вот эти "On", "Off" и т.д., должны отображаться на главной странице с кнопками. Пытался их передавать через GET - не получается. Через Cooki - получается, но через попу... И при первом входе на страницу, естественно ничего не отображается (что включено, а что нет). Еще так более-менее получается -
PHP код:
|
|
|
|
|
|
#9 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Нужно сделать два скрипта
1-который будет отправлять команды 2-который будет принимать массив со статусами лампочек и находится на главной странице в index В первом скрипте прописать в конце header('Location: /buttons/index.html'); тогда после выполнения первого скрипта обновится главная html страница с кнопками, в самом начале главной страницы разместить код второго скрипта который получит статусы лампочек |
|
|
|
|
|
#10 |
|
Member
Регистрация: 17.03.2012
Адрес: Мариуполь (UA)
Сообщений: 72
Вес репутации: 0 ![]() |
Вот в этом и есть вся сложность. В Serial.php я прописал - header('Location: index.php');
Мой cтарый код в самом начале главной страницы - PHP код:
PHP код:
|
|
|
|
![]() |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|