В чём может быть проблема?

Тема в разделе "Arduino & Shields", создана пользователем ENTY, 6 май 2016.

  1. ENTY

    ENTY Нуб

    Написал скетч
    собираю данные с датчиков и отправляю их на сервер
    скомпилил
    загрузил
    всё работает
    отсоединяю microUSB
    подключаю питание от ТВ приставки
    эффекта НОЛЬ -> светодиоды горят, но данные из скетча не посылаются на сервер
    подключаю зарядник от планшета
    эффекта НОЛЬ -> светодиоды горят, но данные из скетча не посылаются на сервер
    подключаю зарядник от телефона
    эффекта НОЛЬ -> светодиоды горят, но данные из скетча не посылаются на сервер
    в чём может быть проблема?
    P.S. подключаю через microUSB к компьютеру - всё работает!
    использовал два разных зарядника
    1 от ТВ приставки output 5V 2A
    2 от планшета 5V 3A
    3 от телефона 5V 1A
     
  2. Tomasina

    Tomasina Сушитель лампочек Модератор

    каким образом данные посылаются на сервер?
     
  3. ENTY

    ENTY Нуб

    Код (C++):
       
    #include <Wire.h>
    #include <Ethernet2.h>
    #include <util.h>
    #include <l3g4200d.h>
    #include <lis331dlh.h>
    #include <lis3mdl.h>
    #include <LPS331.h>
    #include <troyka-imu.h>
    #include <SPI.h>
    #include <TroykaDHT11.h>
    DHT11 dht(11);
    Barometer barometer;
    byte mac[] = { 0x90, 0xA2, 0xDA, 0x10, 0x1A, 0x4C };
    IPAddress ip(192, 168, 1, 7);
    char server[] = "weatheruu.azurewebsites.net";
    int sensorPin = A1;
    EthernetClient client;
    void setup()
    {
    Serial.begin(9600);
    dht.begin();
    barometer.begin();
    if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    Ethernet.begin(mac, ip);
    }
    delay(1000);
    loop();
    }

    void loop()
    {
    float ilum = analogRead(sensorPin);
    float humidity;
    float pressure = barometer.readPressureMillibars();
    float temperature = barometer.readTemperatureC();
    int check;
    check = dht.read();
    switch (check) {
    case DHT_OK:
    humidity = dht.getHumidity();
    break;
    case DHT_ERROR_CHECKSUM:
    break;
    case DHT_ERROR_TIMEOUT:
    break;
    default:
    break;
    }
    String data = "GET /Home/AddData?t=";
    data.concat(temperature);
    data.concat("&h=");
    data.concat(humidity);
    data.concat("&p=");
    data.concat(pressure);
    data.concat("&i=");
    data.concat(ilum);
    data.concat(" HTTP/1.1");
    if (client.connect(server, 80)) {
    Serial.println("connected");
    Serial.println(data);
    client.println(data);
    client.println("Host: weatheruu.azurewebsites.net");
    client.println("Connection: close");
    client.println();
    client.stop();
    }
    else {
    Serial.println("connection failed");
    }
    delay(1000);
    }
     
  4. Tomasina

    Tomasina Сушитель лампочек Модератор

    loop(); - это лишнее.
    А питание от внешних источников на какой разъем подаете?
     
  5. ENTY

    ENTY Нуб

    1 от ТВ приставки output 5V 2A отдельное гнездо
    2 от планшета 5V 3A microUSB
    3 от телефона 5V 1A microUSB
     
  6. ENTY

    ENTY Нуб

    Всё таки в чём может быть проблема???
     
  7. ANV

    ANV Гуру

    Сама Ардуино какая?
     
  8. ENTY

    ENTY Нуб

    Arduino Leonardo Ethernet и TroykaShield с тройка модулями
     
  9. ANV

    ANV Гуру

    Единственное предположение - это где-то происходит "игра" на задержках. Когда вы подключились к компьютеру, то отладочные данные уходят по USB. Когда подключения нет, они теряются, т.е. программа выполняется быстрее. В качестве шаманства можно попробовать заменить (или дописать после всех) serial.print на delay(10)
     
  10. ENTY

    ENTY Нуб

    тогда почему, после того как я протестировал на розетке ардуину, потом просто подключил по usb в компу, он начал работать??? я не запускал студию