资料介绍
描述
尽管在万圣节之夜用南瓜灯开一个有趣但不欺骗的笑话并不引人注目,但我决定为我的客人在万圣节敲响门铃时设计一个南瓜灯,为他们创造一个特殊的活动。 -具有有趣功能的灯笼门铃。而且,毫不奇怪,我只让我的一些最亲密的朋友知道我的新门铃功能,给他们注册的 RFID 标签(进入许可),让我的其他客人甚至有点害怕 :) 详细地说,这个门铃会和客人说话并在客人按门铃或出示 RFID 标签或卡片时通过 WhatsApp 通知用户。
首先,为了让门铃在互动后与客人交谈,我从文本中生成了我希望门铃说话的每个场合的声音。您可以在以下部分中获得有关如何通过文本文件创建语音文件的更多信息。
为了能够在交互后通过 WhatsApp 获得通知,我在 Raspberry Pi 上创建了一个应用程序,包括 Twilio 的 WhatsApp API。而且,我使用 Arduino Nano 33 IoT 与 Raspberry Pi 上的应用程序进行通信。
然后,为了播放我使用 Arduino Nano 33 IoT 生成的声音,我使用了带有扬声器的 DFPlayer 迷你 MP3 播放器。而且,为了从 RFID 标签或卡片读取和注册 UID,我使用了 MFRC522 RFID 阅读器。
最后,我将 DC184 黄色按钮作为门铃按钮,将 RGB 共阴极 LED 作为南瓜灯的眼睛。
在面包板上完成设计并测试代码后,我设计了一个 PCB(WhatsApp RFID Talking Doorbell),具有独特的南瓜灯形状和愤怒的面部表情,为万圣节打造了一个合适而邪恶的门铃 :)
非常感谢PCBWay赞助这个项目。
第 1 步:设计和焊接 WhatsApp RFID 会说话的门铃 PCB
我用面包板上的 Arduino Nano 33 IoT 测试了所有连接和模块。
然后,我使用 KiCad 设计了 WhatsApp RFID Talking Doorbell PCB。我在下面附上了 PCB 的 Gerber 文件,所以如果你愿意,你可以从 PCBWay 订购这个 PCB 来制作一个时尚的南瓜灯,以吓唬那些不知道它被诅咒的功能的客人 :)
单击此处直接在 PCBWay 上检查和订购此 PCB。
首先,通过使用烙铁,我连接了接头(公母)、5mm RGB 共阴极 LED、1K 电阻、10K 电阻和 DC184 黄色按钮。
PCB上的元件清单:
A1(Arduino Nano 33 IoT 接头)
D1、D2(5mm RGB 共阴极 LED)
J1(MFRC522 RFID 阅读器的接头)
J2、J3(DFPlayer Mini 接头)
J4(扬声器接头)
P1(电源接头)
R1(1K电阻)
R2(10K电阻)
SW1(DC184 黄色按钮)
第 2 步:在 Raspberry Pi 上设置 LAMP Web 服务器
如果您是使用 Raspberry Pi 编程的新手,您可以在 Raspberry Pi 官方网站上查看解释清楚的说明和教程。
要转到官方 Raspberry Pi 设置教程,请单击此处。
- 通过从菜单中选择附件 > 终端打开终端窗口。
- 通过在终端中键入以下命令并按 Enter 来安装 apache2 包:
sudo apt-get install apache2 -y
- 要测试服务器,请从菜单中选择 Internet > Chromium Web Browser 打开 Chromium,然后输入http://localhost。
- 如果需要,您也可以使用 Raspberry Pi 的 IP 地址。
主机名 -I
- 使用以下命令安装 PHP 包:
- 不要忘记更新 Pi。
sudo apt-get 更新
sudo apt-get install php -y
- 为了能够在 PHP 中使用 Twilio 的 WhatsApp API,请安装 php-curl 包:
sudo apt-get install php-curl
- 然后,重新启动 apache 服务器,以便能够在 localhost 上使用已安装的包:
sudo 服务 apache2 重启
步骤 3:创建 Twilio 应用程序
要通过 Twilio 的 API 发送 WhatsApp 消息,您唯一需要做的就是注册一个 Twilio 试用帐户。
注册后,使用您的 SID 和 Auth Token,您可以免费使用 Twilio 的 WhatsApp API。如 Twilio 中所述,您需要在手机上加入一个共享电话号码,以验证您的电话号码并启动 Twilio 的 WhatsApp API。
有关更多信息并了解如何创建新帐户,请单击下面的链接。
1) 创建一个新应用程序 - WhatsApp Talking Doorbell。
2) 打开应用程序的仪表板。
3) 前往 WhatsApp 的 Twilio Sandbox 获取验证码。
4) 使用验证码将您的手机连接到您的应用程序。
第 4 步:使用 PHP 开发在 Raspberry Pi 上运行的 WhatsApp Talking Doorbell 应用程序(webhook)
我用 PHP 开发了 WhatsApp Talking Doorbell,并在下面的代码说明部分为感兴趣的人解释了应用程序的源代码。
但是,如果您不喜欢使用 PHP 进行 Web 开发,您可以在下载中下载该应用程序 - 名为 WhatsApp_Talking_Doorbell.zip - 并将其上传到您的 Raspberry Pi,而无需深入研究 PHP 编码。
使用此应用程序需要 Twilio PHP Helper Library。而且,我已经在应用程序文件夹(WhatsApp_Talking_Doorbell)中包含了提到的API,所以你不需要特别下载它。
您可以在此处获取有关 API 的更多信息。
Upload
:
通过以下步骤,在 localhost 上安装 WhatsApp Talking Doorbell:
- 下载应用程序 - WhatsApp_Talking_Doorbell.zip - 包括 index.php 和 WhatsAppAPI(Twilio 的 WhatsApp API)。
- 提取 WhatsApp_Talking_Doorbell.zip。
- 使用终端将应用程序文件夹 (WhatsApp_Talking_Doorbell) 从 Downloads 移动到服务器 (/var/www/html),因为 apache 服务器是受保护的位置。
sudo mv /home/pi/Downloads/WhatsApp_Talking_Doorbell /var/www/html/
- 转到 WhatsApp 会说话的门铃:
http://localhost/WhatsApp_Talking_Doorbell/
Features
:
1) 如果没有对 webhook 的请求,应用程序会打印:还没有请求!
2) 否则,如果所有必需的参数都准确无误,则应用程序会打印:Message Send...
sid : Twilio 应用程序 SID
a_token :Twilio 应用程序身份验证令牌
正文:WhatsApp消息正文
来自:共享电话号码
至:已验证的电话号码
3) 随后,应用程序通过 WhatsApp 将消息正文发送给用户。
Code Explanation
:
1) 索引.php
- 包括所需的库 - Twilio Helper Library for PHP。
- 如果检测到所有必需的变量——sid 、a_token 、body 、from和to——创建一个新的Client 。
- 然后,通过 Twilio 的 WhatsApp API 将 WhatsApp 消息作为共享电话号码从服务器发送到已验证的电话号码。
语法:
http://localhost/WhatsApp_Talking_Doorbell/?sid="[Application_SID]"&a_token="[AUTH_TOKEN]"&body="[Message_Body]"&from="[Shared_Phone_Number]"&to="[Verified_Phone_Number]"
第 5 步:从文本中生成声音
完成上述步骤后,为了能够与设备对话,我为每个场合从文本文件生成了不同的语音文件,我希望设备通过对话与客人互动。通过这种方式,我可以在每个选定事件触发时使用 DFPlayer Mini MP3 播放器播放它们。
我为各种场合写了四种不同的演讲,并通过下面的网络应用程序将它们转换为语音文件:
当然,它们很棘手,很适合万圣节 :)
您可以下载我在下面生成的语音文件 - voices.zip 。
1)第一次尝试按门铃:
“你好,我是会说话的灯笼,有义务在这个邪恶的夜晚保护这所房子。请在进入房子之前出示你的通行证标签或交给你的卡片。然后,我会通过WhatsApp通知业主,取决于是否你有没有钥匙卡。”
2)第二次尝试按门铃:
“我想你既不知道钥匙卡的要求,也不熟悉屋主,所以我会因擅闯屋主而通知屋主,请立即离开屋子。”
3) 错误的 RFID UID:
“很奇怪,你给我看了一张错误的,还骗人的进入标签或卡片,才能进入这所房子。所以,不出意外,我会向房主发送闯入警报信息,请立即离开房子。 "
4) 正确的 RFID UID:
“您好,感谢您在万圣节之夜参观这座鬼屋,出示屋主放弃给您的登记入境卡或标签。我刚刚通过 WhatsApp 通知屋主您的到来。请等到您和蔼可亲欢迎。”
第 6 步:设置 Arduino Nano 33 IoT
如果您是使用 Arduino Nano 33 IoT 编程的新手:别担心,使用 Arduino IDE 很简单。只需下载所需的驱动程序 - Arduino SAMD Core -此处已详细说明。
为了能够通过 Arduino Nano 33 IoT 连接到 WiFi,请从此处下载 WiFiNINA 库。
我使用 Arduino Nano 33 IoT 上的第二个串口 (Serial1) 与 DFPlayer Mini MP3 Player 进行通信。
Arduino Nano 33 IoT 上的串行端口:
“开发板的 USB 连接器直接连接到 SAMD21 的 USB 主机引脚。此路由使您能够将 Arduino NANO 33 IoT 用作客户端 USB 外围设备(充当连接到计算机的鼠标或键盘)或用作一个 USB 主机设备,以便鼠标、键盘或 Android 手机等设备可以连接到 Arduino NANO 33 IoT。此端口也可以用作使用 Arduino 编程语言中的 Serial 对象的虚拟串行端口。RX0和 TX1 引脚是第二个串行端口,可用作 Serial1。”
然后,Arduino Nano 33 IoT 就可以执行项目代码了:)
第 7 步:向 DFPlayer 迷你 MP3 播放器发送命令
将 DFPlayer 迷你 MP3 播放器与 Arduino 一起使用很容易,因为它有一个库,包括所有可用的 UART 命令和功能。在这方面,您无需手动向 DFPlayer Mini 发送 UART 命令即可播放 MP3 文件。
正如其产品 wiki 中所解释的,“DFPlayer Mini MP3 Player For Arduino 是一款小型且价格低廉的 MP3 模块,具有直接到扬声器的简化输出。该模块可用作独立模块,带有电池、扬声器、和按钮或与 Arduino 结合使用” 。
为了能够将它与 Arduino 一起使用,您唯一需要做的就是从这里下载 DFRobot 提供的库。
对于 Arduino Nano 33 IoT,您必须使用 RX0 和 TX1 引脚上的第二个串行端口 - Serial1 - 而不是示例代码中的 SoftwareSerial 库。
// Initiate DFPlayer Mini on the second serial port on RX0 and TX1 pins.
Serial1.begin(9600);
while(!myDFPlayer.begin(Serial1)){ Serial.println("Not Connected!"); }
Serial.println("DFPlayer Connected!!!");
myDFPlayer.setTimeOut(500); //Set serial communictaion time out 500ms
//----Set volume----
myDFPlayer.volume(30); //Set volume value (0~30).
//myDFPlayer.volumeUp(); //Volume Up
//myDFPlayer.volumeDown(); //Volume Down
// Set EQ
myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);
// Set the SD Card as default source.
myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);
而且,为了能够准确地执行命令,请通过在歌曲名称中添加连续数字来保存您的歌曲,就像我一样:
001bell_voice.mp3
002second_bell_voice.mp3
003wrong_rfid.mp3
004正确_rfid.mp3
第 8 步:对 Arduino Nano 33 IoT 进行编程
下载所需的库以控制模块:
DFPlayer 迷你 MP3 播放器 | 图书馆
MFRC522 RFID阅读器| 图书馆
- 包括所需的库。
- 定义您的 WiFi 网络设置 - SSID 和密码。
- 输入 Raspberry Pi 的 IP 地址。
- 在 Raspberry Pi 中定义应用程序的路径。
- 初始化以太网客户端库。
- 创建 DFPlayer 迷你对象。
- 创建 MFRC522 实例。
- 定义 MFRC522 模块按键输入。
- 执行register_new_UIDs()函数后,将注册的 UID 列表粘贴到受邀访客字符串数组并定义总访客人数。
- 定义 RGB LED 引脚。
- 定义门铃引脚 - DC184 黄色按钮。
- 在 RX0 和 TX1 引脚上的第二个串行端口 - Serial1上启动 DFPlayer Mini 。
- 初始化 MFRC522 硬件。
- 检查 WiFi 模块和设置。
- 通过播放语音文件 - myDFPlayer.play(1)在客人按下按钮(门铃)时惊吓并通知客人。
- 在WhatsApp_Message()函数中:
- 通过 Twilio 定义所需的设置 - 帐户 SID、身份验证令牌、FROM 电话号码(传入)和 TO 电话号码(传出)。
- 连接到 Raspberry Pi 上名为 WhatsApp Talking Doorbell 的 Web 应用程序。
- 在register_new_UIDs()函数中(取消注释执行),检测新卡或标签 UID 并打印 UID 列表。
- 要将新的 UID 保存到受邀访客字符串数组中,请在执行此函数后复制 UID 列表。
- 在read_UID()函数中:
- 获取最近读取的 UID。
- 检测最近读取的 UID ( lastRead ) 是否在被邀请的_guests字符串数组中注册的 UID 中,以使用相关语音文件激活 DFPlayer。
连接和调整
// Connections
// Arduino Nano 33 IoT:
// MFRC522
// D9 ----------------------- RST
// D10 ----------------------- SDA
// D11 ----------------------- MOSI
// D12 ----------------------- MISO
// D13 ----------------------- SCK
// DFPlayer Mini
// ----------------------- VCC (5V External)
// TX ----------------------- RX
// RX ----------------------- TX
// GND ----------------------- GND
// RGB_Eye_1
// D3 ----------------------- R
// D5 ----------------------- G
// D6 ----------------------- B
// RGB_Eye_2
// A2 ----------------------- R
// A3 ----------------------- G
// A5 ----------------------- B
// Doorbell (Button)
// D2 ----------------------- S
完成并将代码上传到 Arduino Nano 33 IoT 后,我通过接头将所有必需的组件连接到板上 - MFRC522 RFID 阅读器、DFPlayer 迷你 MP3 播放器、扬声器和 5V 外部电池。
DFPlayer Mini MP3 Player 需要一个可持续的 5V 电源才能正确执行命令。由于 Arduino Nano 33 IoT 是基于 3.3V 的开发板,我在 PCB 上添加了一个外部电池插座,为 DFPlayer Mini 和 Nano 33 IoT 供电。我使用 MB102 面包板电源模块产生可持续的 5V 电压并通过接头将其连接到 PCB。
模式和功能
1)执行register_new_UIDs()函数时,设备会创建一个待注册的 UID 列表以供进一步比较,并通过串口显示该列表。在这方面,用户可以注册所有 RFID 标签或卡片,用于区分受邀和未受邀的客人:)
2) 设备打印WiFi连接状态、服务器连接状态、DFPlayer Mini状态以及最近读取的UID(如果通过串口连接)。
3)默认模式下,设备开始工作时,精确执行代码后,RGB眼睛变为紫色。
4) 首次尝试按门铃后,设备播放001bell_voice.mp3文件,将 RGB 眼睛变为黄色,并通过 WhatsApp 向用户发送通知消息:
“有人在门口!等待行动......状态=>新客人”
5) 在第二次尝试按门铃后,设备会播放002second_bell_voice.mp3文件,将 RGB 眼睛变成红色 - 更愤怒 :) - 并通过 WhatsApp 向用户发送通知消息:
“客人尚未获悉万圣节主题的 RFID 入口系统 :) 状态 => 第二次尝试”
6) 如果客人出示未注册且错误的 RFID 标签或卡,设备会播放003wrong_rfid.mp3文件,将 RGB 眼睛变为青色,并通过 WhatsApp 向用户发送警报消息:
“一些不速之客试图破坏入口系统!状态 => 侵入”
7) 如果客人出示已注册且正确的 RFID 标签或卡片,设备将播放004correct_rfid.mp3文件,将 RGB 眼睛变为绿色,并通过 WhatsApp 向用户发送通知消息:
“其中一位客人放弃了入口通行证 - 已注册的 UID - 已到达 :) 状态 => 准确”
。
- 万圣节的社交距离,语音激活的糖果幻灯片
- 使用LED和纸巾管制作万圣节项目
- TinyLily RGB LED万圣节装饰蜡烛闪烁
- 阿杜诺万圣节派对开源硬件
- 万圣节机器人V2开源
- 基于超声波传感器的万圣节喷火南瓜 0次下载
- 基于Raspberry Pi Pico的万圣节通话时钟 0次下载
- 基于Arduino的万圣节南瓜 0次下载
- 会说话的颜色检测系统
- 万圣节(HoT)和您的小互联网开源分享
- Arduino Nano万圣节服装
- 一个3D打印的万圣节南瓜灯
- 万圣节来临,动手做一个无线充电的南瓜灯吧
- 会说话的RFID自行车控制系统
- 带有声光效果的万圣节南瓜
- 电子门铃电路图分享 2171次阅读
- 典型门铃电路图分享 3578次阅读
- 基于ESP32和DFPlayer实现WiFi门铃的制作 3174次阅读
- 如何使用电子技术设计一个会说话的布娃娃 3355次阅读
- dfrobot语音合成模块介绍 3228次阅读
- 带闪烁LED的门铃电路讲解 5516次阅读
- 遥控门铃的结构与工作原理介绍 1.3w次阅读
- 无线电遥控门铃电路原理图 3w次阅读
- 谷歌人脸识别门铃的摄像头和门铃二合一 3172次阅读
- 数码眼镜diy制作教程 超炫酷 3553次阅读
- 无线语音门铃怎么样?无线语音门铃工作原理浅析 3357次阅读
- 基于cd4069简易两用密码门铃电路 3828次阅读
- 魔音门铃电路图 2442次阅读
- 对讲音乐门铃电路图 3826次阅读
- 电子叮咚门铃电路图 8376次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多