Schéma de câblage  :


Schéma de circuit du contrôle des sorties ESP32 via une application Android



Programme Arduino ESP32 : Contrôle des sorties via une application Android

Ouvrez l'IDE Arduino et allez dans  Fichier > Nouveau  pour créer un nouveau fichier. Copiez le code ci-dessous dans ce fichier.

Dans le schéma suivant, l'ESP32 héberge un serveur web permettant à l'utilisateur de contrôler les broches GPIO4 et GPIO5 via des boutons. Ces broches sont connectées à des LED et configurées en sortie. Le serveur web comporte des boutons ON et OFF pour chaque LED. Un clic sur un bouton génère une requête HTTP à une URL et l'ESP32 répond en conséquence en activant ou désactivant la broche de sortie correspondante.

Veillez à remplacer les identifiants réseau pour vous connecter correctement à votre réseau Wi-Fi local en salle SIN.

Code source ici

Lorsque l'utilisateur cliquera sur les boutons ON/OFF, la page web le redirigera vers l'URL /led1ON ou /led1OFF pour led1 et vers les URL /led2ON et /led2OFF pour led2. À chaque requête HTTP GET effectuée sur l'URL spécifiée, la LED connectée à la broche GPIO correspondante du module ESP32 s'allumera ou s'éteindra en conséquence.


Création d'une application avec MIT App Inventor

MIT App Inventor est une application web remarquable qui permet de créer des applications Android intéressantes. Cet outil de programmation par blocs permet de concevoir des applications entièrement fonctionnelles pour appareils Android tels que smartphones et tablettes. Souvent qualifié d'intuitif, il est facile à prendre en main, même pour les débutants en programmation. Nous l'utiliserons également pour développer notre application Arduino.

Étapes pour créer une application Android

Rendez-vous sur le site web suivant : et cliquez sur le bouton « Créer des applications ! ».

ESP8266 Google Firebase : créez votre propre application MIT Inventor 1

Vous serez redirigé vers une nouvelle fenêtre où il vous sera demandé de vous connecter avec votre adresse e-mail. Après vous être connecté, vous devrez accepter les conditions générales ci-dessous.

ESP8266 Google Firebase : créez votre propre application avec MIT Inventor 2

Vous recevrez un message de bienvenue. Vous pouvez cliquer sur le lien pour obtenir plus d'informations sur l'installation de l'application Inventor sur votre smartphone. Appuyez sur « Continuer » pour poursuivre. Si vous le souhaitez, vous pouvez consulter les tutoriels proposés. Sinon, cliquez sur « Créer un projet vierge » pour commencer à développer votre application.

ESP8266 Google Firebase : créez votre propre application avec MIT Inventor 3

Il vous sera demandé de préciser le nom de votre projet. Choisissez un nom approprié. Cliquez sur « OK ».

Conception du contrôleur de sorties ESP32 pour MIT APP Inventor 1

L'éditeur s'ouvre. C'est ici que nous allons concevoir l'interface utilisateur de notre application. Nous pouvons ajouter du texte, des boutons, des images et diverses autres fonctionnalités en faisant glisser des composants de la palette vers la zone de visualisation. Ensuite, nous définirons leurs attributs via la colonne « Propriétés ».

Créer un design

Tout d'abord, nous allons ajouter un titre à notre application. Accédez à  Palette > Interface utilisateur  et sélectionnez  « Étiquette ».  Cliquez et faites glisser l'étiquette. Déposez-la dans la zone de visualisation. Vous pourrez alors la visualiser à la fois dans la zone de visualisation et dans la liste des composants. Renommez-la « Titre », comme indiqué dans la section Composants.

Accédez aux « Propriétés » pour modifier le texte, la taille et la couleur de la police. L'étiquette sera automatiquement mise à jour dans la visionneuse. Notez que la visionneuse vous montrera l'apparence finale de votre application telle qu'elle apparaîtra sur votre smartphone.

Vous pouvez modifier les propriétés de l'étiquette pour intégrer l'espacement souhaité en modifiant sa largeur et sa hauteur.

Conception d'un contrôleur de sorties ESP32 pour MIT APP Inventor 2

Section de commande LED 1

Sélectionnez ensuite HorizontalArrangement dans la mise en page. Définissez les propriétés comme indiqué ci-dessous.

Conception du contrôleur de sorties ESP32 pour MIT APP Inventor 3

Accédez à  Palette > Interface utilisateur  et sélectionnez  « Étiquette ».  Cliquez et faites glisser l'étiquette. Déposez-la du côté de l'afficheur. Renommez-la « led1state », comme indiqué dans la section Composants.

