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

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

Ну вот и все, дописывай что должно происходить при buff=0 и 1, и по задержке отпиши что получиться 

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

aleksandr777 

b 707

 

большое Вам человеческое спасибо и плюс в карму за терпение и потраченое время 

По задержке секунд 5 на включение и 20 на выключение 

Получилось. Можно спокойно ложиться спать ) останеться настроить частоту обновления хотя это не критично.

Пока настраивал перелопатил кучу инфо и так понял что все таки это не лучший вариант реализации MQTT более продвинут 

Каково Ваше мнение как экспертов ?

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

Если еще актуально, по совету b707 можно сделать еще так:

while (client.available())
 {

 String line = client.readStringUntil('\r');
      Serial.print(line);
      if (line.indexOf("releON") != -1){buff=1; Serial.println("vkl");}
      if (line.indexOf("releOFF") != -1){buff=0; Serial.println("otkl");}
    }
  }
 }

в файле index.php поменяйте строчки:

<label><input type="radio" name="status" value="releON"> ON </label>
<label><input type="radio" name="status" value="releOFF"> OFF </label>

задержка должна уйти

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

благодарю  

попробую еще так сделать

Решил добавить еще показания датчика влажности DHT 11  серверную часть сделал в вот код ардуино не отправляет инфо на сервер 

Где-то косяк в коде ардуино   Сериал выдает такое сообщение  

HTTP/1.1 200 OK
Date: Wed, 09 May 2018 13:42:27 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: 47842523d93b4650fa262e6206675d53
 
89
 
<br />
<b>Notice</b>:  Undefined index: Humidity in <b>/storage/ssd2/421/5620421/public_html/add_data.php</b> on line <b>15</b><br />
1
 
0
 
buff= 0
Humidity: 30.00
Temperature: 
34.00 *C 
 

Может сможете натолкныть на мысль 

#include <SPI.h>
#include <Ethernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Adafruit_Sensor.h>
#include "DHT.h"

#define ONE_WIRE_BUS 2
#define DHTPIN 7
#define DHTTYPE DHT11   // DHT 11
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DHT dht(DHTPIN, DHTTYPE);

byte mac[] = { 0x54, 0x34, 0x41, 0x30, 0x30, 0x31 };                                       
byte i, startRead, buff ; // новая строка 
byte data_string_num =3;  // номер строки данных, откуда извлекается ответ сервера (новая строка переменная )
unsigned long int timeConn = millis();
float h;                                    // Значение температуры
float t; 



EthernetClient client;
char server[] = "мой сервер";

const int led=5;

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


void loop()
 {
  h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  t = dht.readTemperature();
  float hic = dht.computeHeatIndex(t, h, false); 
   

   
   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(900);
      
while (client.available())
 {
      char c = client.read();
      Serial.print(c);


       if (c == '\r') continue;
      if (c == '\n') {                      // найден конец строки
         
         if ((startRead == 0) && (i == 0))  // если строка пустая - служебный заголовок закончился
           {startRead = 1; continue;}       // начинаем отсчитывать строки данных
         
         if (startRead > 0)                 // очередная строка данных
           {startRead++; continue;}         
         
         i=0; continue;
      }
      i++;
      if (startRead == data_string_num) { // если номер строки данных равен заданному
           if ( c=='1') buff=1;             // извлекаем параметр из первого символа строки
           if ( c=='0') buff=0;
           startRead++; 



      } 
                  
                   
 }
      Serial.print("buff= "); Serial.println(buff);
     client.flush();
      client.stop();
     delay(100); 
 

}
     if ( buff==1)
        {
        digitalWrite (led, HIGH);
        }
        else
        {
          digitalWrite(led, LOW);
        }
  delay(100);
  {
     

  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  Serial.print("Humidity: ");
  Serial.println(h);
 // Serial.print(" %\t");
  Serial.println("Temperature: ");
  Serial.print(t);
  Serial.println(" *C ");
 // Serial.print(f);
  //Serial.print(" *F\t");
  //Serial.print("Heat index: ");
  //Serial.print(hic);
  //Serial.print(" *C ");
  //Serial.print(hif);
//  Serial.println(" *F");
}
    }
 
void sendData(float h) {

 client.print( "GET /add_data.php?");
    client.print("Humidity");
    client.print(h);
    client.println( " HTTP/1.1");
    client.print( "Host: " );
    client.println(server);
    client.println( "Connection: close" );
    client.println();
    client.println();
   
}

 

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

Для проверки сервера используйте браузер

твойсервер/add_data.php?temperature=1&&temperature1=1

Ток поправьте в зависимости от того что серверу шлете

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

Oleg_I пишет:

риал выдает такое сообщение  

Читать умеете? Сообщение о неопределённом индексе в php, а косяк почему-то в ардуино.

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

может подскажет кто...

шлем в ардуину 

HTTP/1.1 200 OK
Date: Wed, 09 May 2018 20:05:53 GMT
Server: Apache/2.4.18 (Ubuntu)
Content-Length: 32
Connection: close
Content-Type: text/html; charset=UTF-8

2
4
{21.2/22.5/555.6}
7
10

