簡體   English   中英

獲取Arduino和Android手機以通過網絡進行通信

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM