Exemple de développement de projet ESP32 Cam sur Ubuntu

Table des Matières

ESP32-CAM camera development board

À propos de l'ESP32-CAM

L’ESP32-CAM est un petit module caméra publié par Ai-Thinker Co., Ltd, qui peut fonctionner indépendamment comme le système le plus petit, avec une taille de 27*40.5*4.5mm et un courant de veille profonde minimum de 6mA.

Caractéristiques de l'ESP32 CAM

  • Interface caméra (jusqu’à 24MP)
  • Connectivité Wi-Fi & Bluetooth
  • Processeur double cœur ESP32-D0WDQ6
  • 520KB SRAM
  • 4MB Mémoire Flash
  • Module caméra OV2640 2MP
  • Prise en charge des formats JPEG & BMP
  • Interface USB Type-C
  • Connecteur batterie LiPo
  • CPU 32bit, jusqu’à 240MHz
  • Transceiver Wi-Fi 802.11b/g/n HT40 intégré
  • Bluetooth double mode intégré (classique et BLE)
  • Antenne PCB intégrée
  • PSRAM 8MByte intégré
  • Caméra embarquée
  • Connecteur externe pour caméra
  • 5 x GPIOs programmables
  • 2 x UART, 2 x SPI, I2C, I2S, IRDA, PWM, GPIOs

Schéma de brochage de l'ESP32 CAM

ESP32 CAM Pinout
ESP32 CAM Pinout

L’ESP32-CAM possède trois broches GND et deux broches pour l’alimentation : 3,3V ou 5V.

GPIO 1 et GPIO 3 sont des broches série. Vous avez besoin de ces broches pour télécharger du code sur votre carte. De plus, GPIO 0 joue un rôle important car il détermine si l’ESP32 est en mode clignotement ou non. Lorsque GPIO 0 est connecté à GND, l’ESP32 est en mode clignotement.

Les broches suivantes sont connectées en interne au lecteur de carte microSD :

GPIO 14 : CLK
GPIO 15 : CMD
GPIO 2 : Data 0
GPIO 4 : Data 1 (également connecté à la LED embarquée)
GPIO 12 : Data 2
GPIO 13 : Data 3

Développement de projets ESP32 Cam

Construction de l'environnement

Matériel

  • Module ESP32-CAM
  • Caméra OV2640
  • Carte adaptateur USB vers port série (USB-TTL)
  • Fil jumper
  • Alimentation 5V 2A

Le module ESP32-CAM est alimenté séparément, U0TXD, U0RXD et GND sont connectés à la carte port série et connectés à l’ordinateur, et la caméra est connectée au module via un câble.

Avant la programmation, GPIO0 du module ESP32-CAM doit être mis à la masse et réinitialisé. Une fois la programmation terminée, GPIO0 est laissé flottant et réinitialisé pour entrer en mode de fonctionnement.

Environnement système

ESP32 peut être développé sur différents systèmes. Voici une introduction à l’environnement de développement de la version de bureau Ubuntu (la version est Ubuntu 18.04.3).

Configurer le serveur de téléchargement

Exécutez « Logiciels et mises à jour », cliquez sur le menu déroulant « Télécharger à partir de » dans l’onglet « Logiciels Ubuntu », sélectionnez « Autre… », trouvez « Chine » et sélectionnez n’importe quel serveur, cliquez sur « Choisir le serveur », puis entrez le mot de passe pour confirmer. Lorsqu’il est fermé, il vous demandera de mettre à jour les informations, cliquez sur « Recharger » pour mettre à jour.

ESP32 Cam system environment: choose a download server
ESP32 Cam system environment: choose a download server
Installer les logiciels
sudo apt-get purge vim-common
sudo apt-get install vim
sudo apt install git
Installer l'environnement dépendant
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

Code du projet et environnement de développement

pull item

Récupérer le projet et les sous-modules en même temps :

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

Si la récupération est interrompue, vous devez entrer dans le répertoire du projet pour récupérer à nouveau le sous-module :

cd Ai-Thinker-Open_ESP32-CAMERA_LAN/
git submodule update --init --recursive
Environnement de développement

Après avoir récupéré le projet, vous pouvez voir qu’il existe un répertoire esp-idf dans le répertoire du projet. esp-idf (Espressif IoT Development Framework) est le framework de développement esp. L’environnement de développement du projet est construit via esp-idf. La version idf de ce projet est esp-idf-v4.0.

Définir le chemin IDF_PATH

Modifier le fichier de configuration .bashrc :

cd esp-idf/
vim ~/.bashrc


Utilisez la commande vim pour ouvrir .bashrc, utilisez le clavier pour déplacer le curseur à la fin du fichier, appuyez sur a pour entrer, appuyez sur Entrée à la fin pour aller à une ligne vide, et entrez le contenu correspondant au format suivant pour définir la variable IDF_PATH :

# export IDF_PATH=<chemin absolu esp-idf>, l'exemple est le suivant
export IDF_PATH=/home/user/Desktop/esp32/Ai-Thinker-Open_ESP32-CAMERA_LAN/esp-idf


Une fois la saisie terminée, appuyez sur esc pour annuler la modification, :wq pour enregistrer et quitter, exécutez la commande suivante pour que la modification prenne effet immédiatement :

source ~/.bashrc