нужно выловить {21.2/22.5/555.6}, ловим следующим образом:

    while (client.available()) {
      char d  = client.read();
      Serial.print(d);
    float a,b,c;
    char *pch;
    char buf[60];
    String var;
    
if (d == '{' ) {
 String line = client.readStringUntil('}');
  Serial.println(line);
  line.toCharArray(buf,60);
    pch = strtok(buf,"/");
    var = (String)pch;
    a = var.toInt();   // Преобразовывает строку (String) в целое число
    pch = strtok(NULL,"/");
    var = (String)pch;
    b = var.toInt();
    pch = strtok(NULL,"/");
    var = (String)pch;
    c = var.toInt();
    Serial.println(a);
    Serial.println(b);
    Serial.println(c);
}
}

по итогу возвращает целые числа. как сделать чтоб возвращала дробные числа?

 

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

Очевидно, что нужно заменить toInt() на что-то более подходящее задаче.

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

Если поправить руками файл в который передаються данные с ардуины то ошибка с сайта уходит
Warning: fread(): Length parameter must be greater than 0 in /storage/ssd2/421/5620421/public_html/transfer/hum-1.php on line 4
Потому и подумал что данные с ардуины не передаються на сервер

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

ошибка PHP,  в ответе указаны и строки в каких ошибка.

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

для приема add_data

<?php
	    $S1 =  $_GET['temperature'];
	    $myFile1 = "txt/in-1.txt";
		$fh1 = fopen($myFile1, 'w') or die("can't open file");
		fwrite($fh1, $S1);
		fclose($fh1);
$S2 =  $_GET['temperature1'];
	    $myFile2 = "txt/in-3.txt";
		$fh2 = fopen($myFile2, 'w') or die("can't open file");
		fwrite($fh2, $S2);
		fclose($fh2);
		
        $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;

 
?>

для вывода на индекс файл hum-1.php

<?php 
$myFile = "../txt/in-3.txt";
$fh = fopen($myFile, 'r');
$theData = fread($fh, filesize($myFile));
fclose($fh);
echo $theData;
?>

проверте создался ли текстовый файл

ну и в индексе тоже поправить надо....

 

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

sadman41 пишет:

Очевидно, что нужно заменить toInt() на что-то более подходящее задаче.

 

Очевидно, что нужно заменить toInt() на toFloat()!!!  - вот за такой ответ было бы Вам большое спасибо)

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

aleksandr777 пишет:

Очевидно, что нужно заменить toInt() на toFloat()!!!  - вот за такой ответ было бы Вам большое спасибо)

Странная позиция. То, как Вам ответили, показывает уважение к разумному человеку, который ошибся. Разумеется, спрашивающий разумен и сам в состоянии разобраться, но "глаз замылен", и нужен небольшой толчок, который Вам и дали. Ответ же, за который от Вас "было бы спасибо", предполагает отвечание ребёнку или идиоту. Вы действительно хотите, чтобы к Вам так относились?

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

[quote=aleksandr777]

для приема add_data

Спасибо Я использую такой файл


<?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);
		
		$S4 =  $_GET['humidity'];
	    $myFile4 = "txt/in-3.txt";
		$fh4 = fopen($myFile4, 'w') or die("can't open file");
		fwrite($fh4, $S4);
		fclose($fh4);

	    $myFile = "txt/out-1.txt";
        $fh = fopen($myFile, 'r');
        $theData = fread($fh, filesize($myFile));
        fclose($fh);
        echo $theData;


		
 
?>

вот файл трансфер

<?php 
$myFile = "../txt/in-3.txt";
$fh = fopen($myFile, 'r');
$theData4 = fread($fh, filesize($myFile));
fclose($fh);
echo $theData4;
?>

 

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

aleksandr777 пишет:

для приема add_data

<?php
	    $S1 =  $_GET['temperature'];
	    $myFile1 = "txt/in-1.txt";
		$fh1 = fopen($myFile1, 'w') or die("can't open file");
		fwrite($fh1, $S1);
		fclose($fh1);
$S2 =  $_GET['humidity'];
	    $myFile2 = "txt/in-3.txt";
		$fh2 = fopen($myFile2, 'w') or die("can't open file");
		fwrite($fh2, $S2);
		fclose($fh2);
		
        $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;

 
?>

для вывода на индекс файл hum-1.php

<?php 
$myFile = "../txt/in-3.txt";
$fh = fopen($myFile, 'r');
$theData = fread($fh, filesize($myFile));
fclose($fh);
echo $theData;
?>

проверте создался ли текстовый файл

ну и в индексе тоже поправить надо....

 

была ошибка выше поправил на humidity

и в ардуине бы сформировать 1 строку с гет запросом на сервер со всеми параметрами, а не слать 2 отдельных запроса

хотя и с 2 запросами должно работать

Oleg_I
Offline
Зарегистрирован: 04.04.2016
add.data
<?шphp
	    $S1 =  $_GET['temperature'];
	    $myFile1 = "txt/in-1.txt";
		$fh1 = fopen($myFile1, 'w') or die("can't open file");
		fwrite($fh1, $S1);
		fclose($fh1);
		
        $S2 =  $_GET['temperature1'];
	    $myFile2 = "txt/in-2.txt";
		$fh2 = fopen($myFile2, 'w') or die("can't open file");
		fwrite($fh2, $S2);
		fclose($fh2);
		
		$S3=  $_GET['humidity'];
	    $myFile3 = "txt/in-3.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;


		
 
?>

transfer

<?php 
$myFile = "../txt/in-3.txt";
$fh = fopen($myFile, 'r');
$theData4 = fread($fh, filesize($myFile));
fclose($fh);
echo $theData4;
?>
 

