1
Arduino的我建立了一個系統,它可以跟使用ESP8266與火力的Arduino庫我的火力地堡的應用程序,ESP8266談話藉助串行通訊
一切完美的作品,但是我現在已經做了ESP8266談一個問題,並聽取了微控制器這是獨立的Atmega328P(在Arduino Uno中使用的)。
這裏是要點 1-不能使用softwareSerial,因爲所有的數字引腳都被佔用。 2-嘗試不同的Bauds有同樣的問題。 3-只有一次工作,Arduino能夠正確收聽串口。但無法通過ESP從串行讀取。
我絕對可以將字符串寫入到從ESP串行和Arduino的看,而是嘗試使用IF語句時,無法識別字符串,
所以,我想給println字符串的4倍,這是我得到的。
鎖門
鎖門
鎖門
鎖門
如果有人能解決這個問題,我發佈的代碼爲雙方的Arduino和ESP
ESP碼
void getData(){
FirebaseObject object = Firebase.get(EspMac);
String Door = object.getString("Door");
String Connection = object.getString("Connect");
if(Door == "Open Door"){
Serial.println(Door);
delay(100);
Firebase.set(path3,"");
Door = "";
}else if(Door == "Lock Door"){
Serial.println(Door);
delay(100);
Firebase.set(path3,"");
Door = "";
}else if (Connection == "Connect"){
Firebase.set(path5,"Received");
Connection = "";
}
}
ARDUINO代碼
do {
if(digitalRead(wipeB) == LOW)
servoDoorOpen();
while (Serial.available() > 0){
String Door = Serial.readString();
delay(100);
Serial.println(Door);
Serial.println(Door);
Serial.println(Door);
Serial.println(Door);
if (Door.equals("Open Door")){
//Serial.println("We open Doors");
servoDoorOpen();
Door = "";
}
else if (Door.equals("Lock Door")){
//Serial.println("We Lock Doors");
servoDoorLock();
Door = "";
}
}
謝謝。
你的佈線是什麼?您需要在ESP8266和Arduino之間使用邏輯電平轉換器,因爲它們分別是3.3V和5V器件。硬件串行(RX,TX)連接可以在電平轉換時正常工作,我自己以250,000波特的波特率完成了多次,完美無瑕。 –
我正在使用分壓器,它是兩個電阻之間的1k和第二個2.2k之間的Arduino TX和ESP8266 RX。我是否需要將電阻器更換爲其他東西? @MaximilianGerhardt – RamiRihawi