Пример удаленного контроля темп. и мигание диодом

Тема в разделе "Arduino & Shields", создана пользователем rial2001, 21 янв 2016.

  1. rial2001

    rial2001 Нуб

    Привет всем!
    Наткнулся на статью http://geektimes.ru/post/255546/ и решил реализовать у себя (удаленная стройка, имеется свет и интернет без выд.IP)
    В настоящее время запущен сайт (хостинг руцентр) и ардуина отправляет данные температуры.Только светодиод не мигает(
    Подскажите что не так со скетчем:
    Код (C++):
    #include <SPI.h>
    #include <Ethernet.h>
    #include <OneWire.h>
    #include <DallasTemperature.h>

    #define ONE_WIRE_BUS 2
    OneWire oneWire(ONE_WIRE_BUS);
    DallasTemperature sensors(&oneWire);

    byte mac[] = { 0x54, 0x34, 0x41, 0x30, 0x30, 0x31 };                                      

    EthernetClient client;
    char server[] = "test.МОЙСАЙТ.ru"; // имя вашего сервера  www.arduino.ru
    int buff=0;
    const int led=5;

    void setup()
    {
      Ethernet.begin(mac);
      sensors.begin();
      pinMode( led, OUTPUT);
      digitalWrite(led, LOW);
    }

    void loop()
    {
     
      sensors.requestTemperatures();
     
        if (client.connect(server, 80))
    {

        client.print( "GET /add_data.php?");
        client.print("temperature=");
        client.print( sensors.getTempCByIndex(0) );
        client.print("&");
        client.print("&");
        client.print("temperature1=");
        client.print( sensors.getTempCByIndex(1) );
        client.println( " HTTP/1.1");
        client.print( "Host: " );
        client.println(server);
        client.println( "Connection: close" );
        client.println();
        client.println();
     
        delay(200);
       
          while (client.available())
    {
          char c = client.read();
            if ( c=='1')
            {
            buff=1;
            }
            if ( c=='0')
            {
             buff=0;
            }
          }
          client.stop();
          client.flush();
          delay(100);
      }
      else
      {
       client.stop();
       delay(1000);
       client.connect(server, 80);
      }

      if ( buff==1)
            {
            digitalWrite (led, HIGH);
            }
            else
            {
              digitalWrite(led, LOW);
            }
      delay(500);
    }
     
  2. AlexVS

    AlexVS Гик

    Объяви buff как boolean, это позволит заменить
    Код (C++):
      if ( buff==1)
            {
            digitalWrite (led, HIGH);
            }
            else
            {
              digitalWrite(led, LOW);
            }
    на digitalWrite (led, buff);
    Ну и вставь после char c = client.read(); вывод в сериал Serial.println(c); - это позволит увидеть что получает клиент, есть там ожидаемые 0 или 1.
     
  3. rial2001

    rial2001 Нуб

  4. AlexVS

    AlexVS Гик

    Не понял вопроса, в каком таком варианте?