HW01 Python 環境建立和Hello World
1. NotebookLM
2. YouTube
3. 學習卡與測驗
測驗
學習卡
一、Python 程式碼:智慧燈控系統
專案名稱:Smart Lighting Control System(智慧燈控系統)
功能包含人體感測模擬、環境亮度判斷、自動開關燈、手動控制、燈控紀錄及 CSV 匯出。不需要額外安裝套件,適合在 Kaggle Notebook 執行。
# =====================================================
# Smart Lighting Control System
# 智慧燈控系統
# Platform: Kaggle Notebook
# =====================================================
import pandas as pd
from datetime import datetime
# =====================================================
# 1. System Settings
# 系統設定
# =====================================================
LUX_THRESHOLD = 300
control_mode = "AUTO"
light_status = False
records = []
# =====================================================
# 2. Smart Lighting Function
# 智慧燈控功能
# =====================================================
def smart_lighting(presence, brightness):
global light_status
if control_mode == "AUTO":
# 有人且環境昏暗,自動開燈
if presence and brightness < LUX_THRESHOLD:
light_status = True
reason = "有人且環境昏暗,自動開燈"
# 無人,自動關燈
elif not presence:
light_status = False
reason = "未偵測到人員,自動關燈"
# 環境亮度足夠,關燈
else:
light_status = False
reason = "環境亮度足夠,關閉燈具"
else:
reason = "手動模式,維持使用者設定"
# 顯示控制結果
print("=" * 40)
print("Control Mode:", control_mode)
print("Presence:", "Detected" if presence else "Not Detected")
print("Brightness:", brightness, "Lux")
print("Light Status:", "ON" if light_status else "OFF")
print("Result:", reason)
# 記錄資料
records.append({
"Time": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
"Mode": control_mode,
"Presence": presence,
"Brightness_Lux": brightness,
"Light_Status": light_status,
"Result": reason
})
# =====================================================
# 3. Mode Switching
# 模式切換
# =====================================================
def set_mode(mode):
global control_mode
mode = mode.upper()
if mode in ["AUTO", "MANUAL"]:
control_mode = mode
print("Mode switched to:", mode)
else:
print("Invalid mode. Use AUTO or MANUAL.")
# =====================================================
# 4. Manual Light Control
# 手動燈控
# =====================================================
def manual_control(status):
global light_status
if control_mode != "MANUAL":
print("Please switch to MANUAL mode first.")
return
light_status = bool(status)
print("Manual Light:", "ON" if light_status else "OFF")
# =====================================================
# 5. Automatic Mode Simulation
# 自動模式模擬
# =====================================================
print("SMART LIGHTING SYSTEM START")
set_mode("AUTO")
# Test 1: Someone is present, room is dark
smart_lighting(True, 100)
# Test 2: Someone is present, room is bright
smart_lighting(True, 600)
# Test 3: No one is present
smart_lighting(False, 100)
# Test 4: Someone is present, low brightness
smart_lighting(True, 200)
# =====================================================
# 6. Manual Mode Test
# 手動模式測試
# =====================================================
print("\nMANUAL MODE TEST")
set_mode("MANUAL")
manual_control(True)
smart_lighting(False, 500)
manual_control(False)
smart_lighting(True, 100)
# =====================================================
# 7. Display Records
# 顯示紀錄
# =====================================================
df = pd.DataFrame(records)
print("\nLIGHTING RECORDS")
display(df)
# =====================================================
# 8. Export CSV
# 匯出資料
# =====================================================
filename = "smart_lighting_log.csv"
df.to_csv(
filename,
index=False,
encoding="utf-8-sig"
)
print("Data saved to:", filename)
print("SMART LIGHTING SYSTEM COMPLETED")程式功能說明
功能 | 說明 |
|---|---|
人體感測 | 模擬是否有人進入環境 |
亮度感測 | 模擬環境照度,單位為 Lux |
自動模式 | 依人體感測與亮度條件決定開關燈 |
手動模式 | 使用者直接指定燈具開啟或關閉 |
資料紀錄 | 記錄時間、模式、亮度與燈具狀態 |
CSV 匯出 | 將控制紀錄儲存成 CSV 檔案 |
控制原理: 當系統處於自動模式時,如果偵測到有人且環境亮度低於 300 Lux,就會開燈;如果沒有人,或環境亮度已達到門檻,就會關燈。
注意:此程式為模擬版本,不會直接控制實體燈具或讀取真實感測器。
二、GitHub README.md
以下內容可以直接複製到 GitHub 的 README.md。
Smart Lighting Control System|智慧燈控系統
1. Project Introduction|專案介紹
本專案使用 Python 開發智慧燈控系統,並透過 Kaggle Notebook 執行程式。
系統模擬人體感測器與環境亮度感測器,根據人員是否在場及環境照度,自動控制燈具的開啟與關閉。同時提供手動控制模式,並記錄每次控制結果,方便後續資料分析。
本專案主要用於學習自動控制、條件判斷、感測資料處理及智慧照明的基本概念。
2. Project Objectives|專案目標
- 學習 Python 程式設計與條件判斷。
- 理解人體感測與環境亮度判斷的控制邏輯。
- 實作自動模式與手動模式。
- 建立燈具狀態紀錄與 CSV 資料匯出功能。
- 探討智慧照明在節能與自動化控制上的應用。
3. Features|系統功能
Automatic Mode|自動模式
系統根據模擬感測器資料,自動決定燈具狀態。
- 偵測到有人且環境昏暗:自動開燈。
- 偵測到有人但環境亮度足夠:關燈。
- 未偵測到人員:自動關燈。
Manual Mode|手動模式
使用者可以切換至手動模式,直接控制燈具開啟或關閉。
Data Logging|資料紀錄
系統會記錄以下資訊:
- 執行時間
- 控制模式
- 人體感測結果
- 環境亮度
- 燈具狀態
- 控制判斷結果
CSV Export|資料匯出
系統會將控制紀錄輸出為 smart_lighting_log.csv,可使用 Excel 或 Python 進一步分析。
4. Technologies|使用技術
- Python
- Pandas
- Kaggle Notebook
- CSV Data Processing
- Conditional Logic
5. Control Logic|控制邏輯
| Mode | Presence | Brightness | Light Status |
|---|---|---|---|
| AUTO | Detected | Below 300 Lux | ON |
| AUTO | Detected | 300 Lux or above | OFF |
| AUTO | Not Detected | Any brightness | OFF |
| MANUAL | Any status | Any brightness | User controlled |
預設環境亮度門檻為 300 Lux,可依照實際使用環境調整。
6. How to Run|執行方式
- 開啟 Kaggle Notebook。
- 建立新的 Python Notebook。
- 將專案 Python 程式碼貼入程式碼區塊。
- 按下 Run 執行。
- 查看控制結果與資料表。
- 取得輸出的
smart_lighting_log.csv。
本專案不需要連接網路,也不需要額外安裝 Python 套件。
7. Expected Results|預期結果
程式執行後,將展示不同情境下的燈控結果,例如:
- 有人且環境昏暗時,系統自動開燈。
- 有人但環境明亮時,系統關閉燈具。
- 無人時,系統自動關燈。
- 手動模式下,使用者可以直接控制燈具。
- 系統產生 CSV 紀錄檔。
8. Applications|應用方向
本專案的控制概念可延伸應用於:
- 工廠自動照明
- 教室與辦公室照明
- 走廊與樓梯照明
- 智慧家庭照明
- 節能控制系統
9. Future Improvements|未來改進
未來可進一步整合 Arduino 或 ESP32,使用 PIR 人體感測器與照度感測器取得真實環境資料,並透過適當的驅動電路控制燈具。
也可以加入延遲關燈、感測器異常處理、每日用電量估算及即時狀態監控。
10. Limitations and Safety|限制與安全
目前版本使用模擬資料,並非實際硬體控制系統,因此不會直接控制真實燈具。
若要整合實體設備,應使用符合規格的驅動模組,並由具備資格的人員設計與檢查市電相關電路,以避免觸電或火災風險。
11. License|授權
本專案可依需求選擇適合的開源授權,例如 MIT License。
Project: Smart Lighting Control System
Language: Python
Platform: Kaggle Notebook
Purpose: Educational Project and Automation Simulation
三、GitHub 專案建議結構
smart-lighting-system/
├── smart_lighting.py
└── README.md將 Python 程式存成 smart_lighting.py,再把上面的 README 存成 README.md,就可以上傳到 GitHub。
如果這是要放進電機科備審資料的專題,建議再補上系統流程圖、實際執行截圖,以及未來與 Arduino 人體感測器整合的規劃,讓專案的設計目的與控制邏輯更完整。

























留言
張貼留言