Arduino 无线报警系统





准备工作:
材料:
请参阅最后的附加说明,以确保您使用这些部件的正确版本。
Arduino Uno 或类似产品
适用于 Arduino 的 433 或 315 MHz 接收器模块
Arduino 的 DS3231 实时时钟模块
适用于 Arduino 的 I2C 16x2 LDC 模块
根据需要,配备无线报警簧片开关、运动传感器和遥控钥匙
压电蜂鸣器
LED 和 220 欧姆电阻
面包板(可选但推荐)
适合Arduino的电源
跳线等
安装了 Arduino IDE 的电脑
Arduino 基础知识
工具:
1.Arduino IDE软件
2.电烙铁套装
耗材







上面的图片是这个项目需要的耗材
如图所示连接 Arduino 和模块

Arduino 的 5 号引脚与地面之间的压电元件
将 LED 连接到 Arduino 的 8 号引脚和 220 欧姆电阻之间,然后接地
433 或 315 Mhz 接收器,VCC 至 5V,GND 至地,2 个数据引脚之一至 Arduino 的引脚 2
I2C 16X2 LCD 模块 VCC 至 5V,GND 至地,SCL SDA 引脚至 Arduino 的 SCL SDA(引脚 A5 为 SCL,引脚 A4 为 SDA)
DS3231 RTC 模块 VCC 至 5V,GND 至地,SCL SDA 引脚至 Arduino 的 SCL SDA(第二组位于大多数 Arduino 的 GND 和 AREF 引脚上方)
我知道你们中的一些人不需要比这和下面附上的草图更多的信息,但我会为那些需要进一步帮助的人提供更详细的信息。
向Arduino IDE添加必要的库







运行警报的 Arduino Sketch 默认使用一些尚未在 Arduino IDE 上安装的库。
要将 RCSwitch 库添加到 Arduino IDE。打开 Arduino IDE,在顶部菜单中选择“Sketch”,然后从下拉菜单中选择“包含库”,再从下一个下拉菜单中选择“管理库”。然后在“过滤搜索”框中输入“RCSW”,然后单击“安装”以安装“rc-switch by sui77”
有关添加库的详细说明,请参阅https://www.arduino.cc/en/guide/libraries
在此过程中,我们还需要添加名为 Time、TimeAlarms、DS1307RTC 和 LiquidCrystal_I2C 的库,步骤与上述相同,但要搜索每个新库的名称并进行安装。如果不确定要使用哪些库,请查看上面的屏幕截图。
DS3231实时时钟兼容并使用DS1307RTC库。
接下来我们需要获取传感器的代码




我提供了下面的 Arduino 代码模板,但您需要找到每个传感器的值并将它们粘贴到代码中。
这两个网站上都有关于如何获取这些代码的大量信息;
https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/
https://github.com/sui77/rc-switch/wiki
不过这是我的缩写版本;
要获取传感器和遥控钥匙发送的代码,请通过 USB 电缆将步骤 1 中组装好的 Arduino 连接到 PC,然后打开 Arduino IDE。然后在 Arduino IDE 中转到“文件”下拉菜单,然后转到“示例”,向下滚动示例草图列表,直到找到“RCSWITCH”,然后选择“ReceiveDemo_Advanced”草图并将其上传到 Arduino。草图成功上传后,打开 Arduino IDE 的串行监视器,它仍然通过 USB 连接到您的 PC。现在触发您想要获取代码的第一个传感器,RCSwitch 的输出将出现在串行监视器窗口中。对于这个项目,我们正在寻找屏幕截图 2 中突出显示的十进制代码。您需要多次触发传感器以寻找最常出现的十进制值,有时会有不同的值与真值混合在一起,这是由随机无线电波或其他以相同频率运行的设备的干扰引起的。
记下传感器的十进制代码,以便在下一步中使用。对项目中使用的所有传感器和遥控钥匙重复此操作,并跟踪哪个代码与哪个传感器对应。如果使用钥匙来布防和撤防警报,您需要记下每个遥控器的布防按钮和撤防按钮的不同代码。
Arduino代码模板

