2017-02-20 91 views
-1

我有一个Arduino和一个Android应用程序,它们通过以太网相互通信。 arduino显示了一个非常简单的网页,只有一些值和一个ID,如下所示。通过以太网进行Android Arduino通信的“最佳”方式

$1$201 //Value 1 ($1$): Temperature 20.1 degrees 
$2$66 //Value 1 ($2$): Humidity 66% 
$2$1 //Value 2 ($2$): Heating relay is on (1) 
etc. up to 50 values 

的Android应用程序将使用HTTP GET请求读取该网页中的数据作为一个字符串,筛选数据并显示定制屏幕上的值。也可以将一些数据发送到arduino来更改某些设置或切换继电器或其他东西。你可以看到是一种温控器。到现在为止还挺好。

“问题”是我需要使用按钮手动更新数据。问题是:我如何自动更新我的值?

我想每隔几秒发送一次http请求(轮询),但我不确定这是否是因为它似乎使用大量数据而要走的路。

谁能告诉我什么是一个好的解决方案?

问候,

巴斯

回答

0

'最好' 在这里选择将取决于你的目标。轮询很容易在客户端(android)上实现。您可以尝试最佳的轮询时间,具体取决于您的数据需要与您希望应用程序使用的数据量进行比较。或者,您可以找到或实现一个http socket服务器,如ArduinoWebsocketServer,请记住,Arduino中的处理器可能会或可能不需要运行此功能。

+0

谢谢你的回答。我的目标是在我的应用程序打开时每隔5秒更新一次数据。此时手动更新每天最多50次,而且我的移动数据使用量每月超过10MB。即使原始数据小于0.5 kb ...我也有投票的感觉可能不是要走的路。顺便说一下...... http请求使用这么多的数据或者会出现其他错误,这很正常吗?问候 – Bass82

+0

你可以发布你的arduino提供的html响应,所以我们可以看看优化?也许并不是让arduino提供整个网页,它可以提供一个小的json blob,让客户端渲染它。 – aylr