NMKCAM
EasyCam套件解說
1
直播教學錄影
2
3
課程規劃(4~6hr)
主題一:基本介紹及範例
主題二:TFT顯示及記憶卡
主題三:WebSocket及Nodered
主題四:戰鬥吧甲蟲
4
傳統ESP32CAM
5
安信可ESP32CAM腳位圖
6
關於Flash閃光燈
IO4
如果希望關閉,請使用digitalWrite(4,0);
7
小霸王NMKCAM
NMKCAM為小霸王改進(高仿)ESP32CAM的產品,主要不同點
-台灣品牌台灣設計
-安信可ESP32CAM同規格(尺寸、雙核心、4M flash 、4M PSRAM)
-RST按鈕改正面
-內建3D天線且自動跳外接天線
-移除IO4惱人閃光燈,改一般LED燈IO 33
-右上IO16改IO33(可在使用WiFi時作類比讀取)
8
NMKCAM腳位圖
9
EasyCam擴充版
10
11
12
正反皆可
13
檢查裝置管理員
14
下載arduino 2.X版主程式
網址:https://www.arduino.cc/en/software
依照需要選擇版本,windows建議選擇MSI installer安裝
15
點選左側開發版圖示,輸入關鍵字:ESP32
請選擇1.0.4,然後安裝
因為最新版的臉部辨識錯誤的
16
安裝完畢後選擇開發版
1. 選擇上方開發版選擇器
2. 左側開發版輸入關鍵字� wrover
3. 右側選擇帶USB的裝置
4. 確定後即可
17
Hello World
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("我是大帥哥");
delay(1000);
}
18
LED燈測試
int ledpin=33; //NMKCAM=33, AIThinker=4
void setup() {
// put your setup code here, to run once:
pinMode(ledpin,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(ledpin,HIGH);
delay(100);
digitalWrite(ledpin,LOW);
delay(100);
}
19
手動上傳
RST=>重開機,flash=>模式切換
1. FLASH按著不放+RST按一下放開
2. 放開FLASH => 燒錄模式
3. Arduino按燒錄
4. 看到100%
5. 再按RST開始執行
20
基礎串流
21
影像伺服器
ESP32/Camera/CamerawebServer
22
修改記憶體配置
否則會出現記憶體空間不足
23
觀察IP訊息
上傳完畢,點右上角的放大鏡就是序列監控,就可以看到IP資訊
1. 如果是亂碼,就是鮑率要改115200
2. 如果沒有任何訊息,就代表訊息已經輸出,按RST重新開機重新輸出IP資訊
24
如果出現brown out的問題
代表供電不足,建議使用優質USB線,使用USB3.0孔
我們可以修改設定,強迫ESP忽略電流不足的問題
https://www.nmking.io/index.php/2022/12/15/esp32_ch1-27/
最上面加上
#include "soc/soc.h"
#include "soc/rtc_cntl_reg.h"
在setup內的第一行補上
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //disable brownout detector
25
傳輸效能
320x240 -> 25-30
640x480 -> 15-20
1024x765 -> 5-10
1280x1024 -> 3-5
若與上表有嚴重差異,請檢查網路或天線
26
內建臉部辨識
27
啟動臉部辨識功能
不過要使用這項功能必須將解析度降到QVGA
(320x240)
28
臉部偵測
29
臉部辨識
30
臉部註冊功能
31
臉部辨識的主要程式區
32
分辨白名單與入侵者
33
SG90模擬開門
將橘色訊號線接到IO2
伺服馬達測試
34
開門的程式碼
ledcSetup(7, 50, 8);//設定類比輸出頻道7,50Hz,256(2^8)的解析度
ledcAttachPin(2, 7);//將上述的類比輸出頻道7附加在GPIO2上
Serial.println("發現白名單,開門");
ledcWrite(7, 18.56);//轉到角度90
delay(5000);//開門五秒鐘就直接關門
Serial.println("關門");
ledcWrite(7, 6.4);//轉到角度0
35
加入SG90開門程式
這些數值的計算過程,可以參考:https://www.nmking.io/index.php/2022/12/17/761/
36
TFT顯示及拍照
37
安裝TFT螢幕程式庫:TFT eSPI及TJPG Lib
38
下載範例程式
拍照按鈕為IO3
程式模組化
可能遇到的問題
39
結合串流及TFT拍照
40
直接下載範例程式
41
Line 通知
42
Line通知
由於SD卡較不方便,我們改用Line來接收
1. 先建立Line通知服務取得Token密碼
2. 燒錄PIR或超音波測試程式
3. 結合PIR拍照程式
43
串接LINE機器人
44
7
45
46
複製權杖
47
連接超音波
48
連接人體感測器
49
人體感測器的幾個特點
50
超音波,人體感測Line通知範例程式
超音波傳LINE範例程式:https://twgo.io/gxgmd
紅外線SR501傳LINE範例:https://twgo.io/fbteg
請注意,Line接收規定一小時內50張,且最大�800x600
記得改網路設定,並填入Line代號
51
問題1:傳送超過50張
LINE限制50張/小時
52
問題2:群組未邀請
進入群組後邀請LINE加入
53
MQTT串流
54
代理器、主題、推播、訂閱的關聯性
55
代理人Broker:郵局
主題Topic:租用郵政信箱名稱(可自訂)
56
推播
訂閱
訂閱
推播
三重郵局005號
三重郵局062號
也可由MQTTGO網頁觀看
57
MQTT串流
範例程式(定時每0.5秒):https://twgo.io/ieswk
無TFT螢幕範例:http://twgo.io/lmzzw
安裝程式庫:PubsubClient (Nick)
Android 手機安裝
MQTT APP:twgo.io/ufhzo
APK備份:
58
使用HiveMQTT
修改以下設定
59
利用Colab來接收並存檔jpg
VSCode接收:
單影像
https://docs.google.com/document/d/17Qqot6UktWozOJ5HLO7hvIw9MbNmlF94nbHzOsp_9ns/edit?tab=t.0
多影像:
https://docs.google.com/document/d/1-XH7v8teQ5yrCM9ItYwekjq0LWCeGSkYlDYTwDXrZFk/edit?tab=t.0
colab接收:https://twgo.io/qpjdi
60
BASE64格式MQTT影像傳輸
61
MQTT雙向互動
1. 遠距監看+遠距開燈:
2. 遠距監看+遠距開門關門SG90模擬:
62
WebSocket
(本章節已過期待更新)
63
WS串流
WS串流速度可以比MQTT更快,fps可以10以上,不過ESP32會變得很燙,不建議長期使用,或者降頻使用。
WS需要一個公開ip的Nodered網站,MQTT則不用,因為MQTT透過Broker轉接。
WS範例程式碼:https://twgo.io/ckjqq
64
Nodered設定
65
甲蟲戰隊
66
益成老師
著名機器操控師~
設計雷切的甲蟲,結合32CAM的影像
可V7RC進行影像直播及操控
商品化中~
67
68
Teachable Machine
由Google 推出的AI辨識工具,協助無AI基礎使用者快速建立影像辨識的模型,並提供範例程式。
優點:快速體驗 缺點:只有分類器
69
平台:
網址:https://teachablemachine.withgoogle.com/
服務提供者:Goolge
特點:匯出成Tensorflow檔案,提供邊緣運算(樹莓派、Jetson Nano、Android、ESP32(Arduino)等)裝置使用
https://www.tensorflow.org/lite/microcontrollers?hl=zh-tw
70
新增一個計畫
71
選擇Image Project
72
模型訓練三個步驟
1.準備資料 2.訓練模型 3.查看結果
73
新增類別
預設只有兩類,如果要新增第三第四,點選下方的add a class
74
加入訓練資料:1.使用usb Webcam拍照(推薦)
75
加入訓練資料:2.插入現有圖片
76
開始訓練
會一直跳出不要切換頁面的按鈕,因為訓練是使用你電腦的資源,所以頁面必須開著,且必須在最上層(要你盯著它訓練)
77
訓練選項
世代:50
批次量:16
學習率:0.001
78
AI的迷思
學習率小(0.001)是因為不想讓AI太快背熟所有題目,讓AI慢慢學習。
因為AI只是一個很會背答案的乖學生,背的太熟,會導致她沒辦法回答不一樣的題目。
79
查看訓練過程與結果
點選hood,開啟訓練結果 混淆矩陣 訓練過程
80
測試看看
81
匯出AI模型
js:網頁環境
ts:加速裝置
lite:邊緣裝置
82
請選擇tensorflow
如要在Python環境中使用,請選擇Tensorflow,並選擇keras架構後,點選Download my model即可下載。
下方有python範例指導您如何使用
83
搭配JS匯出模型(ESP32CAM用)
複製網址到記事本
84
下載的檔案內容
檔案為壓縮檔,一個為labels.txt,內容為分類器的tag
一個為keras的h5模型檔案,這個檔案未來我們會在python中呼叫
85
儲存專案
點選左上角功能鍵[三]
點選Save Project to drive
輸入檔名即可存在你的
Google硬碟中
副檔名:tm
86
使用Colab進行Teachable machine辨識
87
使用ESP32CAM來做TM
88
雙軸雲台
89
MQTT立體雲台
90
雲台組裝(下)
底座安裝 底座組合SG90
91
雲台組裝(上)
上座安裝 結合底座
92
結合Colab做YOLO影像辨識
93