index

<html>
<head>
<title>HOME</title>
<style> 
 body {
    background-image: url(images/smart_fone_house.png); /* Путь к фоновому изображению */
    background-color: #c7b39b; /* Цвет фона */
    -webkit-background-size: cover; /* Safari 3.1+ и Chrome 4.0+ */
    background-size: 100%;
   }</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>

 <link rel="stylesheet" type="text/css" href="style.css">
 <script>  
        function show()  
        {  
            $.ajax({  
                url: "transfer/temp-1.php",  
                cache: false,  
                success: function(html){  
                    $("#content").html(html); 
		}
             }); 
           $.ajax({  
                url: "transfer/temp-2.php",  
                cache: false,  
                success: function(html){  
                    $("#content-1").html(html); 
        }
             }); 
            $.ajax({  
                url: "transfer/hum-1.php",  
                cache: false,  
                success: function(html){  
                    $("#content-2").html(html); 
        }
             }); 
             $.ajax({  
                url: "transfer/ledstate.php",  
                cache: false,  
                success: function(html){  
                    $("#content-3").html(html); 
                }
             }); 
             
        }
        
        $(document).ready(function(){  
            show();  
            setInterval('show()',20000);  
        }); 
        
 
      function AjaxFormRequest(result_id,led,url) {
      jQuery.ajax({
      url:     url,
      type:     "POST",
      dataType: "html",
      data: jQuery("#"+led).serialize(),
         });
}


</script>
    
    
    
    
</head>
    <body>
          
          <div class="r">
          <p class="r1">Температура  дома</p>
          <div class="r2" style="display:inline-block;">
          <div class="r3" id="content"></div> 
          <div class="r3"> C<sup>o</sup></div>
          </div>
          </div>
        

          <div class="r">
          <p class="r1">Температура W5100</p>
          <div class="r2" >
          <div class="r3" id="content-1"></div> 
          <div class="r3"> C<sup>o</sup></div>
          </div>
          </div>
          
          <div class="r">
          <p class="r1">Влажность</p>
          <div class="r2" >
          <div class="r3" id="content-2"></div> 
          </div>
          </div>
          
          <div class="r">
          <p class="r1">Remote control</p>
          </div>
          
          <div class="r">
          <div class="rl">
          <p class="r1">Выключатель</p>
          <div class="r2" style="font-size:35px" >
          <form  id="led" action="" method="post"  >
          <label><input type="radio" name="status" value="1"> ON </label>
          <label><input type="radio" name="status" value="0"> OFF </label>
          <br>
          <input class="submitButton" type="submit" value="Отправить" onclick="AjaxFormRequest('messegeResult', 'led', 'transfer/led.php')" >
          </form>
          </div>
          </div>
          
          <div class="rr">
          <p class="r1">Состояние</p>
          <div class="r2"style="font-size:35px" >
          <div class="r3" id="content-3"></div> 
          </div>
          </div>
          
          </div>
         

        
        
   </body>
</html> 
Oleg_I
Offline
Зарегистрирован: 04.04.2016

файл создаеться  in-3

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

держи рабочий серв:

add_data

<?php
	    $S1 =  $_GET['tem'];
	    $myFile1 = "txt/in-1.txt";
		$fh1 = fopen($myFile1, 'w') or die("can't open file");
		fwrite($fh1, $S1);
		fclose($fh1);
 	
	    $S2 =  $_GET['hum'];
	    $myFile2 = "txt/in-3.txt";
		$fh2 = fopen($myFile2, 'w') or die("can't open file");
		fwrite($fh2, $S2);
		fclose($fh2);

		
        $S3 =  $_GET['tem1'];
	    $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;


		
 
?>

transfer/hum.php

<?php 
$myFile = "../txt/in-3.txt";
$fh = fopen($myFile, 'r');
$theData1 = fread($fh, filesize($myFile));
fclose($fh);
echo $theData1;
?>

index

<html>
<head>
<title>HOME</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>

 <link rel="stylesheet" type="text/css" href="style.css">
 <script>  
        function show()  
        {  
            $.ajax({  
                url: "transfer/temp-1.php",  
                cache: false,  
                success: function(html){  
                    $("#content").html(html); 
				}
             }); 
           $.ajax({  
                url: "transfer/temp-2.php",  
                cache: false,  
                success: function(html){  
                    $("#content-1").html(html); 
                }
             }); 
             $.ajax({  
                url: "transfer/hum.php",  
                cache: false,  
                success: function(html){  
                    $("#content-2").html(html); 
        }
             }); 
             $.ajax({  
                url: "transfer/ledstate.php",  
                cache: false,  
                success: function(html){  
                    $("#content-3").html(html); 
                }
             }); 
             
        }
        
        $(document).ready(function(){  
            show();  
            setInterval('show()',500);  
        }); 
        
 
      function AjaxFormRequest(result_id,led,url) {
      jQuery.ajax({
      url:     url,
      type:     "POST",
      dataType: "html",
      data: jQuery("#"+led).serialize(),
         });
}


</script>
    
    
    
