資料介紹
描述
盡管在萬圣節(jié)之夜用南瓜燈開一個有趣但不欺騙的笑話并不引人注目,但我決定為我的客人在萬圣節(jié)敲響門鈴時設(shè)計一個南瓜燈,為他們創(chuàng)造一個特殊的活動。 -具有有趣功能的燈籠門鈴。而且,毫不奇怪,我只讓我的一些最親密的朋友知道我的新門鈴功能,給他們注冊的 RFID 標簽(進入許可),讓我的其他客人甚至有點害怕 :) 詳細地說,這個門鈴會和客人說話并在客人按門鈴或出示 RFID 標簽或卡片時通過 WhatsApp 通知用戶。
首先,為了讓門鈴在互動后與客人交談,我從文本中生成了我希望門鈴說話的每個場合的聲音。您可以在以下部分中獲得有關(guān)如何通過文本文件創(chuàng)建語音文件的更多信息。
為了能夠在交互后通過 WhatsApp 獲得通知,我在 Raspberry Pi 上創(chuàng)建了一個應用程序,包括 Twilio 的 WhatsApp API。而且,我使用 Arduino Nano 33 IoT 與 Raspberry Pi 上的應用程序進行通信。
然后,為了播放我使用 Arduino Nano 33 IoT 生成的聲音,我使用了帶有揚聲器的 DFPlayer 迷你 MP3 播放器。而且,為了從 RFID 標簽或卡片讀取和注冊 UID,我使用了 MFRC522 RFID 閱讀器。
最后,我將 DC184 黃色按鈕作為門鈴按鈕,將 RGB 共陰極 LED 作為南瓜燈的眼睛。
在面包板上完成設(shè)計并測試代碼后,我設(shè)計了一個 PCB(WhatsApp RFID Talking Doorbell),具有獨特的南瓜燈形狀和憤怒的面部表情,為萬圣節(jié)打造了一個合適而邪惡的門鈴 :)
非常感謝PCBWay贊助這個項目。
?
?
第 1 步:設(shè)計和焊接 WhatsApp RFID 會說話的門鈴 PCB
我用面包板上的 Arduino Nano 33 IoT 測試了所有連接和模塊。
?
然后,我使用 KiCad 設(shè)計了 ??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 上設(shè)置 LAMP Web 服務(wù)器
如果您是使用 Raspberry Pi 編程的新手,您可以在 Raspberry Pi 官方網(wǎng)站上查看解釋清楚的說明和教程。
要轉(zhuǎn)到官方 Raspberry Pi 設(shè)置教程,請單擊此處。
?
- 通過從菜單中選擇附件 > 終端打開終端窗口。
- 通過在終端中鍵入以下命令并按 Enter 來安裝 apache2 包:
sudo apt-get install apache2 -y
?
- 要測試服務(wù)器,請從菜單中選擇 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 服務(wù)器,以便能夠在 localhost 上使用已安裝的包:
sudo 服務(wù) apache2 重啟
步驟 3:創(chuàng)建 Twilio 應用程序
要通過 Twilio 的 API 發(fā)送 WhatsApp 消息,您唯一需要做的就是注冊一個 Twilio 試用帳戶。
注冊后,使用您的 SID 和 Auth Token,您可以免費使用 Twilio 的 WhatsApp API。如 Twilio 中所述,您需要在手機上加入一個共享電話號碼,以驗證您的電話號碼并啟動 Twilio 的 WhatsApp API。
有關(guān)更多信息并了解如何創(chuàng)建新帳戶,請單擊下面的鏈接。
1) 創(chuàng)建一個新應用程序 - WhatsApp Talking Doorbell。
?
2) 打開應用程序的儀表板。
?
3) 前往 WhatsApp 的 Twilio Sandbox 獲取驗證碼。
?
4) 使用驗證碼將您的手機連接到您的應用程序。
?
第 4 步:使用 PHP 開發(fā)在 Raspberry Pi 上運行的 WhatsApp Talking Doorbell 應用程序(webhook)
我用 PHP 開發(fā)了 WhatsApp Talking Doorbell,并在下面的代碼說明部分為感興趣的人解釋了應用程序的源代碼。
但是,如果您不喜歡使用 PHP 進行 Web 開發(fā),您可以在下載中下載該應用程序 - 名為 WhatsApp_Talking_Doorbell.zip - 并將其上傳到您的 Raspberry Pi,而無需深入研究 PHP 編碼。
使用此應用程序需要 Twilio PHP Helper Library。而且,我已經(jīng)在應用程序文件夾(WhatsApp_Talking_Doorbell)中包含了提到的API,所以你不需要特別下載它。
您可以在此處獲取有關(guān) API 的更多信息。
Upload
:
通過以下步驟,在 localhost 上安裝 WhatsApp Talking Doorbell:
- 下載應用程序 - WhatsApp_Talking_Doorbell.zip - 包括 index.php 和 WhatsAppAPI(Twilio 的 WhatsApp API)。
?
- 提取 WhatsApp_Talking_Doorbell.zip。
?
?
- 使用終端將應用程序文件夾 (WhatsApp_Talking_Doorbell) 從 Downloads 移動到服務(wù)器 (/var/www/html),因為 apache 服務(wù)器是受保護的位置。
sudo mv /home/pi/Downloads/WhatsApp_Talking_Doorbell /var/www/html/
?
- 轉(zhuǎn)到 WhatsApp 會說話的門鈴:
http://localhost/WhatsApp_Talking_Doorbell/
Features
:
1) 如果沒有對 webhook 的請求,應用程序會打印:還沒有請求!
?
2) 否則,如果所有必需的參數(shù)都準確無誤,則應用程序會打印:Message Send...
sid : Twilio 應用程序 SID
a_token :Twilio 應用程序身份驗證令牌
正文:WhatsApp消息正文
來自:共享電話號碼
至:已驗證的電話號碼
?
3) 隨后,應用程序通過 WhatsApp 將消息正文發(fā)送給用戶。
?
Code Explanation
:
1) 索引.php
- 包括所需的庫 - Twilio Helper Library for PHP。
- 如果檢測到所有必需的變量——sid 、a_token 、body 、from和to——創(chuàng)建一個新的Client 。
- 然后,通過 Twilio 的 WhatsApp API 將 WhatsApp 消息作為共享電話號碼從服務(wù)器發(fā)送到已驗證的電話號碼。
語法:
http://localhost/WhatsApp_Talking_Doorbell/?sid="[Application_SID]"&a_token="[AUTH_TOKEN]"&body="[Message_Body]"&from="[Shared_Phone_Number]"&to="[Verified_Phone_Number]"
?
第 5 步:從文本中生成聲音
完成上述步驟后,為了能夠與設(shè)備對話,我為每個場合從文本文件生成了不同的語音文件,我希望設(shè)備通過對話與客人互動。通過這種方式,我可以在每個選定事件觸發(fā)時使用 DFPlayer Mini MP3 播放器播放它們。
我為各種場合寫了四種不同的演講,并通過下面的網(wǎng)絡(luò)應用程序?qū)⑺鼈冝D(zhuǎn)換為語音文件:
當然,它們很棘手,很適合萬圣節(jié) :)
您可以下載我在下面生成的語音文件 - voices.zip 。
1)第一次嘗試按門鈴:
“你好,我是會說話的燈籠,有義務(wù)在這個邪惡的夜晚保護這所房子。請在進入房子之前出示你的通行證標簽或交給你的卡片。然后,我會通過WhatsApp通知業(yè)主,取決于是否你有沒有鑰匙卡?!?/font>
?
2)第二次嘗試按門鈴:
“我想你既不知道鑰匙卡的要求,也不熟悉屋主,所以我會因擅闖屋主而通知屋主,請立即離開屋子?!?/font>
?
3) 錯誤的 RFID UID:
“很奇怪,你給我看了一張錯誤的,還騙人的進入標簽或卡片,才能進入這所房子。所以,不出意外,我會向房主發(fā)送闖入警報信息,請立即離開房子。 "
?
4) 正確的 RFID UID:
“您好,感謝您在萬圣節(jié)之夜參觀這座鬼屋,出示屋主放棄給您的登記入境卡或標簽。我剛剛通過 WhatsApp 通知屋主您的到來。請等到您和藹可親歡迎?!?/font>
?
第 6 步:設(shè)置 Arduino Nano 33 IoT
如果您是使用 Arduino Nano 33 IoT 編程的新手:別擔心,使用 Arduino IDE 很簡單。只需下載所需的驅(qū)動程序 - Arduino SAMD Core -此處已詳細說明。
?
為了能夠通過 Arduino Nano 33 IoT 連接到 WiFi,請從此處下載 WiFiNINA 庫。
?
我使用 Arduino Nano 33 IoT 上的第二個串口 (Serial1) 與 DFPlayer Mini MP3 Player 進行通信。
Arduino Nano 33 IoT 上的串行端口:
“開發(fā)板的 USB 連接器直接連接到 SAMD21 的 USB 主機引腳。此路由使您能夠?qū)?Arduino NANO 33 IoT 用作客戶端 USB 外圍設(shè)備(充當連接到計算機的鼠標或鍵盤)或用作一個 USB 主機設(shè)備,以便鼠標、鍵盤或 Android 手機等設(shè)備可以連接到 Arduino NANO 33 IoT。此端口也可以用作使用 Arduino 編程語言中的 Serial 對象的虛擬串行端口。RX0和 TX1 引腳是第二個串行端口,可用作 Serial1?!?/font>
然后,Arduino Nano 33 IoT 就可以執(zhí)行項目代碼了:)
第 7 步:向 DFPlayer 迷你 MP3 播放器發(fā)送命令
將 DFPlayer 迷你 MP3 播放器與 Arduino 一起使用很容易,因為它有一個庫,包括所有可用的 UART 命令和功能。在這方面,您無需手動向 DFPlayer Mini 發(fā)送 UART 命令即可播放 MP3 文件。
正如其產(chǎn)品 wiki 中所解釋的,“DFPlayer Mini MP3 Player For Arduino 是一款小型且價格低廉的 MP3 模塊,具有直接到揚聲器的簡化輸出。該模塊可用作獨立模塊,帶有電池、揚聲器、和按鈕或與 Arduino 結(jié)合使用” 。
?
?
為了能夠?qū)⑺c 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);
而且,為了能夠準確地執(zhí)行命令,請通過在歌曲名稱中添加連續(xù)數(shù)字來保存您的歌曲,就像我一樣:
001bell_voice.mp3
002second_bell_voice.mp3
003wrong_rfid.mp3
004正確_rfid.mp3
第 8 步:對 Arduino Nano 33 IoT 進行編程
下載所需的庫以控制模塊:
DFPlayer 迷你 MP3 播放器 | 圖書館
MFRC522 RFID閱讀器| 圖書館
- 包括所需的庫。
- 定義您的 WiFi 網(wǎng)絡(luò)設(shè)置 - SSID 和密碼。
- 輸入 Raspberry Pi 的 IP 地址。
- 在 Raspberry Pi 中定義應用程序的路徑。
- 初始化以太網(wǎng)客戶端庫。
- 創(chuàng)建 DFPlayer 迷你對象。
- 創(chuàng)建 MFRC522 實例。
- 定義 MFRC522 模塊按鍵輸入。
- 執(zhí)行register_new_UIDs()函數(shù)后,將注冊的 UID 列表粘貼到受邀訪客字符串數(shù)組并定義總訪客人數(shù)。
- 定義 RGB LED 引腳。
- 定義門鈴引腳 - DC184 黃色按鈕。
- 在 RX0 和 TX1 引腳上的第二個串行端口 - Serial1上啟動 DFPlayer Mini 。
- 初始化 MFRC522 硬件。
- 檢查 WiFi 模塊和設(shè)置。
- 通過播放語音文件 - myDFPlayer.play(1)在客人按下按鈕(門鈴)時驚嚇并通知客人。
- 在WhatsApp_Message()函數(shù)中:
- 通過 Twilio 定義所需的設(shè)置 - 帳戶 SID、身份驗證令牌、FROM 電話號碼(傳入)和 TO 電話號碼(傳出)。
- 連接到 Raspberry Pi 上名為 WhatsApp Talking Doorbell 的 Web 應用程序。
- 在register_new_UIDs()函數(shù)中(取消注釋執(zhí)行),檢測新卡或標簽 UID 并打印 UID 列表。
- 要將新的 UID 保存到受邀訪客字符串數(shù)組中,請在執(zhí)行此函數(shù)后復制 UID 列表。
- 在read_UID()函數(shù)中:
- 獲取最近讀取的 UID。
- 檢測最近讀取的 UID ( lastRead ) 是否在被邀請的_guests字符串數(shù)組中注冊的 UID 中,以使用相關(guān)語音文件激活 DFPlayer。
?
?
?
?
?
連接和調(diào)整
// 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 需要一個可持續(xù)的 5V 電源才能正確執(zhí)行命令。由于 Arduino Nano 33 IoT 是基于 3.3V 的開發(fā)板,我在 PCB 上添加了一個外部電池插座,為 DFPlayer Mini 和 Nano 33 IoT 供電。我使用 MB102 面包板電源模塊產(chǎn)生可持續(xù)的 5V 電壓并通過接頭將其連接到 PCB。
?
模式和功能
1)執(zhí)行register_new_UIDs()函數(shù)時,設(shè)備會創(chuàng)建一個待注冊的 UID 列表以供進一步比較,并通過串口顯示該列表。在這方面,用戶可以注冊所有 RFID 標簽或卡片,用于區(qū)分受邀和未受邀的客人:)
?
?
2) 設(shè)備打印WiFi連接狀態(tài)、服務(wù)器連接狀態(tài)、DFPlayer Mini狀態(tài)以及最近讀取的UID(如果通過串口連接)。
?
3)默認模式下,設(shè)備開始工作時,精確執(zhí)行代碼后,RGB眼睛變?yōu)樽仙?/font>
?
4) 首次嘗試按門鈴后,設(shè)備播放001bell_voice.mp3文件,將 RGB 眼睛變?yōu)辄S色,并通過 WhatsApp 向用戶發(fā)送通知消息:
“有人在門口!等待行動......狀態(tài)=>新客人”
?
?
5) 在第二次嘗試按門鈴后,設(shè)備會播放002second_bell_voice.mp3文件,將 RGB 眼睛變成紅色 - 更憤怒 :) - 并通過 WhatsApp 向用戶發(fā)送通知消息:
“客人尚未獲悉萬圣節(jié)主題的 RFID 入口系統(tǒng) :) 狀態(tài) => 第二次嘗試”
?
?
6) 如果客人出示未注冊且錯誤的 RFID 標簽或卡,設(shè)備會播放003wrong_rfid.mp3文件,將 RGB 眼睛變?yōu)榍嗌?,并通過 WhatsApp 向用戶發(fā)送警報消息:
“一些不速之客試圖破壞入口系統(tǒng)!狀態(tài) => 侵入”
?
?
7) 如果客人出示已注冊且正確的 RFID 標簽或卡片,設(shè)備將播放004correct_rfid.mp3文件,將 RGB 眼睛變?yōu)榫G色,并通過 WhatsApp 向用戶發(fā)送通知消息:
“其中一位客人放棄了入口通行證 - 已注冊的 UID - 已到達 :) 狀態(tài) => 準確”
?
?
。
?
?
?
?
- 萬圣節(jié)的社交距離,語音激活的糖果幻燈片
- 使用LED和紙巾管制作萬圣節(jié)項目
- TinyLily RGB LED萬圣節(jié)裝飾蠟燭閃爍
- 阿杜諾萬圣節(jié)派對開源硬件
- 萬圣節(jié)機器人V2開源
- 基于超聲波傳感器的萬圣節(jié)噴火南瓜 0次下載
- 基于Raspberry Pi Pico的萬圣節(jié)通話時鐘 0次下載
- 基于Arduino的萬圣節(jié)南瓜 0次下載
- 會說話的顏色檢測系統(tǒng)
- 萬圣節(jié)(HoT)和您的小互聯(lián)網(wǎng)開源分享
- Arduino Nano萬圣節(jié)服裝
- 一個3D打印的萬圣節(jié)南瓜燈
- 萬圣節(jié)來臨,動手做一個無線充電的南瓜燈吧
- 會說話的RFID自行車控制系統(tǒng)
- 帶有聲光效果的萬圣節(jié)南瓜
- 電子門鈴電路圖分享 2171次閱讀
- 典型門鈴電路圖分享 3578次閱讀
- 基于ESP32和DFPlayer實現(xiàn)WiFi門鈴的制作 3174次閱讀
- 如何使用電子技術(shù)設(shè)計一個會說話的布娃娃 3355次閱讀
- dfrobot語音合成模塊介紹 3228次閱讀
- 帶閃爍LED的門鈴電路講解 5516次閱讀
- 遙控門鈴的結(jié)構(gòu)與工作原理介紹 1.3w次閱讀
- 無線電遙控門鈴電路原理圖 3w次閱讀
- 谷歌人臉識別門鈴的攝像頭和門鈴二合一 3172次閱讀
- 數(shù)碼眼鏡diy制作教程 超炫酷 3553次閱讀
- 無線語音門鈴怎么樣?無線語音門鈴工作原理淺析 3357次閱讀
- 基于cd4069簡易兩用密碼門鈴電路 3828次閱讀
- 魔音門鈴電路圖 2442次閱讀
- 對講音樂門鈴電路圖 3826次閱讀
- 電子叮咚門鈴電路圖 8376次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 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開發(fā)指南
- 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開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 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次下載 | 免費
評論
查看更多