Согласование кнопки на браузере и кнопки на ардуино

Arman
Offline
Зарегистрирован: 10.11.2017

Добрый день!

Есть UNO, Ethernet shield, кнопка, реле, светодиод

Хотел реализовать проект, где через кнопки на браузере и кнопки на ардуино можно управлять реле. Состояние реле должен отображаться на браузере. Но реле управляется только через кнопки на ардуино, а команды от кнопки на браузере не понимает. Помогите, пожалуйста! Ниже код

#include <SPI.h>
#include <Ethernet.h>
#include <Bounce.h>

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

EthernetClient client;
char server[] = "shdomm.000webhostapp.com"; // имя вашего сервера  www.arduino.ru
int buff=0;
const int ledPin=8;
int butt;
int button = 2;
int ledValue = HIGH;

Bounce bouncer = Bounce(button,50);

void setup()
{
  Serial.begin(9600);
  Ethernet.begin(mac);
  pinMode(ledPin, OUTPUT);
  pinMode(button, INPUT);
  digitalWrite(ledPin, LOW);
}

void loop()
 {  
     if (buff == 1)
          ledValue = HIGH;
     else if (buff == 2)
          ledValue = LOW;
          
     // Кнопка
        if(bouncer.update()) {
            if(bouncer.read() == HIGH) {  
               if(ledValue == LOW) 
                  ledValue = HIGH;
               else 
                  ledValue = LOW;
          }
  }          
  // Кнопка                       
  
  digitalWrite (ledPin, ledValue);
  
  if(ledValue == HIGH) 
        butt = 1;
  else if(ledValue == LOW)     
        butt = 2;
       
  if (client.connect(server, 80)) {
          client.print( "GET /add_data.php?");
          client.print("button=");
          client.print(butt);
          client.println( " HTTP/1.1");
          client.print( "Host: " );
          client.println(server);
          client.println( "Connection: close" );
          client.println();
          client.println(); 
        
        delay(500);
    
      while (client.available()){    
        char c = client.read();
        Serial.print(c);
        if (c =='1')
              buff=1;
        else if (c =='2')
              buff=2; 
      } 
      client.stop();
      client.flush();
      delay(100); 
  }
  else {
     client.stop();
     delay(1000);
     client.connect(server, 80);}
              
  delay(500);
}

Код на сервере add_data.php

<?php
        $S1 =  $_GET['button'];
        $myFile1 = "txt/out-1.txt";
        $fh1 = fopen($myFile1, 'w') or die("can't open file");
        fwrite($fh1, $S1);
        fclose($fh1);
       
        $myFile = "txt/out-1.txt";
        $fh = fopen($myFile, 'r');
        $theData = fread($fh, filesize($myFile));
        fclose($fh);
        echo $theData;
       
       
       

       
?>

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А состояние реле в браузере отображается, если им с ардуино управлять?

Arman
Offline
Зарегистрирован: 10.11.2017

Да, состояние отображается. С ардуино управлять можно. Но с браузера не получается

По отдельности они работают, т.е.  управление реле с ардуино и с браузера

А когда их совмещаю тупняк

 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Читать про то, что такое HTTP и как посредством этого протокола происходит общение сервера с клиентом. Хинт: там есть всякие служебные заголовки, то, что делаете вы - работать не будет, т.к. сервер выдаёт первой строчкой ответа код ответа и версию протокола, вроде этой "HTTP/1.1 200 OK". Далее могут быть ещё строчки, тело ответа вашего скрипта идёт после двух переводов строки.

Arman
Offline
Зарегистрирован: 10.11.2017

Спасибо за советы! Теперь знаю куда копать дальше

Oleg_I
Offline
Зарегистрирован: 04.04.2016

Arman пишет:

Спасибо за советы! Теперь знаю куда копать дальше

Прошу Вас подсказать куда копать т.к. у меня знаний не достаточно в php но  если ткнуть в место где ошибка думаю размберусь . 

