使用 Arduino Yun 进行数据投放
此教程介绍如何从 Arduino Yun 到 Data Drop 上传数据. 与 Data Drop 连接,Arduino Yun 需要与互联网连接. 注意该功能仅与 Arduino Yun 兼容, 不能用于 Arduino Uno.
设置 Arduino Yun 的最简单的方法是将以太网电缆插孔连接到网络. 这样做不需要在 Yun 上设置,也是最可靠的网络连接形式. 请注意,Yun 需要向互联网传出请求,因此如果有防火墙存在的话,您的网络管理员需要允许通过防火墙进行访问.
若要设置 Arduino Yun 使用 Wi-Fi 无线连接,您需要将它设置成连接到您的无线网络. 这个链接有生产厂商提供的有关如何设置的在线文档.
将 Arduino Yun 连接到互联网之后,下一步是把自定义的 Wolfram 语言 sketch 上传到 board. 该 sketch 以函数形式向 Data Drop 上传值,使得 Arduino Yun 能够与 Wolfram 语言通讯,并提供 Data Drop 功能.
默认情况下,这将把自定义的 Wolfram 语言 sketch 上传至该设备,因为选项 "InitialUpload" 的默认值为 True. 这将在 Arduino 上启动特殊函数 DatabinAdd.
DatabinAdd 函数会把指定引脚的当前值添加至仓中的 Data Drop. 若要上传至仓,需要仓的 "UUID" 或者"ShortID",或者仓自身作为选项 "Databin" 的值. 另外,必须指定所要读取的引脚. 它可以使用DeviceExecute 中的选项 "Databin" 指定,或者可以通过 DeviceConfigure 配置为默认的仓.
也可以对 DatabinAdd 函数进行排程;这将从 Wolfram 语言内核以异步方式完成,并将在 Wolfram 语言会话退出后继续. 这通过选项 "Scheduling" 实现. 这里,引脚4的值每隔三秒钟上传至 Data Drop 一次,最多上传10次.
通过向 Arduino Yun 上传 "BootFunction",数据可以自动添加到 Data Drop. 该 "BootFunction" 将在设备开启后立即运行. 这使您可以将任务部署到 Arduino Yun 以上传至 Data Drop,然后删除该设备并实地部署它,让该设备开始自行上传.
在 sketch 中有三个原型函数可用于向 Data Drop 上传自定义值:DatabinIntegerAdd、DatabinRealAdd 和 DatabinStringAdd,它们全部上传 val 到由 binID 指定的 Databin,并且有 keyName 的 Key. 这允许您编写自定义的函数,将除了引脚值外的值上传至 Data Drop.
void DatabinIntegerAdd(char * binID, char * keyName, long val)
void DatabinRealAdd(char * binID, char * keyName, double val)
void DatabinStringAdd(char * binID, char * keyName, char * val)
在上传之后,可以使用 DeviceExecute 像调用任何自定义函数一样正常调用该函数.