I'm trying to connect my Arduino Mega via Wifi to my XAMPP server. My main objective is get a value from my database and store it on a variable in Arduino code. With this new variable I'll be able to control the rest of the program... So I need your help. Can someone give me advice?
I already tried every thing that I found on the internet but it just doesn't work.
I think that the simple way is to send a GET request to the server and read its response... But for some reason I can't send a GET request through...
I tested it on the browser directly and the value shows up, so I think that the server side is all right.
Here is my Arduino code:
#include <Arduino.h>
#include <SoftwareSerial.h>
#include "WiFly.h"
#include "HTTPClient.h"
#define SSID "mySSID"
#define KEY "myKEY"
#define AUTH WIFLY_AUTH_WPA2_PSK
#define HTTP_GET_URL "http://192.168.1.80/xampp/training/send_data_db.php/?temp=0"
// Pins' connection
// Arduino WiFly
// 2 <----> TX
// 3 <----> RX
SoftwareSerial uart(10, 11);
WiFly wifly(uart);
HTTPClient http;
char get;
void setup() {
Serial.begin(9600);
Serial.println("------- WIFLY HTTP --------");
uart.begin(9600); // WiFly UART Baud Rate: 9600
// Wait WiFly to init
// delay(3000);
// check if WiFly is associated with AP(SSID)
if (!wifly.isAssociated(SSID)) {
while (!wifly.join(SSID, KEY, AUTH)) {
Serial.println("Failed to join " SSID);
Serial.println("Wait 0.1 second and try again...");
delay(100);
}
wifly.save(); // save configuration,
}
Serial.println("\r\nTry to get url - " HTTP_GET_URL);
Serial.println("------------------------------");
while (http.get(HTTP_GET_URL, 10000) < 0) {
}
while (wifly.receive((uint8_t *)&get, 1, 1000) == 1) {
Serial.print(get);
}
if (wifly.commandMode()) {
Serial.println("\r\n\r\nEnter command mode. Send \"exit\"(with \\r) to exit command mode");
}
}
void loop() {
int c;
while (wifly.available()) {
c = wifly.read();
if (c > 0) {
Serial.write((char)c);
}
}
while (Serial.available()) {
c = Serial.read();
if (c >= 0) {
wifly.write((char)c);
}
}
}
And here is my PHP code:
<? php
include("./connection/database_connect.php");
include("./top_table.php");
if ((isset($_SESSION["ID"])) AND (isset($_GET["temp"]))) {
$id = $_SESSION["ID"];
$sql = "SELECT temp FROM perfil, client WHERE perfil.ID ='$id'";
$consult = mysqli_query($connect, $sql);
$result = mysqli_num_rows($consult);
if (($result == 1)) {
$person_data = mysqli_fetch_array($consult, MYSQLI_ASSOC);
$temp = $person_data["temp"];
header("HTTP/1.1" . " " . 200 . "OK");
header("Content-Type: text/html; charset=UTF-8");
header("Content-Length: 1112");
header("Connection: close");
header("/r/n");
echo $temp;
} else {
//se user dosen't exist on data base
header("Location: http://192.168.1.80/xampp/training/login.php");
exit;
}
} else {
header("Location: http://192.168.1.80/xampp/training/login.php");
exit;
}
?>
php/?temp
- That looks "iffy" to me. Should that/
be in there?$_SESSION
either needs cookies or aPHPSESSID=....
parameter, neither of which you will likely have.