2020年8月13日 星期四

[ESP32-Cam] 讀取網際網路上的時間

 ESP 系列開發板因為可以連上網際網路,所以當專案或裝置需要精確的時間時,可以從網路上獲取目前的時間。


Step1 點擊下拉功能表 [檔案] > [範例] > [ESP] > [Time] > SimpleTime。出現視窗


Step2 請修改程式碼,填入正確的 ssid 和密碼,並上傳程式,成功後記得移除 GPIO0 和 Gnd 腳位上的接線。

Step3 打開「序列埠監控視窗」。出現視窗

您可以看到視窗內有顯示目前的日期和時間。


好的,我們透過網路讀取到時間了,但仔細看了一下,雖然日期是對的,時間卻是怪怪的,這是因為時區不正確。

想要解決時區不正確的問題,必須先瞭解程式碼,以下就針對有關的程式碼來說明。

const char* ntpServer = "pool.ntp.org";  // 讀取時間的伺服器網址

const long  gmtOffset_sec = 3600;  // GMT 時區的偏移量

const int   daylightOffset_sec = 3600;  // 日光節約時間的偏移量


根據以上資料,我們知道這個時間是去一個叫 "pool.ntp.org" 的網站取得的,它運作的方式如下圖


再來,我們搜尋到一個可以顯示 GMT 時間的網站,您可以開啟以下網頁並觀察一下時間

https://24timezones.com/time-zone/gmt#gref


然後,我們回過頭來把時區偏移量設為0,程式碼修改成

const long  gmtOffset_sec = 0;  // GMT 時區的偏移量

再重新上載程式,上載成功後再重新打開「序列埠監控視窗」。此時您看到的畫面應該類似下圖,只是時間不同。

這裡可以觀察到 GMT 網頁上的時間和「序列埠監控視窗」內的時間相差了 1 小時。而我的電腦時間是 13:12:43。

我並不想去理會為什麼相差 1 小時,我在意的是「序列埠監控視窗」內的時間比我的時間慢了 7 小時。而 7 小時等於 60*60*7=25200 秒。


我們回過頭來把時區偏移量設為 25200,程式碼修改成

const long  gmtOffset_sec = 25200;  // GMT 時區的偏移量

再重新上載程式,上載成功後再重新打開「序列埠監控視窗」。此時您可以檢查一下時間,應該是正確了。

在我們能夠掌握時間之後,就可以對 ESP32-Cam 做更多的應用,例如指定某一特定的時間開啟攝影鏡頭做監控...等等。


採購資訊

ESP32 開發指南(書) https://www.ruten.com.tw/item/show?22023657661505

ESP32-Cam 開發板 https://www.ruten.com.tw/item/show?22018501441929

ESP32-Cam 雙軸雲台(基本款)套件 https://www.ruten.com.tw/item/show?22024688065979

ESP32-Cam 雙軸雲台(人體偵測款)套件 https://www.ruten.com.tw/item/show?22024688076465





2020年8月12日 星期三

[ESP32-Cam] 閃光燈功能

 ESP32-Cam 開發板上有一只非常亮的 LED,它主要是作為攝影或拍照時補光用。這只 LED 是接在 GPIO4 腳位(詳下圖),因此當我們讓該腳位輸出高電位時就可點亮 LED。

程式碼

// Blink.ino for ESP32-Cam

int LED_BUILTIN = 4;

void setup() {

  Serial.begin(9600);

  // initialize digital pin LED_BUILTIN as an output.

  pinMode(LED_BUILTIN, OUTPUT);

}


void loop() {

  Serial.println("ON");

  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)

  delay(100);     // wait for a second

  Serial.println("OFF");

  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW

  delay(1000);                       // wait for a second

}

上傳上面程式後記得要移除 GPIO0 和 GND 的連接線,然後按一下 ESP32-Cam 板上的按鈕,接著您就可以看到 LED 一閃一閃。



如果您夠仔細,您應該有發現到 GPIO4 不只可以控制 LED,它同時還有其它功能。是的,您可以回頭去仔細看一下腳位圖上 GPIO4 腳位旁標註著 "HS2_DATA1 / Falsh",當 ESP32-Cam 存取 Micro SD 卡時,也會同時使用到 GPIO4 腳位並點亮 LED。

「存取 Micro SD 卡時,也會點亮 LED」這種情況可能不是我們樂見的,還好有辦法可以解決這種窘境,但這不在本文所討論的範圍內,在我們以後講到如何使用 Micro SD 卡時就會揭曉。


採購資訊

ESP32-Cam 開發板 https://www.ruten.com.tw/item/show?22018501441929

