Ubuntu'da ESP32 Kamera Projesi Geliştirme Örneği

ESP32-CAM Hakkında

ESP32-CAM, Ai-Thinker Co., Ltd tarafından piyasaya sürülen küçük boyutlu bir kamera modülüdür. 27×40,5×4,5 mm boyutlarında ve minimum derin uyku akımı 6 mA olan bu modül, en küçük sistem olarak bağımsız bir şekilde çalışabilir.

ESP32 CAM'ın Özellikleri

  • Kamera Arayüzü (24 MP'ye kadar)
  • Wi-Fi ve Bluetooth Bağlantısı
  • ESP32-D0WDQ6 çift çekirdekli işlemci
  • 520 KB SRAM
  • 4 MB Flash Bellek
  • OV2640 2 MP Kamera Modülü
  • JPEG ve BMP formatlarını destekler
  • USB Type-C arabirimi
  • LiPo Pil Konektörü
  • 32 bit CPU, 240 MHz'e kadar
  • Entegre 802.11b/g/n HT40 Wi-Fi alıcı-verici
  • Entegre çift modlu Bluetooth (klasik ve BLE)
  • Entegre PCB anteni
  • Entegre 8 MB PSRAM
  • Yerleşik kamera
  • Kamera için harici konektör
  • 5 adet programlanabilir GPIO
  • 2 x UART, 2 x SPI, I2C, I2S, IRDA, PWM, GPIO'lar

ESP32 CAM Pin Dizilişi

ESP32 CAM Pinout
ESP32 CAM Pinout

ESP32-CAM'de üç adet GND pini ve güç için iki adet pin bulunur: 3,3 V veya 5 V.

GPIO 1 ve GPIO 3 seri pinlerdir. Kartınıza kod yüklemek için bu pinlere ihtiyacınız vardır. Ayrıca, GPIO 0, ESP32'nin yanıp sönme modunda olup olmadığını belirlediği için önemli bir rol oynar. GPIO 0 GND'ye bağlandığında, ESP32 yanıp sönme modundadır.

Aşağıdaki pinler dahili olarak microSD kart okuyucusuna bağlıdır:

GPIO 14: CLK
GPIO 15: CMD
GPIO 2: Veri 0
GPIO 4: Veri 1 (ayrıca kart üzerindeki LED'e de bağlıdır)
GPIO 12: Veri 2
GPIO 13: Veri 3

ESP32 Kamera Projesi Geliştirme

Ortam derlemesi

Donanım

  • ESP32-CAM modülü
  • OV2640 kamera
  • USB – seri port kartı (USB-TTL)
  • Dupont kablosu
  • 5V 2A güç kaynağı

ESP32-CAM modülü ayrı olarak çalıştırılır; U0TXD, U0RXD ve GND seri port kartına bağlanır ve bilgisayara bağlanır; kamera ise bir kablo aracılığıyla modüle bağlanır.

Programlamadan önce, ESP32-CAM modülünün GPIO0'ının topraklanması ve sıfırlanması gerekir. Programlama tamamlandıktan sonra, GPIO0 askıya alınır ve çalışma moduna girmek için sıfırlanır.

Sistem ortamı

ESP32, farklı sistemlerde geliştirilebilir. İşte Ubuntu masaüstü sürümünün (sürüm: Ubuntu 18.04.3) geliştirme ortamına dair bir tanıtım.

İndirme sunucusunu kur

"Yazılım ve Güncellemeler"i çalıştırın, "Ubuntu Yazılımı" sekmesindeki "İndirme kaynağı" açılır menüsüne tıklayın, "Diğer…" seçeneğini seçin, "Çin"i bulun ve herhangi bir sunucuyu seçin, "Sunucu Seç"e tıklayın ve ardından onaylamak için şifreyi girin. Pencere kapandığında, bilgileri güncellemeniz istenecektir; güncellemek için "Yenile"ye tıklayın.

ESP32 Cam system environment: choose a download server
ESP32 Cam system environment: choose a download server
Yazılımı yükle
sudo apt-get purge vim-common
sudo apt-get install vim
sudo apt install git
Bağımlı ortamı yükle
sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache libffi-dev libssl-dev

Proje kodu ve geliştirme ortamı

öğeyi seç

Projeyi ve alt modülleri aynı anda çekin:

git clone --recurse-submodules https://github.com/Ai-Thinker-Open/Ai-Thinker-Open_ESP32-CAMERA_LAN.git

Çekme işlemi kesintiye uğrarsa, alt modülü tekrar çekmek için proje dizinine girmeniz gerekir:

cd Ai-Thinker-Open_ESP32-CAMERA_LAN/
git submodule update --init --recursive
Geliştirme Çerçevesi

Proje indirildikten sonra, proje dizininde bir esp-idf dizini olduğunu görebilirsiniz. esp-idf (Espressif IoT Development Framework), esp geliştirme çerçevesidir. Proje geliştirme ortamı esp-idf aracılığıyla oluşturulur. Bu projedeki idf sürümü esp-idf-v4.0'dır.

IDF_PATH yolunu ayarla

.bashrc yapılandırma dosyasını düzenleyin:

cd esp-idf/
vim ~/.bashrc


vim komutunu kullanarak .bashrc dosyasını açın, klavyeyi kullanarak imleci dosyanın sonuna getirin, a tuşuna basarak girin, sonuna geldiğinizde Enter tuşuna basarak boş bir satıra geçin ve IDF_PATH değişkenini ayarlamak için aşağıdaki biçime göre ilgili içeriği girin:

# export IDF_PATH=<esp-idf absolute path>, the example is as follows
export IDF_PATH=/home/user/Desktop/esp32/Ai-Thinker-Open_ESP32-CAMERA_LAN/esp-idf


Giriş tamamlandıktan sonra, düzenlemeyi iptal etmek için esc tuşuna basın, kaydetmek ve çıkmak için :wq yazın, değişikliğin hemen yürürlüğe girmesi için aşağıdaki komutu çalıştırın:

source ~/.bashrc


Değişkenin geçerli olup olmadığını kontrol edin:

echo $IDF_PATH


Yazdırılan yol ayarla tutarlıysa bir sonraki adıma geçin, aksi takdirde işlemi tekrarlamanız gerekir.

Geliştirme araçlarını yükle

esp-idf dizininde install.sh komut dosyasını çalıştırın:

./install.sh

Ardından terminal indirme bilgilerini görüntüler. "All done!" mesajı görüntülendikten sonra kurulum tamamlanmış olur. Bu aşamada, ortam değişkenini ayarlamak için export.sh komut dosyasını çalıştırın:

. ./export.sh

İlk "." işaretinden sonra bir boşluk olduğunu unutmayın; bu komut, proje geliştirme ve hata ayıklama için terminali her açtığınızda çalıştırılmalıdır.

Komut dosyasının çalıştırılmasından sonra, başarıyı belirtmek için "Done!" yazısı görüntülenir ve ardından proje yapılandırılabilir, derlenebilir ve indirilebilir.

Yapılandırma, Derleme ve İndirme

Proje yapılandırması

"Ai-Thinker-Open_ESP32-CAMERA_LAN/examples/single_chip/camera_web_server" adlı demo proje dizinine girin

cd ../examples/single_chip/camera_web_server/

Ardından projeyi yapılandırmaya başlıyoruz:

make menuconfig

"recipe for target 'mconf.o' failed" uyarısı bir bağımlılık sorunudur. İlgili bağımlılıkları yüklemek için sudo apt-get install libncurses5-dev komutunu girin ve tekrar deneyin.

Yapılandırma arayüzü şu şekildedir:

ESP32 Cam Project - Espressif IoT Development Framework Configuration
ESP32 Cam Project - Espressif IoT Development Framework Configuration

İşlemleri gerçekleştirmek için imleci hareket ettirmek üzere ok tuşlarını ve Enter tuşunu kullanın, "Serial flasher config" arayüzüne girin ve ayarları yapmak için aşağıdaki şekle bakın; burada seri bağlantı noktası "/dev/ttyUSB0" olarak ayarlanmıştır ve çalışma sırasında ESP32-CAM modülüne bağlanacak şekilde ayarlanması gerekmektedir.

ESP32 Cam Project - Serial Flasher Config
ESP32 Cam Project - Serial Flasher Config

"Kamera Web Sunucusu" -> "Kamera Pimleri" -> "Kamera Pin Dizilimini Seç" arayüzüne girin ve "ESP32-CAM by AI-Thinker" seçeneğini seçin.

ESP32 Cam Project - Select Camera Pinout

"Kamera Web Sunucusu" -> "Wifi Ayarları" arayüzüne girerek Wifi modunu, "Wifi STA SSID" ve "Wifi STA Şifresi" ile "Wifi AP SSID" ve "Wifi AP Şifresi" seçeneklerinden birini ayarlayın.

(Wifi STA, İstasyon modu anlamına gelir; ESP32-CAM, diğer cihazların Wifi ağına bağlanır; Wifi AP, AP modu anlamına gelir; bilgisayar veya cep telefonu, ESP32-CAM tarafından açılan Wifi erişim noktasına bağlanır)

Burada Wifi AP modu kullanılır ve aşağıdaki "Wifi AP IP Adresi" alanı, Wifi AP modundaki modülün IP adresini ayarlar.

ESP32 Cam Project - WIFI Settings

Ayarlar tamamlandıktan sonra, sol ve sağ tuşlarını kullanarak alt imleci "<Kaydet>" seçeneğine getirin ve Enter tuşuna basarak kaydedin; ardından "<Çıkış>" seçeneğine geçerek yapılandırmadan çıkın.

Derle ve İndir

derle:

make

indirme:

make flash

Programlamadan önce GPIO0 modülünün topraklanması ve sıfırlanması gerektiği unutulmamalıdır.

make flash komutunu indirirken, varsayılan olarak önceden yapılandırılmış "/dev/ttyUSB0" bağlantı noktası kullanılır ve diğer bağlantı noktaları -p parametresiyle belirtilebilir: make flash -p [PORT]

Seri bağlantı noktasının açılmamasının bir izin sorunundan kaynaklanabileceği uyarısı verilirse, sudo chmod -R 777 <port> komutuyla seri bağlantı noktasının tüm izinlerini açabilirsiniz (örneğin, sudo chmod -R 777 /dev/ttyUSB0), ancak seri bağlantı noktası çıkarıldıktan sonra açık seri bağlantı noktasının tüm izinleri geçersiz hale gelir. Ayrıca, mevcut kullanıcı dialout grubuna eklenebilir: sudo usermod -a -G dialout <kullanıcı adı>

Seri bağlantı noktası yazdırma bilgilerini alın:

make monitor

Çalışırken GPIO0 modülünün güç açma veya sıfırlama için askıya alınması gerektiği unutulmamalıdır.

Ayrıca, seri bağlantı noktası yardımcısını kullanarak modülün yazdırma bilgilerini de görüntüleyebilirsiniz.

Fotoğraf ve Video Çek

Demo yazılımını indirdikten sonra, ESP32-CAM modülü açılır ve çalışır hale gelir. Bilgisayarınızı veya cep telefonunuzu modülün bulunduğu ağa bağlayın ve tarayıcıdan modülün adresine erişin.

İstasyon modunda, modül adresi, Wi-Fi erişim noktası cihazı tarafından modüle atanan IP adresidir; AP modunda ise "Wi-Fi AP IP Adresi" ile ayarlanan adrestir.

Modül web sayfasında, fotoğraf çekmek için soldaki işlem çubuğunun altındaki "Get Still" düğmesine ve video kaydetmek için "Start Stream" düğmesine tıklayın. Fotoğraf veya video çekildikten sonra, görüntü web sayfasında görüntülenir.

Modülün çalışma arayüzünü cep telefonunda aşağıdaki gibi görüntüleyin; görüntüyü kaydetmek için görüntünün sağ üst köşesindeki "Save" düğmesine tıklayabilirsiniz.

ESP32-CAM module taking photogram

Paylaş:

Scroll to Top

Instant Quote