我正在编写一个Android应用程序,通过网络与我的Arduino进行通信。 Arduino正通过以太网shield运行一个Web服务器。我附上我的代码,但我会在这里解释它,以便您了解我正在尝试执行的操作。获取Arduino和Android手机通过网络进行通信
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;
}
}
请让我知道如果你需要更多的代码来回答这个问题。
单曲==“清香”'不会对你有什么期望。 – 2012-07-28 12:39:26
如果可能的话,你可以向我发送arduino和android的代码吗?我试图在android和arduino之间共享数据,但是我只能将数据发送到arduino而不从数据中获取数据。 – 2017-03-18 00:01:45