ESP32-Cam 雙軸雲台(基本款)套件 https://www.ruten.com.tw/item/show?22024688065979

ESP32-Cam 雙軸雲台(人體偵測款)套件 https://www.ruten.com.tw/item/show?22024688076465

2020年8月8日 星期六

[ESP32-Cam] 攝影功能

 ESP32-Cam 是一片 CP 值非常高的開發板,只要新台幣二百出頭就可以在你家建立一個監視系統,透過網路可作為居家監控、嬰兒照護、即時錄影...等非常實用的功能。


準備材料

1. ESP32-Cam 開發板 *1

2.USB2TTL 模組 *1

3.杜邦線母母頭 *5


電路接線

請依下列方式用杜邦線將 USB2TTL 模塊和 ESP32-Cam 開發板連接。

USB2 TTL           ESP32-Cam

5V                         5V    (注意:請務必給5V電源)

Gnd                       Gnd

RXD                      U0Tx

TXD                      U0Rx

在燒錄模式時還需把 ESP32-Cam 的 GPIO0 腳位接地,也就是

IO0  ----  Gnd





程式

如何在 Arduino IDE 裡使用 ESP 系列的開發板我們就不在此重複說明,如尚未明瞭的人可詳

https://pizgchen.blogspot.com/2019/08/esp32-arduino-ide-esp32.html


Step1 開啟 Arduino IDE,點擊下拉功能表 [檔案] > [範例] > [ESP32] > [Camera] > [CameraWebServer]。


Step2 修改程式內容,將以下這一行改成備註

define CAMERA_MODEL_WROVER_KIT

並將以下這一行移除備註

// #define CAMERA_MODEL_AI_THINKER

更改後如下所示

Step3 在這裡填入你家 IP 分享器的名稱與密碼,如下

const char* ssid = "(IP 分享器的名稱)";

const char* password = "(IP 分享器的密碼)";


Step4 點擊下拉功能表 [工具] > [開發板],選擇 ESP32 Wrover Module。


