In diesem Tutorial erfahren Sie, wie Sie E-Mails vom PIC Microcontroller mit dem bekannten WiFi-Modul ESP8266 senden. Dieses Tutorial verwendet PIC16F877A IC und MPLABX und XC8 Compiler zum Programmieren.
Am Ende dieses Tutorials können Sie E-Mails von jeder normalen E-Mail-ID wie Google Mail, Yahoo usw. an jede andere E-Mail-ID senden. In diesem Tutorial wird daher davon ausgegangen, dass Sie über Grundkenntnisse in ESP8266-01-Modulen und PIC-Mikrocontrollern verfügen. Wenn nicht, helfen Ihnen die folgenden Tutorials
- Erste Schritte mit ESP8266
- Schnittstelle zwischen ESP8266 und PIC
Also fangen wir an…
Machen Sie sich bereit mit Ihrer E-Mail-ID:
Führen Sie die folgenden Schritte aus, nachdem Sie festgelegt haben, von welcher E-Mail-ID Sie die E-Mails senden möchten
Schritt 1: Besuchen Sie https://www.smtp2go.com/ und melden Sie sich als neuer Benutzer an. Geben Sie Ihren Namen, Ihre E-Mail-Adresse und das Passwort Ihrer E-Mail-ID ein, von der aus Sie die E-Mail senden möchten.
In diesem Lernprogramm werden die E-Mail-ID: aswinthcd @ gmail.com und das Kennwort: Circuitdigest verwendet.
Schritt 2: Klicken Sie auf Anmelden und Sie erhalten eine Bestätigungsmail an Ihre eingegebene Mail-ID. In diesem Fall ist es aswinthcd @ gmail.com. Öffnen Sie die Mail und klicken Sie auf "ACCOUNT AKTIVIEREN".
Schritt 3: Möglicherweise werden Sie erneut nach einem Passwort gefragt, wenn Sie dazu aufgefordert werden, geben Sie das vorherige Passwort ein. In diesem Fall ist es "Circuitdigest". Anschließend werden Sie auf der SMPT2GO-Website angemeldet. Jetzt ist Ihre E-Mail-Adresse bereit, E-Mails mit dem ESP8266-Modul zu senden.
Schritt 4: Der letzte Schritt besteht darin, die E-Mail-ID und das Kennwort über diese Website https://www.base64encode.org/ in das Basis-64-Format zu kodieren. Wir werden dies in unserem PIC-Programm verwenden
In diesem Fall sehen die codierten Werte wie in der folgenden Tabelle gezeigt aus.
Parameter |
Normales Format |
In Basis 64 codiert |
Mailadresse |
aswinthcd @ gmail.com |
YXN3aW50aGNkQGdtYWlsLmNvbQ == |
Passwort |
Circuitdigest |
Y2lyY3VpdGRpZ2VzdA == |
Bereiten Sie Ihre Hardware vor:
Das vollständige Schema des Projekts ist unten dargestellt.
Das LCD-Display wird hier zum Debuggen verwendet. Es ist nicht zwingend erforderlich, dass Sie dies verbinden. Das Programm funktioniert auch ohne LCD-Anzeige einwandfrei. Wenn Sie mehr über die Schaltpläne erfahren möchten, besuchen Sie dieses Tutorial. (Schnittstelle zwischen PIC und ESP).
Sie können diese Schaltung einfach auf einem Steckbrett zusammenbauen und dann mit der Programmierung fortfahren.
Programmieren Ihres PIC zum Senden von E-Mails:
Um eine E-Mail vom ESP8266 zu senden, muss eine Folge von AT-Befehlen an das ESP-Modul gesendet werden. Die folgenden Schritte müssen ausgeführt werden, um eine E-Mail von ESP8266 zu senden.
- Stellen Sie das Modul in den AP + STA-Modus (Access Point und Station)
- Stellen Sie eine Verbindung zu einem Access Point her, um eine Internetverbindung herzustellen
- Aktivieren Sie mehrere Verbindungen
- Starten Sie einen Server an einem bestimmten Port
- Stellen Sie eine TCP-Verbindung mit der SMPT2GO-Website her
- Navigieren Sie zum Login-Bereich der Website
- Geben Sie die E-Mail-ID und das Passwort im base64-Format ein
- Geben Sie From Mail ID ein
- Geben Sie To mail ID ein
- Geben Sie den Betreff der Mail ein
- Geben Sie den Text der Mail ein
- Geben Sie das Ende der E-Mail an
- Senden Sie die Mail
- Beenden Sie die TCP-Verbindung
Es ist ein etwas langwieriger und langwieriger Prozess, aber keine Sorge. Ich habe den Prozess durch Erstellen einer Header-Datei vereinfacht und Sie können sie direkt verwenden, indem Sie nur einige Funktionen (siehe unten) aufrufen, was diese Aufgabe sehr einfach macht. Der vollständige Code zusammen mit der Header-Datei kann hier heruntergeladen werden.
Hinweis: Wenn Sie den Code in einem neuen Projekt verwenden, stellen Sie sicher, dass Sie die Header-Datei herunterladen und in Ihr Projekt einfügen.
Ich habe einige wichtige Teile des Codes unten erklärt, die anderen Teile sind selbsterklärend. Wenn Sie jedoch Zweifel haben, können Sie den Kommentarbereich nutzen.
/ * Überprüfen Sie, ob die ESP_PIC-Kommunikation erfolgreich ist * / do {Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP nicht gefunden"); } while (! esp8266_isStarted ()); // warte bis der ESP "OK" zurücksendet Lcd_Set_Cursor (1,1); Lcd_Print_String ("ESP ist verbunden"); __delay_ms (1500); Lcd_Clear (); / * Ja ESP-Kommunikation erfolgreich -Proceed * /
Dieser Teil des Codes wird verwendet, um zu überprüfen, ob eine ordnungsgemäße Kommunikation zwischen dem PIC und dem ESP8266 hergestellt wurde. Nur wenn beide Daten über USART senden und empfangen können, fährt das Programm mit dem nächsten Schritt fort.
esp8266_mode (3);
Diese Funktion versetzt den ESP8266 in Modus 3. Das Modul kann nun sowohl als Access Point als auch als Server fungieren.
esp8266_connect ("BPAS home", "cracksun");
Diese Funktion wird verwendet, um Ihr ESP8266-Modul mit Ihrem Wifi-Router zu verbinden. In diesem Fall ist "BPAS home" der Name meines Wifi-Signals und "cracksun" mein Passwort. Sie müssen Ihre eigenen Wifi-Signaldetails verwenden.
_esp8266_enale_MUX (); // Mehrere Verbindungen aktivieren _esp8266_create_server (); // Einen Server an Port 80 erstellen
Diese beiden Funktionen werden verwendet, um mehrere Verbindungen zu aktivieren und einen Server an Port 80 zu erstellen.
_esp8266_connect_SMPT2GO ();
Mit dieser Funktion können wir nun eine TCP-Verbindung mit SMPT2GO herstellen. Sobald die Verbindung hergestellt ist, wechselt diese Funktion auch zur Anmeldeseite der Website.
_esp8266_login_mail ("YXN3aW50aGNkQGdtYWlsLmNvbQ ==", "Y2lyY3VpdGRpZ2VzdA ==");
Verwenden Sie diese Funktion, um Ihre E-Mail-ID und Ihr Passwort im Basis 64-Format einzugeben. Wie Sie sehen können, sind diese codierten Werte dieselben wie die in der obigen Tabelle gezeigten. Ihre verschlüsselten Werte variieren je nach E-Mail-ID und Passwort.
_esp8266_mail_sendID ("aswinthcd @ gmail.com");
Mit dieser Funktion wird der Name der Absender-ID definiert. In diesem Tutorial sende ich die E-Mail mit meiner Google Mail-ID aswinthcd @ gmail.com, daher habe ich sie als Parameter übergeben.
_esp8266_mail_recID ("mailtoaswinth @ gmail.com");
Mit dieser Funktion wird der Name der Empfänger-ID definiert. Ich möchte meine Mails an ein anderes Google Mail-Konto von mir senden, daher habe ich den Parameter als mailtoasiwnth @ gmail.com übergeben. Sie können Ihre gewünschte Mail-ID verwenden
_esp8266_start_mail ();
Diese Funktion weist den SMPT2GO-Server an, den Betreff und den Text der E-Mail einzugeben, und bereitet sie darauf vor.
_esp8266_mail_subject ("Mail von ESP8266");
Mit dieser Funktion können Sie den Betreff der Mail definieren. Als Beispiel habe ich "Mail von ESP8266" als Betreff der Mail verwendet.
_esp8266_mail_body ("Testing Success -CircuitDigest");
Nach Eingabe des Betreffs können Sie mit dieser Funktion den Text der E-Mail eingeben. Als Beispiel habe ich "Testing Success –CircuitDigest" als Hauptteil meiner E-Mail festgelegt.
_esp8266_End_mail ();
Nachdem wir den Betreff und den Text der E-Mail eingegeben haben, müssen wir den SMPT2GO-Server anweisen, dass wir mit dem Hinzufügen von Details zur E-Mail fertig sind. Dies kann mit der Funktion erfolgen
_esp8266_End_mail ();
_esp8266_disconnect_SMPT2GO ();
Schließlich müssen wir nach dem Senden der E-Mail die TCP-Verbindung mit dem SMPT2GO-Server beenden. Dies erfolgt mit der obigen Funktion.
Arbeiten:
Sobald Sie mit Ihrer Hardware und Ihrem Programm fertig sind. Geben Sie den Code einfach in Ihre PIC-MCU ein. Schalten Sie dann Ihren Stromkreis ein. Wenn alles wie erwartet verläuft, sollte Ihr LCD den Status des Vorgangs anzeigen und schließlich "Mail gesendet" anzeigen, wie im folgenden Video gezeigt. Ihre Hardware könnte ungefähr so aussehen.
Sobald das LCD anzeigt, dass die E-Mail gesendet wurde, überprüfen Sie Ihren Posteingang und Ihren Spam-Ordner auf die gesendete E-Mail. Sie sollten die Mail wie unten gezeigt erhalten haben.
Jetzt können Sie Ihre eigenen IOT-Projekte erstellen, indem Sie die Sensordaten lesen und an Ihre E-Mail-ID senden. Erstellen Sie ein Sicherheitswarnsystem für Ihr Zuhause oder Ihr Auto, indem Sie eine Warnung per E-Mail auslösen.
Wenn Sie Zweifel haben oder in der Mitte stecken bleiben, benutzen Sie bitte den Kommentarbereich und ich werde Ihnen gerne weiterhelfen.