Professional Documents
Culture Documents
#include <SPI.h>
#include <Ethernet.h>
EthernetClient mailClient;
void setup() {
pinMode(4,OUTPUT);
digitalWrite(4,HIGH);
Ethernet.begin(mac, ip, gateway, gateway, subnet);
delay(2000);
void loop(){
val = digitalRead(sensor); // read sensor value
if (val == HIGH) { // check if the sensor is HIGH
digitalWrite(led, HIGH); // turn LED ON
if(sendEmail()) Serial.println(F("Email sent"));
else Serial.println(F("Email failed"));
delay(100); // delay 100 milliseconds
if (state == LOW) {
Serial.println("Motion detected!");
state = HIGH; // update variable state to HIGH
}
}
else {
digitalWrite(led, LOW); // turn LED OFF
delay(200); // delay 200 milliseconds
if (state == HIGH){
Serial.println("Motion stopped!");
state = LOW; // update variable state to LOW
}
}
}
byte sendEmail()
{
byte thisByte = 0;
byte respCode;
if(mailClient.connect(mailServer,port) == 1) {
Serial.println(F("connected"));
} else {
Serial.println(F("connection failed"));
return 0;
}
if(!eRcv()) return 0;
Serial.println(F("Sending hello"));
// replace 1.2.3.4 with your Arduino's ip
mailClient.println("EHLO 192.168.0.176");
if(!eRcv()) return 0;
Serial.println(F("Sending User"));
// Change to your base64 encoded user
mailClient.println("aHVsaW8ua3VsaW83MUBnbWFpbC5jb20=");
if(!eRcv()) return 0;
Serial.println(F("Sending Password"));
// change to your base64 encoded password
mailClient.println("eGh1bGlvMTEx");
if(!eRcv()) return 0;
Serial.println(F("Sending DATA"));
mailClient.println("DATA");
if(!eRcv()) return 0;
Serial.println(F("Sending email"));
mailClient.println(".");
if(!eRcv()) return 0;
Serial.println(F("Sending QUIT"));
mailClient.println("QUIT");
if(!eRcv()) return 0;
mailClient.stop();
Serial.println(F("disconnected"));
return 1;
}
byte eRcv()
{
byte respCode;
byte thisByte;
int loopCount = 0;
while(!mailClient.available()) {
delay(1);
loopCount++;
respCode = mailClient.peek();
while(mailClient.available())
{
thisByte = mailClient.read();
Serial.write(thisByte);
}
return 1;
}
void efail()
{
byte thisByte = 0;
int loopCount = 0;
mailClient.println(F("QUIT"));
while(!mailClient.available()) {
delay(1);
loopCount++;
while(mailClient.available())
{
thisByte = mailClient.read();
Serial.write(thisByte);
}
mailClient.stop();
Serial.println(F("disconnected"));
}