[英]Get an Arduino and Android phone to communicate over the web
我正在編寫一個Android應用程序以通過網絡與Arduino通信。 Arduino通過以太網屏蔽運行Web服務器。 我正在附上我的代碼,但是我將在這里進行解釋,以便您了解我正在嘗試做的事情。
Android以http://192.168.1.148/?Lights=1
格式發送HTTP請求。 Arduino獲取請求,執行命令(在這種情況下,打開一些燈),然后通過簡單地發送字符串“ Lights = On”來響應Android設備。 然后,Android將更改按鈕的顏色,以通知用戶命令已成功執行。
Arduino正在獲取指令並執行它並發送響應,但是我的按鈕顏色沒有改變。 我知道Android設備正在獲取字符串,因為我添加了一條調試行以將按鈕上的文本更改為收到的響應。 Android設備的相關代碼為:
((Button) v).setText(sb.toString()); //This works and the button text changes to "Lights=On".
//Test response and update button
if(sb.toString()=="Lights=On"){
v.getBackground().setColorFilter(0xFFFFFF00, PorterDuff.Mode.MULTIPLY);
Drawable d = lightOff.getBackground();
lightOff.invalidateDrawable(d);
d.clearColorFilter();
}
Arduino代碼是:
if(s=="Lights"){
switch(client.read()){
case '0':
digitalWrite(LightPin,0);
client.print("Lights=Off");
//debug
Serial.println("Lights=Off");
break;
case '1':
digitalWrite(LightPin,1);
client.print("Lights=On");
Serial.println("Lights=On");
break;
}
}
如果您需要更多代碼來回答這個問題,請告訴我。
要簡單地更改按鈕的背景色:
String state = sb.toString().trim();
((Button) v).setText(state);
if(state.contains("On")){
v.setBackgroundColor(Color.DKGRAY);
}
else
{
v.setBackgroundColor(Color.MAGENTA);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.