Уже неделю по ночам сижу и не могу понять уже все перепробовал, что интересно у других тоже встречалась такая проблема но нигде нет ответа кто как решил 

Очень прошу всех о помощи. заранее благодарен 

 

Данные в файле out-1.txt  в котрый записываеться потожение включателя записываються корректно (0 или 1 )

Добавил ранее пару строк для выводжа в сериал инфо от сайта и действительно вижу там что-то типа такого когда состояние включателя "включено " 

HTTP/1.1 200 OK
Date: Sat, 28 Apr 2018 10:40:36 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: awex
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Request-ID: 9723d969edee741aa5ebfc76b79402b1
 
3
 
1
 
0
 
 А такое если выключено на сайте 
 
HTTP/1.1 200 OK
Date: Sat, 28 Apr 2018 10:40:36 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: awex
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Request-ID: 9723d969edee741aa5ebfc76b79402b1
 
3
 
0
 
0
 

 

Первоисточник https://m.geektimes.com/post/255546/

index.php — панель управления

add_data.php — файл обрабатывающий запросы с контроллера и отсылающий ответ обратно на arduino

style.css — определяет внешний вид панели

Папка transfer — содержит файлы, с помощью которых происходит считывание и запись значений из текстовых файлов.

led.php — записывает состояние выхода в файл out-1.txt, отправленное через форму в панели управления

ledstate.php — считывает состояние из текстового файла out-1.txt и выводит на панели в виде «ON» или «OFF»

temp-1.php и temp-2.php — считывают значения температуры из файлов in-1.txt и in-2.txt и отправляют на панель управления.

Папка txt — своего рода база данных для хранения информации.

Использую тот же код 

#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[] = "мой сервер"; // имя сервера 
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);
}

 

Вот код add_data.php


<?php
	    $S1 =  $_GET['temperature'];
	    $myFile1 = "txt/in-1.txt";
		$fh1 = fopen($myFile1, 'w') or die("can't open file");
		fwrite($fh1, $S1);
		fclose($fh1);
		
        $S3 =  $_GET['temperature1'];
	    $myFile3 = "txt/in-2.txt";
		$fh3 = fopen($myFile3, 'w') or die("can't open file");
		fwrite($fh3, $S3);
		fclose($fh3);
      
        $myFile = "txt/out-1.txt";
        $fh = fopen($myFile, 'r');
        $theData = fread($fh, filesize($myFile));
        fclose($fh);
        echo $theData;


		
 
?>

 

b707
Offline
Зарегистрирован: 26.05.2017

вопрос-то в чем?

Oleg_I
Offline
Зарегистрирован: 04.04.2016

Насколько я понимаю причина в точ что  в сериал кроме изменяющегося значения 0 или 1  выводиться куча другой инфо 

потому ардуина не может включить светодиод ?!

Oleg_I
Offline
Зарегистрирован: 04.04.2016

b707 пишет:

вопрос-то в чем?

Спасибо что  откликнулись и потратили свое время .

Вопрос: что мне поправить в коде на дуне или в скриптах на сайте чтоб я мог включать светодиод  через свой сайт или куда смотреть ? 

Прошу прошение сразу не описал суть  проекта. 

Создан сайт через который происходит управление и на котором отображаеться темепратура  

Температура отображаеться а включатель не работает 

Вот и ищу проблему 

 

 
sadman41
Offline
Зарегистрирован: 19.10.2016

Термины "отладка", "контрольная точка" вам знакомы?

inspiritus
Offline
Зарегистрирован: 17.12.2012

http://startingelectronics.org/tutorials/arduino/ethernet-shield-web-ser...

Почитайте весь цикл статей,  ам еще есть ссылки в ютуб, оно тоже интересно

Oleg_I
Offline
Зарегистрирован: 04.04.2016

к сожелению не очень, больше поверхностное представленте. Но почитаю

Oleg_I
Offline
Зарегистрирован: 04.04.2016

благодарю, посмотрю . Мне кажеться что в скетче ардуино нужно от буфера отказаться и заменить его логической, но не хватает уверенности что в этом причина

