Arduino + web + usb
- Войдите на сайт для отправки комментариев
Чт, 09/06/2016 - 17:02
Здравствуйте! Помогите пожалуйста с проблемой. Мне нужно что бы при поступлении в ардуину сигнала статуса, он отображался в терминале.
Вот скетч:
int LedPin = 13; int Button = 3; byte inByte = 0; byte sch = 0; boolean lastButton = LOW; boolean led = LOW; void setup () { pinMode (LedPin, OUTPUT); pinMode (Button, INPUT); Serial.begin(9600); } boolean ButPosition(boolean last) { boolean current = digitalRead(Button); if (last != current) { delay(20); current = digitalRead(Button); Serial.println(last); } else sch = 0; return current; } void loop () { while(Serial.available() == 0) { boolean f = BatPosition(lastButton); if(f == HIGH && lastButton ==LOW) { if (sch == 0 && led == LOW) { sch = 1; led = HIGH; Serial.println("GET /objects/?object=Vikluchatel&op=m&m=SvetodiodRefresh&"); } else if (sch == 0 && led == HIGH) { sch = 1; led = LOW; Serial.println("GET /objects/?object=Vikluchatel&op=m&m=SvetodiodRefresh&"); } f = lastButton; } digitalWrite(LedPin,led); } inByte = Serial.read()-'0'; if (inByte == 1) led = HIGH; else led = LOW; digitalWrite(LedPin,led); }
Кнопку я уберу, она как выяснилось мне не понадобится. А куда вставить
Serial.println("GET /objects/?object=Vikluchatel&op=set&p=stat&v=" + led);
и будет ли он работать, я так и не понял...
Строка
Просто выплюнет строчку "GET /objects/?object=Vikluchatel&op=set&p=stat&v=чего-то там ещё" по USART, и эту строчку можно поймать любой терминальной программой, например, встроенным в IDE монитором порта.
Вы что хотите сделать? Объясните плз поподробней, а то непонятно. Строго говоря, та строка, которую вы пишете в Serial - это часть заголовка HTTP-запроса, который неполон. Такой запрос посылается HTTP-серверу, который анализирует его и выдаёт ответ, состоящий из заголовков HTTP и тела ответа (которое, в свою очередь, может отсутствовать или быть представлено HTML-страничкой, или бинарными данными, или набором чанков - короче, вариантов там есть).
Работаю на умным домом на базе majordomo. Сейчас задача управлять выключателями Livolo без радио. Выглядит это так: к ПК подключена Arduina через шнур, к ардуине подключены выключатели, датчики и т.п. К выключателю припаял провода для управления им из сети и провод для считывания состояния на всякий случай.
В системе управления MD создана кнопка с кодом:
exec("mode com3: BAUD=9600 PARITY=N data=8 stop=1 xon=off");
$fp =shell_exec("C:/_majordomo/apps/arduino_gw/arduino_gw.exe 1");
fwrite($fp);
fclose($fp);
say("Светодиод включен с сервера",5);
При кажатии на кнопку на сервере МД запускает программу Arduino_GW (монитор порта) в который посылает код на включение или выключение света (импульс). Этого хватает чтобы включть или выключить выключатель. Кнопка подключенная к Ардуине на пин 3 уже не нужна. Я её удалю из скетча. Но мне нужно что бы сервер МД знал состояние выключателя, включен он или нет.