· 5 years ago · Aug 04, 2020, 01:04 PM
1#include <Wire.h>
2#include "rgb_lcd.h"
3
4rgb_lcd lcd;
5
6const int colorR = 0;
7const int colorG = 255;
8const int colorB = 0;
9
10#include <SoftwareSerial.h>
11SoftwareSerial Serial1(2, 3); // RX, TX
12
13boolean No_IP=false;
14String IP="";
15
16void check4IP(int t1)
17{
18 int t2=millis();
19 Serial1.flush();
20 while(t2+t1>millis())
21 {
22 while(Serial1.available()>0)
23 {
24 if(Serial1.find("WIFI GOT IP"))
25 {
26 No_IP=true;
27 }
28 }
29 }
30}
31
32void get_ip()
33{
34 IP="";
35 char ch=0;
36 while(1)
37 {
38 Serial1.println("AT+CIFSR");
39 while(Serial1.available()>0)
40 {
41 if(Serial1.find("STAIP,"))
42 {
43 delay(1000);
44 Serial.print("IP Address:");
45 while(Serial1.available()>0)
46 {
47 ch=Serial1.read();
48 if(ch=='+')
49 break;
50 IP+=ch;
51 }
52 }
53 if(ch=='+')
54 break;
55 }
56 if(ch=='+')
57 break;
58 delay(1000);
59 }
60 Serial.print(IP);
61 Serial.print("Port:");
62 Serial.println(80);
63}
64
65void connect_wifi(String cmd, int t)
66{
67 int temp=0,i=0;
68 while(1)
69 {
70 Serial1.println(cmd);
71 while(Serial1.available())
72 {
73 if(Serial1.find("OK"))
74 i=8;
75 }
76 delay(t);
77 if(i>5)
78 break;
79 i++;
80 }
81 if(i==8)
82 Serial.println("OK");
83 else
84 Serial.println("Error");
85}
86
87void setup()
88{
89Serial1.begin(9600);
90 // Serial.begin(9600);
91 lcd.begin(16,2);
92 lcd.setRGB(colorR, colorG, colorB);
93 lcd.print("Sending Email by");
94 lcd.setCursor(0,1);
95 lcd.print(" Arduino & WIFI ");
96 delay(2000);
97 lcd.clear();
98 lcd.print(" Circuit Digest ");
99 delay(2000);
100 lcd.clear();
101 lcd.print("Finding ESP8266");
102 connect_wifi("AT",100);
103 connect_wifi("ATE1",100);
104 lcd.clear();
105 lcd.print("Connected");
106 delay(1000);
107 connect_wifi("AT+CWMODE=3",100);
108 connect_wifi("AT+CWQAP",100);
109 connect_wifi("AT+RST",5000);
110 lcd.clear();
111 lcd.print("Connecting WiFi");
112 check4IP(5000);
113 if(!No_IP)
114 {
115 Serial.println("Connecting Wifi....");
116 connect_wifi("AT+CWJAP=\"M1-110826\",\"7B1C4D30\"",7000); //provide your WiFi username and password here
117 }
118 else
119 {
120 }
121 lcd.clear();
122 lcd.print("WIFI Connected...");
123 Serial.println("Wifi Connected");
124 delay(1000);
125 lcd.clear();
126 lcd.print("Getting IP Add.");
127 Serial.println("Getting IP Address....");
128 get_ip();
129 delay(1000);
130 lcd.clear();
131 lcd.print("IP:");
132 lcd.print(IP);
133 lcd.setCursor(0,1);
134 lcd.print("PORT: 80");
135 connect_wifi("AT+CIPMUX=1",100);
136 connect_wifi("AT+CIPSERVER=1,80",100);
137 delay(2000);
138 lcd.clear();
139 lcd.print("Configuring Email..");
140 Serial1.println("AT+CIPSTART=4,\"TCP\",\"mail.smtp2go.com\",2525");
141 delay(2000);
142 Serial1.println("AT+CIPSEND=4,20");
143 delay(2000);
144 Serial1.println("EHLO 192.168.1.123");
145 delay(2000);
146 Serial1.println("AT+CIPSEND=4,12");
147 delay(2000);
148 lcd.clear();
149 lcd.print("Try To Login.....");
150 Serial1.println("AUTH LOGIN");
151 delay(2000);
152 Serial1.println("AT+CIPSEND=4,30");
153 delay(2000);
154 Serial1.println("c210cEB0ZW1wb3JhcnktbWFpbC5uZXQ="); //base64 encoded username
155 delay(2000);
156 Serial1.println("AT+CIPSEND=4,18");
157 delay(2000);
158 Serial1.println("ZjJOUWhnSDFzTUtU"); //base64 encoded password
159 lcd.clear();
160 lcd.print("Login Success");
161 delay(2000);
162 Serial1.println("AT+CIPSEND=4,34");
163 delay(2000);
164 Serial1.println("MAIL FROM:<bestemailtemp@gmail.com>"); // use your email address
165 delay(2000);
166 Serial1.println("AT+CIPSEND=4,32");
167 delay(2000);
168 lcd.clear();
169 lcd.print("Sending Email 2");
170 lcd.setCursor(0,1);
171 lcd.print("Saddam4201@ gmail");
172 Serial1.println("RCPT To:<bestemailtemp@ gmail.com>");
173 delay(2000);
174 Serial1.println("AT+CIPSEND=4,6");
175 delay(2000);
176 Serial1.println("DATA");
177 delay(2000);
178 Serial1.println("AT+CIPSEND=4,17");
179 delay(2000);
180 Serial1.println("Testing Success");
181 delay(2000);
182 Serial1.println("AT+CIPSEND=4,3");
183 delay(2000);
184 Serial1.println('.');
185 delay(10000);
186 Serial1.println("AT+CIPSEND=4,6");
187 delay(2000);
188 Serial1.println("QUIT");
189 delay(2000);
190 lcd.clear();
191 lcd.print("Email Sent...");
192}
193
194void loop()
195{
196
197}
198