NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
CC3200 Email Demo Application
Contents
The E-mail Setup[edit]
The email application on the CC3200 sends emails using SMTP (Simple Mail Transfer Protocol). The email application sends a preconfigured email at the push of a button or a user-configured email through the CLI (Command Line Interface).
Figure 1 Sample Setup showcasing the Simple Email Application
CC3200 Connects to the SMTP Server via WIFI Access Point which is connected to Internet. CC3200 sends the email to SMTP Server which then forwards it to the recipient Email Server. Recipient receives Email from the Email Server using IMAP/POP3 and other proprietary protocol.
Receiving Email is not in the scope of this Application.
System Overview[edit]
Figure 2 CC3200 System Overview
CC3200 Simple Email Application
- SMTP Server Connection
- - TCP Connection(Unsecure/Secure) with Google/Yahoo SMTP Server
- SMTP Protocol
- - Authentication with SMTP Server
- - Form SMTP packet with Source Email, Recipient Email, Subject, Message etc
- - Send SMTP packet to Server
- LED Control
- - Controls LEDs to display Device Status
- UART Command Handler
- - Receive Command from UART Terminal and Send Response
- Interrupt Handler
- - Handles Push Button Interrupt to Trigger Email
- - Handles Push Button Interrupt to Start Smart Configuration Mode
Source Files briefly explained[edit]
- main - Simple Application demonstrating Email Client Functionalities.
- button_if - Interface file to handle button click events.
- gpio_if - GPIO interface file which handles all LED events.
- network_if - Network interface file which handles all network connection events.
- pinmux - Pinmux file to configure GPIO & UART
- smartconfig - Smart Configuration to configure AP
- timer_if - Interface file to handle all Timer events
- uart_if - Interface file which receives command from UART and output Logging Information on UART Terminal
- netapps\smtp\client- libemail is Platform Indepedent Library and can be Integrated to any Email Client Software using below APIs
- sl_NetAppEmailSet - Configure SMTP Server, Login Information, Recipient Email Id, Email Subject etc
- sl_NetAppEmailConnect- Connect to SMTP Server
- sl_NetAppEmailSend- Send Email
Email Application Sequence[edit]
Email/SMTP library is available under '<cc3200-sdk>\netapps\smtp\client\' folder.
Figure 3 Normal operation sequence flow
- Client makes TCP Connection with SMTP Server.
- SMTP Server responds with Response code and Greeting Message containing FQDN
- HELO/EHLO – Client sends Hello Message to the Server. ESMTP accepts EHLO
- The SMTP Server replies with Code 250 and Hello Message. ESMTP Server replies with SMTP extensions it supports such as Email maximum Size, authentication etc.
- If SMTP Server requires authentication, The Client Sends “auth login” followed by “Username” and “Password” encoded with proper encryption accepted by SMTP Server.
- auth login
- 334 VXNlcm5hbWU6
6. Client Sends Username Encoded with Proper encryption accepted by SMTP Server
- a2F1c2hmmdmdmdmhbGt1a2thckBnhfjdhfdjjsksbWFpbC5jb20
7. Client Sends Password Encoded with Proper encryption accepted by SMTP Server
- 334 UGFzc3dvcmQ6
- Mlklkdldldl21haWxhYjskjdkskjss2Mzc3M=
8. SMTP Server replies with Authentication Success/Failure.
- 535 Incorrect authentication data/ 235 Authentication Successful
9. SMTP Client sends From Address
- MAIL FROM: xyz@abc.com
10. SMTP Client sends TO Address
- RCPT TO: abc@ti.com
11. SMTP Client sends DATA command
- DATA
12. SMTP Client sends email data.
13. SMTP Server responds with the acknowledgement
Application User Guide[edit]
Prerequisites[edit]
* Hardware
- o CC3200 Launch Pad
* Software
- o Terminal Application such as Tera Term, Hyperterminal etc
- o CC3200 Email Application
- o TI SmartConfig Application
Note: Use your own email-id & password in source code by modifying few MACROs in demo_config.h file and build the project before running the application.
This document is written with 'cc32xx.apps@gmail.com', taken as demo email address.
#define USER "cc32xx.apps@gmail.com" //Set Sender/Source Email Address #define USER_RFC "cc32xx.apps@gmail.com" //Set Sender/Source Email Address #define PASS "xxxxxxx" //Set Sender/Source Email Password
This example can be used either on TI-RTOS or FreeRTOS.
For the application to work with TI-RTOS, oslib project and ti_rtos_config project need to be imported into the application workspace. These projects can be found in CC3200-SDK under oslib and ti_rtos folder. Please follow this link for CC3200 TI-RTOS usage CC3200 TI-RTOS
Device setup and usage[edit]
Getting the Setup Ready[edit]
- Run the reference application (Flashing the bin/IAR/CCS)
- Open the Project in IAR/CCS IDE.
- Email Demo Application on CCS runs on TI RTOS which requires additional tools to be Installed. Refer to CC3200 TI-RTOS for more information.
- Build and download the application to the board.
- For better understanding of the Hardware Setup, please see the image below
Working[edit]
a. Send Email from UART Terminal
- Open UART terminal application such as HyperTerminal/Tera term etc. Select the USB Serial port named with 'CC3200LP' from all the ports listed under device manager.
- Select Baud Rate to be 115200 and Connect.
- Once device turns ON successfully, Green LED will turn ON.
- UART Terminal application should show Below output
Note – Option 02 is reserved for Source Email Configuration in next SDK release
- Connection to AP - Follow one of the below method
- Connection to Preconfigured AP
- An Access Point (AP) with SSID as “cc3200demo” is required as it is hard coded in the bin files. Also the AP Security type is Set to “Open”
- Enter 01 to give Connect command
- Connect using Smart Config
- Connect your Android Device to desired Access Point
- Enter 06 from UART Terminal
- Start TI Smart Config application and press Start
- Connection to Preconfigured AP
- Red LED will start blinking and will turn ON once connection is successful. Usually it will take 1-10 seconds for the AP connection. If LED keeps blinking, Please check AP SSID name and Security Settings.
- When Terminal Shows IP Address, Send Command 03 to Set Recipient Email Address and Subject
- When Terminal Shows OK, Send Command 04 to Set Email Content
- When Terminal Shows OK, Send 05 to Send Email
- If Email is Sent Successful Orange LED will blink 5 times and Terminal will show Message “Message Sent”
- Terminal may show “Server Connection Error”, “Authentication Failed” etc. If “Server Connection Error”, Please Send 05 again.
- Open an Email Application and check Email. You Will receive an Email from cc32xx.apps@gmail.com
b. Trigger Email from Push Button
- Turn on the Device
- Once device turns ON successfully, Green LED will turn ON.
- Configuration of AP - Follow one of the below method
- Preconfigured AP
- An Access Point (AP) with SSID as “cc3200demo” is required as it is hard coded in the bin files. Also the AP Security type is Set to “Open”
- Smart Config
- Connect your Android Device to desired Access Point
- Press Push Button S2
- Start TI Smart Config application and press Start
- Wait till Red LED turns ON
- Preconfigured AP
- Press Push Button S3 to send Email.
- If Smart Configuration is not done, CC32xx device will Connect to default AP "cc3200demo". Red LED will start blinking and will turn ON once connection is successful. Usually it will take 1-10 seconds for the AP connection. If LED keeps blinking, Please check AP SSID name and Security Settings.
- If Connection is successful, Email will be sent to cc32xx.apps@gmail.com. If user wishes to change this address, it can be changed in Email source code demo_config.h.
- If Email is Sent Successfully Orange LED will blink 5 times
- Open an Email Application and check Email. You Will receive an Email from cc32xx.apps@gmail.com as below
- Hello from Simplelink! The CC32xx connects new devices to the internet!”
- Hello from Simplelink! The CC32xx brings Wi-Fi to battery operated devices!”
- Hello from Simplelink! The CC32xx enables creating IOT products FAST!”
Limitations/Known Issues[edit]
It only implements a limited set of functionality and has some limitations.
- Email is sent to only 1 recipient.
- Only plain text Email is Supported
Links[edit]
{{#invoke: Navbox | navbox }} {{#invoke: Navbox | navbox }}