I'm aware this question has probably been asked many times but I'm pulling my hair out.
I'm trying to get sensor data from an arduino to a MySQL server. I've checked the apache access log and the request is there. But it just isn't being inserted into the database. Manually adding the data using the browser works so the php code seems fine. I've allowed apache through the firewall and updated the permissions all to no avail. Code below:
Arduino Main Code:
#include "thingProperties.h"
#include <Arduino_MKRENV.h>
#include <WiFi.h>
WiFiClient client;
void setup() {
// Initialize serial and wait for port to open:
Serial.begin(9600);
// This delay gives the chance to wait for a Serial Monitor without blocking if none is found
delay(1500);
//Connect to WiFi network
int status = WL_IDLE_STATUS;
while (status != WL_CONNECTED){
Serial.print("Attempting to connect to SSID: ");
Serial.println(SSID);
status = WiFi.begin(SSID, PASS);
delay(10000);
}
Serial.println("This is connected.");
if (!ENV.begin()) {
Serial.println("Failed to initialize MKR ENV shield!");
while(1);
}
pinMode(2, INPUT);
}
void loop() {
relativeHumidity = int(ENV.readHumidity());
lightIntensity = (ENV.readIlluminance());
airPressure = int(ENV.readPressure(MILLIBAR));
temperature = int(ENV.readTemperature());
if(digitalRead(2) == LOW){
rain = 1;
}else if(digitalRead(2) == HIGH){
rain = 0;
}
Serial.println("httpRequest");
httpRequest();
delay(10000);
}
void httpRequest(){
// if there's a successful connection:
if (client.connect(SERVER, 80)) {
Serial.println("Connecting to server...");
// send the HTTP PUT request:
client.print("GET /weather_data.php?temp=");
Serial.println("GET /weather_data.php?);
client.print(temperature);
client.print("&pressure=");
client.print(airPressure);
client.print("&humidity=");
client.print(relativeHumidity);
client.print("&illumination=");
client.print(lightIntensity);
client.print("&rain=");
client.print(rain);
client.print(" ");
client.println("HTTP/1.1");
client.print(" Host: ");
client.println(SERVER);
client.println();
Serial.println("Added.");
} else {
Serial.println("Not connected.");
}
if (client.connected()){
client.stop();
}
}
thingProperties.h:
#include <WiFi.h>
#include <SPI.h>
const char THING_ID[] = "c942a18f-7696-4431-952c-76eaea3214ea";
const char SSID[] = SECRET_SSID; // Network SSID (name)
const char PASS[] = SECRET_PASS; // Network password (use for WPA, or use as key for WEP)
const char SERVER[] = SECRET_IP; // Server IP Address
int airPressure;
float lightIntensity;
float relativeHumidity;
bool rain;
float temperature;