Как Arduino Mega2560 + Wifi Shield 2.0 (seeedstudio) может получать данные из базы данных на сервере xampp на моем компьютере

Я пытаюсь подключить свою Arduino Mega через Wi-Fi к моему серверу xampp.
Моя главная цель — получить значение в моей базе данных и сохранить его в переменной в коде Arduino. С помощью этой новой переменной я смогу контролировать остальную часть программы … поэтому мне нужна ваша помощь. Может кто-нибудь дать мне совет?

Я уже пробовал все, что нашел в интернете, но это не помогло.

Я думаю, что простой способ — отправить запрос GET на сервер и прочитать его ответ … но по какой-то причине я не могу отправить запрос GET …

Я тестирую его непосредственно в браузере, и значение отображается, поэтому я думаю, что на стороне сервера все в порядке.

Вот мой код Arduino:

#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);
}
}
}

И вот мой код PHP:

<?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;
}
?>

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]