Arduino非阻塞Wifi连接

时间:2013-03-08 12:03:58

标签: wifi arduino blocking

我正在安装一个监控几个传感器的系统,并根据它们打开/关闭几个灯。

对于进一步的数据分析,我们还希望将该数据发送到中央服务器,因此我们添加了一个Wifi屏蔽。 请注意,如果没有网络,系统应该完全正常运行。所以我所做的是监视循环()中的网络状态,如果它关闭则再次连接。

现在,问题是Wifi.begin()阻止执行,直到连接或抛出错误。 这是不可接受的,因为在此期间系统将无响应

我已经研究过在Arduino中使用线程,例如here,但是这会出现在限制中:

  

这个库的一个主要潜在问题是这个事实   一个挂起的线程将锁定整个系统,因为   在当前的Thread完成之前,无法调用下一个Thread   loop()函数。

那么,任何人都有任何指针,想法或经验吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

你可以创建一个定时器中断,当到期时,使用停止的阻塞功能杀死线程。

实际上,您可能希望使用Timer1 library之类的中断来执行关键更新。这样,您无需担心在任何地方阻止代码。