</head>
    <body>
          <div class="r">
          <p class="r1">Температура  дома</p>
          <div class="r2" style="display:inline-block;">
          <div class="r3" id="content"></div> 
          <div class="r3"> C<sup>o</sup></div>
          </div>
          </div>
        

          <div class="r">
          <p class="r1">Температура W5100</p>
          <div class="r2" >
          <div class="r3" id="content-1"></div> 
          <div class="r3"> C<sup>o</sup></div>
          </div>
          </div>

		<div class="r">
          <p class="r1">влажность W5100</p>
          <div class="r2" >
          <div class="r3" id="content-2"></div> 
          <div class="r3"> C<sup>o</sup></div>
          </div>
          </div>

          
          <div class="r">
          <div class="rl">
          <p class="r1">Выключатель</p>
          <div class="r2" style="font-size:35px" >
          <form  id="led" action="" method="post"  >
          <label><input type="radio" name="status" value="1"> ON </label>
          <label><input type="radio" name="status" value="0"> OFF </label>
          <br>
          <input class="submitButton" type="submit" value="Отправить" onclick="AjaxFormRequest('messegeResult', 'led', 'transfer/led.php')" >

          </form>
          </div>
          </div>
          
          <div class="rr">
          <p class="r1">Состояние</p>
          <div class="r2"style="font-size:35px" >
          <div class="r3" id="content-3"></div> 
          </div>
          </div>
          
          </div>
         

        
        
   </body>
</html> 

для проверки в браузер http://твой сервер/add_data.php?tem=1&&hum=707=&&tem1=323

 

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

aleksandr, Вы мега человек ) Благодарю. Я не совсем понимаю по какому принципу мы присваиваем цифру вот тут $the date  ?

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

не нужна там цифра, по запарке ткнул. заработало?

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

aleksandr777 пишет:

держи рабочий серв:

 

для проверки в браузер http://твой сервер/add_data.php?tem=1&&hum=707=&&tem1=323

Выдает  "0" 

по ссылке выше 

в сериале срока не пропала эта строка 

<br />
<b>Notice</b>:  Undefined index: humidity in <b>/storage/ssd2/421/5620421/public_html/add_data.php</b> on line <b>9</b><br />
Мол в файле add_data.php нет такого индекса  хотя он там есть.
Страничка отображаеться коректно без ошибок 
 
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);
		
        $S2=  $_GET['humidity'];
	    $myFile2 = "txt/in-3.txt";
		$fh2 = fopen($myFile2, 'w') or die("can't open file");
		fwrite($fh2, $S2);
		fclose($fh2);
		
        $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;


		
 
?>

 

 

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

http://твой сервер/add_data.php?temperature=1&&humidity=707=&&temperature1=323  а так что выдает

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

выдает - 1 

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

ну правильно выдает -- выдает значение кнопки (вкл 1, выкл 0), если посмотрите на вебку значение должны измениться на темпер 1, тем2 323 и влажность 707. если все так, то надо коврять дальше код ардуины 

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

залей этот скетч ток сервер поправь

#include <SPI.h>
#include <Ethernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Adafruit_Sensor.h>
#include "DHT.h"

#define ONE_WIRE_BUS 2
#define DHTPIN 7
#define DHTTYPE DHT11   // DHT 11
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DHT dht(DHTPIN, DHTTYPE);

byte mac[] = { 0x54, 0x34, 0x41, 0x30, 0x30, 0x31 };                                       
byte i, startRead, buff ; // новая строка 
byte data_string_num =3;  // номер строки данных, откуда извлекается ответ сервера (новая строка переменная )
unsigned long int timeConn = millis();
float h;                                    // Значение температуры
float t; 



EthernetClient client;
char server[] = "мой сервер";

const int led=5;

void setup()
{
  Serial.begin(9600);
  Ethernet.begin(mac);
  sensors.begin();
  pinMode( led, OUTPUT);
  digitalWrite(led, LOW);
  dht.begin();
 }
void loop()
 {
  h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  t = dht.readTemperature();
  float hic = dht.computeHeatIndex(t, h, false); 
   

   
   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.print("&");
    client.print("&");
     client.print("Humidity");
    client.print(h);    
    client.println( " HTTP/1.1");
    client.print( "Host: " );
    client.println(server);
    client.println( "Connection: close" );
    client.println();
    client.println();
   
    delay(900);
      
while (client.available())
 {
      char c = client.read();
      Serial.print(c);


       if (c == '\r') continue;
      if (c == '\n') {                      // найден конец строки
         
         if ((startRead == 0) && (i == 0))  // если строка пустая - служебный заголовок закончился
           {startRead = 1; continue;}       // начинаем отсчитывать строки данных
         
         if (startRead > 0)                 // очередная строка данных
           {startRead++; continue;}         
         
         i=0; continue;
      }
      i++;
      if (startRead == data_string_num) { // если номер строки данных равен заданному
           if ( c=='1') buff=1;             // извлекаем параметр из первого символа строки
           if ( c=='0') buff=0;
           startRead++; 



      } 
                  
                   
 }
      Serial.print("buff= "); Serial.println(buff);
     client.flush();
      client.stop();
     delay(100); 
 

}
     if ( buff==1)
        {
        digitalWrite (led, HIGH);
        }
        else
        {
          digitalWrite(led, LOW);
        }
  delay(100);
  
    }
 

 

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

вот сейчас это и пытаюсь делать 

переделал код теперь ошибка <br />

<b>Notice</b>:  Undefined index: humidity in <b>/storage/ssd2/421/5620421/public_html/add_data.php</b> on line <b>9</b><br />не вылазит 

