samedi 30 janvier 2021

Envoi d'un email par l'ESP32

Dans certaines situations, il peut être intéressant de programmer un ESP32 pour qu'il envoie un email. Il pourrait s'agir, par exemple, d'un rapport quotidien vous indiquant les valeurs mesurées par ses capteurs, ou encore d'une alerte vous avisant qu'un événement inhabituel a été détecté.


Obtenir les paramètres du serveur SMTP utilisé

Pour l'envoi du email, l'ESP32 enverra des instructions à un serveur SMTP (Simple Mail Transfer Protocol). Pour ce faire, vous pouvez utiliser un compte email sur Gmail, sur outlook.com, etc. Pour programmer l'ESP32, vous aurez besoin de connaître l'adresse du serveur SMTP associé à votre compte email, ainsi que le numéro de son port.

Pour ma part, j'ai utilisé un compte outlook.com. En allant dans les paramètres (par l'entremise de la roue d'engrenage en haut à droite, puis en cliquant sur "Afficher tous les paramètres d'Outlook",j'ai accédé à la section "Courrier", puis "Synchroniser le courriel". À cet endroit, on m'informe que mon serveur SMTP est smtp.office365.com, et que le port est 587. Ces informations peuvent évidemment être différentes pour le compte email que vous aller choisir d'utiliser.


Installation de la bibliothèque

Par l'entremise du gestionnaire de bibliothèques de l'IDE Arduino, j'ai installé la bibliothèque ESP Mail Client par Mobizt.


En principe, cette bibliothèque fonctionne également avec l'ESP8266 (pourvu que le core ESP8266 soit de la version 2.6.3 ou plus récente). Malheureusement, je me suis buté à une erreur de compilation à chacune de mes tentatives de l'utiliser avec l'ESP8266.

Exemple de sketch

J'ai fait le sketch ci-dessous en utilisant, comme point de départ, l'exemple "Send_Text" fourni par l'auteur de la bibliothèque. Dans son exemple, l'auteur fait la démonstration d'à peu près tous les paramètres qui peuvent être modifiés. De mon côté, j'ai plutôt opté pour un sketch aussi bref que possible qui utilise généralement les valeurs par défaut, sans les modifier.

Dans ce sketch, je simule l'envoi de la mesure d'un capteur en générant un nombre aléatoire. Ainsi, vous pouvez facilement faire l'essai du programme sans qu'il soit nécessaire de brancher un véritable capteur à l'ESP32.

La fonction send_email() n'est exécutée qu'une seule fois, au démarrage du programme. Bien entendu, selon vos besoins, vous pouvez l'exécuter de façon périodique, ou lorsqu'un événement spécifique est détecté par un capteur.

Il va sans dire que, pour que le programme fonctionne, vous devez y écrire le nom et le mot de passe de votre réseau wifi, le login et le mot de passe de votre compte email, l'adresse email du destinataire, etc. (lignes 15 à 29).

-

-

Grâce à la fonction smtpCallback, à la fin du sketch, on peut suivre sur le moniteur série le processus d'expédition du email.


L'email a bel et bien été envoyé...et reçu!

À lire également

Ce blog comporte plusieurs autres projets impliquant l'ESP32, notamment l'écriture de données dans un document Google Sheets ou Google Docs.

