Тогда попробуйте, вот такой Код (Text): // A simple web server that always just says "Hello World" #include "etherShield.h" #include "ETHER_28J60.h" int outputPin = 6; static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24}; // this just needs to be unique for your network, // so unless you have more than one of these boards // connected, you should be fine with this value. static uint8_t ip[4] = {192, 168, 1, 15}; // the IP address for your board. Check your home hub // to find an IP address not in use and pick that // this or 10.0.0.15 are likely formats for an address // that will work. static uint16_t port = 80; // Use port 80 - the standard for HTTP ETHER_28J60 e; void setup() { e.setup(mac, ip, port); pinMode(outputPin, OUTPUT); } void loop() { char* params; if (params = e.serviceRequest()) { e.print("<H1>Web Remote</H1>"); if (strcmp(params, "?cmd=on&pin=1") == 0) { digitalWrite(outputPin, HIGH); e.print("<A HREF='?cmd=off&pin=1'>Turn off</A>"); } else if (strcmp(params, "?cmd=off&pin=1") == 0) // Modified -- 2011 12 15 # Ben Schueler { digitalWrite(outputPin, LOW); e.print("<A HREF='?cmd=on&pin=1'>Turn on</A>"); } e.respond(); } } http://192.168.0.150/?cmd=on&pin=1 http://192.168.0.150/?cmd=off&pin=1 1. Вкл 2. Выкл
Это не надо. Хотите отблагодарить - читайте книги по ардуине, растите в этом вопросе. И потом по возможности помогайте другим. Самому еще учится и учиться, только вершки знаю. Код (Text): // A simple web server that always just says "Hello World" // A simple web server that always just says "Hello World" #include "etherShield.h" #include "ETHER_28J60.h" int outputPin = 6; static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24}; // this just needs to be unique for your network, // so unless you have more than one of these boards // connected, you should be fine with this value. static uint8_t ip[4] = {192, 168, 1, 15}; // the IP address for your board. Check your home hub // to find an IP address not in use and pick that // this or 10.0.0.15 are likely formats for an address // that will work. static uint16_t port = 80; // Use port 80 - the standard for HTTP ETHER_28J60 e; void setup() { e.setup(mac, ip, port); pinMode(outputPin, OUTPUT); } void loop() { e.print("<H1>Управление</H1>"); char* params; if (params = e.serviceRequest()) { if (strcmp(params, "?cmd=on") == 0) { // Ссылка http://192.168.0.150/?cmd=on if (!digitalRead(outputPin)) { digitalWrite(outputPin, HIGH); } // Подставляем кнопку вык. e.print("<a href='/?cmd=off'><input type='button' value='Led вык.' /></a><br/>"); } else if (strcmp(params, "?cmd=off") == 0) // Modified -- 2011 12 15 # Ben Schueler { // Ссылка http://192.168.0.150/?cmd=off if (digitalRead(outputPin)) { digitalWrite(outputPin, LOW); } // Подставляем кнопку вк. e.print("<a href='/?cmd=on'><input type='button' value='Led вк.' /></a><br/>"); } e.respond(); } else { // Просто http://192.168.0.150/ if (digitalRead(outputPin)) { // Если вкл. подставляем кнопку вык. e.print("<a href='/?cmd=off'><input type='button' value='Led вык.' /></a><br/>"); } else { // Если вык. подставляем кнопку вк. e.print("<a href='/?cmd=on'><input type='button' value='Led вк.' /></a><br/>"); } } } Вроде, так. UPD. Идея такая, просто вставить кнопку в ссылку. <a href='/?cmd=off'><input type='button' value='Led вык.' /></a> ?cmd=off, то что мы проверяем else if (strcmp(params, "?cmd=off") == 0) Увы свои дела надо поделать, буду вечером
Когда-то сайты немножко варганил, вот вспомнилось: можно сделать на странице 2 формы и в каждой из них скрытое поле ввода с нужным значением. Формы должны посылать данные методом GET. Мне кажется, это должно сработать.
моск кипит а косяк найти не могу с двумя выходами #include "etherShield.h" #include "ETHER_28J60.h" int anotherOutputPin = 7; int outputPin = 6; static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24}; // this just needs to be unique for your network, // so unless you have more than one of these boards // connected, you should be fine with this value. static uint8_t ip[4] = {192, 168, 0, 150}; // the IP address for your board. Check your home hub // to find an IP address not in use and pick that // this or 10.0.0.15 are likely formats for an address // that will work. static uint16_t port = 80; // Use port 80 - the standard for HTTP ETHER_28J60 e; void setup() { e.setup(mac, ip, port); pinMode(anotherOutputPin, OUTPUT); e.setup(mac, ip, port); pinMode(outputPin, OUTPUT); } void loop() { e.print("<H1>Управление</H1>"); char* params; if (params = e.serviceRequest()) { if (strcmp(params, "?cmd1=on") == 0) { // Ссылка http://192.168.0.150/?cmd1=on if (!digitalRead(anotherOutputPin)) // Ссылка http://192.168.0.150/?cmd=on if (!digitalRead(outputPin)) { digitalWrite(anotherOutputPin, HIGH); digitalWrite(outputPin, HIGH); } // Подставляем кнопку вык. e.print("<a href='/?cmd1=off'><input type='button' value='Led вык.' /></a><br/>"); // Подставляем кнопку вык. e.print("<a href='/?cmd=off'><input type='button' value='Led1 вык.' /></a><br/>"); } else if (strcmp(params, "?cmd1=off") == 0); // Modified -- 2011 12 15 # Ben Schueler else if (strcmp(params, "?cmd=off") == 0); // Modified -- 2011 12 15 # Ben Schueler { // Ссылка http://192.168.0.150/?cmd1=off if (digitalRead(anotherOutputPin)) // Ссылка http://192.168.0.150/?cmd=off if (digitalRead(outputPin)) { digitalWrite(anotherOutputPin, LOW); digitalWrite(outputPin, LOW); } // Подставляем кнопку вк. e.print("<a href='/?cmd1=on'><input type='button' value='Led вк.' /></a><br/>"); // Подставляем кнопку вк. e.print("<a href='/?cmd=on'><input type='button' value='Led1 вк.' /></a><br/>"); } e.respond(); } else { // Просто http://192.168.0.150/ if (digitalRead(anotherOutputPin)) // Просто http://192.168.0.150/ if (digitalRead(outputPin)) { // Если вкл. подставляем кнопку вык. e.print("<a href='/?cmd1=off'><input type='button' value='Led вык.' /></a><br/>"); // Если вкл. подставляем кнопку вык. e.print("<a href='/?cmd=off'><input type='button' value='Led1 вык.' /></a><br/>"); } else { // Если вык. подставляем кнопку вк. e.print("<a href='/?cmd1=on'><input type='button' value='Led вк.' /></a><br/>"); // Если вык. подставляем кнопку вк. e.print("<a href='/?cmd=on'><input type='button' value='Led1 вк.' /></a><br/>"); } } }
Программисты тупят в схемотехнике, схемотехники тупят в программах Таких, кто одинаково хорошо шарит в обеих темах, по пальцам можно перечесть... Се ля ви
Учится и только учится. Я за последние 2-3 недели. Узнал, в разы больше чем раньше. Раньше думал, что толстый кабель это электричество, а тонкий электроника. Сейчас код подкорректирую, раньше не было времени. Воевал со штангелем, увы пока не подключил.
Хорошо, что в программировании, немного больше. Вот код. Код (Text): #include "etherShield.h" #include "ETHER_28J60.h" int anotherOutputPin = 7; int outputPin = 6; static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24}; // this just needs to be unique for your network, // so unless you have more than one of these boards // connected, you should be fine with this value. static uint8_t ip[4] = {192, 168, 0, 150}; // the IP address for your board. Check your home hub // to find an IP address not in use and pick that // this or 10.0.0.15 are likely formats for an address // that will work. static uint16_t port = 80; // Use port 80 - the standard for HTTP ETHER_28J60 e; void setup() { e.setup(mac, ip, port); pinMode(anotherOutputPin, OUTPUT); pinMode(outputPin, OUTPUT); } void loop() { e.print("<H1>Управление</H1>"); char* params; if (params = e.serviceRequest()) { if (strcmp(params, "?cmd1=on") == 0) { if (!digitalRead(outputPin)) { digitalWrite(outputPin, HIGH); } } else if (strcmp(params, "?cmd2=on") == 0) { if (!digitalRead(anotherOutputPin)) { digitalWrite(anotherOutputPin, HIGH); } } else if (strcmp(params, "?cmd1=off") == 0)// Modified -- 2011 12 15 # Ben Schueler { if (digitalRead(outputPin)) { digitalWrite(outputPin, LOW); } } else if (strcmp(params, "?cmd2=off") == 0) // Modified -- 2011 12 15 # Ben Schueler { if (digitalRead(anotherOutputPin)) { digitalWrite(anotherOutputPin, LOW); } } } if (digitalRead(outputPin)) { // Если вкл. подставляем кнопку вык. e.print("<a href='/?cmd1=off'><input type='button' value='Led1 вык.' /></a><br/>"); } else { // Если вык. подставляем кнопку вк. e.print("<a href='/?cmd1=on'><input type='button' value='Led1 вк.' /></a><br/>"); } if (digitalRead(anotherOutputPin)) { // Если вкл. подставляем кнопку вык. e.print("<a href='/?cmd2=off'><input type='button' value='Led2 вык.' /></a><br/>"); } else { // Если вык. подставляем кнопку вк. e.print("<a href='/?cmd2=on'><input type='button' value='Led2 вк.' /></a><br/>"); } e.respond(); }
У меня в день иногда под сотню, нормально. Работает? Просто мне еще сложно писать без железа, не вижу, что будет.
щас этот пытаюсь победить пока с одной кнопкой работает #include "etherShield.h" #include "ETHER_28J60.h" int outputPin = 7; static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24}; // this just needs to be unique for your network, static uint8_t ip[4] = {192, 168, 0, 150}; // IP address for the webserver static uint16_t port = 80; // Use port 80 - the standard for HTTP ETHER_28J60 e; void setup() { e.setup(mac, ip, port); pinMode(outputPin, OUTPUT); } void loop() { char* params; if (params = e.serviceRequest()) { e.print("<h1><a href='/?led=off'>Arduino Web Remote</a></h1>"); if (strcmp(params, "?led=on") == 0) { digitalWrite(outputPin, HIGH); e.print("<a href='?led=off'><button style='border: 1px solid #ff0000; border-left: 10px solid #ff0000' type='button'>LED IS ON</button></a>"); } else if (strcmp(params, "?led=off") == 0) { digitalWrite(outputPin, LOW); e.print("<a href='?led=on'><button style='border: 1px solid #000; border-left: 10px solid #000' type='button'>LED IS OFF</button></a>"); } e.respond(); } }