2016-10-15 18 views
0

私はGoogleのfirebaseにデータを保存するのに役立つPHPスクリプトを持っています。Arduino mega + esp 8266リクエストを送信する

私は私のPHPのザ・スクリプトと入力データにアクセスするには、このURLを使用しています: arduino.byethost22.com/FirebaseTest.php?slot1_data=empty & slot2_dataを=私はそれを試してみましたが、それはすることができます

を占めていましたslot1_dataを空に、slot2_dataを占有して格納します。しかし、私はこのURLを送信するarduinoを使用する必要があります。私は現在このコードを使用しています

#include "SoftwareSerial.h" 
#define DEBUG false // turn debug message on or off in serial 
String server = "arduino.byethost22.com"; 
String uri = "/FirebaseTest.php?slot1_data=empty&slot2_data=occupied"; 

void setup() { 

    Serial3.begin(115200); //serial3 for esp8266 
    Serial.begin(115200); 
    sendData("AT+RST\r\n",2000,DEBUG); // reset module 
    sendData("AT+CWMODE=3\r\n",1000,DEBUG); // configure as access point 
    //sendData("AT+CWJAP=\"WifiName\",\"Password\"\r\n",3000,DEBUG); 
    //delay(20000); 
    sendData("AT+CIFSR\r\n",1000,DEBUG); // get ip address 
    sendData("AT+CIPMUX=0\r\n",1000,DEBUG); // configure for single connections 

} 

void loop() { 


Serial3.println("AT+CIPSTART=\"TCP\",\"" + server + "\",80");//start a TCP connection. 
if(Serial3.find("OK")) { 
Serial.println("TCP connection ready"); 
} 
delay(1000); 
String getRequest = "GET " + uri + " HTTP/1.1\r\n" + 
"Host: " + server + "\r\n\r\n"; 

String sendCmd = "AT+CIPSEND=";//determine the number of caracters to be sent. 
Serial3.print(sendCmd); 
Serial3.println(getRequest.length()); 
delay(500); 
if(Serial3.find(">")) { 
    Serial.println("Sending.."); 
} 
Serial3.print(getRequest); 
if(Serial3.find("SEND OK")) { 
    Serial.println("Packet sent"); 
} 
while (Serial3.available()) { 
String tmpResp = Serial3.readString(); 
Serial.println(tmpResp); 
} 

delay(20000); 
} 





String sendData(String command, const int timeout, boolean debug) 
{ 
String response = ""; 

Serial3.print(command); // send the read character to the esp8266 

long int time = millis(); 

while((time+timeout) > millis()) 
{ 
while(Serial3.available()) 
{ 

// The esp has data so display its output to the serial window 
char c = Serial3.read(); // read the next character. 
response+=c; 
} 
} 

//if(debug) 
//{ 
Serial.print(response); 
//} 

return response; 
} 

PHPスクリプトにgetリクエストを送信することに問題があるようです。

私もそれは私のブラウザでJavaScriptを有効にするために私に尋ねた

+IPD,1104:HTTP/1.1 200 OK 
Server: nginx 
Date: Sat, 15 Oct 2016 09:21:34 GMT 
Content-Type: text/html 
Content-Length: 875 
Connection: keep-alive 
Vary: Accept-Encoding 
Expires: Thu, 01 Jan 1970 00:00:01 GMT 
Cache-Control: no-cache 

<html><body><script type="text/javascript" src="/aes.js" ></script><script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("b5ebc3b806c39a4a7fc1e4cecb45feab");document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; location.href="http://arduino.byethost22.com/FirebaseTest.php?slot1_data=0&slot2_data=1&i=1";</script><noscript>This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support</noscript></body></html> 

を取得しています

私はfirebaseデータに変更されたシリアルモニターが、何もして送信されたパケットを取得していますが、私はArduinoのを使用しています、 どうすればいいのですか? Google Chromeで同じURLをキー入力すると、データを更新できます

どのようにこの問題を解決できますか?

答えて

0

私のコードは、最終的にデータをオンラインで送受信できます。私はbyethostの代わりに私のホストサーバーとして000webhostを使用するように変更し、データを更新することができます。

私は本当に理由を知っていませんが、私はbyethostがjavascriptをサポートしていないと思います。

+0

あなたのコードは、ホストではなくJavaScriptをサポートする必要があります。 –

関連する問題