该设备旨在在您外出时保护您的房屋,当然只是吓唬一下胆小的人哦呵呵。“看门狗”是一种安装在前门上的小型设备。就像使用智能门铃一样,只不过它位于屋内门的内侧。它带有有一个雷达运动传感器,其信号可以穿透门并检测外面人的运动。当它检测到运动时,会发出大声的狗吠声,给人一种狗在房子里的错觉。你可以说这是一个家庭安全警报器,用狗吠声代替警报器。但与其他类型的运动传感器警报相比,它的优点是几乎不需要任何接线(用电池供电)。
对于基于标准运动传感器的警报器,您需要将传感器安装在屋外。如果房子内有组件,您必须找到一种方法将电线穿过墙壁进入您的房子。但“看门狗”是一款极其便携的小型设备。您所需要做的就是将它贴在门上,然后就完成了。
在本教程中,我将向您介绍我如何制作这个工作原型。
单片机(最好是 Arduino UNO/NANO 或 esp3266/esp32),后面将看到如果使用esp8266或esp32会更好一点。
RCWL-0516 雷达运动传感器
Micro SD 读卡器模块
音频放大器电路 ,单片机能提供的电流太小了,无法驱动大的扬声器
5-10W 扬声器驱动器
9V电源/充电电池
公母跳线
自攻螺钉,安装使用。
第1步:工作原理
如果我们知道一切是如何工作的,那么电路和 Arduino 程序就会更容易理解。让我分步骤解释它们:
- 检测运动:雷达传感器对运动极其敏感。与标准 PIR 运动传感器相比,雷达传感器的最大优点是它可以穿过木材等障碍物。通常,其范围在 5 至 8 米之间。但透过一块 2 厘米厚的木头,其范围会缩小到一米或更小。但这对于我们的情况来说应该没问题。我们不希望当随机的陌生人走过我们家时设备开始吠叫。一旦传感器范围内出现轻微运动,其 OUT 引脚就会发出数字信号。
- 产生狗叫声:狗叫声是从互联网下载的 wav 文件。不幸的是,大多数微控制器的内存太少,无法存储音频文件。因此,我们将使用便宜的 micro SD 读卡器和 micro SD 卡来存储音频文件。一旦 Arduino 收到来自雷达传感器的运动信号,就会播放 SD 卡中的音频文件。
- 放大音频: Arduino 的输出不够高,无法产生响亮的声音。它相当于一副耳机产生的响度。为了将音量提高到真狗的水平,我们首先将音频信号发送到音频放大器。放大器的输出将连接到扬声器。
第 2 步:对 Arduino 进行编程
首先,我确保安装了必要的库。该项目所需的库是 SD、SPI 和 TMRpcm。
事实上,代码非常小并且易于理解。
#include <SD.h>
#include <SPI.h>
#define SD_ChipSelectPin 10
#include <TMRpcm.h> // 支持aduino播放wav文件的库
TMRpcm tmrpcm;
void setup(){
Serial.println("Unable ");
tmrpcm.speakerPin = 9; //PWM pin 9 on Uno
Serial.begin(9600); //Begin Arduino serial monitor
//Check card presence
if (!SD.begin(SD_ChipSelectPin)) {
Serial.println("不能检测到sd卡");
return; // 等待检测sd卡
}
tmrpcm.volume(2); //音量
delay(60000); //1 minute delay to give you time to lock the door
}
void loop(){
//if(digitalRead(5)){ //motion detected
tmrpcm.play("bark.wav");
delay(5000);
// }
}
在 setup() 函数中,我将引脚 9 指定为扬声器输出引脚。然后我等到使用 SD.begin() 函数检测到 SD 卡。之后,我将音量设置为2。这个数字可以进行实验。但对于我的音频放大器来说,2 的音量是完美的。然后我在循环函数执行之前添加了 1 分钟的延迟。这样我就有时间锁门并走出它的感应范围。
在loop() 函数中,我检查pin5 是否正在接收任何输入。pin 5 是连接雷达传感器输出的位置。如果它收到来自传感器的信号,则使用 tmrpcm 库播放 SD 卡中的音频文件。在本例中,我将其命名为 bark.wav。播放整个音频一次后,我设置了 5 秒的延迟。我不希望音频在有运动时连续播放。
第 3 步:准备音频文件
音频文件需要先进行处理,然后 Arduino 才能读取它。我已将这一步中处理后的音频文件添加为附件。如果您使用相同的文件,则可以忽略此步骤。
首先,我将狗吠声下载为 MP3 文件。然后,我使用将音频转换为WAV。音频还需要进行一些更改。
- 分辨率:8
- 音频频率:16000
- 通道:单声道
- PCM 格式:U8
然后我将 .wav 文件保存为 bark.wav。我建议将文件名保持在 4 个字符以内,因为有时 SD 卡读卡器无法使用较大的名称。
第四步:测试测试雷达传感器
第5步:格式化SD卡
使用资源管理器将SD卡需要格式化为FAT。
第 6 步:进行电路连接
仅在将代码上传到 Arduino 板后才进行电路连接。我使用 esp8266 而不是 Arduino UNO,因为它更小并且适合我的纸板外壳。无论您使用什么微控制器,一切都保持不变。
第7步:连接SD读卡器

