# 嘉科實中社團講義(113第2學期) | 周次 | 日期 | 課程大綱| | ---- | ---------- |-------| 1|2025/02/21|選定題目安排進度| 2|2025/03/14|| 3|2025/03/28|| 4|2025/04/11|| 5|2025/05/02|| 6|2025/05/09|| 7|2025/05/23|| 8|2025/06/13|| ## 2025/02/21 ### 今日目標 - 選定題目並安排進度 - 學習工具介紹 - 複習?????? --- ### 選定題目 可以從生活上遇到的**問題**發想,並且可以利用程式來**解決問題**。 [表格填寫網址](https://docs.google.com/spreadsheets/d/1gs4jVwC1XibdNe44pFVIRVhtw-muPNlQHU6v66BBIBI/edit?usp=sharing) #### 範例1 問題: 每次校網有新資訊我都不知道。 解決方法: 當校網有更新就會發送訊息通知我。 #### 範例2 問題: 嘉大附近的UBike都借不到? 解決方法: 寫程式蒐集資料,統計哪個時段和哪個點比較容易借到腳踏車。 #### 範例3 問題: 躺在床上懶得起身關燈,有沒有辦法躺在床上就可以關燈? 解決方法: 關燈神器。參考影片: [How to Control Light Switch with Servo BLYNK #iot](https://www.youtube.com/watch?v=BuUgd0TNlqI) #### 範例4 問題: 每次點名都浪費很多時間。 解決方法: 可以用刷學生證、人臉辨識來點名。參考影片: [人臉辨識點名系統](https://www.youtube.com/watch?v=pF4dJuI6600) #### 範例5 問題: Youtube上不想看到特定創作者的影片或使用者的留言。 解決方法: 寫程式過濾掉。 ### 進度安排與學習工具介紹 生程式AI工具使用: [Google Gemini](https://gemini.google.com/) #### 進度安排 我是一名高中生,我的程度是 **[程度]**,我現在有一個 **[問題]**,我目前的想法 **[大概的想法]**,請幫我安排八周的學習計畫。 --- ## 2025/04/11 ### YouBike分析 #### 實作流程 1. 透過站點名稱查到`station_no`和`updated_at` (用站點資訊API) 2. 透過`station_no`查到站點停車資訊 (用停車資訊API) 3. 將查到的停車資訊寫到`Google Sheet`裡面 4. 設定時間觸發條件(每30分鐘執行),但是只有6:00~18:00內的時間需要紀錄 #### Google Sheet 最後的存法 | 日期 | 時間 | 地點 | YouBike2可用數量 | 電動YouBike可用數量 | 可停空位 | |------------|-------|------------------|-------------------|---------------------|----------| | 2025-04-06 | 13:00 | 嘉義大學(新民路) | 3 | 0 | 46| | 2025-04-06 | 13:00 | 興業新民路口| 10| 0 | 15 | | 2025-04-06 | 13:05 | 民生公園(杭州五街口) | 6| 1 | 8| | 2025-04-06 | 13:04 | 新民重慶路口 | 6| 0 | 9| #### 站點基本資訊 API * **API 網址:** `https://apis.youbike.com.tw/json/station-min-yb2.json` * **請求方法:** GET * **輸入:** 無 * **功能:** * 提供所有 YouBike 站點的基本資訊。 * 包含站點名稱(`name_tw`)。 * 包含站點編號(`station_no`)。 * 包含站點資訊最後更新時間(`updated_at`)。 * **範例回傳:** ```json [ { "country_code": "00", "area_code": "00", "area_code_2": "01", "type": 2, "status": 1, "station_no": "500101001", "name_tw": "捷運科技大樓站", "district_tw": "大安區", "address_tw": "復興南路二段235號前", "name_en": "MRT Technology Bldg. Sta.", "district_en": "Daan Dist.", "address_en": "No.235, Sec. 2, Fuxing S. Rd.", "lat": "25.02605", "lng": "121.5436", "updated_at": "2025-04-06 13:03:18", "time": "2025-04-06 13:03:14" }, { "country_code": "00", "area_code": "00", "area_code_2": "01", "type": 2, "status": 1, "station_no": "500101002", "name_tw": "復興南路二段273號前", "district_tw": "大安區", "address_tw": "復興南路二段273號西側", "name_en": "No.273, Sec. 2, Fuxing S. Rd.", "district_en": "Daan Dist.", "address_en": "No.273, Sec. 2, Fuxing S. Rd. (West)", "lat": "25.02565", "lng": "121.54357", "updated_at": "2025-04-06 12:58:18", "time": "2025-04-06 12:58:14" } ] ``` #### 停車資訊 API * **API 網址:** `https://apis.youbike.com.tw/tw2/parkingInfo` * **請求方法:** POST * **輸入:** * 請求內容為 JSON 格式。 * 必須包含一個名為 `station_no` 的陣列,陣列中是您想要查詢停車資訊的站點編號。 * 例如:`{"station_no": ["501001001", "501001002"]}` * **功能:** * 根據提供的站點編號陣列,回傳這些站點的即時停車資訊。 * 包含總停車格位 (`parking_spaces`). * 包含可借車位數量 (`available_spaces`). * 包含 YouBike 2.0 可用數量 (`available_spaces_detail.yb2`). * 包含 電動 YouBike 可用數量 (`available_spaces_detail.eyb`). * 包含剩餘空位數量 (`empty_spaces`). * **範例回傳:** ```json { "retCode": 1, "retMsg": "查詢場站資料成功", "retVal": { "data": [ { "station_no": "501001001", "parking_spaces": 45, "available_spaces": 2, "available_spaces_detail": { "yb2": 2, "eyb": 0 }, "empty_spaces": 43, "forbidden_spaces": 0, "available_spaces_level": 20 }, { "station_no": "501001002", "parking_spaces": 22, "available_spaces": 8, "available_spaces_detail": { "yb2": 7, "eyb": 1 }, "empty_spaces": 14, "forbidden_spaces": 0, "available_spaces_level": 60 } ] } } ``` --- ## 2025/06/12 ## 設定Task Scheduler讓電腦自動執行程式 #### 1.按下 Win健 搜尋Task Scheduler(工作排程器) * **打Task應該就會看到了** #### 2.建立任務: * **點選右側的「建立工作..」** * **命名這個工作** * **勾選「使用最高權限執行」** #### 3.設定觸發條件: * **選想要的條件(舉例:30分鐘執行一次)** * **3.1 點選上排 tab「觸發程序」->new** * **3.2 設定開始時間(隨意)** * **3.3 在進階設定中「重複工作每隔」選30分鐘 「持續時間」隨意選 #### 4.設定動作: * **「動作」->new** * **「動作」選啟動程式** * **「程式或指令碼」->輸入 cmd ** * **「新增引數」->輸入 /c "C:\完整路徑\run_script.bat" ** #### 5.確認->儲存 就完成了!