Scratch(Block based圖像化)到Python(Text based文字型)程式語言
http://ms2.ctjh.ntpc.edu.tw/~luti/110scratch-to-python.htm
程式設計學習的方法
初探Python程式語言
基礎語法
活動設計:透過視覺化圖像理解Python程式碼執行過程(運算思維中的抽象化)
範例下載
活動設計:透過Colab(需先登入Google)學習Python
翰林國九課本範例
https://colab.research.google.com/drive/1VSzvPUa5skw-MxSXVYaRqNoFREiPW4Zc
MicroPython on ESP32簡介
MicroPython on ESP32軟硬體架構
Python物件導向程式設計方法
活動設計0: MicroPython on ESP32初體驗
第一個MicroPython程式
程式出錯(bug)怎麼辦?(這是學習程式設計必經之路.不要害怕失敗及挫折.細心耐心及容錯力之培養)
除錯(Debug)
在程式執行時,因本身有錯誤或隱藏著的一些未被發現的缺陷或問題,而造成的功能不正常、當機、資料遺失、中斷等現象,稱為 bug。而 debug是更正錯誤(除錯)的意思。
早期的計算機由於體積非常龐 大有些小蟲子可能會鑽入機器內部,造成計算機工作失靈.史上的第一個「Bug」是因為一隻飛蛾意外走入一 電腦而引致故障,因 此用「Bug」從原意為臭蟲引申為程式錯誤。
參考資料
簡單的計算機
活動設計1: ESP32內建 LED Blink
程式執行成果
實作步驟
1.硬體接線
2.撰寫程式
程式碼:下載(程式補填法)
3.按一下模擬器畫面的三角形(開始模擬)鈕,內建藍色LED將重複一閃一滅
思考問題:
1.這樣的程式碼寫法有無改進的空間?(變數概念引入)
2.可以改變閃滅的時間長短嗎?
活動設計2: ESP32內建 LED Blink +印出文字
程式執行成果
2.修改ESP32內建 LED Blink 程式
程式碼:下載(程式補填法)
3.按一下模擬器畫面的三角形(開始模擬)鈕,內建藍色LED將重複一閃一滅外.文字視窗是否會有文字顯示?
牛刀小試評量:SOS LED Blink
摩斯密碼(Morse Code)看到50秒
摩斯密碼線上翻譯器操作
提示:程式碼下載(需修改)
活動設計3:ESP32外接 LED+電阻 Blink
程式執行成果
1.硬體接線
2.撰寫程式
程式碼:下載(程式除錯法)
3.按一下模擬器畫面的三角形(開始模擬)鈕,外接LED將重複一閃一滅
4.思考問題(Wokwi教學文件)
(1)LED可以改顏色嗎
(2)導線的顏色可以改嗎?
(3)電阻的方向可以改變嗎?
A.選取電阻物件按R鍵
B.點導線變虛線刪除
重新繪製電路圖
(4)如何修改檔名?
(5)如何存檔及下載到電腦?
(6)如何將作品分享?
思考問題:多色LED閃滅控制
(若教學時間不足將圖先畫完然後分享給學生.修改程式)
提示:程式碼下載(需修改)
進階自行創作
https://wokwi.com/projects/279890929738842636
活動設計4: ESP32 紅綠燈
程式執行成果
實作步驟
1.硬體接線
2.撰寫Led 程式(不同程式語法)
程式碼-下載(非完整.需自行增加程式碼)
3.按一下模擬器畫面的三角形(開始模擬)鈕,測試紅綠燈LED
思考問題:模擬交通號誌(智慧交通)?
活動設計5-RGB閃滅(可調整燈明亮.亦可模擬紅綠燈)
程式執行成果
實作步驟
1.硬體接線(RGB共陽極.COM接點接VCC)
2.撰寫Led 程式
程式碼:RGB基本ON或OFF下載(程式仿作或程式碼識讀)
3.按一下模擬器畫面的三角形(開始模擬)鈕,測試RGB LED
進階應用-RGB呼吸燈
ESP32的duty取值範圍為0 <= duty <= 1023
ESP32的PWM頻率範圍為0 < freq <= 78125
專案分享(修改程式碼方法.調整frq.duty)
Arduino-ESP32
https://esp32io.com/tutorials/esp32-rgb-led
活動設計6-NeoPixel(霓虹像素)(WS2812)
1.硬體接線
2.撰寫程式
程式碼:下載(修改程式碼方法.調整RGB)
3.按一下模擬器畫面的三角形(開始模擬)鈕,NeoPixel模組的RGB LED將輪流發光
自行創作七彩燈條
修改程式中RGB顏色代碼
活動設計7-DTH11(22)溫溼度感測器
通信——物聯網之魂
(1)串列通訊匯流排
UART通用非同步收發傳輸器(Universal Asynchronous Receiver/Transmitter)
實作步驟
1.硬體接線(RGB共陽極.COM接點接VCC)
2.撰寫程式
程式碼:下載(程式仿作或程式碼識讀)
3.按一下模擬器畫面的三角形(開始模擬)鈕,測試是否有顯示出溫溼度
活動設計8-OLED液晶模組 0.96吋 白色 12864點陣 SSD1306驅動 3.3V-5V 4線I2C介面規格書
(2)I²C(積體電路之間.積體匯流排電路 Inter-Integrated Circuit)
I²C通訊只需要2條雙向線:
SDA(serial data:串列資料線)
SCL(serial clock:串列時脈線)
教學影片
1.硬體接線
2.程式碼
3.修改程式碼修文字內容(中文無法顯示)測試
活動設計9-OLED SSD1306+DTH11(22)
(3)WWW(Web)服務架構及技術概念
(1)Http Protocol(超文本傳輸協定)
HTTP是全球資訊網的數據通信的基礎
解說:
(2)MQTT(Message Queuing Telemetry Transport) 訊息序列遙測傳輸
1分20'開始看到3分15'
解說:
活動設計:體驗MQTT
教學影片
參考網站
進階實作
抓取NTP主機時間(Wifi)
在OLED螢幕顯示天氣概況(Wifi)
Temperature and Humidity using Franzininho, DHT22 and SSD1306
參考資料
https://docs.micropython.org/en/latest/
https://hackmd.io/@Zoyam/ByeHHYDKv
https://sites.google.com/a/nsysu.kksh.kh.edu.tw/tg02-1/nodemcu-32-esp32-iot-inquiry-teaching
http://www.1zlab.com/wiki/micropython-esp32/micropython-introduction/
https://lastminuteengineers.com/esp32-arduino-ide-tutorial/
https://docs.singtown.com/micropython/zh/latest/esp32/esp32/tutorial/index.html
https://wolles-elektronikkiste.de/en/programming-the-esp32-with-micropython
https://sites.google.com/site/wenyuwebbit/13-micropython%E5%AF%AB%E4%BD%9C
http://yhhuang1966.blogspot.com/2018/09/esp32-bpibit.html
https://www.programcreek.com/python/example/101394/machine.RTC
https://nkust.gitbook.io/micro-bit/shi-shi-yong-micropython