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");
}
}
}
は、シリアルモニターのスクリーンショットです:
は、 'server'と' uri'変数のポイントは何ですか? –
文字列を正しく連結しなかったと思ったので、私はそれらを使用しませんでした。しかし、それは私の質問に答えることはありません – DJoyekurun