И в созданый файл записались данные но на страничке их нет 

Вот такое в мониторе порта 

HTTP/1.1 200 OK
Date: Thu, 10 May 2018 21:53:18 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: 60a42ca488849223f72dea1e6a784dd7
 
3
 
1
 
0
 
buff = 1
hum = 42
 

 

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

чет не понял

0

вот сейчас это и пытаюсь делать 

переделал код теперь ошибка <br />

<b>Notice</b>:  Undefined index: humidity in <b>/storage/ssd2/421/5620421/public_html/add_data.php</b> on line <b>9</b><br />не вылазит 

 

есть ошибка или нет

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

контроль трезвости не прошел , сплю уже на ходу ))

ошибки в порте нет данные передаються и записываються в блокнот in-3 

но на сайте пусто 

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

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

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

aleksandr777 пишет:

Если еще актуально, по совету b707 можно сделать еще так:

while (client.available())
 {

 String line = client.readStringUntil('\r');
      Serial.print(line);
      if (line.indexOf("releON") != -1){buff=1; Serial.println("vkl");}
      if (line.indexOf("releOFF") != -1){buff=0; Serial.println("otkl");}
    }
  }
 }

в файле index.php поменяйте строчки:

<label><input type="radio" name="status" value="releON"> ON </label>
<label><input type="radio" name="status" value="releOFF"> OFF </label>

задержка должна уйти

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

aleksandr777 пишет:

aleksandr777 пишет:

Если еще актуально, по совету b707 можно сделать еще так:

while (client.available())
 {

 String line = client.readStringUntil('\r');
      Serial.print(line);
      if (line.indexOf("releON") != -1){buff=1; Serial.println("vkl");}
      if (line.indexOf("releOFF") != -1){buff=0; Serial.println("otkl");}
    }
  }
 }

в файле index.php поменяйте строчки:

<label><input type="radio" name="status" value="releON"> ON </label>
<label><input type="radio" name="status" value="releOFF"> OFF </label>

задержка должна уйти

Не работает ( в файле запись происходит но  светодиод не загораеться 

+ нужно обновить файл трансфер положения он офф

<?php 
$myFile = "../txt/out-1.txt";
$fh = fopen($myFile, 'r');
$theData = fread($fh, filesize($myFile));
fclose($fh);
if  ( $theData == 1)
{
 echo " <p class='on'>ON</p>";
}

if  ( $theData == 0)
{
 echo "<p class='off'>OFF</p>";
}

?>

 

Но с таким кодом в монитор порта кроме влажности вообще ничего не выпадает 


#include <SPI.h>
#include <Ethernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include "DHT.h"
#define DHTPIN 7
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

#define ONE_WIRE_BUS 2

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

byte mac[] = { 0x54, 0x34, 0x41, 0x30, 0x30, 0x31 };                                       
byte i, startRead, buff ; // новая строка 
byte data_string_num =3;  // номер строки данных, откуда извлекается ответ сервера (новая строка переменная )

EthernetClient client;
char server[] = "ХХХХХХХ"; // ; имя вашего сервера 

const int led=5;
int h;                                    // Значение температуры
int t; 
void setup()
{
  Serial.begin(9600);
  Ethernet.begin(mac);
  sensors.begin();
  pinMode(led, OUTPUT);
  digitalWrite(led, LOW);
}

void loop()
 {
  h = dht.readHumidity();
  t = dht.readTemperature();
  
  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.print("&");
    client.print("&");
    client.print("humidity=");
    client.print(h);
    client.print("&");
    client.print("&");
    client.println( " HTTP/1.1");
    client.print( "Host: " );
    client.println(server);
    client.println( "Connection: close" );
    client.println();
    client.println();
    Serial.print("hum= ");
    Serial.println(h);
   
    
    delay(200);

while (client.available())
 {

 String line = client.readStringUntil('\r');
      Serial.print(line);
      if (line.indexOf("releON") != -1){buff=1; Serial.println("vkl");}
      if (line.indexOf("releOFF") != -1){buff=0; Serial.println("otkl");}
    }
  }
 if ( buff==1)
        {
        digitalWrite (led, HIGH);
        }
        else
        {
          digitalWrite(led, LOW);
        }
  delay(100);
 }
 

 

 

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

С таким кодом в порте только буфер и тоже его значение не меняеться при переключении 

buff= 0
buff= 0
buff= 0
buff= 0
buff= 0
buff= 0
buff= 0
buff= 0
buff= 0
buff= 0
buff= 0
buff= 0
buff= 0
buff= 0
buff= 0
 

 


 #include <SPI.h>
#include <Ethernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Adafruit_Sensor.h>
#include "DHT.h"

#define ONE_WIRE_BUS 2
#define DHTPIN 7
#define DHTTYPE DHT11   // DHT 11
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DHT dht(DHTPIN, DHTTYPE);

byte mac[] = { 0x54, 0x34, 0x41, 0x30, 0x30, 0x31 };                                       
byte i, startRead, buff ; // новая строка 
byte data_string_num=3;  // номер строки данных, откуда извлекается ответ сервера (новая строка переменная )
unsigned long int timeConn = millis();
float h;                                    // Значение температуры
float t; 



EthernetClient client;
char server[] = "ХХХХХХХХ";

const int led=5;

