Доброго всем дня! Столкнулся вот с чем: непонимаю как добиться одновременной работы EthernetServer и EthernetClient? Хочется иметь возможность управлять пинами и считывать их значения как через web-интерфейс, так и через get-запросы. Выходит либо одно, либо другое. Подскажите, пожалуйста, как это сделать и, если можно, покажите простенький скетч. Используется Arduino Uno + шилд W5100.
Прилагаю свой скетч: Спойлер Код (C++): #include <DHT.h> #include <SPI.h> #include <Ethernet.h> #define DHTTYPE DHT22 #define DHTPIN 9 DHT dht(DHTPIN, DHTTYPE); int dhtTemp; int dhtHum; int dhtHIC; /******************** НАСТРОЙКИ ETHERNET ********************/ byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x85, 0xD9 };// физический mac адрес byte ip[] = { 192, 168, 0, 9 }; // ip в lan byte subnet[] = { 255, 255, 255, 0 }; // маска подсети byte gateway[] = { 192, 168, 0, 1 }; // шлюз по умолчанию EthernetServer server(80); // порт сервера void setup() { Ethernet.begin(mac,ip,gateway,subnet); // инициализировать Ethernet устройства server.begin(); // начать прослушивание клиентов dht.begin(); } void loop() { dhtCheck(); generateWebPage (); } void dhtCheck() { dhtTemp = dht.readTemperature(); dhtHum = dht.readHumidity(); dhtHIC = dht.computeHeatIndex(dhtTemp, dhtHum, false); } void generateWebPage () { EthernetClient client = server.available(); // искать клиента client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connnection: close"); client.println(); client.println("<html>"); client.println("<head>"); client.println("<title>Lair module</title>"); client.println("<meta http-equiv=\"refresh\" content=\"15\">"); client.println("<meta http-equiv='content-type' content='text/html; charset=UTF-8'>"); client.println("</head>"); client.println("<body>"); client.println("<table>"); client.println("<tr>"); client.println("<td>"); client.println("<center>"); client.println("<b>Климат</b>"); client.println("</center>"); client.println("</td>"); client.println("</tr>"); client.println("<tr>"); client.println("<td>"); client.println("<b>Температура: </b>"); if (dhtHIC > 0) {client.print("+");} client.print(dhtHIC); client.println("°"); client.println("</td>"); client.println("</tr>"); client.println("<tr>"); client.println("<td>"); client.println("<b>Влажность: </b>"); client.print(dhtHum); client.println("%"); client.println("</td>"); client.println("</tr>"); client.println("</table>"); /* client.println("<h2>Observing State Of Switch</h2>"); client.print("<h2>Switch is: </2>"); if (digitalRead(8)) { client.println("<h3>ON</h3>"); } else { client.println("<h3>OFF</h3>"); } */ client.println("</body>"); client.println("</html>"); delay(1); // даем время, чтобы принять данные client.stop(); } // http://tehnopage.ru/ethernet-shield-w5100 // http://radioprog.ru/post/109 Как сделать, чтоб по-мимо отображения веб-страницы ещё проводилась отправка примерно такого get-запроса: Код (Text): http://192.168.0.251:80/objects/?script=tempupdated&temp=dhtTemp&hum=dhtHum каждую минуту или при изменении температуры?