مشروع مراقبه المحميات الزراعيه عن بعد


عبدالرحمن سمير سندي
للدخول على موقع المهندس المشرف على المشروع قم بالضغط على صورته
م. ايمن كيفي

المقدمه
اقدم لكم مشروعي هذا و هو عبارة عن حساس حرارة و رطوبة و حساس ضوئي تتم قرائتها عن طريق شاشة رقمية و يمكن قراءة المعطيات عن طريق الجوال من موقع
Thingspeake
و المشروع هذا متواجد بكثرة في المحميات الزراعية لقياس نسبة الضوء و الحرارة و الرطوبة داخل المحمية ويفدنا كثير لمعرفة طقوس المحمية لانه يستخدم بتقنيه ال
(WI FI)
العناصر المستخدمة في الدائرة
ملاحظة
لتفاصيل اكثر قم بالضغط على الصورة
للرغبة في الحصول على القطع اضغط هنا
Resistance مقاومه متغيره
وهو عنصر الكتروني يستختم للتحكم في شده اضاءه الشاشه
تركيب و توصيل العناص ر و تجربتها على التست بورد
<---- المكتبات
<---- تعريفات الثوابت
<---- تعريفات المخارج و المداخل لعناصر المكتبات
<---- تعريفات المتغيرات
اعداد صحيحه و اعداد حقيقيه و اعداد ثنائية
<---- الدالة الرقمية تقرأ لمرة واحدة
<---- الاتصال بالواي فاي
<---- دالة الإشعال
str= تعريف كتابة او الرموز
<---- دالة إرسال البيانات
إرسال العنوان
و عدد الرموز
و التحديث

الاكواد اللازمة لتشغيل المشروع مع شرحها
#include <SoftwareSerial.h>
#include <dht.h>
#include <LiquidCrystal.h>
#define SSID "r"
#define PASSWORD ""
#define API_KEY "Q9N5R2LS1PKE4NO7"
#define DHT11_PIN 2
dht DHT;
SoftwareSerial ser(3, 4);
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
float humi, temp, light;
byte send_time = 60;
bool error_system;
void setup() {
Serial.begin(9600);
ser.begin(9600);
lcd.begin(16, 2);
lcd.print("Conneting to WIFI");
if(join_SSID(SSID, PASSWORD)){Serial.println("SSID Joined");}
else {Serial.println("ERROR Joining SSID");}
}
void loop() {
if(DHT.read11(DHT11_PIN) == DHTLIB_OK){humi = DHT.humidity; temp = DHT.temperature;}
light = analogRead(A0)*100.0/1023.0;
if(send_time >= 60){
if(send_data(humi, temp, light)){Serial.println("DATA Sent"); error_system = false;}
else {error_system = true;}
lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0);
lcd.print(humi, 1); lcd.print(" "); lcd.print(temp, 1); lcd.print(" "); lcd.print(light, 1);
lcd.setCursor(0, 1); lcd.print(" "); lcd.setCursor(0, 1);
if(error_system){lcd.print("Data not sent");}
else {lcd.print("Data sent");}
send_time = 0;
}
send_time++;
delay(1000);
}
bool join_SSID(String _SSID, String _PASSWORD){
String Str;
bool check, error;
byte count;
Str += "AT+CWJAP=";
Str += "\"";
Str += _SSID;
Str += "\",\"";
Str += _PASSWORD;
Str += "\"";
ser.println(Str);
check = true; count = 0;
while(check){
if(ser.find("OK")){check = false; error = false;}
else if(ser.find("ERROR")){ser.println(Str);}
count++;
if(count > 5){check = false; error = true;}
delay(1000);
}
if(error){return false;}
else {return true;}
}
bool send_data(float data1, float data2, float data3){
String GET = "GET /update?api_key=", cipsend = "AT+CIPSEND=";
bool check, error;
byte count;
char buf[100];
GET += API_KEY;
GET += "&field1=";
GET += String(data1);
GET += "&field2=";
GET += String(data2);
GET += "&field3=";
GET += String(data3);
ser.println("AT+CIPSTART=\"TCP\",\"184.106.153.149\",80");
Serial.println("Sending AT+CIPSTART");
check = true; count = 0;
while(check){
if(ser.find("OK")){check = false; error = false;}
else if(ser.find("ALREADY CONNECTED")){check = false; error = false;}
else {ser.println("AT+CIPSTART=\"TCP\",\"184.106.153.149\",80");}
count++;
if(count > 5){check = false; error = true;}
delay(1000);
}
if(error){Serial.println("ERROR Sending AT+CIPSTART"); return false;}
else {
Serial.println("Sending AT+CIPSEND");
cipsend += String(GET.length()+5); ser.println(cipsend);
check = true; count = 0;
while(check){
if(ser.find("OK")){check = false; error = false;}
else {ser.println(cipsend);}
count++;
if(count > 5){check = false; error = true;}
delay(1000);
}
if(error){Serial.println("ERROR sending AT+CIPSEND"); return false;}
else {
Serial.println("Sending DATA");
ser.flush();
ser.println(GET);
ser.println(GET);
while(ser.find("busy")){}
ser.println("AT+CIPCLOSE");
if(error){Serial.println("ERROR sending DATA"); return false;}
else {return true;}
}
}
}
لتحميل الكود انقر على هذه الصورة
<---- دالة التكرار

Fritizing الرسمة النظريه ببرنامج الـ
Fritizing الرسمة العملية ببرنامج الـ


مرحلة الإظهار
وهي تأتي بعد مرحلة التصوير والتي نقوم فيها بوضع البورد في الماء و مضاف عليه كلوريد الحديد لازالة اللون الاخضر من البورد.
مرحلة التحميض
نقوم بوضع البورد بعد اظهاره في الحمض لكي تزيل القطعه النحاسية عن البورد , و تستغرق هذة العملية 15 دقيقة تقريبا

تركيب العناصر وتجربتها

ارجو ان اكون قد وفقت في شرح مشروعي هذا و الذي اتمنى ان اكون وفقت فيه و في شرحه و ان يكون جهد 15 اسبوع بالنجاح راجيا من المولى عز وجل التوفيق و النجاح
و السلام مسك الختام

الشكل النهائي
فيديو توضيحي لتشغيل المشروع بالكامل + الشكل النهائي