void setup()
{
  Serial.begin(9600);
  Ethernet.begin(mac);
  sensors.begin();
  pinMode( led, OUTPUT);
  digitalWrite(led, LOW);
  dht.begin();
 }
void loop()
 {
  h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  t = dht.readTemperature();
  float hic = dht.computeHeatIndex(t, h, false); 
   

   
   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.print("&");
    client.print("&");
     client.print("Humidity");
    client.print(h);    
    client.println( " HTTP/1.1");
    client.print( "Host: " );
    client.println(server);
    client.println( "Connection: close" );
    client.println();
    client.println();
   
    delay(900);
      
while (client.available())
 {
      char c = client.read();
      Serial.print(c);


       if (c == '\r') continue;
      if (c == '\n') {                      // найден конец строки
         
         if ((startRead == 0) && (i == 0))  // если строка пустая - служебный заголовок закончился
           {startRead = 1; continue;}       // начинаем отсчитывать строки данных
         
         if (startRead > 0)                 // очередная строка данных
           {startRead++; continue;}         
         
         i=0; continue;
      }
      i++;
      if (startRead == data_string_num) { // если номер строки данных равен заданному
           if ( c=='1') buff=1;             // извлекаем параметр из первого символа строки
           if ( c=='0') buff=0;
           startRead++; 



      } 
                  
                   
 }
      Serial.print("buff= "); Serial.println(buff);
     client.flush();
      client.stop();
     delay(100); 
 

}
     if ( buff==1)
        {
        digitalWrite (led, HIGH);
        }
        else
        {
          digitalWrite(led, LOW);
        }
  delay(100);
  
    }
    
 

 

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

71 строчку удали, 

 

      
073 while (client.available())
074  {
075       char c = client.read();
076       Serial.print(c);

 }}}

077  
078  

И смотри что получаешь в ответ... 

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

Зачем вы делаете delay() после client.stop()?

delay() нужен в лучшем случае после последнего закидывания данных перед стопом, чтобы был шанс их передать.  И flush() в Ethernet.h ровным счетом ничего не делает. Абсолютно. На самом нижнем уровне в функции находится одна закомментированная строчка "TODO".

И вообще - вы с этим дилеями в лупе имеете неиллюзорный шанс отреджектить половину входящих коннектов.

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

 

 

      
073 while (client.available())
074  {
075       char c = client.read();
076       Serial.print(c);

 }}}

077  
078

 

удалил  delay

 

hum= 31
buff = 0
hum= 31
buff = 0
hum= 32
buff = 0
hum= 32
buff = 0
hum= 32
 
 
 
 
 
#include <SPI.h>
#include <Ethernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include "DHT.h"
#define DHTPIN 7
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
 
#define ONE_WIRE_BUS 2
 
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
 
byte mac[] = { 0x54, 0x34, 0x41, 0x30, 0x30, 0x31 };                                       
byte i, startRead, buff ; // новая строка 
byte data_string_num =5;  // номер строки данных, откуда извлекается ответ сервера (новая строка переменная )
 
EthernetClient client;
char server[] = "xxxxxxxxxxxxx"; // ; имя вашего сервера 
 
const int led=5;
int h;                                    // Значение температуры
int t; 
void setup()
{
  Serial.begin(9600);
  Ethernet.begin(mac);
  sensors.begin();
  pinMode(led, OUTPUT);
  digitalWrite(led, LOW);
}
 
void loop()
 {
  h = dht.readHumidity();
  t = dht.readTemperature();
  
  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.print("&");
    client.print("&");
    client.print("humidity=");
    client.print(h);
    client.print("&");
    client.print("&");
    client.println( " HTTP/1.1");
    client.print( "Host: " );
    client.println(server);
    client.println( "Connection: close" );
    client.println();
    client.println();
    Serial.print("hum= ");
    Serial.println(h);
   
    
    
 
while (client.available())
 {
      char c = client.read();
      Serial.print(c);
 
 
       if (c == '\r') continue;
      if (c == '\n') {                      // найден конец строки
         
         if ((startRead == 0) && (i == 0))  // если строка пустая - служебный заголовок закончился
           {startRead = 1; continue;}       // начинаем отсчитывать строки данных
         
         if (startRead > 0)                 // очередная строка данных
           {startRead++; continue;}         
         
         i=0; continue;
      }
      i++;
      if (startRead == data_string_num) { // если номер строки данных равен заданному
           if ( c=='1') buff=1;             // извлекаем параметр из первого символа строки
           if ( c=='0') buff=0;
           startRead++; 
 
      } 
       }
      Serial.print("buff = ");
      Serial.println(buff);
      client.stop();
      client.flush();
      delay(1000); 
 
 
}
 if ( buff==1)
        {
        digitalWrite (led, HIGH);
        }
        else
        {
          digitalWrite(led, LOW);
        }
  delay(100);
 }
 
 

 

aleksandr777
Offline
Зарегистрирован: 04.01.2018
HTTP/1.1 200 OK
Date: Fri, 11 May 2018 09:26:38 GMT
Server: Apache/2.4.18 (Ubuntu)
Content-Length: 34
Connection: close
Content-Type: text/html; charset=UTF-8

1
2
3
akyetb
releOFF
4
5
6
nix se
otkl
HTTP/1.1 200 OK
Date: Fri, 11 May 2018 09:26:39 GMT
Server: Apache/2.4.18 (Ubuntu)
Content-Length: 33
Connection: close
Content-Type: text/html; charset=UTF-8

