Autor Zpráva
jtfcobra
Profil
Ahoj mel bych dotaz mam udelany PHP get :

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<?php
    require_once('konfigurace.php');
    $db = mysql_connect($hostname_test, $username_test, $password_test);
    mysql_select_db($database_test,$db);
    $nazev=$_GET["nazev"];
    $vlkost=$_GET["vlhkost"];
    $teplota=$_GET["teplota"];
    $komunikace = mysql_query("INSERT INTO topeni.teploty(nazev, datum, cas, teplota, vlhkost) VALUES('$nazev',now(),now(),'$teplota','$vlhkost')");


if ($_GET["dalas"]=='ano')
    {
    $db = mysql_connect($hostname_test, $username_test, $password_test);
    mysql_select_db($database_test,$db);
    $nazev2=$_GET["nazev2"];
    $vlkost2=$_GET["vlhkost2"];
    $teplota2=$_GET["teplota2"];
    $komunikace = mysql_query("INSERT INTO topeni.teploty(nazev, datum, cas, teplota, vlhkost) VALUES('$nazev2',now(),now(),'$teplota2','$vlhkost2')");
    
    $db = mysql_connect($hostname_test, $username_test, $password_test);
    mysql_select_db($database_test,$db);
    $nazev3=$_GET["nazev3"];
    $vlkost3=$_GET["vlhkost3"];
    $teplota3=$_GET["teplota3"];
    $komunikace = mysql_query("INSERT INTO topeni.teploty(nazev, datum, cas, teplota, vlhkost) VALUES('$nazev3',now(),now(),'$teplota3','$vlhkost3')");
    
    $db = mysql_connect($hostname_test, $username_test, $password_test);
    mysql_select_db($database_test,$db);
    $nazev4=$_GET["nazev4"];
    $vlkost4=$_GET["vlhkost4"];
    $teplota4=$_GET["teplota4"];
    $komunikace = mysql_query("INSERT INTO topeni.teploty(nazev, datum, cas, teplota, vlhkost) VALUES('$nazev4',now(),now(),'$teplota4','$vlhkost4')");
    
    $db = mysql_connect($hostname_test, $username_test, $password_test);
    mysql_select_db($database_test,$db);
    $nazev5=$_GET["nazev5"];
    $vlkost5=$_GET["vlhkost5"];
    $teplota5=$_GET["teplota5"];
    $komunikace = mysql_query("INSERT INTO topeni.teploty(nazev, datum, cas, teplota, vlhkost) VALUES('$nazev5',now(),now(),'$teplota5','$vlhkost5')");
    
    $db = mysql_connect($hostname_test, $username_test, $password_test);
    mysql_select_db($database_test,$db);
    $nazev6=$_GET["nazev6"];
    $vlkost6=$_GET["vlhkost6"];
    $teplota6=$_GET["teplota6"];
    $komunikace = mysql_query("INSERT INTO topeni.teploty(nazev, datum, cas, teplota, vlhkost) VALUES('$nazev6',now(),now(),'$teplota6','$vlhkost6')");
};
echo 'OK'; 
?>
</body>
</html>



v arduno:
void loop() {
  dht.begin();

  // Cekej, dokud se nepripoji nejaky klient
  WiFiClient client = server.available();

  if (client.connect("10.0.0.222", 80)) {
    Serial.println("priprava k odeslani DB");
    // Make a HTTP request:
    // Teplotni cidlo
    float h = dht.readHumidity();
    float t = dht.readTemperature();
    float f = dht.readTemperature(true);
    float hic = dht.computeHeatIndex(t, h, false);
    Serial.print("connected to ");
    Serial.println(client.remoteIP());
    
    client.print( "GET /teploty.php?");
    client.print("nazev=T17");
    client.print("&&");
    client.print("teplota=");
    client.print(t);
    client.print("&&");
    client.print("vlhkost=");
    client.print(hic);
    client.println(" HTTP/1.1");
    client.println("Host: 10.0.0.222");
    client.println("odeslano do DB: ok");
    client.println();
    client.stop();
    Serial.println("Teplota C: ");
    Serial.println(t);
    Serial.println("Teplota F: ");
    Serial.println(f);
    Serial.println("Vlhkost: ");
    Serial.println( hic );
    Serial.println("Odeslano do DB: ok cekam 60 sekund");
    delay(60000);
    
  } else {
    // if you didn't get a connection to the server:
    Serial.println("chyba odeslani do DB");
  }

  // To je vse, ted jeste 1 ms pockam a cela smycka se muze zopakovat
  delay(1);
  Serial.println("Opakovcka");
  Serial.println("");
}



1)kdyz na pc spustim svuj server uamp tak to funguje PHP5.6
2)kdyz spustim server raspberry PHP5.6 tak to nejede

myslim si ze je chyba nekde v nastaveni na raspberry PHP ale nevim kde jsem z toho nestastny...
DarkMeni
Profil
Takže jestli to chápu správně, tak máš 3 zařízení: PC, Raspbery a arduino?
Kde PC a Raspbery jsou servery a arduino je klient, a máš to na lokální síti 10.0.0.* přes WiFi router?

Jestli ti ten skript na PC funguje, tak problém nebude v PHP skriptu.
Takže zbývá Raspbery nebo arduino.
Jestli jsi to zkoušel na PC tak, že ten požadavek poslal arduino přes lokální síť, a na PC se to uložilo do databáze, tak je v pořádku i kód v arduinu (i když řádky 27. a 28. u arduina, nevim jestli si tam původně nechtěl dát Serial.println místo client.println, jestli to takle nedělá bordel v HTTP požadavku)

Takže ten raspbery... když zavoláš stejný požadavek z prohlížeče na PC, provede se? 10.0.0.255:80/teploty.php?nazev=T17&teplota=10&vlhkost=10 (jo a na oddělení parametru stačí jeden ampresand - &, dva ničemu nevadí, ale nejsou potřeba)

Třeba se tu najde někdo, kdo ti hned řekne čím to je. Já bych ti rád pomohl, ale potřebuju víc informací, abych si představil, kde může být problém. Takže zkus ten GET poslat z prohlížeče v PC a případně nějak zjistit jestli vůbec dorazil do cíle, nebo tam je nějaká chyba 500 nebo jiná, to ti arduino samo o sobě neřekne, prohlížeč jo :)
jtfcobra
Profil
1) kdyz dam adresu:
10.0.0.222:80/teploty.php?nazev=T17&teplota=10&vlhkost=10

odpoved je OK a ulozi se to normalne

chyba byla tady:
client.print( "GET /teploty.php?");
client.print("nazev=T17");
client.print("&&");
client.print("teplota=");
client.print(t);
client.print("&&");
client.print("vlhkost=");
client.print(hic);
client.println(" HTTP/1.1");
client.println("Host: 10.0.0.222");
"""""""""""""""""""""""""""""Serial.println("odeslano do DB: ok");""""""""""""""""""""""
client.println();
client.stop();

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0