Vérifiez si la variable est valide :

echo $IDF_PATH


Si le chemin imprimé est cohérent avec le paramètre, passez à l’étape suivante, sinon vous devez recommencer l’opération.

Installer les outils de développement

Exécutez le script install.sh dans le répertoire esp-idf :

./install.sh

Ensuite, le terminal affiche les informations de téléchargement. Après l’impression de « Tout est terminé ! », l’installation est terminée. À ce moment-là, exécutez le script export.sh pour définir la variable d’environnement :

. ./export.sh

Notez qu’il y a un espace après le premier « . », qui doit être exécuté à chaque fois que vous ouvrez le terminal pour le développement et le débogage du projet.

Après l’exécution du script, « Terminé ! » est imprimé pour indiquer la réussite, puis le projet peut être configuré, compilé et téléchargé.

Configurer, Compiler et Télécharger

Configuration du projet

Entrez dans le répertoire du projet de démonstration « Ai-Thinker-Open_ESP32-CAMERA_LAN/examples/single_chip/camera_web_server »

cd ../examples/single_chip/camera_web_server/

Ensuite, nous commençons à configurer le projet :

make menuconfig

L’invite « recipe for target ‘mconf.o’ failed » est un problème de dépendance, entrez sudo apt-get install libncurses5-dev pour installer les dépendances pertinentes et réessayez.

L’interface de configuration est la suivante :

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

Utilisez les touches fléchées et la touche Entrée pour déplacer le curseur pour opérer, entrez dans l’interface « Serial flasher config » et reportez-vous à la figure suivante pour le réglage, ici le port série est défini sur « /dev/ttyUSB0 », et il doit être défini pour se connecter au module ESP32-CAM pendant le fonctionnement port série.

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

Entrez « Camera Web Server »-> »Camera Pins »-> »Select Camera Pinout » interface, sélectionnez « ESP32-CAM by AI-Thinker ».

ESP32 Cam Project - Select Camera Pinout

Entrez dans l’interface « Serveur Web de la Caméra » -> « Paramètres Wifi » pour définir le mode Wifi, « Wifi STA SSID » & « Mot de passe Wifi STA » et « Wifi AP SSID » & « Mot de passe Wifi AP » pour en définir un.

(Wifi STA signifie mode Station, ESP32-CAM se connecte au réseau Wifi d’autres appareils ; Wifi AP signifie mode AP, l’ordinateur ou le téléphone portable se connecte au point d’accès Wifi ouvert par ESP32-CAM)

Le mode Wifi AP est utilisé ici, et l' »Adresse IP Wifi AP » ci-dessous définit l’adresse IP du module en mode Wifi AP.

ESP32 Cam Project - WIFI Settings

Une fois la configuration terminée, utilisez les touches gauche et droite pour déplacer le curseur inférieur vers « <Save> » et appuyez sur Entrée pour enregistrer, puis déplacez-vous vers « <Exit> » pour quitter la configuration.

Compiler et Télécharger

compiler :

make

télécharger :

make flash

Il est à noter que le module GPIO0 doit être mis à la masse et réinitialisé avant la programmation.

Lors du téléchargement de make flash, le port précédemment configuré « /dev/ttyUSB0 » est utilisé par défaut, et d’autres ports peuvent être spécifiés par le paramètre -p : make flash -p [PORT]

Si cela indique que l’échec de l’ouverture du port série peut être causé par un problème de permission, vous pouvez ouvrir toutes les permissions du port série avec sudo chmod -R 777 <port>, par exemple sudo chmod -R 777 /dev/ttyUSB0, mais toutes les permissions du port série ouvert deviendront invalides après le débranchement du port série. De plus, l’utilisateur actuel peut être ajouté au groupe dialout sudo usermod -a -G dialout <username>

Recevoir les informations d’impression du port série :

make monitor

Il est à noter que le module GPIO0 doit être suspendu pour être mis sous tension ou réinitialisé lors du fonctionnement.

De plus, vous pouvez également utiliser l’assistant de port série pour afficher les informations d’impression du module.

Prendre Photo & Vidéo

Après avoir téléchargé le micrologiciel de démonstration, le module ESP32-CAM est allumé et fonctionne. Connectez l’ordinateur ou le téléphone portable au réseau où se trouve le module et accédez à l’adresse du module dans le navigateur.

En mode Station, l’adresse du module est l’adresse IP attribuée par le point d’accès Wifi au module ; en mode AP, c’est l’adresse définie par « Adresse IP du point d’accès Wifi ».

Sur la page web du module, cliquez sur le bouton « Get Still » sous la barre d’opération à gauche pour prendre une photo, et sur le bouton « Start Stream » pour enregistrer une vidéo. Après avoir pris une photo ou une vidéo, l’image sera affichée sur la page web.

Visualisez l’interface de fonctionnement du module sur le téléphone portable comme suit, vous pouvez cliquer sur « Save » dans le coin supérieur droit de l’image pour enregistrer l’image.

ESP32-CAM module taking photogram

Abonnez-vous

Rejoignez notre liste d’abonnés pour obtenir mensuel blog des mises à jour, des nouvelles technologies, des études de cas. Nous n’enverrons jamais de spam, et vous pouvez vous désinscrire à tout moment.

Retour en haut

Instant Quote