1
2
3
akyetb
releON
4
5
6
nix se
vkl

код ардуины

 while (client.available())
 {
 String line = client.readStringUntil('\r');
     Serial.print(line);
     if (line.indexOf("releON") != -1){buff=1;}// Serial.println("vkl");}
     if (line.indexOf("releOFF") != -1){buff=0;}// Serial.println("otkl");}
       
    }

  }
  if ( buff==1)
        {
        digitalWrite (led, HIGH); Serial.println("vkl");
        }
        else
        {
          digitalWrite(led, LOW); Serial.println("otkl");
        }
 }

Я хз чем еще помоч....

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

переписал заново код ардуины и перезалил файлы на серв  и все заработало 

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

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

Понимаю возможно тупо написал но  я только учусь



#include <SPI.h>
#include <Ethernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include "DHT.h"
#define DHTPIN 7
#define DHTTYPE DHT11
#define ONE_WIRE_BUS 2
DHT dht(DHTPIN, DHTTYPE);



OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

byte mac[] = { 0x54, 0x34, 0x41, 0x30, 0x30, 0x31 };                                       
byte i, startRead, buff1 ; // новая строка 
byte data_string_num =3;  // номер строки данных, откуда извлекается ответ сервера (новая строка переменная )
byte a, startRead2, buff2;
byte data_string_num2 =3;

EthernetClient client;
char server[] = "KKKKKK ;//имя вашего сервера 

const int led=5;
const int led1=4;

int h;                                    // Значение температуры
int t; 
void setup()
{
  Serial.begin(9600);
  Ethernet.begin(mac);
  sensors.begin();
  pinMode( led, OUTPUT);
  digitalWrite(led, LOW);
  pinMode( led1, OUTPUT);
  digitalWrite(led1, LOW);
}

void loop()
 {
  h = dht.readHumidity();
  t = dht.readTemperature();
  
  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.print("&");
    client.print("&");
    client.print("humidity=");
    client.print(h);
    client.print("&");
    client.print("&");
    client.println( " HTTP/1.1");
    client.print( "Host: " );
    client.println(server);
    client.println( "Connection: close" );
    client.println();
    client.println();
    Serial.print("hum= ");
    Serial.println(h);
   
    
    delay(200);

while (client.available())
 {
      char c = client.read();
      Serial.print(c);


       if (c == '\r') continue;
      if (c == '\n') {                      // найден конец строки
         
         if ((startRead == 0) && (i == 0))  // если строка пустая - служебный заголовок закончился
           {startRead = 1; continue;}       // начинаем отсчитывать строки данных
         
         if (startRead > 0)                 // очередная строка данных
           {startRead++; continue;}         
         
         i=0; continue;
      }
      i++;
      if (startRead == data_string_num) { // если номер строки данных равен заданному
           if ( c=='1') buff1=1;             // извлекаем параметр из первого символа строки
           if ( c=='0') buff1=0;
           startRead++; 

      } 
   
       
 }
      Serial.print("buff1 = ");
      Serial.println(buff1);
      client.stop();
      client.flush();
      delay(1000); 
 

}
 if ( buff1==1)
        {
        digitalWrite (led, HIGH);
        }
        else
        {
          digitalWrite(led, LOW);
 }
        
while (client.available())
 {
      char c = client.read();
      Serial.print(c);


       if (c == '\r') continue;
      if (c == '\n') {                      // найден конец строки
         
         if ((startRead2 == 0) && (a == 0))  // если строка пустая - служебный заголовок закончился
           {startRead2 = 1; continue;}       // начинаем отсчитывать строки данных
         
         if (startRead2 > 0)                 // очередная строка данных
           {startRead2++; continue;}         
         
         a=0; continue;
      }
      a++;
      if (startRead2 == data_string_num2) { // если номер строки данных равен заданному
           if ( c=='2') buff2=2;             // извлекаем параметр со второго символа строки
           if ( c=='0') buff2=0;
           startRead2++; 

      } 
             
 }
      Serial.print("buff2 = ");
      Serial.println(buff2);
      client.stop();
      client.flush();
      delay(100); 
 



  if ( buff2==1)
        {
        digitalWrite (led1, HIGH);
        }
        else
        {
          digitalWrite(led1, LOW);
        }
  delay(100);
 }

 
HTTP/1.1 200 OK
Date: Sun, 27 May 2018 20:19:24 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: fe2a94dd3f784bbaff51d691e240d99b

4

11        // тут значение кнопок друг за другом идут  

0

buff1 = 1
buff2 = 0
hum= 39

 

buff2 не принимает значение 1

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

Уважаемые форумчане, всех с наступающим Новым годом!  Пусть пусть он будет лучше уходящего !

Ранее уже писал в этой ветке по своей проблеме и мне помогли тогда за что и большое спаибо. 

Тогда подзабросил этот проект  т.к. небыло свободного времени, вот решил вернуться  все весело клацает данные с датчиков передаються.

Решил задействовать в пилотной експлуатации и столкнулся с такой проблемой, состояние реле самопроизвольно меняеться на высокий уровень и больше arduino не реагирует на кнопки в браузере. Помагает только рестарт. 

Закономерности когда она перестает реагировать не наблюдаю, как правило через час может перестать а когда и больше. 

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

Хотя при проверке реакции нули (последняя строка) успешно меняют свой статус на 1 1 (в зависимости какое положение тумблера на страничке, две кнопки на страничке)