下面是我的 Arduino 代码的副本,为 .ino 文件,名为 Wireless_Alarm。您可以单击它,它会在 Arduino IDE 中打开。我不是程序员,我的代码部分是从 Arduino IDE 中找到的示例汇编而成的,它可能不是特别优雅,但它确实有效,并且在很长一段时间内都很可靠。
请记住在进行更改后重新保存草图以包含来自您自己的传感器的代码。
将您在步骤5中获得的代码粘贴到模板Ard




现在,按照以下步骤定制您正在使用的传感器和遥控钥匙的代码。
如果您在 IDE 中打开 Wireless_Alarm 草图,您将看到第 111 行。
如果您没有使用遥控钥匙来布防和撤防警报,您可以忽略第 111-136 行,或者在每行不需要的行开头加上 //,Arduino 将不会读取它们。
请记住在完成更改后保存文件。
将修改后的.ino上传到您的Arduin





在 Arduino 仍通过 USB 连接到 PC 的情况下,将草图上传到 Arduino 板。上传成功完成后,LCD 应显示“Alarm On Armed”。按下遥控器上的布防按钮,LCD 应显示“Alarm On Armed”,LED 应亮起以告知您已布防,现在在布防时触发传感器,LCD 应显示 Alarm,然后显示时间戳和传感器的位置,蜂鸣器应响 2 分钟,除非您按下撤防按钮。如果您没有得到此结果,请重新检查您在步骤 5 中获得的代码以及您在上一步中对代码所做的更改,还要重新检查所有组件的接线。如果 LCD 根本没有读数,则 LCD 模块背面有一个对比度调整。正确设置对比度后,如果 LCD 仍未读取,请尝试将草图第 12 行的 LCD 地址从 0x3f 更改为 0x27。LCD 故障排除I2C LCD 教程
设置RTC模块上的时间并更改布防和撤防时

希望您的 RTC 已设置了正确的时间,但如果没有,请打开 IDE,选择“文件”,从下拉菜单中单击“示例”,向下滚动到“DS1307RTC”并选择“SetTime”草图,将草图下载到您的 Arduino,它将使用您 PC 上的时间设置实时时钟。然后,您需要将 Wireless_Alarm 草图重新加载到您的 Arduino。
我提供的 Wireless_Alarm.ino 默认将闹钟设置为每天晚上 10:15 自动布防,每天早上 6:00 解除布防。要更改这些时间,请修改 Sketch 的第 71 行和第 72 行。时间位于 Alarm.alarmRepeat 后的括号中,格式为 HH,MM,SS。将其更改为适合您的任何时间。
运行警报器、闪光灯、高音量蜂鸣器等的螺线管也可以连接到引脚 7 或引脚 9,并将按照上面设置的“间隔”运行。请记住,Arduino 引脚的最大负载不应超过 40mA。
附加说明

在为 Arduino 选择 433 或 315 MHz 接收器模块时,您应该选择与您打算使用的警报传感器相匹配的频率。我建议购买带有小型螺旋天线的模块以获得最佳性能,或者 17.3 毫米长的直线天线也可以提高性能。
对于 16x2 LCD 模块,您必须使用 4 针 I2C LCD 才能使用我在此处提供的说明和代码,它可以用 16 针标准 LCD 制作,但它不适用于此处的接线或代码。
无线报警簧片开关、运动传感器和遥控钥匙应为 433Mhz 或 315Mhz,以与您打算使用的接收器匹配,并且应使用 PT2262 或 EV1527 编码。
该警报器可扩展且适应性强,我已经添加了 SD 卡来记录传感器触发的时间,修改了 LCD 使其仅在按住按钮时亮起,并添加了 100dB 警报器,但这里没有包含详细信息,以使文章尽可能简短明了。我希望分享我在这个警报器上所做的工作对其他人有所帮助。











