The code I am testing is as bellow:
Code: Select all
#include <WiFi.h>
#include <HTTPClient.h>
const char* ssid = "Skynet";
const char* password = "xaxaxa";
const char* host = "myhost.com";
const char* protStr = "http://";
int jd = 1234567;
char *area = "Area01";
char type = 'h';
int value = 100;
void setup(){
Serial.begin(115200);
// We start by connecting to a WiFi network
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void loop(){
String url;
if ((WiFi.status() == WL_CONNECTED)) { //Check the current connection status
url = protStr;
url += host;
url += "/esp32/insert.php?";
url += "jd=";
url += jd;
url += "&area=";
url += area;
url += "&type=";
url += 'h';
url += "&value=";
url += value;
value++;
// Serial.print("Requesting URL: ");
// Serial.println(url);
HTTPClient http;
http.begin(url); //Specify the URL
int httpCode = http.GET(); //Make the request
if (httpCode > 0) { //Check for the returning code
int payload = http.getString().toInt();
Serial.print(httpCode);
Serial.print(" - ");
Serial.print(payload);
Serial.print(" - ");
Serial.println(value);
} else {
Serial.print("Error on HTTP request");
Serial.print(" - ");
Serial.println(value);
}
http.end(); //Free the resources
}
delay(2000);
}
200 - 0 - 232
Error on HTTP request - 233
200 - 0 - 234
200 - 0 - 235
200 - 0 - 236
200 - 0 - 237
200 - 0 - 238
200 - 0 - 239
200 - 0 - 240
200 - 0 - 241
200 - 0 - 242
200 - 0 - 243
200 - 0 - 244
200 - 0 - 245
200 - 0 - 246
200 - 0 - 247
Error on HTTP request - 248
200 - 0 - 249
Although records reported on error as above (233 and 248) they have been recorded at the Mysql table.
The bigger problem is that sometimes, although it reports OK (200 - 0 - XXX) the record is missing at the mysql table.
The PHP code involved is as follow:
Code: Select all
<?php
try{
$HOST= "mysqlcluster7.registeredsite.com";
$DB = "esp32";
$USER = "xxxxxxxxx";
$PASS = "xxxxxxxxx";
$PDO = new PDO("mysql:host=" . $HOST . ";dbname=" . $DB . ";charset=utf8", $USER, $PASS);
} catch (PDOexception $erro){
echo "Connection Error: " . $erro->getMessage();
}
?>
Code: Select all
<?php
include('connection.php');
$jd = $_GET['jd'];
$area = $_GET['area'];
$type = $_GET['type'];
$value = $_GET['value'];
$sql = "INSERT INTO activity (jd,area,type,value) VALUES (:jd,:area,:type,:value)";
$stmt = $PDO->prepare($sql);
$stmt->bindParam(':jd',$jd);
$stmt->bindParam(':area',$area);
$stmt->bindParam(':type',$type);
$stmt->bindParam(':value',$value);
if($stmt->execute()) {
echo "Sucessful SQL Insertion";
} else {
echo "SQL Insert Failed.";
}
?>
Assistance welcome.
Thanks
Paulo