Rendez-vous dans les « Propriétés » pour modifier le texte, la taille et la couleur de la police.

Conception du contrôleur de sorties ESP32 pour MIT APP Inventor 4

Ajoutez un autre HorizontalArrangement sous l'étiquette led1state. Définissez les propriétés comme indiqué ci-dessous.

Conception du contrôleur de sorties ESP32 pour MIT APP Inventor 5

Accédez à Interface utilisateur > Bouton et glissez-déposez deux boutons dans HorizontalArrangement2. Renommez-les respectivement « led1ONbutton » et « led1OFFbutton ». Modifiez également leurs propriétés. Ces boutons serviront à contrôler la LED connectée à GPIO4.

L'image ci-dessous illustre les propriétés du bouton led1OFF.

Conception du contrôleur de sorties ESP32 pour MIT APP Inventor 6

Pour ajouter un espacement entre la première section LED et la deuxième section LED, nous ajouterons un HorizontalArrangement de hauteur 10 pixels sous HorizontalArrangement2.

Conception du contrôleur de sorties ESP32 pour MIT APP Inventor 7

Section de commande LED 2

De la même manière, nous allons créer la section pour la deuxième LED.

Sélectionnez ensuite HorizontalArrangement dans la mise en page et placez-le sous HorizontalArrangement3. Définissez les propriétés comme indiqué ci-dessous.

Conception du contrôleur de sorties ESP32 pour MIT APP Inventor 8

Accédez à  Palette > Interface utilisateur  et sélectionnez  « Étiquette ».  Cliquez et faites glisser l'étiquette. Déposez-la du côté de l'afficheur. Renommez-la « led2state », comme indiqué dans la section Composants.

Rendez-vous dans les « Propriétés » pour modifier le texte, la taille et la couleur de la police.

Conception du contrôleur de sorties ESP32 pour MIT APP Inventor 9

Ajoutez un autre élément HorizontalArrangement sous l'étiquette led2state. Définissez ses propriétés comme indiqué ci-dessous.

Conception du contrôleur de sorties ESP32 avec MIT APP Inventor 10

Accédez à Interface utilisateur > Bouton et glissez-déposez deux boutons dans HorizontalArrangement5. Renommez-les respectivement « led2ONbutton » et « led2OFFbutton ». Modifiez également leurs propriétés. Ces boutons serviront à contrôler la LED connectée à GPIO5.

L'image ci-dessous illustre les propriétés du bouton led2OFF.

Conception du contrôleur de sorties ESP32 de MIT App Inventor 11

Informations sur l'adresse IP actuelle

Ajoutez ensuite un HorizontalArrangement sous HorizontalArrangement5. Définissez ses propriétés comme indiqué ci-dessous :

Conception du contrôleur de sorties ESP32 pour MIT APP Inventor 12

Accédez à  Palette > Interface utilisateur  et sélectionnez  « Étiquette ».  Cliquez et faites glisser l'étiquette. Déposez-la dans HorizontalArrangement6. Renommez-la « ESP32IPlabel », comme indiqué dans la section Composants. Le texte est actuellement défini sur « Adresse IP actuelle ».

Rendez-vous dans les « Propriétés » pour modifier le texte, la taille et la couleur de la police.

Conception du contrôleur de sorties ESP32 de MIT APP Inventor 13

Faites glisser une autre étiquette et déposez-la à côté de ESP32IPlabel, comme indiqué ci-dessous. Renommez-la « ESP32IPinfoLabel ». Le texte est vide pour le moment.

Conception du contrôleur de sorties ESP32 de MIT APP Inventor 14

Enregistrer l'adresse IP

Ajoutez un autre élément HorizontalArrangement sous HorizontalArrangement6. Renommez-le « SaveArrangement », comme indiqué dans la section Composants. Cet élément ne sera visible que lorsque l'utilisateur cliquera sur le bouton « Définir l'adresse IP ».

Configurez ses propriétés comme indiqué ci-dessous. Activez initialement la visibilité car nous devons placer une zone de texte et un bouton dans cette disposition.

Conception du contrôleur de sorties ESP32 avec MIT APP Inventor 15

Accédez à  Palette > Interface utilisateur  et sélectionnez  « Zone de texte ».  Glissez-déposez-la ensuite dans la zone « Visionneuse », à l'intérieur de l'élément « SaveArrange ». La section Propriétés affiche les propriétés définies pour cet élément.

Il s'agit de la zone de texte où l'utilisateur saisira l'adresse IP du module ESP32.

Conception du contrôleur de sorties ESP32 avec MIT APP Inventor 16