Yves Pelletier (TwitterFacebook

dimanche 17 janvier 2021

Communication Bluetooth entre micro:bit et smartphone

Dans cet article, je vous décris comment j'ai pu établir une communication série via Bluetooth (BLE) entre une carte micro:bit et un smartphone (ou une tablette). Deux courts programmes faits dans MakeCode ont été testés avec succès: un premier programme qui envoie des données du micro:bit vers le téléphone, et un deuxième programme qui fait l'inverse.


Programmation dans MakeCode

Par défaut, quand vous commencez un nouveau projet dans MakeCode, les blocs permettant l'utilisation du bluetooth ne sont pas disponibles. Pour les faire apparaître, on clique d'abord sur "Avancé", au bas de la liste.


On clique ensuite sur "Extensions"...


On choisit l'extension bluetooth:


...et on accepte de renoncer à l'extension radio pour ce projet.


Une catégorie de blocs "Bluetooth" est maintenant disponible (attention: la plupart des blocs que j'ai utilisés sont dans la catégorie "plus" située juste en-dessous de "Bluetooth").



Sélection du mode d'appairage

En cliquant sur la roue d'engrenage en haut à droite, puis en sélectionnant "Paramètres du projet", il est possible de choisir le mode d'appairage.


Trois options sont proposées: aucun appairage requis, appairage "JustWorks" et appairage avec mot de passe. Pour la suite de mon expérimentation, j'ai utilisé le mode par défaut "JustWorks".

Premier exemple: le micro:bit envoie des données vers le téléphone

Dans ce premier exemple, le micro:bit envoie chaque seconde un message via bluetooth  (le message est un nombre qui augmente d'une unité à chaque seconde). Pour que ça fonctionne, il est important de démarrer le "bluetooth service uart" au début du programme.

Deuxième exemple: le micro:bit reçoit des données provenant du téléphone

Dans ce deuxième exemple, le micro:bit vérifie constamment l'arrivée d'un message via bluetooth. Chaque message reçu est affiché sur la matrice de LEDs du micro:bit. Ici encore, il est important de ne pas oublier le bloc "bluetooth service uart" au démarrage du programme.


Installation d'une appli de communication UART Bluetooth sur le téléphone

Pour mes tests, j'ai utilisé l'application Serial Bluetooth Terminal de Kai Morich sur ma tablette android. C'est loin d'être la seule option possible: il existe bien d'autres applications du même genre, et vous pouvez même programmer votre propre application android avec App Inventor si vous préférez.

Appairage du micro:bit avec le téléphone

(Rappel: mon micro:bit a été réglé pour un appairage de type "JustWorks"; la procédure est légèrement différente pour les autres types d'appairage).

Pour mettre la carte micro:bit en mode appairage, il faut d'abord appuyer simultanément sur les boutons A et B de la carte. Tout en maintenant les boutons A et B enfoncés, on appuie sur le bouton "reset", qui se trouve de l'autre côté de la garde, et on relâche le bouton reset.

Plusieurs LEDs de la matrice s'allument. Le logo bluetooth est momentanément affiché, puis les LEDs forment le motif ci-dessous. Le micro:bit est en mode appairage.



À cette étape, le nom du micro:bit devrait être visible dans la liste des appareils bluetooth disponibles, dans les paramètres du téléphone (bluetooth doit évidemment être activé sur le téléphone). Il s'agit de sélectionner ce nom dans la liste pour déclencher l'appairage.


Si tout va bien, la matrice de LEDs du micro:bit prend la forme d'un crochet, et le téléphone place le nom du micro:bit dans la catégorie "périphériques couplés".




Il semble nécessaire de refaire cette procédure chaque fois qu'on installe un nouveau programme sur le micro:bit, ou si le micro:bit a été mis hors tension.

Réglages de l'appli "Serial Bluetooth Terminal"

Dans le menu de l'appli "Serial Bluetooth Terminal", on sélectionne "Devices"...


...et on choisit notre micro:bit, visible sous l'onglet "Bluetooth LE".


Mise à l'essai du premier programme

Pendant que le micro:bit exécute le premier programme, l'application Serial Bluetooth terminal affiche chaque seconde le message qui a été envoyé par le micro:bit.


Mise à l'essai du deuxième programme

Si le micro:bit exécute le deuxième programme, il faut alors écrire un message dans le bas de la fenêtre de l'appli Serial Bluetooth Terminal, et l'envoyer en cliquant sur le bouton de droite. Le message envoyé à partir du téléphone va alors défiler sur la matrice de LEDs du micro:bit.


Et MicroPython?

Les fonctionnalités Bluetooth du micro:bit ne sont pas supportées par MicroPython!

À lire également

Mes autres articles portant sur la carte micro:bit:


Yves Pelletier (TwitterFacebook