一、簡介
Pixel:Bit 教學系列文章來到單元十了!(灑花 🌼🌼🌼)
在前幾個教學文章中,我們已經將影像透過 Web Server 方式在網頁上呈現,或是將影像從 jpg 解碼後串流在 TFT 螢幕上,這次同樣是擷取 Camera 影像,但不同的是我們將結合 PIR(人體紅外線感測器)、Line Notify,實作一個即時自動拍照機,現在就跟我們一起動手實作吧!
二、所需設備
三、架構
本次教學的重點在於拍照後使用 Line Notify 提供的 HTTPS API 將影像資料發送至 Line Notify 伺服器,最後由 Line Notify 伺服器將圖像傳到使用者 Line 應用程式,架構圖如下所示:
四、目標
本次實作教學的目標,是自動拍照機將會透過 PIR 人體紅外線感測器感測到人體移動後,點亮 MbitBot mini 擴展板上的 WS2812 LED(白燈),並且透過蜂鳴器發出音階 Si 的音,接著透過 Camera 拍照,並將圖像透過 HTTPS 發送至 Line Notify Server,最後將圖像存入 SD Card。
五、取得 Line Notify Token(權杖)
Line Notify 是一個 Line 的服務,它擁有一個專屬的 Line 官方帳號,並且提供一系列 API,讓第三方平台可透過這些 API 將各種訊息發送至使用者的 Line 帳戶;要使用此服務需要先登入自己的 Line 帳戶,並且「發行權杖」,最終使用此權杖來發送訊息到目標使用者。
1. 點選右上角帳戶名進入「個人頁面」。
2. 點選「發行權杖」。
3. 輸入「權杖名稱」(本教學範例使用 Pixel:Bit 為權杖名稱),選擇一對一或群組(若為群組則需要將 Line Notify 帳號加入群組中),選擇「發行」並將此權杖記錄下來,之後程式會用到。
六、安裝 Library
開啟 Arduino IDE Library Manager 安裝以下這幾個 Library。
1. TJpg_Decoder Library
2. TridentTD_LineNotify Library
3. FastLED Library
七、範例程式 ESP32
打開 PixelBit 範例程式「08_Pir_Camera_Line_Notify/PixelBit_Pir_Camera_ESP32」,修改第 49~51 行後燒錄至 ESP32 內。
- Line 49:輸入 Wi-Fi SSID。
- Line 50:輸入 Wi-Fi Password。
- Line 51:輸入 Line Notify 發行的權杖。
八、範例程式 ATmega 328P
打開「8_Pir_Camera_Line_Notify/PixelBit_Pir_Camera_328p」,燒錄至 328P 內,完成後將燒錄開關切換到「GO」選項,確保 ESP32 能與 328P 溝通。
九、插入 SD 卡
若使用者想在自動拍照時,一同儲存圖像可以另外準備一張空的 SD 卡並安裝到 Pixel:Bit 上,如下圖所示:
十、組裝
在這邊我們客製了一塊底板,方便可以掛在牆上或是容易攜帶,並將擴展板、PIR 感測器固定上去,使用者可以依照自己喜歡的方式或外觀安裝固定。
- 接線部分
請依照下方對照表將 Pixel:Bit、MbitBot mini 擴展板與 Pir 人體紅外線感測器連接、組裝起來。
Pixel:Bit | MbitBot mini 擴展板 | Pir人體紅外線感測器 |
– | V | V |
– | G | G |
– | Pin6 | S1 |
Edge Connector | Edge Connector | – |
十一、結果
人體紅外線感測器感測到人體移動時,會點亮 WS2812 LED,接著拍照存入 SD 卡(如果有安裝的話),並將圖像傳入目標使用者 Line,如下圖所示:
十二、小結
實作完本篇教學文章後,可以發現只需要幾個簡單的步驟就可以完成一個自動拍照機了!除了可以將圖像即時透過 Wi-Fi HTTPS 發送至使用者的 Line 之外,如果是在沒有網路的環境下,也可以透過 SD 卡將圖像儲存起來觀看。
以上就是這次的教學,如果喜歡我們分享的 Pixel:Bit 教學系列文章,請大家多多支持與分享;若是各位夥伴們有使用 Pixel:Bit 製作什麼有趣的小專案的話,也歡迎留言給我們,說不定有機會讓您的創意在 CIRCUS Pi 上與大家做分享喔!
若您有 Pixel:Bit 研習的需求,歡迎填寫表單,日後有相關課程資訊將在第一時間通知您!