向Arduino发送命令的最佳策略:发送UDP数据包或从动态网页获取配置


Best strategy for sending commands to Arduino: Send UDP packet OR get configuration from a dynamic web page?

我想将一些配置参数发送到Arduino以太网板,我想出了两个潜在的解决方案。如果您能就使用其中任何一个提出您的想法,我将不胜感激。

第一个(显而易见的)选项是将包含配置的UDP命令发送到Arduino。但是,这需要对大多数路由器进行重新配置,以启用端口转发或禁用防火墙。

所以我的第二个选择是通过访问来自 Ardino 的网页来获取配置,该网页将包含所有必需的信息(这将使用服务器上的 PHP 脚本进行更新)。此页面将每分钟左右检查一次,如果找到新配置,请更新配置。每分钟通信的要求不是问题,因为另一个方向也有流量(我的Arduino在网站上记录温度)。

哪种方法是最好的,我应该避免任何陷阱吗?

我最近完成了我的WebPlayer.ino,它通过网络推送命令,从SD卡到MP3芯片播放哪些文件,以及音量和速度控制。与你的目标类似,我不得不从四面八方拉出一堆碎片。因此,这可能是如何解析 Web 命令的一个很好的例子。

在UDP或TCP中使用本机以太网库,需要从ethernet.client中读取字符串。无论方向如何,TCP与UDP。我在UDP中看到的一个优点是,有一些示例使用"字符串"类型来获取整个数据,但这微不足道。我会坚持使用TCP,看看我的例子是如何读取Web服务器请求。

此外,Webduino 库是一个包装器,可以简化命令的获取。它提供了JSON等。因此,这对您的工作非常有用。但它使用了大量的RAM和ROM。 因此我的项目没有使用它。