我是网络开发的新手,所以请原谅我,以防这个问题多余。 这是我想要做的: 我有多个Arduinos(配备了EthernetShields),它们正在收集和显示数据(使用传感器和LCD屏幕)。所有Arduinos都与托管MySQL数据库的网络服务器和可视化数据的网页进行通信。 Arduinos本身能够托管简约的网络服务器,可以运行一些简单的html / php /等...
我的问题是: 实现Arduinos和主服务器之间通信的最简单方法是什么,这样我就可以在它们之间来回发送数据,而无需任何用户交互? 数据由相对较少的整数值和短文本串组成。安全不是问题。
为清晰起见编辑: 如何在两个Web服务器之间来回连续发送数据? 假设我使用PHP,这是一个简单的方法吗? GET和POST方法的所有教程都包括使用“表单操作”,根据我的理解,这需要用户交互。
答案 0 :(得分:1)
如果我理解你,你有一个中央网络服务器需要与一大堆arduinos沟通。您需要在arduinos和中央服务器之间双向发送信息。并且,您希望使用web(http / tcp / ip)协议来执行此操作。
你面临一个选择:
您是否希望中央服务器启动通信?或者你想让每个arduino发起通信?
我认为第二种选择非常好。这意味着您可以在不以某种方式重新配置中央服务器的情况下向系统添加新的arduinos。但是,我对你的申请知之甚少,所以可能有一些理由这是个坏主意。
因此,您所做的是在每个arduino上实现一个简单的Web CLIENT(而不是浏览器)。然后,按照定期计划,每个arduino都会向主服务器发出Web请求。根据您需要从arduino发送到服务器的数据量,您可以使用GET或POST。如果数据很小,您可以使用GET请求。例如,如果它是温度和湿度,你可以每秒发送一次这样的请求。
http://server/upload.php?temp=65&humidity=78
响应于此,中央服务器可以正确处理此数据。您将能够通过客户端互联网地址REMOTE_ADDR
来判断它来自哪个arduino。
然后,服务器发送一个响应,其中包含服务器需要发送给arduino的任何数据。
看看这是怎么回事?每一秒arduino都会点击网络服务器说“这就是我拥有的东西。你有什么东西给我?”