HW01 Python 環境建立和Hello World







 1. NotebookLM

Notebook LM

 2. YouTube


3. 學習卡與測驗

測驗













學習卡














4.kaggle python

一、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。

三、GitHub 專案建議結構

smart-lighting-system/
├── smart_lighting.py
└── README.md

將 Python 程式存成 smart_lighting.py,再把上面的 README 存成 README.md,就可以上傳到 GitHub。

如果這是要放進電機科備審資料的專題,建議再補上系統流程圖、實際執行截圖,以及未來與 Arduino 人體感測器整合的規劃,讓專案的設計目的與控制邏輯更完整。

 














留言