第05篇 ESP32 來客報知機:錄放音模組(ISD1820)

本篇我們要使用錄放音ISD1820製作「來客報知機」,也就是我們進入某些商店時(例如小北百貨),會聽到「歡迎光臨,現在全面特價」這類的裝置

我的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如圖,下方的三個按鈕功能依序是

錄放音模組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腳位請參考下面的對照圖)。

ESP32與ISD1820線路佈置圖
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);
}

除了商店用的來客報知機外,是不是也可以做老闆報知機,或者老師報知機之類有趣的專題呢?可以思考看看喔。

延伸閱讀

???? 第六篇 ESP32類比讀取(analogRead):小夜燈

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *