我可以通过wifi屏蔽对Arduino重新编程吗?


9

我的Arduino在水族馆上挂了一些灯,我可以从LAN上的Web浏览器控制它们。我想知道是否可以在Arduino上修改程序而不必通过USB将其插入机器中,这会带来一些不便。必须有某种方法可以利用wifi连接。

我已经使用了Pololu的wixel防护套来无线发送程序(它只是充当串口无线电),但这是与WiFi防护套不同的技术。

有人知道我可以通过WiFi执行此操作吗?也许如果我将新代码上传到WiFi防护板的闪存中,那么它可以从闪存启动吗?我不确定该怎么做,甚至可能。

也许完全不同的方法会更简单?

Answers:


8

从理论上讲,这是可能的,但在实践中,这并非不重要。负责将新草图加载到Arduino的代码段称为bootloader。我知道的所有流行的Bootloader版本都是基于串行/ USB的。为了将草图加载到WiFi防护板上,必须重新编写引导程序以与WiFi防护板通信,而不是串行通信。这将需要一些工作,但实际上并非不可能。

请注意,无论您是将草图存储在WiFi盾牌上(我认为这都是困难的:我完全不确定这是否可行)还是将草图直接上传到Arduino,都必须这样做。引导加载程序将需要与防护罩进行通信以读取草图数据。


有一种方法可以轻松地以无线方式对Arduino重新编程,那就是蓝牙。您将需要获取蓝牙模块(我不知道蓝牙屏蔽罩是否可以工作)并将其连接到硬件串行端口。Arduino上的引导加载程序已经可以进行串行通讯,因此可以解决该问题。您将不得不(潜在地)解决另外两个问题:

  • 您在Ebay上找到的成本最低的蓝牙模块是3.3V。这意味着您将必须为其提供3.3V电源,并且Arduino的发送线将需要从5V电压转换为3.3V。您可以通过购买用于5V通信的蓝牙模块来解决第一个(电源)子问题,或者购买Arduino的3V3电源来为蓝牙模块供电。5V就绪模块也解决了第二个问题。或者,您可以使用此问题中描述的任何技术对Arduino的5V输出进行电压移位。
  • 为了自动对Arduino进行编程,需要在上传草图之前立即重置Arduino:当Arduino正常运行时,引导加载程序将不处于活动状态。重置Arduino会激活引导加载程序,从而可以上传新草图。Arduino USB上的鼠标巧妙地使用DTR线来重置设备。但是,大多数蓝牙串行模块仅提供TS / RX输出,因此您可能必须手动重置Arduino才能上传草图,除非您可以在蓝牙模块上找到一些信号输出以整理连接到重置电路, 。

2

今天,我意识到可以实现此目的的产品:ESP8266。它将允许您通过wifi连接对arduino进行编程/重新编程。多家公司在各种分线板布置中生产该芯片的版本。具体来说,它可以成为Arduino的WiFi AVRISP。

您还可以使用Arduino SDK来对ESP8266本身进行编程,并且它具有自己的强大功能。

今天在whatimade上看到这里(不是我的文章),以获取有关如何使用ESP8266和Arduino SDK的很好的介绍。设置好SDK以便对ESP8266进行编程后,即可浏览IDE的示例并找到“ Arduino_Wifi_AVRISP”。

您可以找到价格在5到15美元左右的木板。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.