دارة إنذار عند فتح باب و الإشعار بالبريد الالكتروني
فكرة الموضوع اتت بعد انتشار الانترنت بشكل واسع حيث اصبحت اجهزتنا متلصة بالانترنت على مدار الساعة
في المنزل
في المكتب
في السيارة
وحتى اوقات التنزه
وكثيرا منا من يرغب بعمرفة ما اذا تم فتح باب شقته او مكتبه او حتى خزنته اثناء غيابه يمكنكم الان معرفة هذا الامر فورا و عن طريق رسالة بريد الكتروني تصلك اينما كنت
اليكم الشرح :
اولا يلزمنا ما يلي
- Arduino UNO
- PHPoC Shield for Arduino
- Magnetic sensor SAMSUNG SIM

ثانيا اليكم طريقة التوصيل :
- نقوم بتركيب الـ PHPoC Shield for Arduino على الـ Arduino UNO
- نحضر كبل الشبكة و نوصله بالـ PHPoC Shield for Arduino و نتأكد ان الاتصال بشبكو الانترنت قد تم بشكل سليم
- نقوم بوصل اسلاك الـ Magnetic sensor بحيث يكون السلك الأسود موصلا مع A0 على الـ Shield و السلك الأحمر مع 5V على الـ Shield
صور توضيحية لطريقة التوصيل :


ثالثا وهنا سيتم ادراج الكود البرمجي للـ Arduino
PHP:
#include "SPI.h"
#include "Phpoc.h"
PhpocEmail email;
void setup() {
Serial.begin(9600);
Phpoc.begin(PF_LOG_SPI | PF_LOG_NET | PF_LOG_APP);
//Phpoc.beginIP6(); uncomment this line if you are going to use IPv6
pinMode(A0, INPUT);
}
int previous_status = 1;
void loop() {
int current_status = digitalRead(A0);
int returnValue;
if (previous_status == 1 && current_status == 0) { // if door is opened...
email.setOutgoingServer("smtp.gmail.com", 587);
email.setOutgoingLogin("Google ID", "Google Password");
//Ahmad Altonji
//www.altonji.net
//Mob:+963935888592
//Syria - Aleppo
email.setFrom("Gmail address ", "Sender Name"); //your email on gmail and password
email.setTo("Receiver email address", "Receiver Name"); // Receiver email address and Receiver Name
email.setSubject("Door is opened. [#905]"); // Mail Subject
// Mail Contents
email.beginMessage();
email.println("#905");
email.println("");
email.println("Door is opened.");
email.endMessage();
if (email.send() > 0) // Send Email
Serial.println("Your Mail has been sent successfully");
else
Serial.println("Your Mail is not sent");
} else if (previous_status == 0 && current_status == 1) { // if door is closed...
}
previous_status = current_status;
delay(1500);
}
فيديو توضيحي :
أرجو أن أكون وفقت بالشرح
التعديل الأخير: