Передача Email с использованием Arduino и WiFi модуля ESP8266

Сегодняшний мир активно движется к широкому внедрению технологии интернета вещей (IoT — Internet of Things). Эта технология уже сейчас играет значительную роль в электронике и встраиваемых системах (Embedded system). Передача Email от микроконтроллера или встраиваемой системы является одной из базовых функций, которая необходима в технологии интернета вещей, поэтому в данной статье мы рассмотрим подключение к плате Arduino WiFi модуля ESP8266 и передачу с его помощью Email. Также можете прочитать статью о передаче Email с использованием WiFi модуля ESP8266 и микроконтроллера AVR.

Внешний вид процесса передачи Email

Необходимые компоненты

Плата Arduino Uno
Источник питания
ЖК дисплей 16х2 (опционально)
Wi-Fi модуль ESP8266
USB кабель
Лэптоп (персональный компьютер)
Потенциометр 10 кОм (опционально)
Соединительные провода

Внешний вид Wi-Fi модуля ESP8266 показан на следующем рисунке.

Внешний вид Wi-Fi модуля ESP8266

Подготовка к работе

Для того, чтобы иметь возможность передавать Email с помощью платы Arduino и Wi-Fi модуля, нам необходимо получить Email. Это можно сделать на сайте на сайте smtp2go.com – после регистрации не забудьте запомнить (записать) свой email адрес и пароль. Внешний вид окна регистрации на сайте smtp2go.com представлен на следующем рисунке.

Внешний вид окна регистрации на сайте smtp2go.com

Далее нам будут необходимы для нашего аккаунта Email имя пользователя и пароль в закодированном формате base64. Для преобразования данных из формата utf-8 в формат base64 можно использовать сервис https://www.base64encode.org/. Внешний вид окна данного сервиса показан на следующем рисунке.

Внешний вид сервиса www.base64encode.org

Подавать питание на Wi-Fi модуль ESP8266 мы будем с контакта 3.3v платы Arduino.

Подача питания на Wi-Fi модуль ESP8266 с платы Arduino

Работа схемы

Схема устройства представлена на следующем рисунке.

Схема устройства для передачи Email с использованием Arduino и WiFi модуля ESP8266

Как видите, схема достаточно проста – фактически для нее нам нужны только плата Arduino и Wi-Fi модуль ESP8266. Но мы добавили в схему еще ЖК дисплей 16×2 для отображения статусных сообщений (но можно обойтись и без нее). Контакты Vcc и GND модуля ESP8266 подключены к контактам 3.3V и GND платы Arduino, контакт CH_PD также подсоединен к 3.3V.

Контакты Tx и Rx модуля ESP8266 непосредственно подсоединены к контактам 2 и 3 платы Arduino. Контакт 2 платы Arduino также замкнут с контактом 1 платы Arduino. Это сделано с той целью чтобы отображать ответ с модуля ESP8266 на последовательном порту Arduino. Библиотека последовательного порта (Software Serial Library) используется чтобы осуществлять последовательную связь на контактах 2 и 3 Arduino

Примечание: чтобы видеть ответ с ESP8266 на последовательном порту не используйте функцию Serial.begin(9600).

Исходный код программы

В программе мы первым делом должны подключить библиотеку последовательной связи и библиотеку для работы с ЖК дсиплеем. По умолчанию, для последовательной связи используются контакты 0 и 1 платы Arduino, но с использованием библиотеки последовательной связи мы можем задействовать последовательную связь на любых других цифровых контактах платы Arduino.

После этого мы должны запрограммировать функцию void connect_wifi(String cmd, int t) чтобы соединить Wi-Fi модуль с сетью Internet.

void connect_wifi(String cmd, int t)
{
int temp=0,i=0;
while(1)
{
Serial1.println(cmd);
while(Serial1.available())
{
if(Serial1.find("OK"))
... .... ....
... .....

После этого необходимо соединить Wi-Fi модуль с SMTP сервером при помощи соответствующих команд.

lcd.print("Configuring Email..");
Serial1.println("AT+CIPSTART=4,\"TCP\",\"mail.smtp2go.com\",2525");
delay(2000);
Serial1.println("AT+CIPSEND=4,20");
delay(2000);
Serial1.println("EHLO 192.168.1.123");
delay(2000);
Serial1.println("AT+CIPSEND=4,12");

Примечание: некоторые email серверы не принимают email с некоммерческих, выпущенных с помощью dhcp ip адресов.

После этого мы будем пытаться залогиниться на smtp2go.co, используя имя пользователя и пароль в закодированном base64 формате, которые мы получили с помощью сервиса https://www.base64encode.org/.

lcd.print("Try To Login.....");
Serial1.println("AUTH LOGIN");
delay(2000);
Serial1.println("AT+CIPSEND=4,30");
delay(2000);
Serial1.println("c2FkZGFtNDIwMUBnbWFpbC5jb20="); //base64 encoded username
delay(2000);
Serial1.println("AT+CIPSEND=4,18");
delay(2000);
Serial1.println("Y2lyY3VpdDQyMDE="); //base64 encoded password

После этого вводите свое основное сообщение которое хотите передать. Передаем этот email с использованием заключительной строки (символа) ‘.’

Serial1.println("Testing Success");
delay(2000);
Serial1.println("AT+CIPSEND=4,3");
delay(2000);
Serial1.println('.');
delay(10000);
Serial1.println("AT+CIPSEND=4,6");
delay(2000);
Serial1.println("QUIT");
... .....
.......

Далее представлен полный текст программы.

Видео, демонстрирующее работу схемы

(1 голосов, оценка: 5,00 из 5)
Загрузка...
171 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *