![]() |
![]() |
#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) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|