用非常响亮的警报声把入室者吓跑。

 

img

 

  促使我自制家庭安防系统的最后一根稻草是邻居家中午闯入窃贼,连续数月,我和妻子都一直担心西雅图郊区的街坊邻居遭受令人讨厌的入室盗窃。我们突发奇想,想在家里安装一套安防系统,却遇到传统安防系统的月使用费和安装麻烦这些障碍。后来,邻居警醒我们说,窃贼刚刚闯入了他们家,离我们家只有几米远,而且是在青天白日。
 
  第二天,我就开始搜索自制安防系统,多亏网络和物联网标准的进步,市场上已经有很多无线安防系统,它们易于安装、扩展、连接到智能手机应用程序上,而且比硬连线的产品在价格上更能承受。它们大多数装有内置电池和3G蜂窝无线电,所以即便电源或网络路由器发生故障,它们仍能工作。
 
  不过,当我费劲地从支持论坛上查找若干可能管用的安防系统时,我注意到一个共同的抱怨:它们的报警器很弱。例如,在Scout Alarm的网站上(一站式个性化的无线家庭安防系统),不高兴客户抱怨“报警器不够响亮”的帖子就有156条,同时还有公司通过重新设计报警器解决这个问题的承诺(至今并未兑现)。令人惊讶的是,没有一个自制安防系统发出足够的噪声来吓跑可能的窃贼(或是包含连接一个外部报警器的终端)。显然,它们的设计者并没有想到要威慑入侵者。
 
  我仍然还是决定订购一套Scout安防系统,它以吸引人的价格提供了我需要的传感器。我喜欢Scout安防系统是因为其支持IFTTT(智能家居平台,物联网通用的基于Web的服务),当报警器关掉时,系统可以让床头柜上的智能(Lifx)灯泡闪烁。我想到一个如我所愿放大警报声的主意,应该适用于任何一种安防系统,而不管其是否支持IFTTT。我所需做的就是建立一个跟踪报警器。
 
  这个想法借鉴于摄影,摄影棚有时会使用附加的独立闪光灯,当其连接的光电探测器吸收到直接安装在相机上的闪光灯的光时,这个独立闪光灯就会熄灭。我的小装置也会类似地使用一个麦克风,收听Scout报警器的独特声信号,然后在我的本地网络上发送无线电信号,控制与Scout报警器同步的声音更响亮的报警器的开关。
 
  安装Scout安防系统很容易,仅需不到一个小时就能用免费的应用程序配置好网络集线器(129美元),并将其连到一对进门的控制板(每个69美元)、若干个门或窗传感器(每个29美元)和一些移动探测器(每个49美元)。我把这个系统连到IFTTT,并设置了一个名为“启动按钮”的应用程序,让妻子和我用手机就能使用或关闭该系统。
 
  对于这个项目的收听者部分,我从SparkFun公司买了一个Arduino Uno(20美元)、一个用于Uno的ESP8266 Wi-Fi防护罩(15美元)和一个声音探测传感器板(11美元)。与更先进的微控制器相比,Uno更小、更便宜,而且能用电池工作,不过其有限的内存后来证明很成问题。

 

自制的家庭卫士:把一个麦克风连接到一个具有Wi-Fi功能的Arduino Uno微控制器,收听Scout警报声,一个无线开关会打开报警器

 

  通过购买贝尔金智能(WeMo)开关(39美元),使报警器方面的工作得到简化。贝尔金智能开关能连到Wi-Fi,能为任何电器切换电源。在这个报警器中,是为110分贝的霍尼韦尔安定宝702报警器(23美元)提供9伏的电源。WeMo开关还自带免费智能手机应用程序,在我需要手动按响或关停报警器时,作为一个方便的备份。贝尔金公司并没有记录控制开关的TCP命令,但是黑客已经帮助推断出这些命令,发布了Arduino草图,能通过以太网打开或关闭设备。
 
  我所需做的就是改编代码使得Wi-Fi防护罩能工作,然后把它作为更大程序的功能模块,监测由麦克风板接收的声音的频率、强度和持续时间。在几个小时之内,我就建构了声信号探测算法。
 
  为了校准它,我把麦克风就放在Scout集线器旁边,然后触发报警器。客户对Scout系统的评论是正确的,报警器的呼救声确实很微弱,比手机铃声或是我的收音机的闹钟声音还轻。声音这么轻,我很难相信传感器能区分报警器铃声和背景噪音。打开集线器的盖,我发现了问题所在:压电扬声器的安装使声音直接进入设备的厚塑料层里。我钻了一个1厘米多宽的小孔,让扬声器接触到空气,音量马上就翻倍了,虽然仍不足以威慑入侵者,但足以激活我的声音信号探测器。
 
  然后,我来解决2千字节的问题:我的程序需要的内存大于Uno所能提供的,主要是因为:为了激活WeMo开关,需要收集和分发很长的数据包。有经验的程序员对我进行了指点,让编译器将数据存储在容量更大的闪存(闪存本是用于存储程序的),而不是用Uno的内存。但是,这么做的惨重代价是牺牲了速度:当Arduino工作时,要用大约30秒时间来切换开关。
 
  通过不断的尝试和错误后,我终于找到了一种方法:把关键数据包保存在内存中,把所有其他数据储存在闪存里,用备用内存下载最后的程序。我把所有部件连起来,下载了Scout应用程序,然后按住“报警器”按钮,报警器突然大声响起来,我自己都快吓出一身冷汗。我确信邻居们都听到警报声了,这就是关键所在。

 

资料来源 IEEE Spectrum

责任编辑 岳 峰