2017-12-12 11 views
0

私はESP8266を使用してArduino UnoからPHP経由でFirebaseにデータを送信しようとしています。 Firebase DBとPHPの間の接続は、ブラウザから手動でデータを送信できるので、問題はないようです。しかし、ArduinoからPHPにデータを送信することはできません。ここでESP8266 GET要求が機能しない

はArduinoのコードです:ここで

#include "SoftwareSerial.h" 

String ssid ="xxxx"; 
String password="xxxx"; 

String server = "firstfirebase.000webhostapp.com"; // www.example.com 
String uri = "/firebaseTest.php";// our example is /esppost.php 

SoftwareSerial esp(2, 3);// RX, TX 

void setup() { 
    esp.begin(9600); 
    Serial.begin(9600); 
    reset(); 
    connectWifi(); 
} 

void reset() { 
    esp.println("AT+RST"); 
    delay(1000); 
    if(esp.find("OK")) 
    Serial.println("Module Reset"); 
} 

void connectWifi() { 
    String cmd = "AT+CWJAP=\"" +ssid+"\",\"" + password + "\""; 
    esp.println(cmd); 
    delay(4000); 
    if(esp.find("OK")) { 
    Serial.println("Connected!"); 
    } else { 
    connectWifi(); 
    Serial.println("Cannot connect to wifi"); 
    } 
} 

void loop() { 
    httppost(); 
    delay(1000); 
} 

void httppost() { 
    esp.println("AT+CIPSTART=\"TCP\",\"firstfirebase.000webhostapp.com\",80");//start a TCP connection. 
    if(esp.find("OK")) { 
    Serial.println("TCP connection ready"); 
    } 
    delay(1000); 
    String getRequest = "GET firebaseTest.php?arduino_data=56.00 HTTP/1.1\r\nHost: firstfirebase.000webhostapp.com\r\n\r\n"; 
    String sendCmd = "AT+CIPSEND";//determine the number of caracters to be sent. 
    esp.print(sendCmd); 
    esp.println(getRequest.length()); 
    delay(500); 
    if(esp.find(">")) { 
    Serial.println("Sending.."); 
    esp.print(getRequest+"\r\n\r\n"); 
    delay(500); 
    esp.println("AT+CIPSTATUS"); 
    if(esp.find("SEND OK")) { 
     Serial.println("Packet sent"); 
     while (esp.available()) { 
     String tmpResp = esp.readString(); 
     Serial.println(tmpResp); 
     } 
     // close the connection 
     esp.println("AT+CIPCLOSE"); 
    } 
    } 
} 

は、シリアルモニターのスクリーンショットです:

+0

は、 'server'と' uri'変数のポイントは何ですか? –

+0

文字列を正しく連結しなかったと思ったので、私はそれらを使用しませんでした。しかし、それは私の質問に答えることはありません – DJoyekurun

答えて

1

あなたのパスの前に/が欠落しています。

それは次のようになります。あなたがそれらを使用していない場合

String getRequest = "GET /firebaseTest.php?arduino_data=56.00 HTTP/1.1\r\nHost: firstfirebase.000webhostapp.com\r\n\r\n"; 
関連する問題