我的ESP32實做書籍:我出書了 ESP32 物聯網專題
博客來網址:https://www.books.com.tw/products/0010901195
前言
繼上篇的數位讀取人體通知器製作,採用LED的燈號變化做通知,本篇我們要使用錄放音ISD1820製作「來客報知機」,也就是我們進入某些商店時(例如小北百貨),會聽到「歡迎光臨,現在全面特價」這類的裝置。錄放音模組(ISD1820)與LED類似,一樣使用數位寫入即可驅動,以下稍微介紹一下ISD1820。
一、錄放音模組ISD1820簡介
市面上購買ISD1820都會附帶一個8歐姆喇叭,有些賣家會註明「帶咪頭」,我們會看不懂什麼是咪頭,其實咪頭是大陸用語=麥克風的意思,也就是說可以自己錄音一段,屆時是需要播放錄音,錄音的長度在15-20秒,且錄音會覆蓋上一次,也就是只能保留一段錄音,若您需要多段聲音,可以參考另外一篇文章:ESP32 arduino網路控制mp3播放器(dfplayer mini),請自己將喇叭與附的配線焊接起來,這個裝置的喇叭可不分正負極。
ISD1820如圖,下方的三個按鈕功能依序是
REC錄音鈕:按住錄音10秒以內,只有一段,下次錄音會洗掉上次的。如果需要能撥放多段錄音的需要使用別種模組。
PLAYE播放一次:會將上一次錄音的內容直接播放出來。
PLAYL按住播放:按住會播放上次錄音的內容,與PLAYE的差異是,PLAYL要按住才會播放,放掉馬上停止,因此這個按鈕不常用,PLAYE比較常用。
左側腳位的部份則依序是
VCC:電源,接5V
GND:接地,接GND
FT:本例沒用到
P-L:播放,給予高電位多久播放多久,像PlayL鈕按住播放一樣,停止供電就會馬上停止
P-E:播放,給予一次高電位,就會完整播放一整段
REC:錄音,給予高電位就啟動錄音
二、ESP32線路佈置
首先為了測試,我們先利用ISD1820上面的紅色REC錄影按鈕錄一段音約10秒的聲音,例如「歡迎光臨,商品全面特價喔」之類,要記得不要亂錄,因為這學期同學的錄音會一直存下來,直到下一屆的學生再上到這單元為止,也許你也話要對學弟妹說也可以透過這個來傳遞,哈哈。
佈線的部份,除了VCC、GND之外,我們將P-E接在麵包板編號右9,也就是GPIO17(麵包板編號與ESP32腳位請參考下面的對照圖)。
三、程式撰寫
依據之前LED的練習(第四篇 ESP32數位讀取(感測)digitalRead),我們只要在SR-501偵測到高電位時,就在GPIO 17給予高電位一次,否則平常保持GPIO 17為低電位狀態即可完成來客報知機的功能,因此程式很簡單
void setup() {
//setup設定,只執行一次
Serial.begin(115200);
pinMode(16, INPUT); //宣告GPIO 16作為輸入(人體紅外線SR-501)
pinMode(17, OUTPUT); //宣告GPIO 17作為輸出(錄放音ISD1820)
}
void loop() {
//loop迴圈,重複執行不停止
if (digitalRead(16) == HIGH) {
Serial.println("Coming");//偵測到有人經過
digitalWrite(17, HIGH); //播放錄音
}
else {
Serial.println("None");//偵測無人經過
digitalWrite(17, LOW);//保持低電位,不過可以省略
}
delay(1000);
}
除了商店用的來客報知機外,是不是也可以做老闆報知機,或者老師報知機之類有趣的專題呢?可以思考看看喔。