抱歉我的英语不好。
我目前正在开展一个非常简单的Arduino项目。
我正在为我的学校制作一个考勤记录器,以了解学生花在学习上的时间。 RFID阅读器部分工作正常。检测到标签时,我将值和时间存储在SD卡中。 每个小时,我的系统都必须将日志发送到Web服务器以将其存储在数据库中,这就是我的问题。我正在与以太网部分挣扎。
的确,当我执行HTTP请求时,我的草图被“阻止”#34;并且学生不能再使用该系统了。 这是一个真正的大问题,因为如果我的日志中有200行,那么通过请求逐个发送这些行将花费很长时间。
我已经意识到使用millis()来使用"多任务"。
我绝对不知道如何在没有"阻止"的情况下发送请求。我的素描..我不是在找人写我的素描。我只是想知道是否有办法避免"阻止"我执行请求时对以太网屏蔽的影响。
感谢您的帮助。
答案 0 :(得分:0)
即使您逐个发送,也无法控制服务器端。您无法保证服务器会在特定时间范围内始终响应。 如果您的系统非常繁忙,那么这可能不是您的完美解决方案。
另一方面,只是一个想法,(我没有以太网盾的个人经验。)
每次检测到RFID时,您都可以单独从第一个arduino到第二个ardiuno连续发送数据。与发送100行日志的时间相比,这不应该花费太多时间。现在,第二个ardiuno可以将这些数据保存在内存中,直到最终发送到服务器。
现在当第二个arduino忙于向服务器发送数据时,我们可以在第一个arduino的内存中收集一些RFID读取,并在完成服务器的操作时传递给它。
检查第二个arduino是否为bg,我们可以在第二个arduino中设置一个高位,直到服务器部分完成。
但是,我仍然不明白为什么你必须每隔一小时发送一次。我觉得你有理由。如果您仍想节省一些时间,请在两个arduino之间进行并行数据传输,而不是串行传输。