2016-10-15 2 views
0

나는 Google firebase에 데이터를 저장하는 데 도움이되는 PHP 스크립트를 가지고 있습니다. 내가 그것을 시도하고 할 수 = arduino.byethost22.com/FirebaseTest.php?slot1_data=empty & slot2_dataArduino mega + esp 8266 보내기 요청 받기

를 점령 :

내가 내 PHP를 scipt 입력을 데이터에 액세스하려면이 URL을 사용하고 있습니다 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 요청을 보내는 것이 문제가있는 것처럼 보입니다.

나는 또한 그것은 내 브라우저에서 자바 스크립트를 사용하라고

+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> 

을 얻고있다

나는 중포 기지 데이터 변경 시리얼 모니터 아무것도하지만, 전송 패킷을 받고 있어요,하지만 난 아두 이노를 사용하고 , 어떻게해야합니까? Google 크롬에서 동일한 uri를 입력하면 데이터를 업데이트 할 수 있습니다.

이 문제를 어떻게 해결할 수 있습니까?

답변

0

내 코드가 마침내 작동하여 온라인으로 데이터를 보낼 수 있습니다. 내가 byethost 대신 내 호스트 서버로 000webhost를 사용하도록 변경하고 데이터를 업데이트 할 수 있습니다.

나는 정말로 이유를 알지 못한다. 그러나 나는 byethost가 자바 스크립트를 지원하지 않는다고 생각한다.

+0

코드는 호스트가 아닌 JavaScript를 지원해야합니다. –