Oleg_I
Offline
Зарегистрирован: 04.04.2016

inspiritus пишет:

http://startingelectronics.org/tutorials/arduino/ethernet-shield-web-ser...

Почитайте весь цикл статей,  ам еще есть ссылки в ютуб, оно тоже интересно


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

inspiritus
Offline
Зарегистрирован: 17.12.2012

Неправильно. 

Слово СКЕТЧ - непристойность. Есть программа , написанная на С.

там есть программа на С, подгружающая html по запросу бровсера, , html ,  который показывает страницу в бровсере и джаваскрипт, который, взаимодействуя с С, обновляет данные на этой странице в бровсере, в тч, обслуживая и синхронизируя активные элементы страницы с переменными в С. 

Oleg_I
Offline
Зарегистрирован: 04.04.2016

inspiritus пишет:

Неправильно. 

Слово СКЕТЧ - непристойность. Есть программа , написанная на С.

там есть программа на С, подгружающая html по запросу бровсера, , html ,  который показывает страницу в бровсере и джаваскрипт, который, взаимодействуя с С, обновляет данные на этой странице в бровсере, в тч, обслуживая и синхронизируя активные элементы страницы с переменными в С. 

Спасибо, за подсказку, хотя сложно пока понять где проблема, саму схему взаимодействия я понимаю. До этого с HTML не работал

Oleg_I
Offline
Зарегистрирован: 04.04.2016

Может проблема в том, что кроме логического ответа 0 или 1 куча инфо выводиться ? Может нужно условие задать по другому ?
char chNext = client.read();

if (chNext == 'r')
Не судите строго, только учусь. До этого только готовые программы редактировал

aleksandr777
Offline
Зарегистрирован: 04.01.2018

хе, долго ковырялся с данным проектом, могу помоч, "свой сайт" у Вас такой же как в примере?

aleksandr777
Offline
Зарегистрирован: 04.01.2018

еще у Вас серверная часть поднята на винде или линуксе

Oleg_I
Offline
Зарегистрирован: 04.04.2016

aleksandr777 пишет:

хе, долго ковырялся с данным проектом, могу помоч, "свой сайт" у Вас такой же как в примере?


Буду очень признателен за помощь потому что сам пока не разобрался .
Сайт такой же, пока рано самому что-то менять пока не заработал исодный пример.
Спасибо

Oleg_I
Offline
Зарегистрирован: 04.04.2016

aleksandr777 пишет:

еще у Вас серверная часть поднята на винде или линуксе

-сервер на php расположенный на хостинге который привязанный к доменному имени
— клиент в виде arduino
— панель управления

aleksandr777
Offline
Зарегистрирован: 04.01.2018

с хостингом не особо подскажу, серверную часть делал на линуксине. 1 что нужно проверить права файлов php и текстовых файлов . т.к. add_data только принимает и отдает данные ардуине. в index при нажатии кнопки записывает значение 0 или 1 через файл led в текстовый файл.

для проверки посморите текстовый файл при нажатии кнопки меняется ли значение?

Oleg_I
Offline
Зарегистрирован: 04.04.2016

aleksandr777 пишет:

с хостингом не особо подскажу, серверную часть делал на линуксине. 1 что нужно проверить права файлов php и текстовых файлов . т.к. add_data только принимает и отдает данные ардуине. в index при нажатии кнопки записывает значение 0 или 1 через файл led в текстовый файл.

для проверки посморите текстовый файл при нажатии кнопки меняется ли значение?


проверял, в файле меняеться, но на дуне ничего не происходит.
мало того в сериале тоже выводиться положение включателя просто прежде выходит служебный заголовок я так понимаю из-за него не срабатывает

aleksandr777
Offline
Зарегистрирован: 04.01.2018

скинте сообщение с сериала и добавте в код  serial.print(buff);

