Odesílání hodnot do databáze MySQL
Napsal: 21 pro 2017, 13:30
Dobrý den, mám problém se zapsáním hodnot do databáze. Můj projekt nefunguje, a po úpěnlivém zkoumání jsem se rozhodl prostě vyzkoušet, ověřený projekt postnutý od Arduina, ale chyba je stejná. Používám lokální server WAMPSERVER
Php skript funguje jak má, pokud ho zadám do adresového řádku prohlížeče s hodnotou co chci uložit, bez problémů se uloží.
Arduino po nahrani programu se na lokální server připojí, zobrazil jsem si i hodnoty na serial monitoru, zobratí se připojení OK a hodnoty, které jsou v pořádku. Když je zase opět zadám fyzicky do adresového řádku prohlížeče, zapíší se. Proč se mě ale nezapisují přes arduino ?
PHP skript
Php skript funguje jak má, pokud ho zadám do adresového řádku prohlížeče s hodnotou co chci uložit, bez problémů se uloží.
Arduino po nahrani programu se na lokální server připojí, zobrazil jsem si i hodnoty na serial monitoru, zobratí se připojení OK a hodnoty, které jsou v pořádku. Když je zase opět zadám fyzicky do adresového řádku prohlížeče, zapíší se. Proč se mě ale nezapisují přes arduino ?
Kód: Vybrat vše
#include <Ethernet.h> //Použité knihovny
#include <SPI.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEB }; //MAC adresa Arduina (posledni pismeno D)
IPAddress ip(192,168,6,130);
IPAddress server(192,168,6,10);
boolean reading = false; //Funkční podmínka
String data;
int a = A0; //Měřící piny A/D převodníku
int b = A1;
int c = A2;
int d = A3;
float av = 0; //Proměnné pro výpočet napětí
double bv = 0;
double cv = 0;
double dv = 0;
double ai = 0; //Proměnné pro výpočet napětí
double bi = 0;
int i = 255; //Počáteční hodnota PWM
int stav = 1; //Proměnná pro tlačítko MIN/MAX
float pwm = 0; //Proměnná pro zobrazení hodnoty PWM
EthernetClient client; //Konstanta pro prohlížeč
void setup()
{
pinMode(9, OUTPUT); //PWM kanál
Serial.begin(9600); //NAstavění sériového kanálu (nepoužit)
Ethernet.begin(mac, ip); //Nastavení MAC a IP adresy
}
void loop()
{
analogWrite(9, i);
if (client.connect(server, 80)) { // REPLACE WITH YOUR SERVER ADDRESS
delay(1000);
Serial.println("OK");
Serial.println("");
client.print("GET /log_optoclen.php?");
Serial.print("GET /log_optoclen.php?");
client.print("pwm=");
Serial.print("pwm=");
client.print(pwm);
Serial.println(pwm);
client.println( " HTTP/1.1");
client.println("Host: 192.168.6.10");
//client.println( "Content-Type: application/x-www-form-urlencoded" );
client.println( "Connection: close" );
client.println();
client.println();
client.stop();
}
if (client.connected()) {
}
delay(300); // WAIT FIVE MINUTES BEFORE SENDING AGAIN
Kód: Vybrat vše
<?php
$server = "localhost";
$user = "root";
$pass = "";
$db = "bakalarka";
$mysqli = mysqli_connect($server, $user, $pass, $db); //připojení k MySQL
if($mysqli and isset($_GET['pwm'])){ //pokud GET obsahuje 'hodnota', pokračuj
$pwm = sanitize($_GET['pwm']);
$sql = "INSERT INTO optoclen (pwm) VALUES (".$_GET[pwm].")"; //sestavení SQL
$doSql = $mysqli->query($sql); //vykonání SQL
if($doSql){ //test úspěchu
echo 'Zápis byl úspěšný';
}
else{
echo 'Něco se nepovedlo';
}
}
else{
echo "Neco je špatně";
}
function sanitize($input){ //ořízne řetězec
$input = htmlspecialchars($input);
$input = htmlentities($input);
$input = strip_tags($input);
$input = trim($input);
return $input;
}
?>
<?php