首先,我将 micro SD 卡插入读卡器。然后我进行了以下连接:
- CS 至 Arduino 的引脚 10
- SCK 至 Arduino 的引脚 13
- MOSI 到 Arduino 的引脚 11
- MISO 至 Arduino 的引脚 12
- VCC转Arduino的5v引脚
- GND 到 Arduino 的 GND
第 8 步:连接雷达传感器RCWL-0516

- VIN到Arduino的3.3v引脚
- OUT 至 Arduino 的引脚 5
- GND 到 Arduino 的 GND
第9步:连接音频放大器
音频输入引脚连接到Arduino的引脚9和GND。电源+和-直接连接9v电源。音频输出引脚连接到6w扬声器。所有音频放大器的连接将保持不变。如果您使用立体声放大器,则可以使用放大器的一个通道,而将另一个通道留空。
第10步:电源
第11步:组装
我用一个纸板箱来容纳所有电路。
除雷达传感器和扬声器外,所有组件均放置在外壳内。我使用一小块双面泡沫胶带将雷达传感器固定在纸板的背面。我做了几个小孔,传感器销钉可以通过这些小孔进入纸板。虽然您也可以将雷达传感器安装在纸板内,但我不想将纸板的厚度添加到传感器和外界之间已经很厚的木门上。
我在前面切了一个大孔,用自攻螺钉安装扬声器驱动器。它们似乎可以很好地固定沉重的扬声器,特别是因为我在该面上又添加了两层纸板以增强强度。
我用黑纸剪了一个狗的形状,然后把它贴在正面,以取乐。我在它的鼻子上添加了一个“武装”指示灯 LED。该LED通过串联470欧姆电阻直接连接到Arduino的5v和GND引脚。
完成后,我用双面泡沫胶带将整个东西粘在前门上。请确保门和雷达传感器之间的间隙不要太大。我确保它与门齐平并紧贴门。
第 12 步:最终测试
现在,在您离开家之前,打开设备电源就可以了。但 “看门狗” 1.0 有一个大问题。它也开始对我吠叫。我不想当我在门口时它对我吠叫。这就是我使用 ESP8266 而不是 Arduino 的原因。它可以连接到互联网!我对看门狗2.0 的计划是添加一个 IOT 功能,它通过互联网连接到我的手机。当吠叫检测到我在我家的位置时,它不会吠叫。将它连接到我的手机的另一个好处是我可以将它设置为每次它吠叫时向我发送通知。这样,当我离开时,我就能知道有人在门口。