2017-07-22 1 views
-1

Je travaille actuellement pour mon projet final, mais j'ai un problème. Je veux envoyer mes données de capteur à la base de données MySQL en utilisant XAMPP et phpMyAdmin. J'ai utilisé NodeMCU pour la connexion WiFi. Mais je suis incapable d'envoyer la valeur.Sauvegarder les données de NodeMCU vers PHP MySQL

Voici le code complet de mon travail.

#include <ESP8266HTTPClient.h> 
#include <ESP8266WiFi.h> 
#include <WiFiEsp.h> 
#include <WiFiEspClient.h> 

// Sensor 1 
int sensorPin1 = 5; 
int ledPin1 = 13; 

// Sensor 2 
int sensorPin2 = 4; 
int ledPin2 = 12; 

// Sensor 3 
int sensorPin3 = 0; 
int ledPin3 = 14; 

//Wifi Connection 
const char* ssid = "xxxxxx"; 
const char* password = "xxxxx"; 
const char* web = "192.168.1.69"; 

int status = WL_IDLE_STATUS; 

WiFiServer server(80); 

//Initialize the Wifi werver library 
WiFiClient client; 


void setup(void) { 
    //start serial port 
    Serial.begin(9600); 

    pinMode(ledPin1, OUTPUT); 
    pinMode(ledPin2, OUTPUT); 
    pinMode(ledPin3, OUTPUT); 

    // Connect to WiFi network 
    Serial.println(); 
    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"); 
    // Start the server 
    server.begin(); 
    Serial.println("Server started"); 
    // Print the IP address 
    Serial.print("This is your ip address: "); 
    Serial.print(WiFi.localIP()); 

} 

void loop() { 
    // Check if a client has connected 
    WiFiClient client = server.available(); 
    if (!client) {  
    return; 
    } 
    // Wait until the client sends some data 
    Serial.println("new client"); 
    while(!client.available()){  
    delay(1); 
    } 
    // Read the first line of the request 
    String request = client.readStringUntil('\r'); 
    Serial.println(request); 
    client.flush(); // Match the request 
if (client.connect(web, 80)) { 
    int sensor = digitalRead(sensorPin1); 
    int sensor1 = digitalRead(sensorPin2); 
    int sensor2 = digitalRead(sensorPin3); 
    //connect to the server (your computer or web page) 
    Serial.println("--> connection ok\n"); 
    client.print("POST /smart_parking/sensor.php?"); //This 
    client.print("sensor="); 
    client.print(sensor); 
    client.print("&sensor1="); 
    client.print(sensor1); 
    client.print("&sensor2="); 
    client.print(sensor2); 
// client.print("sensor="); //This 
// client.print("100"); 
    client.println(" HTTP/1.1"); 
    client.print("Host: "); 
    client.println(web); 
    client.println("Connection: close"); //Part of the GET request telling the server that we are over transmitting the message 
    client.println();//empty line 
    client.println(); //empty line 
    client.stop(); //Closing connection to server 
    Serial.println("--> finished transmission\n"); 
    } 
    else { 
    // If Arduino can't connect to the server (your computer or web page) 
    Serial.println("--> connection failed\n"); 
    } 
} 
+0

Bon mot de passe .... – Farkie

Répondre

0

Espérons que ça aide! :)

#include <ESP8266HTTPClient.h> 
#include <ESP8266WiFi.h> 

// Sensor 1 
int sensorPin1 = 5; 
int ledPin1 = 13; 

// Sensor 2 
int sensorPin2 = 4; 
int ledPin2 = 12; 

// Sensor 3 
int sensorPin3 = 0; 
int ledPin3 = 14; 

void setup() { 

    pinMode(ledPin1, OUTPUT); 
    pinMode(ledPin2, OUTPUT); 
    pinMode(ledPin3, OUTPUT); 
    Serial.begin(115200);         //Serial connection 
    WiFi.begin("yourSSID", "yourPASS"); //WiFi connection 

    while (WiFi.status() != WL_CONNECTED) { //Wait for the WiFI connection completion 

    delay(500); 
    Serial.println("Waiting for connection"); 

    } 

} 

void loop() { 

if(WiFi.status()== WL_CONNECTED){ //Check WiFi connection status 

    HTTPClient http; //Declare object of class HTTPClient 
    int sensor = digitalRead(sensorPin1); 
    int sensor1 = digitalRead(sensorPin2); 
    int sensor2 = digitalRead(sensorPin3); 
    http.begin("http://192.168.1.69:80/smart_parking/sensor.php");  //Specify request destination 
    http.addHeader("Content-Type", "text/plain"); //Specify content-type header 
    String reqBody = "sensor=" + sensor + "&sensor1=" + sensor1 + "&sensor2=" + sensor2; 
    int httpCode = http.POST(reqBody); //Send the request 
    String payload = http.getString();     //Get the response payload 

    Serial.println(httpCode); //Print HTTP return code 
    Serial.println(payload); //Print request response payload 

    http.end(); //Close connection 

}else{ 

    Serial.println("Error in WiFi connection"); 

} 

    delay(30000); //Send a request every 30 seconds 

}