67    client.stop();
68    delay(1000);
69    client.connect(server, 80);
70   }
71  
72   if ( buff==1)
73         {
74         digitalWrite (led, HIGH);
75         }
76         else
77         {
78           digitalWrite(led, LOW);
79         }

 

serial.print(buff);

80   delay(500);
81 }

посмотрите при нажатии кнопки будет ли меняться значение buff

Oleg_I
Offline
Зарегистрирован: 04.04.2016
В сериале когда состояние включателя "включено " 
 
HTTP/1.1 200 OK
Date: Sat, 28 Apr 2018 10:40:36 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: awex
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Request-ID: 9723d969edee741aa5ebfc76b79402b1
 
3
 
1
 
0
 
 А такое если выключено на сайте 
 
HTTP/1.1 200 OK
Date: Sat, 28 Apr 2018 10:40:36 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: awex
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Request-ID: 9723d969edee741aa5ebfc76b79402b1
 
3
 
0
 
0
aleksandr777
Offline
Зарегистрирован: 04.01.2018
01 #include <SPI.h>
02 #include <Ethernet.h>
03 #include <OneWire.h>
04 #include <DallasTemperature.h>
05  
06 #define ONE_WIRE_BUS 2
07 OneWire oneWire(ONE_WIRE_BUS);
08 DallasTemperature sensors(&oneWire);
09  
10 byte mac[] = { 0x54, 0x34, 0x41, 0x30, 0x30, 0x31 };                                      
11  
12 EthernetClient client;
13 char server[] = "мой сервер"// имя сервера
14 int buff=0;
15 const int led=5;
16  
17 void setup()
18 {
19   Ethernet.begin(mac);
20   sensors.begin();
21   pinMode( led, OUTPUT);
22   digitalWrite(led, LOW);
23 }
24  
25 void loop()
26  {
27   
28   sensors.requestTemperatures();
29   
30     if (client.connect(server, 80))
31 {
32  
33     client.print( "GET /add_data.php?");
34     client.print("temperature=");
35     client.print( sensors.getTempCByIndex(0) );
36     client.print("&");
37     client.print("&");
38     client.print("temperature1=");
39     client.print( sensors.getTempCByIndex(1) );
40     client.println( " HTTP/1.1");
41     client.print( "Host: " );
42     client.println(server);
43     client.println( "Connection: close" );
44     client.println();
45     client.println();
46    
47     delay(200);
48     
49       while (client.available())
50  {
51       char c = client.read();
52         if ( c=='1')
53         {
54         buff=1;
55         }
56         if ( c=='0')
57         {
58          buff=0;
59         }
60       }
61       client.stop();
62       client.flush();
63       delay(100);
64   }
65   else
66   {
67    client.stop();
68    delay(1000);
69    client.connect(server, 80);
70   }
71  
72   if ( buff==1)
73         {
74         digitalWrite (led, HIGH);
75         }
76         else
77         {
78           digitalWrite(led, LOW);
79         }
80   delay(500);
81

}

 

У вас это залито

aleksandr777
Offline
Зарегистрирован: 04.01.2018

сделайте последний кусок так 

if ( buff==1)
73         {
74         digitalWrite (led, HIGH);

 serial.print("vkl");

75         }
76         else
77         {
78           digitalWrite(led, LOW);

 serial.print("otkl");

79         }
80   delay(500);
81

}

 

Oleg_I
Offline
Зарегистрирован: 04.04.2016

Александр, спасибо , сегодня вечером попробую сейчас не на месте

aleksandr777
Offline
Зарегистрирован: 04.01.2018

у Вас с сервеной частью походу все впорядке, и ардуина вроде принимает, но код у вас походу отличается  с с тем что скинули. надо посмотреть где затыка

Oleg_I
Offline
Зарегистрирован: 04.04.2016

aleksandr777 пишет:

у Вас с сервеной частью походу все впорядке, и ардуина вроде принимает, но код у вас походу отличается  с с тем что скинули. надо посмотреть где затыка


он у меня отличаеться только строками которые я добавил для вывода в сериал т.к. не мог понять принимает ли ардуина команды

