【问题标题】:"Best" way for Android Arduino communication via ethernet通过以太网进行 Android Arduino 通信的“最佳”方式
【发布时间】:2017-02-20 13:25:58
【问题描述】:

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

$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 获取请求从该网页读取数据作为字符串,过滤数据并在自定义屏幕上显示值。也可以将一些数据发送到 arduino 以更改某些设置或切换继电器或其他东西。你可以看到它是某种恒温器。到目前为止一切顺利。

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

我想每隔几秒发送一个 httpRequest(轮询),但我不确定这是否可行,因为它似乎使用了大量数据。

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

问候,

基础

【问题讨论】:

    标签: android arduino communication


    【解决方案1】:

    此处的“最佳”选择取决于您的目标。轮询很容易在客户端(android)端实现。您可以试验最佳轮询时间,具体取决于需要将您的数据与您希望应用程序使用的数据量进行比较的“新鲜程度”。或者,您可以找到或实现一个 http 套接字服务器,例如 ArduinoWebsocketServer,请记住,您的 Arduino 中的处理器可能有也可能没有运行它所需的电源。

    【讨论】:

    • 感谢您的回答。我的目标是在我的应用打开时每 5 秒更新一次数据。这时候手动更新一天最多50次,我的手机流量一个月用10MB多。即使原始数据小于 0.5 kb ......我觉得轮询可能不是要走的路。顺便说一句……http请求使用这么多数据是正常的还是有其他问题?问候
    • 您能否发布您的 arduino 提供的 html 响应,以便我们查看优化?也许与其让 arduino 提供整个网页,不如提供一个小的 json blob 并让客户端呈现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多