Пытаюсь запустить скетч из примеров библиотеки RCSwitch, а именно: Webserver.
Код:
/*
A simple RCSwitch/Ethernet/Webserver demo
http://code.google.com/p/rc-switch/
Need help? http://forum.ardumote.com
*/
#include <SPI.h>
#include <Ethernet.h>
#include <RCSwitch.h>
// Ethernet configuration
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC Address
byte ip[] = { 192,168,0, 2 }; // IP Address
EthernetServer server(80); // Server Port 80
// RCSwitch configuration
RCSwitch mySwitch = RCSwitch();
int RCTransmissionPin = 7;
// More to do...
// You should also modify the processCommand() and
// httpResponseHome() functions to fit your needs.
/**
* Setup
*/
void setup() {
Ethernet.begin(mac, ip);
server.begin();
mySwitch.enableTransmit( RCTransmissionPin );
}
/**
* Loop
*/
void loop() {
char* command = httpServer();
}
/**
* Command dispatcher
*/
void processCommand(char* command) {
if (strcmp(command, "1-on") == 0) {
mySwitch.switchOn(1,1);
} else if (strcmp(command, "1-off") == 0) {
mySwitch.switchOff(1,1);
} else if (strcmp(command, "2-on") == 0) {
mySwitch.switchOn(1,2);
} else if (strcmp(command, "2-off") == 0) {
mySwitch.switchOff(1,2);
}
}
/**
* HTTP Response with homepage
*/
void httpResponseHome(EthernetClient c) {
c.println("HTTP/1.1 200 OK");
c.println("Content-Type: text/html");
c.println();
c.println("<html>");
c.println("<head>");
c.println( "<title>RCSwitch Webserver Demo</title>");
c.println( "<style>");
c.println( "body { font-family: Arial, sans-serif; font-size:12px; }");
c.println( "</style>");
c.println("</head>");
c.println("<body>");
c.println( "<h1>RCSwitch Webserver Demo</h1>");
c.println( "<ul>");
c.println( "<li><a href=\"./?1-on\">Switch #1 on</a></li>");
c.println( "<li><a href=\"./?1-off\">Switch #1 off</a></li>");
c.println( "</ul>");
c.println( "<ul>");
c.println( "<li><a href=\"./?2-on\">Switch #2 on</a></li>");
c.println( "<li><a href=\"./?2-off\">Switch #2 off</a></li>");
c.println( "</ul>");
c.println( "<hr>");
c.println( "<a href=\"http://code.google.com/p/rc-switch/\">http://code.google.com/p/rc-switch/</a>");
c.println("</body>");
c.println("</html>");
}
/**
* HTTP Redirect to homepage
*/
void httpResponseRedirect(EthernetClient c) {
c.println("HTTP/1.1 301 Found");
c.println("Location: /");
c.println();
}
/**
* HTTP Response 414 error
* Command must not be longer than 30 characters
**/
void httpResponse414(EthernetClient c) {
c.println("HTTP/1.1 414 Request URI too long");
c.println("Content-Type: text/plain");
c.println();
c.println("414 Request URI too long");
}
/**
* Process HTTP requests, parse first request header line and
* call processCommand with GET query string (everything after
* the ? question mark in the URL).
*/
char* httpServer() {
EthernetClient client = server.available();
if (client) {
char sReturnCommand[32];
int nCommandPos=-1;
sReturnCommand[0] = '\0';
while (client.connected()) {
if (client.available()) {
char c = client.read();
if ((c == '\n') || (c == ' ' && nCommandPos>-1)) {
sReturnCommand[nCommandPos] = '\0';
if (strcmp(sReturnCommand, "\0") == 0) {
httpResponseHome(client);
} else {
processCommand(sReturnCommand);
httpResponseRedirect(client);
}
break;
}
if (nCommandPos>-1) {
sReturnCommand[nCommandPos++] = c;
}
if (c == '?' && nCommandPos == -1) {
nCommandPos = 0;
}
}
if (nCommandPos > 30) {
httpResponse414(client);
sReturnCommand[0] = '\0';
break;
}
}
if (nCommandPos!=-1) {
sReturnCommand[nCommandPos] = '\0';
}
// give the web browser time to receive the data
delay(1);
client.stop();
return sReturnCommand;
}
return '\0';
}
Используется следующее железо:
1) Arduino UNO
2) Ethernet шилд на W5100
Поведение скетча:
При наборе в адресной строке браузера указанного в скетче IP-адреса открывается страница с сылками в количестве 4 шт. При первом клике на каждую ссылку команда отрабатывается (наличие команды отслеживается осцилографом на соответствующем пине указанном в скетче). При повторном клике на те же ссылки ничего не происходит, причем не помогает ни ресет, ни выкл. питания. Помогает только смена IP в скетче, и то только 1 раз.
Отсюда следует вопрос: это так должно быть, или я дурак?
но код вы вязли где то там, где вроде есть новая версия этого кода без багов.. если это новая версия. то наверно вам нужны нормаьные версии библиотек :)
Andrey_Y_Ostanovsky а где это можно посмотреть? в скетче?
Обычно - в библиотеке. Только не в "Большой Советской", а в подключаемой к скетчу. :) Например у enc28j60 это #define BUFFER_SIZE 765, по-умолчанию там было что-то типа 350-400 и вся система периодически вешалась наглухо. Максимальный размер для тренспорта по обычной сети - 1472 байта, и лучше в него не упираться, т.к. фрагментацию (обработку icmp_need_frag) плата вряд ли сама умеет делать, а Вам на ее осознание не одна бутылка коньяка потребуется...
Puhlyaviy ооо наш товарисчь, у тебя кто пацаны или дефки? (это про хорьков).
а про Контроллер сенсорной кнопки: интересно же.
адын самец и одна девка. а контролер оставь ты его нафиг.. ну вот не нада оно тебе.. к ардуине и так можно сенсорную кнопку прикрутить. без контролеров.. погугли
13:18
Ненадолго прервал торговлю и выбежал на улицу, чтобы гордо пройтись по округе, демонстрируя амулет переселения в душ. Восхищённые зрители обильно ахали.
13:14
Торговец вдруг выпучил глаза и, не торгуясь, купил пропуск в пантеон за 346 золотых монет. Где тут ближайшая пивная?
13:13
Поспорил с торговцем на 165 монет, что подарю ему бидон дизеля. Выиграл.
13:10
Отпустили из лечебницы под подписку о невыезде. Пойду пешком.
13:10
Капал в ухо настойку шалфея.
13:05
Хорошо погрелся у очага инфекции. Даже в жар бросило.
13:03
С криком «Я только спросить!» пробился к врачам гильдии
Кстати, по правилам .ua домена, зарегистрировать такой домен можно только будучи владельцем торговой марки "arduino" (или есть договор о передачи права собственности на торговую марку)
Поясните мне плиз за что даются балы и для чего стрелочки в правом верхнем углу сообщения?
п.с. про балы догнал, это просто счётчик сообщений
Стрелочки полный аналог "Лайк" на всяких ю трубах. просто рейтинг согласных и несогласных, если таковые имеются. У сильно популярных сообщений "появляются" цифирки ;))
желательно на каком либо примере, допустим вот на таком коде, надо чтоб показывало на экране длина импульса в микросекундах, длина паузы, и чтоб можно было менять значение delayMicroseconds кнопками. как такое сделать, покажите пожалуйста!
желательно на каком либо примере, допустим вот на таком коде, надо чтоб показывало на экране длина импульса в микросекундах, длина паузы, и чтоб можно было менять значение delayMicroseconds кнопками. как такое сделать, покажите пожалуйста!
Для использования данного дисплея потребуется либо писать программу - обработчик дисплея.
Либо просто подключить библиотеку LiquidCrystal:
#include <LiquidCrystal.h>
загляните в папочку Disk:\arduino***\libraries\LiquidCrystal\examples
там примеры использования в виде скетчей, начни с привычного HelloWorld ))))
Главное разобраться как подключен дисплей и в правильной последовательности перечислить пины
// initialize the library with the numbers of the interface pins
#include <LiquidCrystal.h> // Подключение библиотек
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // Инициализация LCD с указанием пинов
Далее не забываем включить строчку в
void setup()
{
lcd.begin(16, 2); // Старт библиотеки. Указанием количества символов и строк
Это обьясняем что у нашего ЖКИ 2 строки по 16 символов в каждой.
Вывод на Экран точно так же как в serial порт
// устанавливаем позицию для вывода
lcd.setCursor(0,0); // символ(колонка) 0 в строке 0
//Далее вывод на дисплей символов
lcd.print("Freq: ");
lcd.setCursor(6,0); // Символ 6 в строке 0
lcd.print(" "); // в данном случае зачистка предыдущего значения
lcd.setCursor(6,0);
lcd.print(freq); // выводим новое значение переменной
и так далее
А здесь, судя по всему практически готовый скетч почти для вашей затеи, за исключением того, что там задают частоту для внешнего устройства а вы хотите задавать непосредственно параметры собственного сигнала.
Так ведь мы ж, с Василь Иванычем, кансервоториев не кончали и в этикетках не сильны.
эххх как то чет тишина какая то в теме образовалась. новички закончились?
Почему это закончилися? Неправда Ваша, вот он тут я. Что не на есть новичек.
С тобой никто не будет переписываться - у тебя "13" в нике...
JollyBiber ну так нечесноооо.
Я даже задам конкретный вопрос новичка:
Пытаюсь запустить скетч из примеров библиотеки RCSwitch, а именно: Webserver.
Код:
Используется следующее железо:
1) Arduino UNO
2) Ethernet шилд на W5100
Поведение скетча:
При наборе в адресной строке браузера указанного в скетче IP-адреса открывается страница с сылками в количестве 4 шт. При первом клике на каждую ссылку команда отрабатывается (наличие команды отслеживается осцилографом на соответствующем пине указанном в скетче). При повторном клике на те же ссылки ничего не происходит, причем не помогает ни ресет, ни выкл. питания. Помогает только смена IP в скетче, и то только 1 раз.
Отсюда следует вопрос: это так должно быть, или я дурак?
Отсюда следует вопрос: это так должно быть, или я дурак?
категорически согласен!
Кергуду алаверды!
Кергуду алаверды!
ну ругайся. лучше в гугл напиши
Отсюда следует вопрос: это так должно быть, или я дурак?
категорически согласен!
Очень хочется конкретики.
Очень хочется конкретики.
выберите сами :)
но код вы вязли где то там, где вроде есть новая версия этого кода без багов.. если это новая версия. то наверно вам нужны нормаьные версии библиотек :)
пока я ждал конкретики, выяснил что такое поведение скетча наблюдается только при работе с Хромом, в ИЕ все работает. Буду дальше пытаться учиться.
А вот это лишнее! Требую чтобы Вы требовали написании скетчей только силами форумчан! Не поддавайтесь на провакации!
А че разве так можно?
Форум и создан ради того чтобы другие могли созидать не напрягаясь!
Ну тогда напишите мне скетч для вумного дома, я правда и сам могу попробовать, но тут так не принято говорят, так что начинайте писать.
Ну тогда напишите мне скетч для вумного дома, я правда и сам могу попробовать, но тут так не принято говорят, так что начинайте писать.
у вас уже есть глупый дом?
Ну а как без него то? Зачем заводить умный дом не имея глупого? А как же равновесие в природе?
Попробуте его набить вумной литературой под самую крышу.
Пробовал, сбегает...
Пробовал, сбегает...
заставляйте его читать.. пусть читает мануалы и прочее и прочее
Так он читать не умеет, он же глупый.
Так он читать не умеет, он же глупый.
ну тогда азбуку ему вдалбливайте и таблицу умножения..
Пойду биту покупать.
Помогает только смена IP в скетче, и то только 1 раз.
Отсюда следует вопрос: это так должно быть, или я дурак?
Одноразовые скетчи - это ночной кошмар ардуинщика... :) А размер пакета (mtu) в программе - какой стоит? Страница в один пакет помещается целиком?
Andrey_Y_Ostanovsky а где это можно посмотреть? в скетче?
Andrey_Y_Ostanovsky а где это можно посмотреть? в скетче?
попробуйте посмотреть большую советскую энциклопедию :)
Ну как я ее посмотрю, она же большая, да и советов щас нету.
Ну как я ее посмотрю, она же большая, да и советов щас нету.
ну если большая то нужно смотреть издалека, либо частями
Andrey_Y_Ostanovsky а где это можно посмотреть? в скетче?
Обычно - в библиотеке. Только не в "Большой Советской", а в подключаемой к скетчу. :) Например у enc28j60 это #define BUFFER_SIZE 765, по-умолчанию там было что-то типа 350-400 и вся система периодически вешалась наглухо. Максимальный размер для тренспорта по обычной сети - 1472 байта, и лучше в него не упираться, т.к. фрагментацию (обработку icmp_need_frag) плата вряд ли сама умеет делать, а Вам на ее осознание не одна бутылка коньяка потребуется...
Andrey_Y_Ostanovsky это оно?
пещера с ардуино
... тут так не принято говорят, так что начинайте писать.
Сходил попИсал, но чот дом не поумнел, дорогая передача, в чем дело?...
Просто писать мало, нужна еще и конкретика?!
пещера с ардуино
Гыы, у меня хорьки такие пещерки роют, зачем мне Ардуину нагружать такой работой.
Гыы, у меня хорьки такие пещерки роют, зачем мне Ардуину нагружать такой работой.
хорьков нужно наверно штук 100 что бы они вырыли вместительную пещеру на 3-4 детей.. да и теперь вот можно делать умную пещеру :)
Puhlyaviy ну так за колличеством дело не станет, нас хореманьяков в мире ой как много.
Люди добрые подскажите плиз, кто нибудь юзал сей девайс:
Контроллер сенсорной кнопки AT42QT1012-TSHR
Если да то поделитесь впечатлениями, стоит ли оно того.
Puhlyaviy ну так за колличеством дело не станет, нас хореманьяков в мире ой как много.
у меня у самого дома их 2 штуки тусят..
Люди добрые подскажите плиз, кто нибудь юзал сей девайс:
Контроллер сенсорной кнопки AT42QT1012-TSHR
Если да то поделитесь впечатлениями, стоит ли оно того.
вот скажи, зачем оно тебе?
Puhlyaviy ооо наш товарисчь, у тебя кто пацаны или дефки? (это про хорьков).
а про Контроллер сенсорной кнопки: интересно же.
Puhlyaviy ооо наш товарисчь, у тебя кто пацаны или дефки? (это про хорьков).
а про Контроллер сенсорной кнопки: интересно же.
адын самец и одна девка. а контролер оставь ты его нафиг.. ну вот не нада оно тебе.. к ардуине и так можно сенсорную кнопку прикрутить. без контролеров.. погугли
Puhlyaviy и че теперь пусть пылятся в коробочке?
А у меня две дефки и пацан.
Puhlyaviy и че теперь пусть пылятся в коробочке?
ну не знаю. смотря сколько их у тебя.. если много то попробуй из них мозаику выложить на стене..
Andrey_Y_Ostanovsky это оно?
Многовато будет... Надо разбираться в самом коде: для чего этот буфер используется...
И этот герой буду я!
Вот, для всех кому оно не чуждо: godville.net
цЫтаты:
13:18
Ненадолго прервал торговлю и выбежал на улицу, чтобы гордо пройтись по округе, демонстрируя амулет переселения в душ. Восхищённые зрители обильно ахали.
13:14
Торговец вдруг выпучил глаза и, не торгуясь, купил пропуск в пантеон за 346 золотых монет. Где тут ближайшая пивная?
13:13
Поспорил с торговцем на 165 монет, что подарю ему бидон дизеля. Выиграл.
13:10
Отпустили из лечебницы под подписку о невыезде. Пойду пешком.
13:10
Капал в ухо настойку шалфея.
13:05
Хорошо погрелся у очага инфекции. Даже в жар бросило.
13:03
С криком «Я только спросить!» пробился к врачам гильдии
Кстати, а почему страница падала?
arduino.ua - русскоязычный ресурс :)
Кстати, по правилам .ua домена, зарегистрировать такой домен можно только будучи владельцем торговой марки "arduino" (или есть договор о передачи права собственности на торговую марку)
Поясните мне плиз за что даются балы и для чего стрелочки в правом верхнем углу сообщения?
п.с. про балы догнал, это просто счётчик сообщений
Поясните мне плиз за что даются балы и для чего стрелочки в правом верхнем углу сообщения?
п.с. про балы догнал, это просто счётчик сообщений
Стрелочки полный аналог "Лайк" на всяких ю трубах. просто рейтинг согласных и несогласных, если таковые имеются. У сильно популярных сообщений "появляются" цифирки ;))
Здравствуйте !
Помогите кто чем может :) !
подскажите как использовать кнопки и экран, вот в таком лсд шилде
http://www.mini-tech.com.ua/index.php?route=product/product&path=20_27&p...
желательно на каком либо примере, допустим вот на таком коде, надо чтоб показывало на экране длина импульса в микросекундах, длина паузы, и чтоб можно было менять значение delayMicroseconds кнопками. как такое сделать, покажите пожалуйста!
void setup() {
pinMode(3, OUTPUT);
}
void loop() {
digitalWrite(3, HIGH);
delayMicroseconds(1000);
digitalWrite(3, LOW);
delayMicroseconds(1000);
}
http://www.mini-tech.com.ua/index.php?route=product/product&path=20_27&product_id=57
желательно на каком либо примере, допустим вот на таком коде, надо чтоб показывало на экране длина импульса в микросекундах, длина паузы, и чтоб можно было менять значение delayMicroseconds кнопками. как такое сделать, покажите пожалуйста!
Для использования данного дисплея потребуется либо писать программу - обработчик дисплея.
Либо просто подключить библиотеку LiquidCrystal:
#include <LiquidCrystal.h>
загляните в папочку Disk:\arduino***\libraries\LiquidCrystal\examples
там примеры использования в виде скетчей, начни с привычного HelloWorld ))))
Главное разобраться как подключен дисплей и в правильной последовательности перечислить пины
Далее не забываем включить строчку в
Это обьясняем что у нашего ЖКИ 2 строки по 16 символов в каждой.
Вывод на Экран точно так же как в serial порт
и так далее
А здесь, судя по всему практически готовый скетч почти для вашей затеи, за исключением того, что там задают частоту для внешнего устройства а вы хотите задавать непосредственно параметры собственного сигнала.
там же задействованы и кнопки.