Oleg_I
Offline
Зарегистрирован: 04.04.2016

после 51строки char c = client.read();
добавил Serial.println(c); в войд сетап вывод на сериал

Oleg_I
Offline
Зарегистрирован: 04.04.2016

вечером возьму за основу первоначальный код который тут и перепишу концовку

Oleg_I
Offline
Зарегистрирован: 04.04.2016

Если я перепишу строки
Правильно ли я понимаю что с этими строками мы увидим просто в мониторе порта вкл или откл но не понтмаю что нам это даст ?

b707
Offline
Зарегистрирован: 26.05.2017

Oleg_I пишет:
венечером возьму за основу первоначальный код который тут и перепишу концовку

не будет оно работать. Почитайте. что отвечали ТС в начале темы - например в сообщении №3. У вас та же проблема.

В ответе серевера сотни байт, а вы читаете только один - первый. Этот байт вообще не имеет отношения к состоянию реле.

aleksandr777
Offline
Зарегистрирован: 04.01.2018

точно ли принимает ардуина данные ну и например правильность соединения диода, сейчас в сериал срется 3 значения, котрые я не пойму, чуть позже свой сериал скину

b707
Offline
Зарегистрирован: 26.05.2017

Oleg_I пишет:
Если я перепишу строки Правильно ли я понимаю что с этими строками мы увидим просто в мониторе порта вкл или откл но не понтмаю что нам это даст ?

да ничего вам это не даст, alexandr777., похоже, понимает в этом коде не больше вашего.

aleksandr777
Offline
Зарегистрирован: 04.01.2018

b707 пишет:

Oleg_I пишет:
венечером возьму за основу первоначальный код который тут и перепишу концовку

не будет оно работать. Почитайте. что отвечали ТС в начале темы - например в сообщении №3. У вас та же проблема.

В ответе серевера сотни байт, а вы читаете только один - первый. Этот байт вообще не имеет отношения к состоянию реле.

 

работает, и даже с 8 кнопками

b707
Offline
Зарегистрирован: 26.05.2017

aleksandr777 пишет:

работает, и даже с 8 кнопками

Совершенно очевидно, что - если работает - код там совсем другой.  Тот код, что вы советуете - работать не будет.

Oleg_I
Offline
Зарегистрирован: 04.04.2016

Спасибо за участие , может вы видите где ошибка ? Буду благодарен, если сможете подсказать.

Oleg_I
Offline
Зарегистрирован: 04.04.2016

Может у Вас есть код который загружен что бы я мог сравнить ?

aleksandr777
Offline
Зарегистрирован: 04.01.2018

могу скинуть, ток мой под esp сейчас сделан, разница в библиотеке для сетевой карты будет, дай почту

b707
Offline
Зарегистрирован: 26.05.2017

aleksandr777 пишет:

могу скинуть, ток мой под esp сейчас сделан, разница в библиотеке для сетевой карты будет, дай почту

а сюда выложить ? Чтоб другие тоже посмотрели? Или код секретный? :)

 

OLEG_I - прежде чем читать из ответа сервера состояние кнопки, нужно пропустить все служебные заголовки HTTP. Признаком окончания служебной информации служит пустая строка(два перевода строки подряд) Только после того, как нашли в ответе "\r\n\r\n" - начинайте читать свои нули и единицы.

aleksandr777
Offline
Зарегистрирован: 04.01.2018

вот кусок


#include <ArduinoOTA.h>
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>

const char* ssid     = "*****";
const char* password = "your-password";
char server[] = "192.168.1.35"; // имя вашего сервера

int buff=0;
int ledpin1 = 15;  //d8
int ledpin2 = 14; //d5
int ledpin3 = 12; //d6
int ledpin4 = 13; //d7

void setup() {
  Serial.begin(115200);
  delay(10);
  wifi();
  pinout();
//  ArduinoOTA.begin();
//  Serial.println("ReadyOTA"); 
 ; 
}

