Arduino почтовый клиент

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

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

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

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

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

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

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

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

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

Работа схемы

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

Как видите, схема достаточно проста – фактически для нее нам нужны только плата 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»);
. .
.

Источник

dannybackx/arduino-smtpclient

Use Git or checkout with SVN using the web URL.

Work fast with our official CLI. Learn more.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

This is an updated version from the one found originally at https://github.com/gregington/SMTPClient

  • api to query error conditions

An Arduino library to send emails to an SMTP server. Supports sending emails from an Arduino to an unauthenticated SMTP server. This library supports sending email through Ethernet, however it should also work with WiFi, but this has not been tested.

Client.h , Mail.h and SMTPClient.h need to be imported.

An instance of SMTPClient needs to be created with the server hostname or IP and the port where the SMTP server is located as well as the Client instance that will be used to make the connection. If the port is omitted, it is defaulted to port 25. In the following example, the client is an EthernetClient , but a WiFi or other client could be specified.

To send an email, an instance of the Mail class needs to be creaed and methods called to populate the object. At a minimum, at least one recipient and a from address are required. A maximum of 16 destination addresses are supported, with them being any combination of To, Cc or Bcc.

Источник

Отправка электронных писем с ESP32 через SMTP-сервер

В данном руководстве мы объясним, как отправлять электронные письма с обычным или HTML текстом, а также расскажем, как отправлять вложения, такие как изображения и текстовые файлы. Плату ESP32 будем программировать с помощью среды разработки Arduino.

Знакомство с SMTP-серверами

SMTP – простой протокол передачи почты (simple mail transfer protocol) и является интернет-стандартом для передачи электронной почты. Чтобы отправлять электронные письма с помощью ESP32, необходимо подключить его к SMTP-серверу.

Библиотека ESP32 MailClient

Для отправки электронных писем с ESP32 используется библиотека ESP32 MailClient . Эта библиотека позволяет ESP32 отправлять и получать электронные письма с вложениями или без них через серверы SMTP и IMAP.

В этом руководстве мы будем использовать SMTP для отправки электронной почты. В качестве примера мы отправим изображение ( .jpg ) и текстовый ( .txt ) файл. Файлы для отправки по электронной почте можно хранить в ESP32 SPIFFS или SD-карте .

Установка библиотеки ESP32 MailClient

Прежде чем продолжить изучать это руководство, необходимо установить библиотеку ESP32 MailClient. Эту библиотеку можно установить с помощью диспетчера библиотек Arduino IDE.

В среде разработки перейдите в Скетч > Подключить библиотеку > Управлять библиотеками…

Должен открыться менеджер библиотек. Найдите почтовый клиент ESP32 от Mobizt и установите библиотеку, как показано ниже.

Электронная почта отправителя (новая учетная запись)

Рекомендуется создать новую учетную запись электронной почты, чтобы отправлять письма на ваш основной адрес электронной почты.

Не используйте свой основной личный адрес электронной почты для отправки электронных писем через ESP32.

Если что-то будет не так в вашем коде или если вы по ошибке сделаете слишком много запросов, вас могут забанить или временно отключить вашу учетную запись.

Мы будем использовать учетную запись gmail для отправки электронных писем, но вы можете использовать любую другую почту. Электронный адрес получателя также может быть вашим личным адресом электронной почты.

Как создать и настроить учетную запись электронной почты отправителя?

Создайте новую учетную запись электронной почты для отправки электронных писем с помощью ESP32.

Разрешите небезопасные приложения

Разрешите небезопасным приложениям получать доступ к этой новой учетной записи Gmail, чтобы вы могли отправлять электронные письма.

Скопируйте настройки SMTP-сервера

Настройки SMTP-сервера gmail

Если вы используете учетную запись gmail, то вот данные SMTP-сервера:

SMTP-сервер: smtp.gmail.com

Имя пользователя SMTP: полный адрес почты gmail

Пароль SMTP: ваш пароль от почты.

Порт SMTP (TLS): 587

Порт SMTP (SSL): 465

Требуется SMTP TLS / SSL: да

Настройки SMTP-сервера Outlook

Для учетных записей Outlook настройки SMTP-сервера такие:

SMTP-сервер: smtp.office365.com

Имя пользователя SMTP: полный адрес электронной почты Outlook

Пароль SMTP: ваш пароль от Outlook.

Порт SMTP: 587

Требуется SMTP TLS / SSL: Да

Настройки SMTP-сервера Live или Hotmail

Настройки ля учетных записей Live или Hotmail:

SMTP-сервер: smtp.live.com

Имя пользователя SMTP: Полный адрес электронной почты Live / Hotmail

Пароль SMTP: ваш пароль от Windows Live Hotmail.

Порт SMTP: 587

Требуется SMTP TLS / SSL: Да

Если вы используете другую почту, вам нужно найти его настройки SMTP-сервера. Теперь мы готовы для отправки электронных писем с помощью ESP32.

Как отправить электронное письмо с текстом используя ESP32?

Данный код отправляет электронное письмо через SMTP-сервер с текстом (обычным или на HTML). В демонстрационных целях ESP32 отправляет электронное письмо один раз при загрузке платы. Изменить код и интегрировать его в свои собственные проекты не сложно.

