Skip to content

IoT 物聯網門鎖專案,以 ESP32 開發板及 Arduino IDE 來製作。

License

Notifications You must be signed in to change notification settings

mickey9801/esp32_iot_door_lock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP32 IoT 物聯網電門鎖

這個專案是學習如何使用 ESP32 開發板和 Arduino IDE 來開發物聯網電門鎖。這電門鎖將會成為「多因素物聯網出入保安系統專案」的組成部分。

功能

  • 連接本地 Wi-Fi 網絡,並支援 mDNS ;
  • 以不同方式開鎖及上:
    • 按掣;
    • HTTP 請求;
    • 加密的 MQTT/TLS;
    • Apple Homekit 及 Siri;
  • 電門鎖會在開鎖後 5 秒重新上鎖;
  • 開鎖時亮起綠色 LED;
  • 以磁力開關來感測門的開關狀況,如果門被打開,蜂鳴器須發出聲響,並亮起紅色 LED;
  • 當門開啟時,暫緩自動重新上鎖;
  • 當門關上後,應在延遲 1.5 秒後自動上鎖,以防門鎖在門未完全關妥時就上鎖;
  • 雙擊 ESP32 開發板的 EN 按鈕時轉為 AP 模式,並提供網頁重設 Wi-Fi;
  • 以 OTA 方式更新靭體

專案槪覽

# 題目 說明
1 ESP32 開發板槪述
  • 專案目標
  • 規格
  • 針腳 (GPIO、SPI、I2C、UART)
  • Arduino IDE 開發環境
2 基礎門鎖

建立使用按扭的門鎖系統

  • 認識電門鎖種類
  • 控制大電源: TIP120 與 MOSFET 晶體管的應用
  • 自動重新上鎖
3 門窗感測

當門被打開時發出警號

  • 門窗感測器應用
  • 運用主動式蜂鳴器

完整門鎖電路

  • 結合門鎖電路的完整電路
  • 使用標籤來組織程式
  • 解決開著門時自動上鎖的問題
4 連接 Wi-Fi

透過瀏覽器來控制門鎖

  • 連接 Wi-Fi
  • 透過 NTP 同步時鐘
  • 介紹 mDNS 和 Bonjour
  • 架設網頁伺服器
  • 開發門鎖 API
    5 MQTT 第 1 部:經理人端

    在 Raspberry Pi 上架設 MQTT 經理人

    • 認識 MQTT
    • 安裝 Mosquitto
    • 設定 Mosquitto
    • 示範訂閱與出版
    • 安裝 MQTTBox
    • 設計題目並測試
    6 MQTT 第 2 部:客戶端

    使用 MQTT 來控制門鎖

    • 認識 PubSubClient
    • 連接 MQTT 經理人
    • 認識 ArduinoJson
    • 訂閱門鎖題目並控制門鎖
    • 發布門鎖和門的狀態
    7 MQTT 第 3 部:保安

    認識互聯網裝置的基礎保安

    • Mosquitto 的認證選擇
    • 建立用戶+密碼方式認證
    • 以 TLS 進行加密連線
    • 在 Raspberry Pi 建立私人認證中心
    • 自簽 MQTT 伺服器證書
    • 在 ESP32 設定 TLS 連線
    • 認識客戶端證書
    • 認識存取控制與 ACL (存取控制清單)
    8 以 iPhone 來控制

    透過 Homekit 和 Siri 來控制門鎖

    • Homebridge
    • MQTT 插件
    • Siri 捷徑
    9 以 Google Assistant 來控制
    10 進階功能
    • 單一電源同時供應門鎖和 ESP32 開發板
    • Flash 記憶與 SPIFFS 檔案系統
    • OTA 更新
    • 重設 Wi-Fi ( ESP32 的 WiFiManager 程式庫與 Double Reset Detector )

    參考文獻

    參與者

    • Mickey Chan (@mickey9801)

    版權

    Copyright © 2019 Mickey Chan. ALL RIGHTS RESERVED.

    About

    IoT 物聯網門鎖專案,以 ESP32 開發板及 Arduino IDE 來製作。

    Topics

    Resources

    License

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published