PHP přestalo přijímat data z Arduina
PHP přestalo přijímat data z Arduina
Ahoj, řeším problém se kterým si už nevím rady. Pokud by se našel někdo kdo by mě nasměroval, budu velmi vděčný. Mám server NAS Synology, na něm běží PHP 5.6, webový server, MariaDB 5 a phpMydamin. Z arduin si po domácí wifi sítě loguji spousty hodnot, které si pak zobrazuji na vytvořených www PHP stránkách. Vše fungovalo……až do provedení NASem požadované aktualizace PHP, webového serveru, phpMydamin a MardiaDB 5. Od té doby se mi z arduin nezapsal žádný záznam. Pokud vložím záznam do DB tabulky pomocí přímého linku v prohlížeči PC či mobilu, např. „http://192.168.0.103/Arduino/Vysilac_01 ... teplota=20“, záznam se v pořádku zapíše. Vzhledem k tomu, že na arduinech se nic neměnilo, problém musí být na straně NASu. Jediná logická věc mi přijde, že již z nějakého důvodu neplatí do té doby platné "zápatí" Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 jehož smyslu moc nerozumím.
K zápisu arduina do php mám použit tento kód:
if(client.connect(192.168.0.103, 80)){
Serial.println("Pripojeno k NASu") ;
String postStr2 = "GET http://192.168.0.103/Arduino/Vysilac_01/logger.php?";
postStr2 +="teplota=";
postStr2 += String(t);
postStr2 +="&vlhkost=";
postStr2 += String(h);
client.print(postStr2);
client.println("Host: http://192.168.0.103");
client.println("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
client.println("Connection: close");
client.println();
client.stop();
}
Díky za každou radu, co mě někam posune.
K zápisu arduina do php mám použit tento kód:
if(client.connect(192.168.0.103, 80)){
Serial.println("Pripojeno k NASu") ;
String postStr2 = "GET http://192.168.0.103/Arduino/Vysilac_01/logger.php?";
postStr2 +="teplota=";
postStr2 += String(t);
postStr2 +="&vlhkost=";
postStr2 += String(h);
client.print(postStr2);
client.println("Host: http://192.168.0.103");
client.println("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
client.println("Connection: close");
client.println();
client.stop();
}
Díky za každou radu, co mě někam posune.
-
- Příspěvky: 579
- Registrován: 01 srp 2017, 19:29
- Reputation: 0
- Bydliště: Poprad
- Kontaktovat uživatele:
Re: PHP přestalo přijímat data z Arduina
Ja to používam takto:
Skús to takto a malo by to ísť Je to cez Ethernet shield W5100 asi rovnako ako u teba.
Kód: Vybrat vše
if (client.connect(server, 80)) { // AK SA NAPOJI NA SERVER NA PORTE 80 (HTTP)
sensors.requestTemperatures(); //VYZIADANIE HODNOT ZO SENZOROV
Serial.println("Pripojenie uspesne na webserver"); //VYPIS NA SERIOVU LINKU
client.print("GET /add.php?temp1="); //ZAČIATOK HTTP REQUEST --> client.print GET METODOU s oznacenim premennej, do ktorej pridame hodnotu v URL
client.print(sensors.getTempCByIndex(0)); // VYPIS HODNOTY 1. SENZORU NA INDEXE 0 DO URL
client.print("&temp2="); //TEXTOVE DOPLNENIE DRUHEJ PREMENNEJ DO KTOREJ UVEDIEME COMU SA ROVNA TAKTIEZ V URL
client.print(sensors.getTempCByIndex(1)); // VYPIS HODNOTY 2. SENZORU NA INDEXE 1 DO URL
client.print("&hum1="); //TEXTOVE DOPLNENIE TRETEJ PREMENNEJ DO KTOREJ UVEDIEME COMU SA ROVNA TAKTIEZ V URL
client.print(dht12.readHumidity()); // VYPIS VLHKOMERU DO LINKU, HODNOTA, KTOREJ SA ROVNA PREMENNA HUM1
client.print("&pres1="); //TEXTOVE DOPLNENIE STVRTEJ PREMENNEJ DO KTOREJ UVEDIEME COMU SA ROVNA TAKTIEZ V URL
client.print((bmp.readPressure() / 100) + 30, 120481927710843373493975903614); // VYPIS BAROMETRA DO LINKU + PRIPOCITANA KONSTANTA NA ZAKLADE NADMORSKEJ VYSKY PRE SPRAVNY PREPOCET NA RELATIVNY TLAK
client.println(" HTTP/1.1"); // UKONCENIE REQUESTU ZALOMENIM RIADKA A DOPLNENIM HLAVICKY HTTP S VERZIOU
client.println("Host: www.mojastranka.sk"); // ADRESA HOSTA, NA KTOREHO BOL MIERENY REQUEST (NIE PHP SUBOR)
client.println("Connection: close"); //UKONCENIE PRIPOJENIA ZA HTTP HLAVICKOU
client.println(); //ZALOMENIE RIADKA KLIENTSKEHO ZAPISU
client.stop();
}
Re: PHP přestalo přijímat data z Arduina
Díky. Ale stále nic
(jedu přes wifi - ESP8266, to by na to ale nemělo mít žádný vliv)
(jedu přes wifi - ESP8266, to by na to ale nemělo mít žádný vliv)
Re: PHP přestalo přijímat data z Arduina
VYŘEŠENO.
Špatná syntaxe:
client.println("Host: http://192.168.0.103")
Správná syntaxe:
client.println("Host: 192.168.0.103")
S podivem je, že do update webového serveru to dlouhé měsíce nevadilo
Špatná syntaxe:
client.println("Host: http://192.168.0.103")
Správná syntaxe:
client.println("Host: 192.168.0.103")
S podivem je, že do update webového serveru to dlouhé měsíce nevadilo
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: PHP přestalo přijímat data z Arduina
Já se u tohoto teď zasekl - když zavolám write.PHP z prohlížeče, do tabulky mi to zapíše, když ho zavolám z arduina, tak nic.
Taky se mi na Synology nedaří vytvořit dalšího uživatele pro databázi, musím to testovat s root
Neřešil jsi to ?
Můžeš mi poslat kod arduina i PHP ?
Taky se mi na Synology nedaří vytvořit dalšího uživatele pro databázi, musím to testovat s root
Neřešil jsi to ?
Můžeš mi poslat kod arduina i PHP ?
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: PHP přestalo přijímat data z Arduina
Vyřešeno, nejsem programátor
1) za write.php jsem měl navíc lomítko "write.php/?"
2) Mě to doma funguje bez ukončení " " HTTP/1.1", jemu ne ...
děkuji
PS: nevím, kamarád má na Synology jako WWW server Apache, já Nqinx a asi se to liší ...
1) za write.php jsem měl navíc lomítko "write.php/?"
2) Mě to doma funguje bez ukončení " " HTTP/1.1", jemu ne ...
děkuji
PS: nevím, kamarád má na Synology jako WWW server Apache, já Nqinx a asi se to liší ...
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
-
- Příspěvky: 579
- Registrován: 01 srp 2017, 19:29
- Reputation: 0
- Bydliště: Poprad
- Kontaktovat uživatele:
Re: PHP přestalo přijímat data z Arduina
Ja používam pre Ethernet shield taký request (HTTP) - výrez:
Spracovanie výsledku do MySQL databázy cez PHP (Webclient Ethernet shield):
NodeMCU, ukladanie teploty na internet (HTTPS) - výrez:
Spracovanie v PHP do .txt súboru teplota od NodeMCU (prepisuje sa) - pokračujúci príklad k NodeMCU kódu!!!!:
Kód: Vybrat vše
if (client.connect(server, 80)) {
sensors.requestTemperatures();
client.print("GET /add.php?temp1=");
client.print(sensors.getTempCByIndex(0));
client.print("&temp2=");
client.print(sensors.getTempCByIndex(1));
client.print("&hum1=");
client.print(dht12.readHumidity());
client.print("&pres1=");
client.print((bmp.readPressure() / 100) + 30, 120481927710843373493975903614);
client.println(" HTTP/1.1");
client.println("Host: www.mojastranka.sk");
client.println("Connection: close");
client.println();
client.stop();
}
Kód: Vybrat vše
<?php
include ("connect.php");
$temp1 = $_GET["temp1"];
$t2 = $_GET["tempinside"];
$p = $_GET["pressure"];
$h = $_GET["humidity"];
if($temp1== "" || $t2=="" || $p=="" || $h=="" || $temp1== 0 || $t2==0 || $p==0 || $h==0 || $temp1< -40 || $t2< -40 || $temp1>50 || $t2>50 || $p>1050 || $p<950 || $h==0.01 || $h==0.02 || $h==0.03 || $h==95){
echo 'Zabránenie nesprávnemu typu/hodnote dát uložiť sa do databázy!';
}
else{
$ins = mysqli_query($con,"INSERT INTO `TempOutside` (`temperature`) VALUES ('".$temp1."')") or die (mysqli_error($con));
$ins2 = mysqli_query($con,"INSERT INTO `TempLivingRoom` (`temperature`) VALUES ('".$t2."')") or die (mysqli_error($con));
$ins3 = mysqli_query($con,"INSERT INTO `PressureOutside` (`pressure`) VALUES ('".$p."')") or die (mysqli_error($con));
$ins4 = mysqli_query($con,"INSERT INTO `Humidity` (`humidity`) VALUES ('".$h."')") or die (mysqli_error($con));
}
?>
Kód: Vybrat vše
sensors.requestTemperatures();
String teplota = String (sensors.getTempCByIndex(0));
String url = "/system/nodemcu/zapisteplotu.php?teplota=" + teplota;
client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "User-Agent: NodeMCU\r\n" + "Connection: close\r\n\r\n");
Kód: Vybrat vše
<?php
$teplota = $_GET["teplota"];
if($teplota==-127 || $teplota==85){
echo 'Chyba senzora!';
}else{
file_put_contents('teplota.txt', $teplota);}
?>
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: PHP přestalo přijímat data z Arduina
Další problém:
Po restartu mi UNO s připojeným "sendvičem" LAN modulem tak z 1/3 nenajede ten LAN modul.
- dal jsem jeden k UNU, zapojil i Rasberry, dal měřit teplotu a odeslat každé 3mmin.
- každou hodinu jsem jim vypnul na 5 min elektřinu (takovým tím mechanickým časovačem)
- po 2 dnech Arduino tak o 1/3 méně naměřených hodnot
Přestávám tomu věřit ....
Po restartu mi UNO s připojeným "sendvičem" LAN modulem tak z 1/3 nenajede ten LAN modul.
- dal jsem jeden k UNU, zapojil i Rasberry, dal měřit teplotu a odeslat každé 3mmin.
- každou hodinu jsem jim vypnul na 5 min elektřinu (takovým tím mechanickým časovačem)
- po 2 dnech Arduino tak o 1/3 méně naměřených hodnot
Přestávám tomu věřit ....
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
-
- Příspěvky: 579
- Registrován: 01 srp 2017, 19:29
- Reputation: 0
- Bydliště: Poprad
- Kontaktovat uživatele:
Re: PHP přestalo přijímat data z Arduina
Pri Uno mi nerobil ethernet shield problem. Ale vcera som pripojil megu a zhasla.. Problem bol, ze sa pinmi lan portu dotykalo napajacieho konektoru Arduina.
Skus medzi to dat nejaky papier.. Pri Une mi to sice nerobilo ale moze sa tam nieco skratovat.
Nemas na tom wiznete nejake piny, ktore by sa ti dotykali? Casto je to problem, ze sa nejaky ohne. Neprehrieva sa ti ten Wiznet? Skus dat na neho chladic z mosfetu ci to nepomoze.
Skus medzi to dat nejaky papier.. Pri Une mi to sice nerobilo ale moze sa tam nieco skratovat.
Nemas na tom wiznete nejake piny, ktore by sa ti dotykali? Casto je to problem, ze sa nejaky ohne. Neprehrieva sa ti ten Wiznet? Skus dat na neho chladic z mosfetu ci to nepomoze.
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: PHP přestalo přijímat data z Arduina
Tak tohle mne nenapadlo (opravdu se to skoro dotýká), nepřehřívá se, ale lipnul jsem na něj chladič.martinius96 píše: ↑01 led 2018, 15:40Pri Uno mi nerobil ethernet shield problem. Ale vcera som pripojil megu a zhasla.. Problem bol, ze sa pinmi lan portu dotykalo napajacieho konektoru Arduina.
Skus medzi to dat nejaky papier.. Pri Une mi to sice nerobilo ale moze sa tam nieco skratovat.
Nemas na tom wiznete nejake piny, ktore by sa ti dotykali? Casto je to problem, ze sa nejaky ohne. Neprehrieva sa ti ten Wiznet? Skus dat na neho chladic z mosfetu ci to nepomoze.
Na LAN Shield jsem zespoda po cele plos nalepil folii.
Uvidíme
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 21 hostů