Прежде чем копировать код, вам нужно внести некоторые изменения, чтобы он работал у вас.

Источник

Отправка email на Arduino

Появилась необходимость отсылать email уведомления на почту со своей Arduino UNO. Оказалось, что сделать это совсем не сложно. Для установки интернет соединения использовала плату ESP8266 и ее стандартную прошивку.

Часто бывают проблемы с установкой связи. Наиболее популярная «нет ответа от модуля». Если следовать дальнейшим инструкциям то таких проблем не будет.

Прошивка ESP8266 должна быть версии 0.9.2.4 или выше. Обновить ее можно с помощью программы Flasher и USB-UART переходника http://www.mediafire.com/download/zcw2gy07s2z60y6/ESP8266_flasher_and_0.9.2.4.zip
Разархивируйте файлы в папку и запустите программу Flasher (esp8266_flasher.exe)
Нажмите на кнопку «BIN» и найдите BIN-fil (v0.9.2.4 AT Firmware-ESPFIX.bin) в папке.
Укажите правильный COM порт.
Чтобы начать загрузку / прошивку, нажмите кнопку «Загрузить».
Если все работает, то при старте модуля он отправит данные по UART порту. Прочесть данные с помощью терминала в Arduino IDE. Если не удалось подключиться, попробуйте отсоединить питание ESP и снова подключить. Теперь ESP8266 имеет версию прошивки: 0.9.2.4

Теперь моно подключать ESP к Arduino UNO.

При подключении стоит посмотреть распиновку т.к. не на всех esp есть пометки на плате.

ESP8266 питается напряжением 3.2 вольта — их можно взять с платы Arduino UNO. На ней есть понижающий стабилизатор.

Arduino библиотека в приложении в конце статьи. Код примера отправки email письма для Arduino ниже:

Источник

xreef/EMailSender

Use Git or checkout with SVN using the web URL.

Work fast with our official CLI. Learn more.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Library to send EMail with attachments

Arduino (support W5100 like must be set, and ENC28J60 via UIPEthernet), esp8266 (SPIFFS, LittleFS and SD) (core

Complete english tutorial

Tutorial completo in italiano

  • 16/08/2022: v3.0.6 Add FORCE_DISABLE_SSL to disable SSL if present
  • 19/07/2022: v3.0.5 Additional fix on additional response management (#26)
  • 12/07/2022: v3.0.4 Fixed attachment issue on SPIFFS and LittleFS
  • 06/07/2022: v3.0.3 Manage multiple response message after connect and HELO (#26)
  • 03/06/2022: v3.0.2 Add possibility to set additionalResponseLineOnConnection with void setAdditionalResponseLineOnConnection(uint8_t numLines = 0), needed if on connection you receive 220 response as error, and add Ethernet2.
  • 20/05/2022: v3.0.1 Put inside scope the client declaration (if you don’t use SSLClient) for backward compatibility
  • 18/05/2022: v3.0.0 Add STM32 support. Add SSLClient integration to allow send Email with SSL encryption (like Gmail) with ethernet (tested with STM32, ESP32, w5500, and enc28j60), minor fix
  • 12/04/2021: v2.4.3 Fix multiple email send
  • 12/04/2021: v2.4.1 Add support for LITTLEFS and Ffat on esp32 and fix certificate verification from esp32 core 1.0.5
  • 18/03/2021: v2.3.0 Add support for LittleFS on esp8266
  • 02/01/2021: v2.2.0 New support for SAMD devices via WiFiNINA (Arduino MKR WiFi 1010, Arduino Vidor 4000 and Arduino UNO WiFi Rev.2 ecc.).
  • 01/01/2021: v2.1.5 Add possibility to use EHLO instead of HELO, and SASL login.
  • 27/11/2020: v2.1.4 Add more constructor to allow more structure for distribution list (now const char*, char* and String array are supported)

23/11/2020: v2.1.3 Add management of name on EMail from

To download. click the DOWNLOADS button in the top right corner, rename the uncompressed folder EMailSender. Check that the EMailSender folder contains EMailSender\\.cpp and EMailSender.h . Place the EMailSender library folder your /libraries/ folder. You may need to create the libraries subfolder if its your first library. Restart the IDE.

EMailSender library to send EMail.

With this library you can send email with attach: Arduino Network supported — w5100 like shield with Ethernet library — enc28J60 with UIPLibrary Storage support — SD

esp8266 you must pay attention, older core from 2.4.2 must be activated Storage supported — SD — SPIFFS — LittleFS

esp32 Storage supported — SD — SPIFFS — LITTLEFS — Ffat

Constructor: Default value is quite simple and use GMail as smtp server.

If you want use onother provider you can use more complex (but simple) contructor

You must connect to WIFI :P.

Create a message with the structure EMailMessage

Create array of attachments

Then check the response:

From version 2.1.1 new features distribution list to send CC and CCn email.

About

Arduino, esp32, Esp8266 EMailSender with Arduino IDE, simple library to send email via smtp with attachments.

Источник

Adblock
detector