
和几乎所有纽约公寓里的住户一样,我也时不时会遇到来家里做窝的老鼠。不过,去年的一天,我听到桌子后面发出了熟悉的抓擦声时,还是惊了一下。因为就在12个月前,我和异常勤劳的房东在我新装修的房子里搜遍了每一个老鼠能通过的缝隙,用金属片或者钢丝棉把它们都堵了起来。
我还放了老鼠药和老鼠夹,不过都没起作用。我不停地寻找老鼠从哪里来,但一直一无所获,直到我意外地被公寓前门底部和门槛之间的缝隙绊倒。看起来,这条缝隙只够一只小老鼠钻过,但是我还不确定。所以,自然而然,我开始考虑布置自己的室内野生动物摄像系统,好在它钻进来的时候抓住它。
我原想安装支持Nest Wi-Fi的安全相机,把它设置为夜视和运动检测模式,不过Nest的实际用途是监视整个房间,不适合监视门槛这种范围很小的区域。我还想,如果不向某个未知的数据中心发送实时视频流,我的目标能不能实现?
好在2016年10月,我在纽约世界创客博览会上找到了完美的解决方案。新加坡的Annikken公司开发了一种能让Arduino微控制器通过蓝牙与智能手机相连的一系列开发板。以前,这种开发板要么兼容安卓系统,要么兼容iOS系统,但无法同时兼容二者。而在这届博览会上,Annikken公司展示了它的最新产品——售价79美元的Annikken Andee U-AIO,与安卓和iOS两种类型的设备都兼容(也能与苹果手表兼容)。
我订购了这款开发板,然后从27美元的Elegoo“37合1”传感器套件上拆下来一个激光二极管模块和光电管。这个套件的小分线板上汇集了各种5伏发射器和传感器,所以当我想一并扔掉某些东西的时候非常方便。
由于激光模块不带准直透镜,所以光呈圆锥形发散,很难让光束穿行较长距离。不过对我来说,到门的距离也就1米,宽光束反而更有优势:我不需要在光绊线路径上超级精确地定位光电管。我给激光模块制作了一个外壳,把它接到一个电池组上,然后通过放置在另一个外壳里的Andee开发板把光电管和Arduino Uno板连接起来。
我把Andee U-AIO穿过Arduino的插头连接器,这样,便能把装置连接到微控制器上,不过实际上并非每个引脚都是稳定的。Andee通过8号引脚与Arduino通信,而使用Uno的时候,则建议不要使用11、12和13号引脚。(为了弥补这些引脚不能使用的缺憾,新版U-AIO开发板又额外提供了8个数字化输入-输出引脚。还有一个微型SD卡插槽,用于存储对Arduino内存而言过大的数据。)
我把光电管连接到Arduino的一个模拟输入/输出引脚,然后写了一个小程序,把光电管模拟引脚上的数值转储到Arduino的串行端口,如此一来,当激光直接照射到光电管而不会受阻时,我便能看到当时报告的电压了。这也使我能为触发相机而选择一个合适的阈值。

图一

图二

图三

图四
(图一)为在光绊线光束(图二)里放置一个替代老鼠的水星胶囊模型时,iPhone自动拍下的图片。我自己做了一个绊线,一端是一个激光模块,另一端是一个光电管,连接到配备Andee U-AIO开发板(图三图四)的Arduino。
编写Arduino软件的过程很琐碎。我从Annikken网站*载下**了使用Andee所需的软件库。软件库里带有大量演示不同功能特性的示例程序,所以修改“利用智能手机摄像头自动拍照”示例很容易——当模拟光电管读数低于阈值时,便用闪光灯拍照。
实现Arduino、Andee和光电管的协作之后,下一步就是设置手机了。我用的是我妻子的一台旧iPhone,由于屏幕破裂、电池耗尽,它早已废弃了。我在手机里安装了免费的Andee应用。手机启动后能检测到我的U-AIO开发板,Arduino程序的图形界面随即弹出。
这是我最喜欢Annikken系统的一点。一般来说,通信软硬件只关注怎么在微控制器和连接设备之间提供一个通道。而要想在通道两端实现其他功能,取决于你写什么样的软件。这意味着既要熟悉两种不同系统,又要充分了解这个通道,以便传输未损坏的数据。不过Andee免除了我学习智能手机应用开发的麻烦,只需要在Arduino软件里写一次程序,即可说明连接两端该如何工作。
比如,你想要一个屏幕消息窗口和几个图形用户界面控制按钮,只需说明情况,Andee应用便会帮你实现。该应用还能允许Arduino访问移动设备上现有的其他硬件,比如GPS数据等(具体访问内容取决于使用的是iOS设备还是安卓设备)。
可惜的是,接下来我遇到了一个致命的问题——就在我着手部署老鼠探测器的时候,我发现一个快被我遗忘了的老鼠夹已经合上了。然后我再也没发现活的老鼠!不过我的系统还在等待着下一位入侵者,等待着破解“它从哪里来”这个谜团……
作者:Stephen Cass