Ajoutez ensuite un bouton à côté de la zone de texte, comme indiqué ci-dessous. Renommez ce bouton « saveButton » et configurez ses propriétés comme indiqué dans la section Propriétés.

Conception du contrôleur de sorties ESP32 avec MIT APP Inventor 17

Décochez maintenant la case « Visibilité de SaveArrangement ».

Bouton « Définir l’adresse IP »

Pour le bouton « Définir l'adresse IP », ajoutez d'abord un HorizontalArrangement sous saveArrangement et définissez ses propriétés comme indiqué.

Conception du contrôleur de sorties ESP32 avec MIT APP Inventor 18

Placez maintenant un bouton dans cette disposition horizontale. Renommez-le « SetIPbutton » et configurez ses propriétés comme indiqué ci-dessous :

Conception du contrôleur de sorties ESP32 pour MIT APP Inventor 19

Accédez à Stockage > TinyDB et glissez-déposez l'élément dans la visionneuse. Il s'agit d'un composant invisible de l'application qui stockera des données telles que l'adresse IP du module ESP32.

Conception du contrôleur de sorties ESP32 pour MIT APP Inventor 20

Enfin, accédez à Interface utilisateur > WebViewer et faites glisser l'élément dans la visionneuse. Décochez ensuite sa visibilité.

Le WebViewer sera utilisé pour accéder au serveur web de contrôle des sorties ESP32 afin de contrôler les LED lorsque les boutons ON/OFF seront cliqués.

Conception du contrôleur de sorties ESP32 de MIT APP Inventor 21

Disposition des blocs

Cliquez maintenant sur le bouton « Blocs » situé en haut de la fenêtre. Un nouvel éditeur s'ouvre. Nous allons y concevoir le comportement de notre application. Pour assembler les blocs dans l'espace de travail, cliquez et faites-les glisser.

Blocs de contrôleur de sorties ESP32 de MIT App Inventor 1

Configuration et enregistrement de l'adresse IP

Commencez par assembler les blocs pour les  boutons SetIPbutton et saveButon  comme indiqué ci-dessous.

Lorsque l'utilisateur clique sur le bouton « Définir l'adresse IP », la visibilité de l'élément « Enregistrer la configuration » est activée. Cela signifie que la zone de texte et le bouton « Enregistrer » deviennent visibles. En revanche, la visibilité de l'élément « Définir l'adresse IP » est désactivée.

L'utilisateur saisit l'adresse IP du module ESP32 dans le champ texte et clique sur le bouton Enregistrer. L'adresse IP est alors enregistrée dans TinyDB avec l'étiquette « esp_ip ». Le texte de l'étiquette ESP32IPinfoLabel affiche la valeur enregistrée. Si l'étiquette n'est pas encore présente, une chaîne vide s'affiche. Par ailleurs, la visibilité de SaveArrangement est désactivée et celle de setIParrangement est activée.

Blocs de contrôleur de sorties ESP32 de MIT App Inventor 2

Contrôle LED

Lorsque l'utilisateur clique sur le bouton led1ON , le WebViewer accède au serveur web de contrôle des sorties ESP32 en ouvrant l'URL correspondant à l'adresse IP du module suivie de /led1ON. Cette adresse IP est enregistrée dans TinyDB sous l'étiquette « esp_ip ». Lorsque l'utilisateur clique sur le bouton ON de led1, l'application Android ouvre l'URL : http://VOTRE_ADRESSE_IP/led1ON. La LED s'allume alors.

Ensuite, l'état de la LED1 est également enregistré dans TinyDB sous l'étiquette « led1state » avec la valeur « LED à GPIO4 est allumée ». Le texte de led1state est défini sur la valeur de l'étiquette « led1state » enregistrée dans TinyDB. Si aucune étiquette n'était encore présente, le texte de led1state serait « LED à GPIO4 ».

Blocs de contrôleur de sorties ESP32 de MIT App Inventor 3

Lorsque l'utilisateur clique sur le bouton led1OFF , le WebViewer accède au serveur web de contrôle des sorties ESP32 en ouvrant l'URL correspondant à l'adresse IP du module suivie de /led1OFF. Cette adresse IP est enregistrée dans TinyDB sous l'étiquette « esp_ip ». Lorsque l'utilisateur clique sur le bouton OFF de led1, l'application Android ouvre l'URL : http://VOTRE_ADRESSE_IP/led1OFF. La LED s'éteint alors.

Ensuite, l'état de la LED1 est également enregistré dans TinyDB sous l'étiquette « led1state » avec la valeur « LED à GPIO4 éteinte ». Le texte de led1state correspond à la valeur de l'étiquette « led1state » enregistrée dans TinyDB. Si aucune étiquette n'était présente, le texte de led1state serait « LED à GPIO4 ».