Step5 由於這個程式碼比較大,需要較多的空間,所以我們要指定這個選項,點擊下拉功能表 [工具] > [Partition Scheme: "Huge APP (3MB No OTA...]。


Step6 點擊下拉功能表 [工具] > [序列埠]。我的是 COM3,請您選擇自己的序列埠。


Step7 點擊上傳程式。

如果訊息欄出現  "Connecting ..... ___ ..... ___ .....",此時請您按一下(按下後放開) ESP32-Cam 開發板側邊上的按鈕。如果正常,它接著應該會出現上傳進度的百分比。

Step8 如果顯示"上傳完畢",請移除 ESO32-Cam 開發板上的 IO0 --- Gnd 接線。

Step9 開啟「序列埠監視視窗」,將鮑率調到 115200,然後再按一下(按後放開) ESP32-Cam 開發板上的按鈕。您可以發現序列埠出現一些訊息,其中 http://192.168.xx.xxx 就是 ESP32-Cam 的 網路位址。

Step10 將 ESP32-Cam 的網路位址複製並貼到瀏覽器,按下 <Enter> 鍵,您就可以看到如下畫面

Step11 用滑鼠點擊畫面下方的 [Start Stream] 按鈕,然後您就可以看到視窗裡出現攝影機的畫面了。

如果要關閉攝影機,您可以在同一個位置按一下 [Stop Stream] 按鈕。

您可以隨意更改網頁中的選項數據,試試各種功能和效果,這裡我們就不多說了。


後記

1. 如果在上傳程式時出現類似 "找不到序列埠訊息...",建議您更換一個好一點的 USB2TTL 模組。

2. 如果能正常上載程式,但板子無法正常工作時,請您檢查是否有移除 ESP32-Cam 開發板針腳上的 IO0 --- Gnd 接線。

3. 因為 ESP32-Cam 開發板需要較穩定的電壓和較多的電流,如果您發現板子出現不穩定的狀態,請您更換較粗的電源線。

4. 可以上傳程式不表示 ESP32-Cam 開發板沒有問題,有些板子會出現無法連接到 IP 分享器的狀況,此時序列埠會一直出現連線狀態,如下圖 

5. 玩家沒安裝好鏡頭或產品本身的問題,影像可能會出現顏色異常的現象(例如黃色很淡或顯示不出來),所以初次使用 ESP32-Cam 開發板時,請您拿出各種顏色的物品讓鏡頭拍攝,仔細檢查一下顏色是否異常。


相關連結

人體偵測 https://www.youtube.com/watch?v=LBoM_Uoq_nA&t=38s

將影像儲存到 SD 卡 https://www.youtube.com/watch?v=2xOo-zorpYI

將影像儲存到 SD 卡 https://www.youtube.com/watch?v=eot6COwCPF0&t=4s


採購資訊

ESP32-Cam 開發板 https://www.ruten.com.tw/item/show?22018501441929

ESP32-Cam 開發寶典(書) https://www.ruten.com.tw/item/show?22023657681327

ESP32-Cam 雙軸雲台(基本款) https://www.ruten.com.tw/item/show?22024688065979

ESP32-Cam 雙軸雲台(人體偵測款) https://www.ruten.com.tw/item/show?22024688076465

ESP32-Cam Wifi 視訊小車套件 https://www.ruten.com.tw/item/show?21947911491952






2020年6月13日 星期六

[ESP32] ESP32-Cam 開發板雙軸雲台(人體偵測款)組裝說明

這是一款除了可以安裝 ESP32-Cam 開發板之外,還可以安裝人體偵測模組的雙軸雲台。




組裝步驟

提醒您:
1. 組裝前請先移除壓克力表面保護紙,以確保運作順暢。
2. 組裝前請把伺服馬達都保持在 90 度位置。

Step1 取出底板,拆除墊片備用。使用伺服馬達所附之自攻螺絲將搖臂固定到底板上,請務必鎖緊。



這是另一面



Step2 使用 M2*10 螺絲和螺帽將伺服馬達固定到板子上,螺絲請務必鎖緊。


這是另一個馬達



Step3 使用 M3*10 螺絲和螺帽將上面兩個馬達固定,螺絲請務必鎖緊。




Step4 使用伺服馬達所附之 M2 螺絲將底板固定到馬達上。




Step5 使用 2 條束帶將 ESP32-Cam 開發板固定到面板上,稍微拉緊後剪除多餘束帶。



Step6 使用伺服馬達所附之自攻螺絲將搖臂固定到小側板上。


這是另一面



Step7 使用 M3*10 螺絲和螺帽將小側板固定到面板上。



Step8 使用伺服馬達所附之 M2 螺絲將小側板固定到馬達上。


這是正面


Step9 使用 M2*12 螺絲和螺帽將人體偵測模組固定到面板上。


這是另一面


Step10 使用 M3*10 螺絲和螺帽將另一小側板固定到面板上。



Step11 在小側板上放一個墊片,再使用 M3 *10 螺絲將大側板鎖到小側板上


再使用 M3 *10 螺絲和螺帽將大側板底部固定到馬達板上。

這是正面


Step12 大功告成。


這是背面


觀看影片



採購資訊

ESP32-Cam 開發板雙軸雲台(人體偵測款)  https://goods.ruten.com.tw/item/show?22024687769553





2020年6月12日 星期五

[ESP32] ESP32-Cam 開發板雙軸雲台(基本款)組裝說明

這是一個簡易組合的雙軸雲台,使用幾片壓克力板和螺絲組合,將 ESP32-Cam 安裝到自走車上面。


組裝步驟

提醒您:
1. 組裝前請先移除壓克力表面保護紙,以確保運作順暢。
2. 組裝前請把伺服馬達都保持在 90 度位置。

Step1 使用 M2 螺絲和螺帽將伺服馬達固定到板子上,螺絲請務必鎖緊。



Step2 使用伺服馬達所附自攻螺絲將搖臂鎖到板子上。


這是另一面


Step3 將上面兩個組件組合,並使用伺服馬達所附 M2.5 螺絲鎖緊固定。



Step4 使用 M2 螺絲和螺帽將伺服馬達固定到板子上,螺絲請務必鎖緊。


Step5 使用 M3 螺絲和螺帽將上面兩個組件組合,並鎖緊固定。



Step6 使用伺服馬達所附自攻螺絲將搖臂鎖到板子上。


這是另一面



Step7 使用 M2 螺絲將 U 形板鎖到板子上。因為板子上的是緊孔,所以此處不必使用螺帽。



Step8 使用 M3 螺絲和螺帽將上面兩個組件組合,並鎖緊固定。


Step9 將上面組件與 Step5 組件組合,並使用伺服馬達所附 M2.5 螺絲鎖緊固定。



Step10 使用 M3 螺絲和螺帽將全部組件固定到小車上。


這是前面視角 



Step11 輕輕將 ESP32-Cam 插入長形孔,並使它的另一端卡住凹槽,至此大功告成。



觀看影片




採購資訊

ESP32-Cam 雙軸雲台(基本款) https://goods.ruten.com.tw/item/show?22024682772462