Есть два клиента и один сервер. Ко всем трем подключены гироскопы.Суть вопроса: как вывести данные с двух клиентов и данные сервера на одной страничке? Библиотека http://adatum.ru/rabota-arduino-nano-s-setevy-m-kontrollerom-enc28j60.html Код клиента1: Код (Text): #include "I2Cdev.h" #include "MPU6050.h" #include "etherShield.h" #include "ETHER_28J60.h" #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #include "Wire.h" #endif MPU6050 accelgyro; int16_t ax, ay, az; int16_t gx, gy, gz; #define OUTPUT_READABLE_ACCELGYRO static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24}; static uint8_t ip[4] = {192, 168, 0, 113}; static uint16_t port = 80; ETHER_28J60 e; void setup() { #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin(); #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire::setup(400, true); #endif accelgyro.initialize(); e.setup(mac, ip, port); } void loop() { // read raw accel/gyro measurements from device accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // these methods (and a few others) are also available //accelgyro.getAcceleration(&ax, &ay, &az); //accelgyro.getRotation(&gx, &gy, &gz); if (e.serviceRequest()) { e.print("<H3>12 FLOOR VALUES</H3><br/><table border=1>"); e.print("<tr><th>OS</th><th>Value</th></tr>"); e.print("<tr><td>"); e.print("ax"); e.print("</td><td>"); e.print(ax); e.print("</td></tr>"); e.print("<tr><td>"); e.print("ay"); e.print("</td><td>"); e.print(ay); e.print("</td></tr>"); e.print("<tr><td>"); e.print("az"); e.print("</td><td>"); e.print(az); e.print("</td></tr>"); e.print("<tr><td>"); e.print("gx"); e.print("</td><td>"); e.print(gx); e.print("</td></tr>"); e.print("<tr><td>"); e.print("gy"); e.print("</td><td>"); e.print(gy); e.print("</td></tr>"); e.print("<tr><td>"); e.print("gz"); e.print("</td><td>"); e.print(gz); e.print("</td></tr>"); e.print("</table>"); e.respond(); } delay(100); } Код клиента2: Код (Text): #include "I2Cdev.h" #include "MPU6050.h" #include "etherShield.h" #include "ETHER_28J60.h" #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #include "Wire.h" #endif MPU6050 accelgyro; int16_t ax, ay, az; int16_t gx, gy, gz; #define OUTPUT_READABLE_ACCELGYRO static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x00, 0x10, 0x24}; static uint8_t ip[4] = {192, 168, 0, 114}; static uint16_t port = 80; ETHER_28J60 e; void setup() { #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin(); #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire::setup(400, true); #endif accelgyro.initialize(); e.setup(mac, ip, port); } void loop() { // read raw accel/gyro measurements from device accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // these methods (and a few others) are also available //accelgyro.getAcceleration(&ax, &ay, &az); //accelgyro.getRotation(&gx, &gy, &gz); if (e.serviceRequest()) { e.print("<H3>6 FLOOR VALUES</H3><br/><table border=1>"); e.print("<tr><th>OS</th><th>Value</th></tr>"); e.print("<tr><td>"); e.print("ax"); e.print("</td><td>"); e.print(ax); e.print("</td></tr>"); e.print("<tr><td>"); e.print("ay"); e.print("</td><td>"); e.print(ay); e.print("</td></tr>"); e.print("<tr><td>"); e.print("az"); e.print("</td><td>"); e.print(az); e.print("</td></tr>"); e.print("<tr><td>"); e.print("gx"); e.print("</td><td>"); e.print(gx); e.print("</td></tr>"); e.print("<tr><td>"); e.print("gy"); e.print("</td><td>"); e.print(gy); e.print("</td></tr>"); e.print("<tr><td>"); e.print("gz"); e.print("</td><td>"); e.print(gz); e.print("</td></tr>"); e.print("</table>"); e.respond(); } delay(100); } Как серверу получить данные с этих клиентов?
Сервер должен обрабатывать GET запросы, а клиент формировать эти запросы, в которых и передаются необходимые параметры.
Ну серверная часть у меня все таки работает на WEB сервере, поэтому там за это беспокоится не нужно было. А на клиенте формируется строка примерно следующего содержания: Код (Text): void CreateDataString() { dataString = "GET /cottage/?L="; dataString += User; dataString += "&Ps="; dataString += Passw; dataString += "&TC="; dataString += sensor.T; dataString += "&HC="; dataString += sensor.H; dataString += "&PC="; dataString += sensor.P; dataString += "&D="; dataString += TwoDigit(day()); dataString += "."; dataString += TwoDigit(month()); dataString += "-"; dataString += TwoDigit(hour()); dataString += ":"; dataString += TwoDigit(minute()); } А далее вызываешь нечто подобное: Код (Text): bool httpRequest() { if (client.connect(server, 80)) { client.println(dataString); client.println(); client.println("Connection: close"); client.println(); EthernetClientRead(); client.stop(); ok = true; } }
спасибо за подсказку, попробую разобраться. это все в клиенте прописывается, я правильно понял? А как эти данные принять серверу не знаете?