我正在构建我的第一个 Arduino 项目。您可以在这里查看我所做工作的基础知识:http: //lostechies.com/derickbailey/2013/04/10/a-first-look-at-my-arduino-bbq-thermometer/ - 这是一个网络启用烧烤温度计,告诉我我的肉何时在烤架上煮熟。
我已经用一个基本的 HTTP 服务器设置了这个,以便在发出 HTTP 请求时生成一个 JSON 文档。我使用的所有 HTTP 处理代码都来自 Arduino IDE 软件中内置的示例。
此代码的 Ethernet Shield 版本似乎运行良好。只要我让它保持插入/打开状态,它似乎就会运行。但是当我切换到我的 Arduino WiFi shield 并上传我的代码的 WiFi 版本时——它也是基于 WiFi 库演示中的示例——它在大约 10 分钟左右后停止响应请求。
我正在使用带有最新 Arduino WiFi 扩展板的 Arduino Undo R3。我的 Mac 上有 Arduino IDE v1.0。一切都编译得很好,并且似乎运行了一段时间。
HTTP 服务器代码很快就开始出现问题。如果我用 jQuery.ajax 调用创建一个简单的网页,每 3 秒访问一次 http 服务器,大约三分之一的请求将失败,几乎是立即失败。一旦超过 10 分钟,Arduino 上的 HTTP 服务器代码就会完全停止响应。
就好像我在 HTTP 客户端上有资源泄漏,并且它们没有被清理......但这是一个完全的猜测。
有关我正在做的事情的要点,请参阅此处的代码:https ://github.com/arduino/wifishield/tree/master/libraries/WiFi/examples/WifiWebServer
我实际上只是复制并粘贴了这段代码,打开它,然后它开始出错。我什至不需要修改代码,只需设置正确的 SSID 和密码,并在 HTTP 响应中设置 CORS: * 标头。一旦我将它上传到我的 Arduino,它就会频繁地开始轰炸请求,几分钟后,它完全停止响应。
有没有人用 WiFi 屏蔽见过这个问题?有没有人为 Arduino WiFi shield 提供更好的 HTTP 请求处理代码?
我也可以提供更多信息、我的实际代码或其他任何需要的信息。