Blocs de contrôleur de sorties ESP32 de MIT App Inventor 4

La même logique est utilisée pour les boutons led2ON et led2OFF, comme indiqué ci-dessous :

Blocs de contrôleur de sorties ESP32 de MIT App Inventor 5

Initialisation de l'application

Lors de l'initialisation de l'application Android, le texte de ESP32IPinfoLabel est initialisé avec la valeur enregistrée dans TinyDB sous l'étiquette « esp_ip ». Si aucune étiquette n'est présente, une chaîne vide est affichée. De même, le texte de led1state est initialisé avec la valeur enregistrée dans TinyDB sous l'étiquette « led1state ». Si aucune étiquette n'est présente, la valeur « LED at GPIO4 » est affichée. Enfin, le texte de led2state est initialisé avec la valeur enregistrée dans TinyDB sous l'étiquette « led2state ». Si aucune étiquette n'est présente, la valeur « LED at GPIO5 » est affichée.

Blocs de contrôleur de sorties ESP32 de MIT App Inventor 6

Pour plus d'informations sur la création de votre application dans MIT App Inventor, suivez ce guide :  Tutoriels App Inventor.

Configuration d'App Inventor sur smartphone

Maintenant que nous avons créé notre application dans MIT App Inventor et écrit son code, installons App Inventor sur notre smartphone. Ainsi, nous pourrons accéder à notre application depuis n'importe où dans le monde. Suivez attentivement les étapes.

Tout d'abord, rendez-vous sur le Play Store et installez « MIT AI2 Companion ».

ESP8266 Google Firebase : créez votre propre application MIT Inventor 23

Après avoir installé l'application, ouvrez-la. Vous devrez soit scanner un code QR, soit saisir un code à 6 caractères.

ESP8266 Google Firebase : créez votre propre application MIT Inventor 20

Pour y accéder, rendez-vous sur la page principale de MIT App Inventor, là où nous avons initialement créé notre application. Cliquez ensuite sur  « Créer » > « Application Android (.apk) » . Après quelques instants, votre code-barres sera généré. Vous pourrez alors télécharger le fichier .apk ou scanner le code-barres avec MIT App Inventor.

Après avoir installé le fichier .apk sur notre téléphone Android, nous pourrons visualiser l'écran que nous avons créé.

Nous allons maintenant faire la démonstration du projet.

Démonstration

Avant de téléverser votre code sur la carte, assurez-vous de sélectionner la carte et le port COM appropriés. Accédez à Outils > Carte et sélectionnez Module de développement ESP32. Ensuite, accédez à Outils > Port et sélectionnez le port auquel votre carte est connectée.

sélectionner la carte ESP32

Cliquez sur le bouton de téléchargement pour transférer le code vers la carte de développement ESP32.

Nous allons maintenant transférer les fichiers sur notre carte ESP32. Allez dans Outils > Transfert de données ESP32. Le transfert des fichiers prendra quelques instants.

Téléchargement des données de croquis SPIFFS

Une fois votre code et les fichiers téléchargés sur la carte de développement ESP32, appuyez sur son bouton ENABLE.

Bouton de réinitialisation ESP32

Dans votre IDE Arduino, ouvrez le moniteur série et vous pourrez voir l'adresse IP de votre module ESP32 une fois qu'il se sera connecté au réseau Wi-Fi local.

Contrôle des sorties ESP32 via une application Android (démo 1)Moniteur série

Ouvrez l'application MIT Companion sur votre smartphone. Appuyez ensuite sur le bouton « Définir l'adresse IP ».

Contrôle des sorties ESP32 via une application Android (démo 2)

Une zone de texte et un bouton Enregistrer apparaîtront.

Contrôle des sorties ESP32 via une application Android (démo 3)

Saisissez l'adresse IP obtenue à partir du moniteur série dans la zone de texte. Appuyez ensuite sur le bouton Enregistrer.

Démo 4 du contrôle des sorties ESP32 via une application Android

L'adresse IP actuelle a été mise à jour avec celle que nous venons d'enregistrer.

Contrôle des sorties ESP32 via une application Android (démo 5)

Appuyez maintenant sur les boutons ON/OFF de chaque LED pour contrôler les sorties ESP32.

Contrôle des sorties ESP32 via une application Android (démo 6)

Contrôle des sorties ESP32 via une application Android (démo 7)

Créé avec HelpNDoc Personal Edition: Créer des aides HTML, DOC, PDF et des manuels depuis une même source