Arduino en php
8 berichten
• Pagina 1 van 1
Arduino en php
Wie kan mij helpen met volgende probleem.
Ik ben een test aan opbouwen om info komende van een Arduino naar een MySQL te sturen en ook in realtime weer te geven in een webpagina.
Dit is het ino bestand:
Alles werkt hier zoals het hoort (voorlopig gebruik ik 2 random variabelen)
dit is de string die naar de webserver wordt doorgestuurd *** GET /rw.php?Dagrw=1714&test=19 ****
Het PHP bestand ziet er zo uit:
Hier zit ergens een probleem.
Als ik de commentaar voor //$query=mysqli_query($conn,$sql); weghaal dan komen de waarden voor $DagRW en $test in de database. Dus heel dit geheel werkt.
Wat er echter niet werkt zijn de lijnen:
**** echo "DagRW:". gettype($DagRW)." Waarde: ".$DagRW."<br>";
**** echo "xx:". gettype($xx)."waarde: ". $xx. "<br>";
Hier is het resultaat:
*** DagRW:NULL Waarde:
*** xx:NULLwaarde:
*** INSERT INTO regenwater (Dagrw,test) VALUES (,)
Vraag en probleem:
Waarom komen de waarden wel in de database maar kan ik ze niet op het scherm laten zien?
Wie kan mij helpen
Dank U
Herman
Ik ben een test aan opbouwen om info komende van een Arduino naar een MySQL te sturen en ook in realtime weer te geven in een webpagina.
Dit is het ino bestand:
- Code: Alles selecteren
#include <Ethernet.h>
/*** Ethernet gegevens *****/
unsigned int localPort = 8888; // local port to listen for UDP packets
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0x43 };
IPAddress dnServer(192, 168, 0, 1);
IPAddress gateway(192, 168, 0, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress ip(192, 168, 0, 67);
EthernetClient client;
byte server[] = {192, 168, 0, 135}; // Rasberry Mysql
/*** Ethernet gegevens *****/
int daginhoud;
int test;
void setup()
{
Serial.begin(115200);
Ethernet.begin(mac, ip, dnServer, gateway, subnet);
}
void loop()
{
delay(1000);
daginhoud=random(250,4500);
test=random(10,100);
doorsturen();
}
void doorsturen(){
//Serial.println("connecting...");
client.connect(server, 80);
if (client.connected())
{
Serial.println("Connected");
String data="GET /rw.php?Dagrw="+String(daginhoud)+"&test="+String(test);
client.print(data);
client.println(" HTTP/1.1");
client.println("Host: 192.168.0.135");
client.println();
Serial.println(data);
}
}
Alles werkt hier zoals het hoort (voorlopig gebruik ik 2 random variabelen)
dit is de string die naar de webserver wordt doorgestuurd *** GET /rw.php?Dagrw=1714&test=19 ****
Het PHP bestand ziet er zo uit:
- Code: Alles selecteren
<!DOCTYPE HTML>
<html>
<head>
<title>rw</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="description" content="Description" />
<link rel="stylesheet" href="Stylesheet Location" type="text/css" />
</head>
<body>
<header> </header>
<h1>rw</h1>
<?PHP
include('conec2.php');
$DagRW= $_GET["Dagrw"];
$xx=$_GET["test"];
echo "DagRW:". gettype($DagRW)." Waarde: ".$DagRW."<br>";
echo "xx:". gettype($xx)."waarde: ". $xx. "<br>";
$sql = "INSERT INTO regenwater (Dagrw,test) VALUES ($DagRW,$xx)";
echo $sql; // INSERT INTO regenwater (Dagrw) VALUES ()
//$query=mysqli_query($conn,$sql);
?>
<footer> </footer>
</body>
</html>
Hier zit ergens een probleem.
Als ik de commentaar voor //$query=mysqli_query($conn,$sql); weghaal dan komen de waarden voor $DagRW en $test in de database. Dus heel dit geheel werkt.
Wat er echter niet werkt zijn de lijnen:
**** echo "DagRW:". gettype($DagRW)." Waarde: ".$DagRW."<br>";
**** echo "xx:". gettype($xx)."waarde: ". $xx. "<br>";
Hier is het resultaat:
*** DagRW:NULL Waarde:
*** xx:NULLwaarde:
*** INSERT INTO regenwater (Dagrw,test) VALUES (,)
Vraag en probleem:
Waarom komen de waarden wel in de database maar kan ik ze niet op het scherm laten zien?
Wie kan mij helpen
Dank U
Herman
Advertisement
- FonzieBonzo
- Berichten: 118
- Geregistreerd: 01 Okt 2015, 11:54
- Woonplaats: Castricum
Re: Arduino en php
Volgens mij komen de waardes juist wel op het scherm maar niet in de database
php code
Gr,
Fonzie
php code
$sql = "INSERT INTO regenwater (Dagrw,test) VALUES ($DagRW,$xx)";
// moet zijn (volgens mij):
$sql = "INSERT INTO regenwater (Dagrw,test) VALUES ('".$DagRW."','".$xx."')";
Gr,
Fonzie
Re: Arduino en php
Dank voor de reactie FonzieBonzo, maar de waarden komen wel degelijk in de database. (kan ik controleren via Phpmyadmin) Elke seconde andere waarden omdat Arduino elke seconde een random waarde genereert (doe ik nu in de testfase)
- FonzieBonzo
- Berichten: 118
- Geregistreerd: 01 Okt 2015, 11:54
- Woonplaats: Castricum
Re: Arduino en php
Hallo Herman,
Ik kan mij niet voorstellen dat de query doet wat je wilt omdat je een string in de database wilt plaatsen en dan dient de waarde tussen enkele ' te staan.
Ook geef je niet de inhoud van de variabelen $DagRW en $xx aan de query mee maar geeft $DagRW $xx als tekst mee.
Wat je kunt doen is :
php code
Dan krijg je in ieder geval de foutmelding te zien als de query mislukt, nu krijg je waarschijnlijk een blanco scherm.
Gr,
Fonzie
Ik kan mij niet voorstellen dat de query doet wat je wilt omdat je een string in de database wilt plaatsen en dan dient de waarde tussen enkele ' te staan.
Ook geef je niet de inhoud van de variabelen $DagRW en $xx aan de query mee maar geeft $DagRW $xx als tekst mee.
Wat je kunt doen is :
php code
$result = mysqli_query($conn,$sql) or die(mysqli_error($connection));
Dan krijg je in ieder geval de foutmelding te zien als de query mislukt, nu krijg je waarschijnlijk een blanco scherm.
Gr,
Fonzie
Re: Arduino en php
Ik ga die code wel eens proberen, maar toch komt de data in MySQL.
Ik weet intussen wat het probleem is, maar ken de oplossing niet. De Arduino roept een php bestand op, op de server. Het is de server(192.168.0.135) die de info in MySQL zet. Ik roep dezelfde php op via een cliënt,( = ander op adres) maar dat is voor de server wel een andere sessie en daar zitten die variabelen niet in.
Hoe ik dit moet oplossen is mij 'og niet duidelijk maar ik dat het ergens via een Ajax push moet gebeuren die ik vanop de Arduino meestuur.
Dus, nog werk aan de winkel om het uit te zoeken.
Herman
Ik weet intussen wat het probleem is, maar ken de oplossing niet. De Arduino roept een php bestand op, op de server. Het is de server(192.168.0.135) die de info in MySQL zet. Ik roep dezelfde php op via een cliënt,( = ander op adres) maar dat is voor de server wel een andere sessie en daar zitten die variabelen niet in.
Hoe ik dit moet oplossen is mij 'og niet duidelijk maar ik dat het ergens via een Ajax push moet gebeuren die ik vanop de Arduino meestuur.
Dus, nog werk aan de winkel om het uit te zoeken.
Herman
- FonzieBonzo
- Berichten: 118
- Geregistreerd: 01 Okt 2015, 11:54
- Woonplaats: Castricum
Re: Arduino en php
Hallo Herman,
Als je onderstaande code in je mainloop zet, dan krijg je in je arduino serialmonitor de reactie /eventuele fout van je webserver te zien :
cpp code
ps. Mocht je je Rasberry services ooit voor het grote boze internet beschikbaar maken dan dien je nog wel je huidje .php code aan te passen omdat deze kwetsbaar is voor
SQL-injection https://portswigger.net/web-security/sql-injection
Gr,
Fonzie
Als je onderstaande code in je mainloop zet, dan krijg je in je arduino serialmonitor de reactie /eventuele fout van je webserver te zien :
cpp code
if (client.available()) {
char c = client.read();
Serial.print(c);
}
ps. Mocht je je Rasberry services ooit voor het grote boze internet beschikbaar maken dan dien je nog wel je huidje .php code aan te passen omdat deze kwetsbaar is voor
SQL-injection https://portswigger.net/web-security/sql-injection
Gr,
Fonzie
Re: Arduino en php
hv0805 schreef:Ik ga die code wel eens proberen, maar toch komt de data in MySQL.
Ik weet intussen wat het probleem is, maar ken de oplossing niet. De Arduino roept een php bestand op, op de server. Het is de server(192.168.0.135) die de info in MySQL zet. Ik roep dezelfde php op via een cliënt,( = ander op adres) maar dat is voor de server wel een andere sessie en daar zitten die variabelen niet in.
Hoe ik dit moet oplossen is mij 'og niet duidelijk maar ik dat het ergens via een Ajax push moet gebeuren die ik vanop de Arduino meestuur.
Dus, nog werk aan de winkel om het uit te zoeken.
Herman
Ik meende een oplossing voor je te hebben, totdat ik je laatste bericht las.
Dan komt het mij voor dat je niet het hele probleem omschreven hebt en sommige zaken hebt "genormalised", bijvoorbeeld: "include('conec2.php');"
Dit is een forum, geen orakel.
Re: Arduino en php
ctunes schreef:hv0805 schreef: "include('conec2.php');"
Wellicht zit daar de fout?
Daar weten wij niets van.
8 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 2 gasten