как на одной странице отображать показания с трех enc28j mpu6050
- Войдите на сайт для отправки комментариев
Пнд, 10/11/2014 - 18:12
Попробую поподробнее обьяснить заЕдачу. Есть 3 ардуинки(нано), 3 етернет модуля enc28j и три акселерометра установлены в разных помещениях, как сделать что б со всех трех датчиков показания отображались на одной странице?
Железо собрал, скетчи примеров работают. Помогите пожалуйста
Вот скетч, на всех трех одинаковый только мак адреса и айпишники разные
// I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files // for both classes must be in the include path of your project #include "I2Cdev.h" #include "MPU6050.h" #include "etherShield.h" #include "ETHER_28J60.h" // Arduino Wire library is required if I2Cdev I2CDEV_ARDUINO_WIRE implementation // is used in I2Cdev.h #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #include "Wire.h" #endif // class default I2C address is 0x68 // specific I2C addresses may be passed as a parameter here // AD0 low = 0x68 (default for InvenSense evaluation board) // AD0 high = 0x69 MPU6050 accelgyro; //MPU6050 accelgyro(0x69); // <-- use for AD0 high int16_t ax, ay, az; int16_t gx, gy, gz; // uncomment "OUTPUT_READABLE_ACCELGYRO" if you want to see a tab-separated // list of the accel X/Y/Z and then gyro X/Y/Z values in decimal. Easy to read, // not so easy to parse, and slow(er) over UART. #define OUTPUT_READABLE_ACCELGYRO // uncomment "OUTPUT_BINARY_ACCELGYRO" to send all 6 axes of data as 16-bit // binary, one right after the other. This is very fast (as fast as possible // without compression or data loss), and easy to parse, but impossible to read // for a human. //#define OUTPUT_BINARY_ACCELGYRO #define LED_PIN 13 bool blinkState = false; static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x02, 0x24}; static uint8_t ip[4] = {192, 168, 0, 115}; static uint16_t port = 80; ETHER_28J60 ethernet; void setup() { // join I2C bus (I2Cdev library doesn't do this automatically) #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin(); #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire::setup(400, true); #endif // initialize serial communication // (38400 chosen because it works as well at 8MHz as it does at 16MHz, but // it's really up to you depending on your project) Serial.begin(38400); // initialize device Serial.println("Initializing I2C devices..."); accelgyro.initialize(); // verify connection Serial.println("Testing device connections..."); Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed"); ethernet.setup(mac, ip, port); // use the code below to change accel/gyro offset values /* Serial.println("Updating internal sensor offsets..."); // -76 -2359 1688 0 0 0 Serial.print(accelgyro.getXAccelOffset()); Serial.print("\t"); // -76 Serial.print(accelgyro.getYAccelOffset()); Serial.print("\t"); // -2359 Serial.print(accelgyro.getZAccelOffset()); Serial.print("\t"); // 1688 Serial.print(accelgyro.getXGyroOffset()); Serial.print("\t"); // 0 Serial.print(accelgyro.getYGyroOffset()); Serial.print("\t"); // 0 Serial.print(accelgyro.getZGyroOffset()); Serial.print("\t"); // 0 Serial.print("\n"); accelgyro.setXGyroOffset(220); accelgyro.setYGyroOffset(76); accelgyro.setZGyroOffset(-85); Serial.print(accelgyro.getXAccelOffset()); Serial.print("\t"); // -76 Serial.print(accelgyro.getYAccelOffset()); Serial.print("\t"); // -2359 Serial.print(accelgyro.getZAccelOffset()); Serial.print("\t"); // 1688 Serial.print(accelgyro.getXGyroOffset()); Serial.print("\t"); // 0 Serial.print(accelgyro.getYGyroOffset()); Serial.print("\t"); // 0 Serial.print(accelgyro.getZGyroOffset()); Serial.print("\t"); // 0 Serial.print("\n"); */ // configure Arduino LED for pinMode(LED_PIN, OUTPUT); } 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); /* #ifdef OUTPUT_READABLE_ACCELGYRO // display tab-separated accel/gyro x/y/z values Serial.print("a/g:\t"); Serial.print(ax); Serial.print("\t"); Serial.print(ay); Serial.print("\t"); Serial.print(az); Serial.print("\t"); Serial.print(gx); Serial.print("\t"); Serial.print(gy); Serial.print("\t"); Serial.println(gz); #endif #ifdef OUTPUT_BINARY_ACCELGYRO Serial.write((uint8_t)(ax >> 8)); Serial.write((uint8_t)(ax & 0xFF)); Serial.write((uint8_t)(ay >> 8)); Serial.write((uint8_t)(ay & 0xFF)); Serial.write((uint8_t)(az >> 8)); Serial.write((uint8_t)(az & 0xFF)); Serial.write((uint8_t)(gx >> 8)); Serial.write((uint8_t)(gx & 0xFF)); Serial.write((uint8_t)(gy >> 8)); Serial.write((uint8_t)(gy & 0xFF)); Serial.write((uint8_t)(gz >> 8)); Serial.write((uint8_t)(gz & 0xFF)); #endif */ if (ethernet.serviceRequest()) { ethernet.print("<meta http-equiv='refresh' content='5'/><center><H1>12 FLOOR</H1></center><center><b>MPU6050/GY512:<br></b>"); ethernet.print("<b>AY........."); ethernet.print(ay); ethernet.print("<br></b>"); ethernet.print("<b>AX........."); ethernet.print(ax); ethernet.print("<br></b>"); ethernet.print("<b>AZ........."); ethernet.print(az); ethernet.print("<br></b>"); ethernet.print("<b>GY........."); ethernet.print(gy); ethernet.print("<br></b>"); ethernet.print("<b>GX........."); ethernet.print(gx); ethernet.print("<br></b>"); ethernet.print("<b>GZ........."); ethernet.print(gz); ethernet.print("<br></b>"); ethernet.respond(); } // blink LED to indicate activity blinkState = !blinkState; digitalWrite(LED_PIN, blinkState); delay(100); }Подскажите пожалуйста что дальше делать, как данные со всех трех дуин на одной странице отобразить?
Попробую поподробнее обьяснить заЕдачу. Есть 3 ардуинки(нано), 3 етернет модуля enc28j и три акселерометра установлены в разных помещениях, как сделать что б со всех трех датчиков показания отображались на одной странице?
Одна из Ардуин должна стать Главной Ардуиной, а именно:
- собирать данные с Неглавных Ардуин (например, забирая с их страниц);
- формировать из собранных плюс собственных данных страницу.
Это понятно. Но как это реализовать? Не могли бы вы подсказать
Простите, но я уже подсказал.
человек не понимает оcнов пострения https://ru.wikipedia.org/wiki/Веб-сервер
на мелких контроллерчиках поднят его это даже сейчас исскуство
элементарной схемы
1 веб
3 клиента
нарисовать не в состянии
шиза