Skip to content

dong881/Smart_1stDorm

Repository files navigation

smartDorm

◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻

🟫 使用的材料

1. 超音波距離感測器 HC-SR04
2. 繼電器模組
3. WS2812 LED x60
4. Arduino UNO
5. PC or Raspberry PI 3B

◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻◻

💡 安裝一個自動化控制宿舍桌上的檯燈

  • 準備好上述材料
  • 將Arduino 線路接好 (腳位配置於Arduino code)
    • Trig Pin = 10
    • Echo Pin = 9
    • Relay Pin = 8
    • WE2812 LED Pin = 5
  • 目前僅開源至此 (API及其他功能目前因需google帳號,故僅供個人使用)

v2.0 為減輕電腦負擔,將上傳資料工作交由 Raspberry PI 3B

========================================
🟦 Arduino負責軟硬體:

  • 超聲波HC-SR04 判斷座位前方距離(cm)
    20230312_155936 20230312_164517

  • 根據條件判斷開關燈時機 (debounce)

    • 超過115cm 關燈
    • 少於 85cm 開燈

20230312_164256 20230312_164647

  • 依據模式不同配置WS2812 LEDs
    • 開燈時根據距離變換顏色(離螢幕越近越紅,越遠越綠);
      前20顆保持閃爍浪漫黃燈
    • 關燈時整條顯示弱光同色浪漫燈光,持續變色約1小時候關閉
  • 在觸發開/關燈時透過序列阜送出狀態
  • 獨立運作僅需供電即可使用

🔴🔴🔴🔴🔴🔴 v2.0 功能 目前僅開源至以上功能 🔴🔴🔴🔴🔴🔴


========================================
🟥 Raspberry PI 負責溝通:

- 所有功能已包裝成Docker Image並上傳Docker Hub - 灌好PI OS僅需運行container即可動作
docker run -d --restart always -p 8080:8080 --privileged --device=/dev/ttyUSB0 dongdonghsu/dormpiapp:lastest
  1. 透過USB序列阜和 Arduino持續溝通
  2. 收到新狀態則發送HTTP GET request to GAP API
  3. 本身作為外部的一台API server可供外部做GET Request觸發pyhton script(sw.py) 20230312_164322

========================================
🟧 雲端Google App Script (GAS) 負責 API端口:

  1. 接收資料串入做判斷
  2. 加上 Time code 後將資料輸出至Google sheet
  3. 透過 Google 自家生態鏈利用 GAS 排版 Google Sheet

🟩 Google Sheet

  • 轉換累計分鐘數為易讀公式: =TEXT(SUM(D3:D)/60,"0")&"小時:"&MOD(SUM(D3:D),60)&"分"

  • 判斷離開時間條件格式設定公式: =IF(AND(C5=1,C4=0), "true", "false")="true"

  • 判斷坐下時間條件格式設定公式: =IF(AND(C5=0,C4=1), "true", "false")="true"

  • 圖表格式設定: image

========================================
DEMO:
image

利用試算表條件格式設定公式分辨,🟥紅色:坐下時間、⬜灰色:離開時間以及單次所待的時間長度

image

  • 新增分析每周每時所待分布圖 image image

About

安裝在宿舍自動化控制桌上的檯燈

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors