Waarde in database opslaan (localhost) d.m.v. Wifishield

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 2
Geregistreerd: 16 Sep 2016, 10:04

Waarde in database opslaan (localhost) d.m.v. Wifishield

Berichtdoor BarryV » 08 Feb 2018, 13:10

Voor een weerstationproject wil ik waardes opslaan in een mysql database die op mijn pc draait door middel van een Arduino Uno met een origineel Arduino WiFi shield. Een soortgelijke project heb ik gemaakt met een Ethernet shield en dat werkt perfect. Echter bij het WiFi shield krijg ik geen data in mijn database.

De connectie opzetten met de database lukt (getest in browser en via een echo bericht in de serial monitor)
Het draaien van het php-bestand dat de waardes moet toevoegen werkt (getest in browser, data wordt weggeschreven in database)
Het php-bestand dat de waardes moet toevoegen wordt ook gestart door de Arduino maar er verschijnt geen data in mijn database.

Kan iemand eens naar mijn code kijken en mij een handreiking bieden. Ik heb al heel wat google uurtjes er op zitten maar kan geen oorzaak of oplossing vinden.

Lavast bedankt voor jullie hulp.

cpp code
#include <WiFi.h>
#include <DS3231.h>

// Init the DS3231 using the hardware interface
DS3231 rtc(SDA, SCL);

char ssid[] = "SSID"; // your network SSID (name)
char pass[] = "PASS"; // your network password
int keyIndex = 0; // your network key Index number (needed only for WEP)

int status = WL_IDLE_STATUS;

// Initialize the Wifi client library
WiFiClient client;

// server address:
//char server[] = "192.168.178.94";
IPAddress server(192,168,178,94);

unsigned long lastConnectionTime = 0; // last time you connected to the server, in milliseconds
const unsigned long postingInterval = 10L * 1000L; // delay between updates, in milliseconds

void setup() {
//Initialize serial and wait for port to open:
Serial.begin(9600);

while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}

// check for the presence of the shield:
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println("WiFi shield not present");
// don't continue:
while (true);
}

String fv = WiFi.firmwareVersion();
if (fv != "1.1.0") {
Serial.println("Please upgrade the firmware");
}

// attempt to connect to Wifi network:
while (status != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
// Connect to WPA/WPA2 network. Change this line if using open or WEP network:
status = WiFi.begin(ssid, pass);

// wait 10 seconds for connection:
delay(10000);

}
// you're connected now, so print out the status:
printWifiStatus();


// Initialize the rtc object
rtc.begin();

}

void loop() {
// if there's incoming data from the net connection.
// send it out the serial port. This is for debugging
// purposes only:
while (client.available()) {
char c = client.read();
Serial.write(c);
}

// if ten seconds have passed since your last connection,
// then connect again and send data:
if (millis() - lastConnectionTime > postingInterval) {
httpRequest();
}

}

// this method makes a HTTP connection to the server:
void httpRequest() {
// close any connection before send a new request.
// This will free the socket on the WiFi shield
client.stop();

// if there's a successful connection:
if (client.connect(server, 80)) {
Serial.println("connecting...");
Serial.print(rtc.getDOWStr()); // Send Day-of-Week
// send the HTTP PUT request:
client.println("GET /add_wifidata.php?");
client.println("Wifidata1=");
client.println("1");
client.print("&&");
client.print("Wifidata2=");
client.println("2");
client.print("&&");
client.print("Weekdag=");
client.println(rtc.getDOWStr()); // Send Day-of-Week
client.println(" HTTP//1.1");
client.println("Host: 192.168.178.94");
client.println("Connection: close");
client.println();

// note the time that the connection was made:
lastConnectionTime = millis();
} else {
// if you couldn't make a connection:
Serial.println("connection failed");
}
}


void printWifiStatus() {
// print the SSID of the network you're attached to:
Serial.print("SSID: ");
Serial.println(WiFi.SSID());

// print your WiFi shield's IP address:
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);

// print the received signal strength:
long rssi = WiFi.RSSI();
Serial.print("signal strength (RSSI):");
Serial.print(rssi);
Serial.println(" dBm");
}



[php-bestand: add_wifidata.php]
<?php
// Connect to MySQL
include("dbconnect.php");

// Prepare the SQL statement
$sql = "INSERT INTO test.wifidata (Wifidata1,Wifidata2,Weekdag) VALUES ('".$_GET["Wifidata1"]."', '".$_GET["Wifidata2"]."', '".$_GET["Weekdag"]."')";
echo "data " . $_GET["Wifidata1"] . "\n";
echo "data " . $_GET["Wifidata2"] . "\n";

if(mysqli_query($link, $sql)){

echo "Records inserted successfully in database test en tabel wifidata. \n\n";

} else{

echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);

}



// Close connection

mysqli_close($link);

?>
[/php-bestand: add_wifidata.php]

Advertisement

Gebruikers-avatar
Berichten: 4890
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Waarde in database opslaan (localhost) d.m.v. Wifishield

Berichtdoor nicoverduin » 08 Feb 2018, 14:43

Zit je GET wel goed in elkaar? Moeten die parameters niet op dezelfde regel als jouw GET ?Nu spring je elke keer naar een nieuwe regel...
Docent HBO Software Engineering, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 2
Geregistreerd: 16 Sep 2016, 10:04

Re: Waarde in database opslaan (localhost) d.m.v. Wifishield

Berichtdoor BarryV » 08 Feb 2018, 15:46

Beste Nico,

In de sketch voor het ethernet shield werkt het prima. ik heb geen idee hoe ik die values (sensor reading) achter de GET moet opnemen in de code.

grt

Gebruikers-avatar
Berichten: 4890
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Waarde in database opslaan (localhost) d.m.v. Wifishield

Berichtdoor nicoverduin » 08 Feb 2018, 17:54

W3school.com en dan html en GET zoeken
Docent HBO Software Engineering, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Bing [Bot], Google [Bot] en 3 gasten