Dans ce tutoriel, apprenons à envoyer des e-mails à partir du microcontrôleur PIC en utilisant le célèbre module WiFi ESP8266. Ce didacticiel utilise PIC16F877A IC et le compilateur MPLABX et XC8 pour la programmation.
À la fin de ce didacticiel, vous pourrez envoyer des e-mails à partir de n'importe quel identifiant de messagerie normal comme Gmail, Yahoo, etc. Par conséquent, ce didacticiel suppose que vous avez des connaissances de base sur les modules ESP8266-01 et les microcontrôleurs PIC. Sinon, les tutoriels suivants vous aideront
- Premiers pas avec ESP8266
- Interfaçage ESP8266 avec PIC
Alors commençons…
Préparez-vous avec votre adresse e-mail:
Une fois que vous avez décidé de l'ID de messagerie à partir duquel vous souhaitez envoyer les e-mails, suivez les étapes ci-dessous
Étape 1: visitez https://www.smtp2go.com/ et inscrivez-vous en tant que nouvel utilisateur. Entrez votre nom, votre adresse e-mail et le mot de passe de votre ID e-mail à partir duquel vous souhaitez envoyer l'e-mail.
Ce didacticiel utilise l'ID de messagerie: aswinthcd @ gmail.com et le mot de passe: circuitdigest.
Étape 2: Cliquez sur vous inscrire et vous recevrez un e-mail de vérification à votre ID de messagerie saisi. Dans ce cas, il s'agit de aswinthcd @ gmail.com. Ouvrez l'e-mail et cliquez sur «ACTIVER LE COMPTE»
Étape 3: Il peut demander à nouveau un mot de passe, s'il vous est demandé, entrez le mot de passe précédent. Dans ce cas, il s'agit de «circuitdigest». Ensuite, vous serez connecté au site Web SMPT2GO. Voilà maintenant votre adresse e-mail est prête à envoyer des e-mails à l'aide du module ESP8266.
Étape 4: La dernière étape consiste à coder l'ID de messagerie et le mot de passe au format base 64 en utilisant ce site Web https://www.base64encode.org/. Nous allons l'utiliser dans notre programme PIC
Dans ce cas, les valeurs codées ressembleront à celles indiquées dans le tableau ci-dessous.
Paramètre |
Format normal |
Encodé en base 64 |
ID de messagerie |
aswinthcd @ gmail.com |
YXN3aW50aGNkQGdtYWlsLmNvbQ == |
Mot de passe |
circuitdigest |
Y2lyY3VpdGRpZ2VzdA == |
Préparation de votre matériel:
Le schéma complet du projet est présenté ci-dessous.
L'écran LCD est utilisé ici à des fins de débogage. Il n'est pas obligatoire pour vous de le connecter. Le programme fonctionnera bien même sans l'écran LCD. Si vous souhaitez en savoir plus sur les schémas, visitez ce didacticiel. (Interfaçage PIC avec ESP).
Vous pouvez simplement assembler ce circuit sur une maquette et ensuite procéder à la programmation.
Programmation de votre PIC pour envoyer un e-mail:
Pour envoyer un e-mail depuis l'ESP8266, une séquence de commandes AT doit être envoyée au module ESP. Les étapes suivantes doivent être suivies pour envoyer un e-mail depuis ESP8266.
- Réglez le module en mode AP + STA (point d'accès et station)
- Connectez-vous à un point d'accès pour obtenir une connexion Internet
- Activer plusieurs connexions
- Démarrez un serveur sur n'importe quel port spécifique
- Établir une connexion TCP avec le site Web SMPT2GO
- Accédez à la section Connexion du site Web
- Entrez l'ID e-mail et le mot de passe au format base64
- Entrer de l'ID de messagerie
- Entrer à l'ID de messagerie
- Entrez le sujet du mail
- Entrez le corps du mail
- Indiquez la fin du courrier
- Envoyez le mail
- Quittez la connexion TCP
C'est un processus un peu long et fastidieux, mais ne vous inquiétez pas. J'ai simplifié le processus en créant un fichier d'en-tête et vous pouvez l'utiliser directement en appelant simplement certaines fonctions (expliquées ci-dessous), ce qui rend cette tâche très facile. Le code complet ainsi que le fichier d'en-tête peuvent être téléchargés à partir d'ici.
Remarque: Si vous utilisez le code dans un nouveau projet, assurez-vous de télécharger le fichier d'en-tête et de l'ajouter dans votre projet.
J'ai expliqué certaines parties importantes du code ci-dessous, les autres parties sont explicites. Mais si vous avez des doutes, n'hésitez pas à utiliser la section commentaires.
/ * Vérifiez si la communication ESP_PIC est réussie * / do {Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP non trouvé"); } while (! esp8266_isStarted ()); // attend que l'ESP renvoie "OK" Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP est connecté"); __delay_ms (1500); Lcd_Clear (); / * Oui Communication ESP réussie - Continuer * /
Cette partie du code est utilisée pour vérifier s'il existe une bonne communication établie entre le PIC et l'ESP8266. Seulement si les deux pouvaient envoyer et recevoir des données via USART, le programme passera à l'étape suivante.
esp8266_mode (3);
Cette fonction mettra l'ESP8266 en mode 3. Cela signifie que le module peut maintenant agir comme un point d'accès et aussi comme un serveur.
esp8266_connect ("accueil BPAS", "cracksun");
Cette fonction permet de connecter votre module ESP8266 à votre routeur Wifi. Dans ce cas, «BPAS home» est le nom de mon signal Wifi et «cracksun» est mon mot de passe. Vous devez utiliser vos propres détails de signal Wifi.
_esp8266_enale_MUX (); // Activer plusieurs connexions _esp8266_create_server (); // Créer un serveur sur le port 80
Ces deux fonctions permettent d'activer plusieurs connexions et de créer un serveur sur le port 80.
_esp8266_connect_SMPT2GO ();
Maintenant, en utilisant cette fonction, nous pouvons établir une connexion TCP avec SMPT2GO. Une fois la connexion établie, cette fonction passe également à la page de connexion du site Web.
_esp8266_login_mail ("YXN3aW50aGNkQGdtYWlsLmNvbQ ==", "Y2lyY3VpdGRpZ2VzdA ==");
Utilisez cette fonction pour saisir votre adresse e-mail et votre mot de passe au format base 64. Comme vous pouvez le voir, ces valeurs codées sont les mêmes que celles indiquées dans le tableau ci-dessus. Vos valeurs codées varieront en fonction de votre identifiant de messagerie et de votre mot de passe.
_esp8266_mail_sendID ("aswinthcd @ gmail.com");
Cette fonction permet de définir le nom de l'ID de l'expéditeur. Dans ce tutoriel, j'envoie le courrier en utilisant mon identifiant Gmail aswinthcd @ gmail.com, je l'ai donc passé en paramètre.
_esp8266_mail_recID ("mailtoaswinth @ gmail.com");
Cette fonction permet de définir le nom de l'ID du récepteur. Je voudrais envoyer mes mails à un autre de mes comptes Gmail, c'est pourquoi j'ai passé le paramètre mailtoasiwnth @ gmail.com. Vous pouvez utiliser l'ID de messagerie souhaité
_esp8266_start_mail ();
Cette fonction indique au serveur SMPT2GO que nous allons alimenter le sujet et le corps du courrier et le prépare pour le même.
_esp8266_mail_subject ("Courrier de ESP8266");
Vous pouvez utiliser cette fonction pour définir le sujet du mail. A titre d'exemple, j'ai utilisé «Mail de ESP8266» comme sujet du mail.
_esp8266_mail_body ("Test de succès -CircuitDigest");
Après avoir saisi le sujet, vous pouvez saisir le corps de l'e-mail à l'aide de cette fonction. À titre d'exemple, j'ai défini «Test de succès –CircuitDigest» comme corps de mon courrier.
_esp8266_End_mail ();
Maintenant que nous avons entré le sujet et le corps du courrier, nous devons indiquer au serveur SMPT2GO que nous avons terminé d'ajouter des détails au courrier. Cela peut être fait en utilisant la fonction
_esp8266_End_mail ();
_esp8266_disconnect_SMPT2GO ();
Enfin, après l'envoi du mail, nous devons mettre fin à la connexion TCP avec le serveur SMPT2GO. Cela se fait en utilisant la fonction ci-dessus.
Travail:
Une fois que vous avez terminé avec votre matériel et votre programme. Videz simplement le code dans votre MCU PIC. Mettez ensuite votre circuit sous tension. Si tout se passe comme prévu, votre écran LCD devrait afficher l'état du processus et finir par dire «Mail envoyé» comme le montre la vidéo ci-dessous. Votre matériel pourrait ressembler à ceci.
Une fois que l'écran LCD indique que le courrier est envoyé, vérifiez votre boîte de réception et votre dossier Spam pour le courrier envoyé. Vous devriez avoir reçu l'e-mail comme indiqué ci-dessous.
Voilà maintenant que vous pouvez créer vos propres projets IOT en lisant les données d'un capteur et en les envoyant à votre identifiant de messagerie. Créez un système d'alerte de sécurité pour votre maison ou votre automobile en déclenchant une alerte par e-mail.
Si vous avez le moindre doute ou si vous restez coincé au milieu, veuillez utiliser la section commentaires et je serai heureux de vous aider.