物聯網開放硬體概念及Wokwi模擬器(MicroPython on ESP32)


物聯網(IOT)概念

生活應用

資料引用https://wellswoo.pixnet.net/blog/post/226960040-

架構圖


嵌入式系統(Embeded System)

圖片引用:梁文耀博士嵌入式智慧應用開源軟硬整合新趨勢

運作原理圖


開源系統概念

1.開放硬體及開源系統的價值

開放硬體的價值不是在學習哪一片電路板(不需拘泥在各種開發版硬體)而是學習自由軟體開源系統(Linux base)及參與社群

 

2.MPU及MCU

MCU開發版簡介

1.硬體

ARDUINO

ESP32

Raspberry(樹莓派) Pi Pico

2.開發程式軟體

開發Arduin及ESP32 程式,有幾種語言選擇:

(1)C/C++

(2)MicroPython


Arduino模擬器(simulator)概念與實作

優點:「物理計算」 它將軟體和硬體結合在一起,「以構建感知和回應現實世界的互動式物理系統」,能幫助工程師在實驗階段驗證不同的設計和演算法

缺點:忽略了與物理世界的聯繫

實作2-體驗嵌入式系統平台Online-Microblock IDE(泰國)

教學影片


資訊產業(IT)

1.特性

資訊產業又稱IT業、電腦工業,為一切與電腦相關的軟硬體行業總稱,有硬體製造的類似傳統工業模式也有軟體撰寫和客戶服務的服務業,自從90年代電腦革命後資訊業成為獲利豐厚的行業製造出許多世界首富,諸多國家也將資訊業設定為重點發展項目,資訊業的特性是競爭快、產品生命週期短、人才水準要求高、投入資本金額門檻高。

https://zh.wikipedia.org/wiki/%E8%B3%87%E8%A8%8A%E6%A5%AD

https://www.facebook.com/search/top?q=ivendor%E7%A7%91%E6%8A%80%E8%81%AF%E7%9B%9F

https://kopu.chat/2017/04/29/kopuchat/#comment-3407

資訊軟硬體產業之發展,在我國經濟扮演重要角色. 過去,我國硬體 ... 具有高附加價值率盈餘率勞動報酬等特性,此產業投入貢獻將與經濟成長. 有高度關聯

2.相關的職業

3.未來資訊產業發展趨勢

實作3-資訊產業(IT)相關生涯發展


MicroPython on ESP32簡介

MicroPython on ESP32軟硬體架構

Python物件導向程式設計方法

資料引用:https://hackmd.io/x3cd61mySQyJ9Op5iN3jeA?view&fbclid=IwAR1tQbVtawH58JlAmZ-_5QV2RMrP3yMRC5puHjUT23XiUIGtEizMwc5FdJ8


活動設計1: ESP32內建 LED Blink

程式執行成果

 

實作步驟

1.硬體接線

2.撰寫程式

程式碼:下載(程式補填法)

3.按一下模擬器畫面的三角形(開始模擬)鈕,內建藍色LED將重複一閃一滅

REF

思考問題:

1.這樣的程式碼寫法有無改進的空間?(變數概念引入)

2.可以改變閃滅的時間長短嗎?

REF

專案分享

活動設計2: ESP32內建 LED Blink +印出文字

程式執行成果

 

2.修改ESP32內建 LED Blink 程式

程式碼:下載(程式補填法)

3.按一下模擬器畫面的三角形(開始模擬)鈕,內建藍色LED將重複一閃一滅外.文字視窗是否會有文字顯示?

REF

專案分享

活動設計3: 牛刀小試評量SOS LED Blink

摩斯密碼線上翻譯器操作

提示:程式碼下載(需修改)


活動設計4:ESP32外接 LED+電阻 Blink

程式執行成果

1.硬體接線

2.撰寫程式

程式碼:下載(程式除錯法)

3.按一下模擬器畫面的三角形(開始模擬)鈕,外接LED將重複一閃一滅

REF

4.思考問題(Wokwi教學文件)

(1)LED可以改顏色嗎

(2)導線的顏色可以改嗎?

(3)電阻的方向可以改變嗎?

A.選取電阻物件按R鍵

B.點導線變虛線刪除

重新繪製電路圖

(4)如何修改檔名?

(5)如何存檔及下載到電腦?

(6)如何將作品分享?

專案分享

思考問題:多色LED閃滅控制

(若教學時間不足將圖先畫完然後分享給學生.修改程式)

提示:程式碼下載(需修改)

REF

專案分享

進階自行創作

https://wokwi.com/projects/279890929738842636


活動設計5: ESP32 紅綠燈

程式執行成果

實作步驟

1.硬體接線

2.撰寫Led 程式(不同程式語法)

程式碼-下載(非完整.需自行增加程式碼)

3.按一下模擬器畫面的三角形(開始模擬)鈕,測試紅綠燈LED

REF

專案分享

思考問題:模擬交通號誌(智慧交通)?

參考


活動設計6-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


活動設計7-NeoPixel(霓虹像素)(WS2812)

1.硬體接線

2.撰寫程式

程式碼:下載(修改程式碼方法.調整RGB)

3.按一下模擬器畫面的三角形(開始模擬)鈕,NeoPixel模組的RGB LED將輪流發光

專案分享

自行創作七彩燈條

修改程式中RGB顏色代碼


活動設計8-DTH11(22)溫溼度感測器

通信——物聯網之魂

(1)串列通訊匯流排

UART通用非同步收發傳輸器(Universal Asynchronous Receiver/Transmitter)

實作步驟

1.硬體接線(RGB共陽極.COM接點接VCC)

2.撰寫程式

程式碼:下載(程式仿作或程式碼識讀)

3.按一下模擬器畫面的三角形(開始模擬)鈕,測試是否有顯示出溫溼度

專案分享


活動設計9-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.程式碼

esp32-oled-main-py

esp32-oled-ssd1306-py

3.修改程式碼修文字內容(中文無法顯示)測試

專案分享


活動設計10-OLED SSD1306+DTH11(22)

專案分享


物聯網技術底層知識

(1)Http Protocol(超文本傳輸協定)

HTTP是全球資訊網的數據通信的基礎

解說:

資料引用:https://chanchandev.com/HTTP/Cache/cache-intro/1156542307/#Chef-Master-%E6%9B%B4%E6%96%B0%E6%96%99%E7%90%86%E5%81%9A%E6%B3%95

(2)MQTT(Message Queuing Telemetry Transport) 訊息序列遙測傳輸

1分20'開始看到3分15'

解說:

手機app -Virtuino MQTT(安卓手機)

 

活動設計:體驗MQTT

教學影片

參考網站

進階物聯網實作

在 ATtiny85 上監控天氣

抓取NTP主機時間(Wifi)

在OLED螢幕顯示天氣概況(Wifi)

http-server

Temperature and Humidity using Franzininho, DHT22 and SSD1306

1602 lcd+超音波感測器


參考資料

https://docs.micropython.org/en/latest/

https://hackmd.io/@Zoyam/ByeHHYDKv

https://create.arduino.cc/projecthub/Hack-star-Arduino/esp32-simulator-2022-learn-esp32-micropython-programming-2ea335

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