如何製造智慧居家電子產品:智慧型信箱

smart home electronics

該專案把物聯網和智慧居家電子裝置的理念相結合,然後應用到一個實用專案中。該專案旨在透過在您接收到新信件時給您的手機發送通知,來節省您查看信箱的時間。透過該項目的功能之一“連接覆蓋”,您可以在家中查看來自世界任何地方的信件。

功能描述

檢測您的信箱中是否有新信件。

透過行動應用程式通知使用者檢測結果。

硬體元件:

ESP8266

smart home electronics

圖 1: ESP8266 / ©ACROBOTIC

  • 帶有內建WiFi模組且具有80MHz時脈頻率的32位元微控制器
  • 1美元左右的超低成本
  • 可以在Lua (NodeMCU)、JavaScript (Espruino)和Python (Micro Python)編譯器上運行
  • Arduino 整合式研發環境

ESP-12E 研發板 (aka NodeMCU DevKit)

smart home electronics

圖 2: NodeMCU / ©ACROBOTIC

ESP-12E模組劃分了研發板上所有可用的ESP8266引腳,以便實現與客戶的輕鬆交互。

  • 透過微型USB資料線進行輕鬆程式設計。
  • 可見的LED燈,用於指示SoC的Tx引腳的狀態
  • ESP-12E,一種4MB SPI快閃記憶體晶片。
  • 合理範圍內(50英尺處為–70~–80 dBm)的板載天線。
smart home electronics

圖 3: ESP-12E 研發板 / ©ACROBOTIC

HC-SR04 超聲波感測器

smart home electronics

圖4:超聲波感測器

HC-SR04超聲波感測器透過使用聲納超聲波來檢測與物體之間的距離。它提供了一種出色的非接觸範圍內物體的檢測方式,具有高精准度和讀取的穩定性。它的運行不受陽光或黑色物質的影響。配有超聲波射極器和接收器模組。

您可以點擊此處獲取HC-SR04超聲波感測器的用戶使用手冊。

軟體元件:

Arduino IDE
Blynk 應用程式
Milestones

在Arduino IDE上安裝ESP-12E 研發板驅動

在Arduino IDE中,打開首選項(Preferences)視窗,複製下面的URL到新增研發板管理器URLs(Additional Boards Manager URLs)中,點擊確認(OK)。

http://arduino.esp8266.com/stable/package_esp8266com_index.json

 

如果您在研發板管理器的URL中已經添加了一些其他研發板,請在添加上述URL前加一個逗號和空格。

smart home electronics

smart home electronics

選擇功能表選項中的工具(Tools)→研發板(Board)→研發板管理(Boards Manager)……向下滾動,找到ESP8266 Community中的esp8266選項,這是清單中的最後一項,然後點擊安裝(Install)。

如果您在設定研發板時需要額外的説明,請參考本課程:

連接ESP-12E研發板和超聲波感測器的電路設計

連接

smart home electronics

圖5:系統接線

顯然,這裡我們只需要進行少數的幾個連接,因為大部分功能已經在我們的電路設計部分實現了。

編寫代碼

跳轉到用於檢測您信箱中新信件的程式碼部分:

您無需在這部分程式中添加任何程式館;只需在您的NodeMCU上顯示以下代碼即可。

[https://github.com/formus14/Smart_mailbox/tree/master/Ultrasonic_HC_SR04_ESP8266]

您可以從Arduino IDE的序列監視器中查看結果。

連接程式碼和Blynk應用程式

這部分包含兩個內容:1. Arduino程式碼; 2. 使用Blynk構建行動應用程式。

程式設計

在程式設計這部分涉及到很多內容。我會儘量把它劃分成更簡單的步驟。

Blynk是一款可以與至今市面上大部分的微控制器進行交互的應用程式,它的功能是透過行動應用程式和微控制器之間發送和接收資料來實現的。

  • 下載並安裝 Blynk 程式館,這樣我們就可以使用Blynk的所有功能了。

[https://github.com/formus14/Smart_mailbox/tree/master/blynk-library-0.3.4]

[https://github.com/formus14/Smart_mailbox/tree/master/SimpleTimer-library]

  • 如果您使用的是簡單的LCD,請用虛擬引腳來發送資料到行動應用程式上。在本專案中,我們從應用程式發送資料到硬體時使用常規的數位或類比引腳。
  • 如果您使用的是高級LCD,只需為LCD創建一個物件即可,就像程式碼中顯示的那樣。

在這裡下載所有的程式碼和程式館:[https://github.com/formus14/Smart_mailbox]

smart home electronics

Blynk行動應用程式

使用Blynk,您可以透過使用小零件來控制和監視來自iOS或者Android裝置的硬體專案來創建介面。Blynk支援Arduino、Raspberry Pi、Particle Core,以及其他常見的微控制器。

您還可以在其他平台透過網路來控制硬體。但是,對於本項目,我們使用Blynk,因為它非常易於操作。

您在程式碼中需要注意的一些事項:

  • char auth[] = ” “;

mailbox.ino程式碼中的這一行應填寫您在創建應用程式時獲得的身份認證資訊。

Blynk.begin(auth, “WIFI Network”, “WIFI PASSWORD”);

對於設定功能中的這一行,您應該將“WI-FI Network”更改為自己的Wi-Fi網路名稱。對“Wi-Fi PASSWORD”也是如此。

除了啟動Blynk的相關內容,以下還有透過螢幕擷取畫面來展示如何創建您自己的應用程式的分步指南:

1)使用您的帳戶資訊登錄後,會看到以下畫面:

smart home electronics

2)按下“創建新項目”(Create New Project)後,輸入您的項目名稱,然後選擇“ESP8266”作為硬體型號。

smart home electronics

smart home electronics

3)保存身份認證資訊這一步非常重要,因為我們要把它添加到ESP8266的主程序中。您可以選擇透過按下e-mail鍵來將它發送到您登錄時所用的信箱。

smart home electronics

4)發送完成後,您可以點擊“創建”(Create)以完成項目的創建。項目創建後,您就可以添加其他的小零件到您的應用程式中了。

smart home electronics

5)在螢幕的右上角點擊添加“+”,您將看到所有的小零件框,然後將LCD零件拖曳到您的工作區中。

smart home electronics

smart home electronics

6)對於我們的系統,我們只需要LCD,但是您也可以盡情嘗試其他可獲取的小零件。

LCD上有兩種列印方式(簡單或高級)。本課程介紹高級方式。

smart home electronics

smart home electronics

7)點擊顏色(COLORS)下的“O螢幕”(O Screen),更改LCD的背光;對(T)文本((T) Text)透過相同的操作來編輯顏色。

現在,您應將LCD連接到虛擬引腳,這樣它就可以透過Blynk伺服器與ESP8266進行通信了。

在主程序中,我將LCD與虛擬引腳1進行連接。

smart home electronics

smart home electronics

smart home electronics

smart home electronics

8)現在應用程式已經可以與您的硬體系統之間進行互動了。

smart home electronics

9)將程式上傳到ESP8266中,並在Blynk上運行您的應用程式。

如果您沒有任何信件,將會在LCD上看到以下消息:

smart home electronics

如果在您的信箱中收到信件,那麼您將會在螢幕上看到以下另一種資訊:

smart home electronics

現在您就可以僅在收到信件時查看信箱,從而節省時間了。

smart home electronics