緣起:
前兩天,我不知怎樣,突然想到之前買的那個
Esp32-Cam,我的腦子一直告訴我說:"嘿,要不要看看它能不能當 Rtsp Server 跑
?",我:"好啊",然後,我一整天就都在玩那個 Esp32-Cam 了。
似乎是存放 Esp32
的地方太潮溼,導致它鏡頭的接口生鏽,所以無法使用。我當時上傳完程式碼後,發現網頁頁面的提示說無法初始化鏡頭,這才發現它壞掉。馬的,我還為此出門一趟,去嘉義買個新的回來,沒辨法,當下太想要今天就玩到這功能。
Rtsp-Server:
之前要上傳程式碼時,老是要修改
/dev/ttyUSB
的讀寫權限,每次拔插後又要再重複動作,超麻煩的,應該有什麼方法可以解決這問題,對吧?後來注意到錯誤訊息有這提示
Hint: Try to add user into dialout or uucp group。哦 ~~ 原來如此。我在 arch 上試的時候,它跟我說沒有 dialout 這個 group,但有 uucp group,所以就把我的帳號加到 uucp group,然後再重開機,就能正常存取 /dev/ttyUSB 了,如果是在 Ubuntu 上的話,要改成加入 dialout group。
那時在 Build
專案時發現,我去,怎麼一個完成後又開始另一個,後來才發現,你要自己手動修改一下它
platformio.ini 的內容,把 default-evns = esp32cam_ai_thinker
的註解拿掉,不然它預設是 Build
所有上頭條列的型號。話說,我這才知道我買的這個 esp32 開發板的型號叫
"ai thinker"
再來斷開 IO0 跟 GND 相接的那條線,然後按下板子上的 RST 鈕,等它啟動後,可以看到一個 ESP32CAM-RTSP-{GUID} 的 Wifi,連上它後,開啟瀏覽器,輸入 192.168.1.4,可以進入這頁面
可以更改 Esp32 Wifi 的 AP 名稱與密碼,如果你有要讓 Esp32 連上其它 Wifi 的話,它會強制你要設定密碼。再來 WIFI SSID 跟 WIFI password 欄位,設定你 Esp32 要連上的 Wifi。Camera 的設定我沒怎麼動,只有條整解析度而已。都填好後,可以到最下面按 Apply,然後等設定生效。
Esp32 成功連上其它 Wifi
後,如果想再次進入設定頁面,會跳出這個
這樣,Esp32 Rtsp Server
就完成了,它的主頁面下有連結的路徑
Esp32 Bluetooth Keyboard:
玩完 Rtsp Server 後,腦子又想到,之前看有人用 Esp32
模擬藍牙鍵盤的專案,所以又接著去試了 Bluetooth 功能,可以使用這個
library。到 Releases 那邊下載 zip 檔,解壓後把資料夾丢到 platformio 專案的 lib
資料夾裡即可
#include <BleKeyboard.h>
#include <Arduino.h>
BleKeyboard bleKeyboard;
void setup() {
Serial.begin(115200);
Serial.println("Starting BLE work!");
bleKeyboard.begin();
}
void loop() {
if(bleKeyboard.isConnected()) {
Serial.println("Sending Play/Pause media key...");
bleKeyboard.write('f');
}
Serial.println("Waiting 5 seconds...");
delay(5000);
}
拿它範例改的,每 5 秒按一次 f,上傳完程式碼後,再 rest Esp32,開啟電腦的藍牙,可以看到一個叫 Esp32 Keyboard 的裝置,跟它配對連線後就行了。









沒有留言:
張貼留言