20230507高科大
一、認識microBlock
利用積木方式來寫 ESP32 MicroPython 程式
microblock.app 官網:https://microblock.app/ (是泰國網站)
台灣推廣網站:
ESP Gyro擴充板:https://sites.google.com/view/esp-gyro/mblock
客制化的 ESP32 中文版:https://reurl.cc/ZAyVEl (取自ESP Gyro擴充板官網),目前的最新版本為 microBlock.IDE.V2.2.0_Gyro_V1.8 (另一個下載網址:https://educase.kh.edu.tw/navigate/a/#/s/326313A3AEE640A8A8A2A9C575571FE56BL )
為 windows 的離線版本,解壓後(儘可能放至根目錄下(C:或D:),路徑不要太長)
打啟 microBlock IDE.exe 會出現如下的操作介面
Halocode使用的USB晶片為CH340晶片,最後要安裝此的驅動程式 (下載:https://educase.kh.edu.tw/navigate/a/#/s/DD4DC31A1D644C08ABA3F695BC1F63506BL )
使用前的準備工作
第一件事是【更新ESP32的韌體】
先玩玩Python的基本語法
Halocode安裝完韌體後,就完成python環境建置
終端機模式為一個口令一個動作的互動環境(Shell)
也可切換到程式碼模式
單行註解
使用#字號
如 #print("hello")
多行註解
使用一組 三個雙引號包起來
"""
aaa
bbb
ccc
"""
斷行處理
\n 斷行
print("hello\nworld")
輸入
score = input("請輸入你的成績:")
score = int(score)
if score >= 60:
print("及格")
else:
print('不及格')
我的第一個程式 :讓外接LED燈一亮一滅
先認識Halocode各元件(或感應器)所使用的腳位
外接一顆LED燈,如下圖
所使用的腳位為GPIO32
取得按鍵及各感測點觸摸按鍵值
按鍵開關燈
認識下拉電阻、上拉電阻
【按鍵模組】有三支腳位就不用使用下拉電阻或上拉電阻
【二支腳的按鍵】就需要使用下拉電阻或上拉電阻
二、ESP-NOW廣播測試
ESP-NOW是什麼?https://zhuanlan.zhihu.com/p/344109867
ESP-NOW 是由樂鑫開發的另一款無線通訊協定,可以使多個設備在沒有或不使用 Wi-Fi 的情況下進行通信。這種協定類似常見於無線滑鼠中的低功耗 2.4GHz 無線連接——設備在進行通信之前要進行配對。配對之後,設備之間的連接是持續的、點對點的,並且不需要握手協定。它是一種短資料傳輸、不需連線的快速通信技術,可以讓低功耗控制器直接控制所有智慧設備而無需連接路由器,適用于智慧燈、遙控控制、感測器資料回傳等場景。
ESP-NOW 通信方
一對多
多對一 (可只針對某一個設備,需要知道mac)
多對多
發送端程式
利用觸摸觸控板1(GPIO15)來廣播on的訊號出去
利用觸摸觸控板2(GPIO33)來廣播off的訊號出去
傳送出去的數據也可以是中文
接收端程式
外接LED燈接在3 (GPIO32)
接到on的訊息就開燈
接到off的訊息就關燈
把發送端和接收端的程式寫在一起
自己當發送端也可以當接收端,但自己不會接收到自己傳的東西
三、藍牙連線
請先在手機安裝V7RC的APP
此APP支援IPhone手機及Android手機
這APP很適合各式自走車的操控
傳輸原理,連接後一直傳輸訊息出去,如下:
利用V7RC的APP來控制開關燈
V7RC APP的使用
四、基本WIFI使用
連上網路
STATION模式(去連別人的AP)
IP位址:隨著所連AP不同而有不同,可連上Internet
SoftAP模式(自己擔任AP,供別人連線,但無法連上internet)
IP位址:192.168.4.1
使用UDP伺服器
認識UDP伺服器
UDP伺服器是一種基於使用者資料包通訊協定(UDP)的伺服器,它用於接收和處理UDP資料包。UDP是一種不需連線的協定,它不提供資料包的確認和重傳機制,因此UDP伺服器通常用於即時應用程式,如音訊和視頻流傳輸。
UDP伺服器通常使用通訊端程式設計來實現。伺服器創建一個UDP通訊端並綁定到一個本地IP位址和埠號上,以便能夠接收傳入的UDP資料包。一旦資料包被接收,伺服器就可以解析資料包中的資料,並執行相應的操作。
與TCP伺服器不同,UDP伺服器不維護用戶端連接狀態。每個UDP資料包都是獨立的,可以由任何發送方發送,並且可以由任何接收方接收。因此,UDP伺服器需要在處理每個資料包時進行身份驗證和授權,以確保只有受信任的發送方可以向伺服器發送資料包。
需要注意的是,由於UDP是不需連線的協議,因此UDP伺服器可能會遇到資料包丟失或重複的情況。因此,開發人員需要實現相應的錯誤處理和恢復機制,以確保伺服器能夠在意外情況下保持穩定運行。
啟動UDP伺服器
若主板採用自己擔任AP模式(要設定自己的AP名稱及密碼)
若開手機熱點供主板連網時,先取得主板IP,再將此IP填入UDP伺服器的IP
一樣,利用V7RC的APP來控制開關燈,程式如下:https://drive.google.com/file/d/1E6QFaGqFhovW7eVXtT1eIFba6RDk0lRe/view?usp=share_link
V7RC APP的使用
使用網頁伺服器
利用網頁的按鍵來開關燈
積木使用最後一個【網頁遙控器】積木
利用手機連上此AP
在手機瀏覽器的網址列打上192.168.4.1
就可以來控制開關燈了
五、LINE Notify
參考資料:
申請 LINE Notify:notify-bot.line.me/
教學參考:自建 LINE Notify 訊息通知
申請 LINE Notify 權杖
打開 LINE Notify 的網站 ( https://notify-bot.line.me/zh_TW/ ),使用自己的 LINE 帳號登入。
登入後滑鼠移至上方個人帳號,選擇「個人頁面」
測試:按按鍵,傳LINE出去,包含文字、圖片
六、Google 試算表
新增一個Google 試算表
共用先設為:知道連結的人都可以【編輯】
取得ID:
試算表網址:https://docs.google.com/spreadsheets/d/1N26_Qj8i2flJrG7ZvVB56nj12FvNkc8RINpbmHNzKu8/edit#gid=0
ID就是:1N26_Qj8i2flJrG7ZvVB56nj12FvNkc8RINpbmHNzKu8
取得工作表名稱:下方的工作表名稱 (如sheet1或工作表1)
程式部份:
開啟範例檔
路徑:D:\microBlock.IDE.V2.2.0_Gyro_V1.8\resources\app\extension\GoogleSheet-extension-5\example
GAS部署ID不要去更動
修改試算表ID及工作表名稱
每欄用 , 隔開
程式下載:https://drive.google.com/file/d/1Y_l1547a_47XsHVJBhLRXGQ6BKkxcttR/view?usp=share_link
七、MQTT
MQTT介紹:
這是目前物聯網最夯的應用
相當於youtube的訂閱機制(youtuber為【發布者】、youtube網站為【Broker】、你我為【訂閱者】)
MQTT由三種角色構成,分別是Publisher(發布者)、 Broker(代理人)和Subscriber(訂閱者)
MQTT的主題(Topic)名稱:MQTT主題名稱是UTF-8(萬國碼)編碼的字串,我們可以自行決定主題名稱,例如,傳送溫度的訊息主題可命名成「溫度」、傳送亮度的訊息主題叫做「照度」…等等。主題名稱也支援類似檔案路徑的階層式命名方式 ,如: wenyu/home/1f/led
MQTTGO.io:mqttgo.io 、TCP Port:1883
HiveMQ:broker.hivemq.com 、TCP Port:1883
EMQX:broker.emqx.io、TCP Port:1883 / 8883(TLS)
MakeBlock:mq.makeblock.com、TCP Port:1883
利用MQTTgo.io網頁工具來控制遠端設備的開關燈
利用電腦網頁當【發布者】 http://mqttgo.io/
也可使用另一套網頁工具當【發布者】:
HiveMQ網頁工具(只適用Websocket) ,其實Mqttgo.io就是模仿它的
Halocode當【訂閱者】
Broker:mqttgo.io 、TCP Port:1883
主題:wenyu38(獨一無二即可)
Halocode當發送端、也當接收端(訂閱端)
接收端(訂閱端):
Payload(訊息)為on時,外接LED燈亮燈
Payload(訊息)為off時,外接LED燈滅燈
發送端:
利用觸摸觸控板1(GPIO15)來將on的訊號出去
利用觸摸觸控板2(GPIO33)來將off的訊號出去
使用新版的MQTT積木
開啟範例檔:https://drive.google.com/file/d/1CdJMPdytZNfNXwn8ZPtOXcBegLVg5DNG/view?usp=share_link
完整程式如下:
安裝電腦版軟體MQTTBOX
MQTTBox - Chrome 線上應用程式商店
參考資料:https://sites.google.com/site/wenyunotify/05-esp32/03-%E7%B6%B2%E8%B7%AF%E6%87%89%E7%94%A8
安裝手機版APP-IoT OnOff APP
好處是:Android手機及Iphone手機均可使用
參考資料:https://sites.google.com/site/wenyunotify/05-esp32/03-%E7%B6%B2%E8%B7%AF%E6%87%89%E7%94%A8