Notice: Undefined index: temperature in /storage/ssd2/421/5620421/public_html/add_data.php on line 3



Notice: Undefined index: humidity in /storage/ssd2/421/5620421/public_html/add_data.php on line 9



Notice: Undefined index: temperature1 in /storage/ssd2/421/5620421/public_html/add_data.php on line 15

00

Прошу по возможности подсказать почему дуня отказывается реагировать на запросы ?

Заранее всем благодарен  

 

#include <SPI.h>
#include <Ethernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>

#include "DHT.h"
#define DHTPIN 7
#define DHTTYPE DHT11
#define ONE_WIRE_BUS 17

DHT dht(DHTPIN, DHTTYPE);


OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

byte mac[] = { 0x54, 0x34, 0x41, 0x30, 0x30, 0x31 };                                     
byte i, startRead, buff ; // новая строка 
byte data_string_num =3;  // номер строки данных, откуда извлекается ответ сервера (новая строка переменная )

EthernetClient client;
char server[] = "ХХХХХХХХХХХХХХХХХХ.com" ;

const int led=5;
int h;                                    // Значение температуры
int t; 
void setup()
{
  Serial.begin(9600);
  Ethernet.begin(mac);
  sensors.begin();
  pinMode( led, OUTPUT);
  digitalWrite(led, LOW);
}

void loop()
 {
  h = dht.readHumidity();
  t = dht.readTemperature();
  
  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.print("&");
    client.print("&");
    client.print("humidity=");
    client.print(h);
    client.print("&");
    client.print("&");
    client.println( " HTTP/1.1");
    client.print( "Host: " );
    client.println(server);
    client.println( "Connection: close" );
    client.println();
    client.println();
    Serial.print("hum= ");
    Serial.println(h);
   
    
    delay(200);

while (client.available())
 {
      char c = client.read();
      Serial.print(c);


       if (c == '\r') continue;
      if (c == '\n') {                      // найден конец строки
         
         if ((startRead == 0) && (i == 0))  // если строка пустая - служебный заголовок закончился
           {startRead = 1; continue;}       // начинаем отсчитывать строки данных
         
         if (startRead > 0)                 // очередная строка данных
           {startRead++; continue;}         
         
         i=0; continue;
      }
      i++;
      if (startRead == data_string_num) { // если номер строки данных равен заданному
           if ( c=='1') buff=1;             // извлекаем параметр из первого символа строки
           if ( c=='0') buff=0;
           startRead++; 

      } 
       }
      Serial.print("buff = ");
      Serial.println(buff);
      client.stop();
      client.flush();
      delay(1000); 
 

}
 if ( buff==1)
        {
        digitalWrite (led, HIGH);
        }
        else
        {
          digitalWrite(led, LOW);
        }
  delay(100);
 }
 

 

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

В дополнение в мониторе порта наблюдаю следующее:

Когда  все ок идет такого вормата вывод 

HTTP/1.1 200 OK
Date: Mon, 31 Dec 2018 13:39:48 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: 2fb409a68a0fd0f08b718d2190b5f715
 
4
 
10
 
0
 
buff = 1
hum= 0
HTTP/1.1 200 OK
Date: Mon, 31 Dec 2018 13:39:51 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: 9d13d5936a13825a00f615d47f737131
 

Когда ардуина зависает значение buff становится 0  и больше не реагирует на нажатие кнопки на странице 

Изменния происходя только в строке которая обведена краснім при єтом буфер больше не меняет свое значение. до передергивания 

 

bwn
Offline
Зарегистрирован: 25.08.2014

99% - проблемы с питанием. Здесь по форуму поиском поройтесь, тем много было.

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

Спасибо, за подсказку, у меня ардуино мега 2560 и шилд питаються от юсб входа импульсной зарядкой от телефона на 700ма. Попробую запитать от другого разьема 7-12вольт. По результатам отпишусь

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

Запитал плату мега 2560 и шилд от внешнего блока 12вольт но результата не получил, наоборот еще больше глюков ( Буду читаь форум и попробую может золотую середину 7 вольт

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Oleg_I пишет:
Запитал плату мега 2560 и шилд от внешнего блока 12вольт но результата не получил, наоборот еще больше глюков ( Буду читаь форум и попробую может золотую середину 7 вольт
Схема?

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

Схема чего именно, блока питания или включения всей схемы ? Блок питания импульсный 12 вольт

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

Так схема-то ладно. В коде все завязано на переменную startRead, которая нигде не нулится после первого коннекта (во всяком случае я не вижу). 

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

Спасибо за комментарий, буду смотреть, я можно сказать ” чайник " в этом деле, потому пока не совсем понимаю занулить, всмысле флеш если прошел первый конект?

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

В смысле - значение переменной. Но, если вы не понимаете что это за переменная и зачем она...

Oleg_I
Offline
Зарегистрирован: 04.04.2016
  
 
     if(digitalRead(5)==HIGH&&buff==0)

     // и перемення buff равна 0 , то ...

     {
            
       digitalWrite(5,!digitalRead(5));

       led=1;
     }

      if(digitalRead(5)==LOW&&buff==1)  

     //и buff равна - 1 ,то ...
     {
    
        led=0;//обнуляем переменную led
}

Типа такого ? Или то чтоя написал это бред?  Спасибо за подсказки