void loop() {
ArduinoOTA.handle();

WiFiClient client;
if (client.connect(server, 80)) 
{
    client.print( "GET /rele.php?");
    client.println( " HTTP/1.1");
    client.print( "Host: " );
    client.println(server);
    client.println( "Connection: close" );
    client.println();
    client.println();
        
//    Serial.print( "GET /rele.php?");
//    Serial.println( " HTTP/1.1");
//    Serial.print( "Host: " );
//    Serial.println(server);
//    Serial.println( "Connection: close" );
//    Serial.println();
//    Serial.println();

  while (client.available())
 {    
      char c = client.read();
//      Serial.print(c);
      
 if ( c=='0'){buff=0;}
 if ( c=='1'){buff=1;}
 if ( c=='2'){buff=2;}
 if ( c=='3'){buff=3;}
 if ( c=='4'){buff=4;}
 if ( c=='5'){buff=5;}
 if ( c=='6'){buff=6;}
 if ( c=='7'){buff=7;}
 
      } 
//      Serial.println( );
      Serial.println("buff");
      Serial.println(buff);
      client.stop();
//      client.flush();
//      delay(100); 
  }
 

rele();
  
  
delay(1000); 
}

 

b707
Offline
Зарегистрирован: 26.05.2017

Oleg_I пишет:

он у меня отличаеться только строками которые я добавил для вывода в сериал т.к. не мог понять принимает ли ардуина команды

Олег, выложите код, как вы выводили ответ серевера в Сериал.

Oleg_I
Offline
Зарегистрирован: 04.04.2016

b707 пишет:

Oleg_I пишет:

он у меня отличаеться только строками которые я добавил для вывода в сериал т.к. не мог понять принимает ли ардуина команды

Олег, выложите код, как вы выводили ответ серевера в Сериал.

#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[] = "мой сервер"; // имя сервера 
int buff=0;
const int led=5;

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

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();
       Serial.print(c);
        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);
}

По памяти такой приду домой проверю

b707
Offline
Зарегистрирован: 26.05.2017

Oleg_I пишет:

По памяти такой приду домой проверю

И ответ вы получаете примерно такой, верно ? :

HTTP/1.1 200 OK
Date: Sat, 28 Apr 2018 10:40:36 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: awex
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Request-ID: 9723d969edee741aa5ebfc76b79402b1
 
Думаю, вы понимаете, что читать из этого потока один символ и проверять, "0" или "1" - бессмысленно. Ведь в этом наборе букв и единица и ноль встречаются многократно в самых разных местах. Нужно искать точную позицию нужного символа и анализировать только ее.
 
То же самое отеносится и к коду aleksander777, даже если он случайно работает :)
Oleg_I
Offline
Зарегистрирован: 04.04.2016

Да, получаю такой текст 

Да, понимаю но не знаю как избавиться от "служебного текста ”

aleksandr777
Offline
Зарегистрирован: 04.01.2018

вот что мне выдает сервер

HTTP/1.1 200 OK
Date: Thu, 03 May 2018 11:47:58 GMT
Server: Apache/2.4.18 (Ubuntu)
Content-Length: 1
Connection: close
Content-Type: text/html; charset=UTF-8

7

 

Oleg_I
Offline
Зарегистрирован: 04.04.2016
А у меня включатель вообще аж на 2строке после служебного текста, а что за "3" перед ним идет  вообще не понимаю
HTTP/1.1 200 OK
Date: Sat, 28 Apr 2018 10:40:36 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: awex
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Request-ID: 9723d969edee741aa5ebfc76b79402b1
 
3
 
1
 
0
aleksandr777
Offline
Зарегистрирован: 04.01.2018

с браузера набери твойсервер/add_data.php?  что ответит?

Oleg_I
Offline
Зарегистрирован: 04.04.2016

Notice: Undefined index: temperature in /storage/ssd4/245/5519245/public_html/add_data.php on line 3

Notice: Undefined index: temperature1 in /storage/ssd4/245/5519245/public_html/add_data.php on line 9