الجمعة، 29 مايو 2020

سلسلة مشاريع الأردوينو للمبتدئين ( المشروع عـــ19ـــدد ) : ساعة بشاشة عرض LCD و منبه مع عرض لدرجات الحرارة و الرطوبة بالغرفة

 

سلسلة مشاريع الأردوينو للمبتدئين ( المشروع عـــ19ـــدد ) : ساعة بشاشة عرض LCD و منبه مع عرض لدرجات الحرارة و الرطوبة بالغرفة

المطلوب :
1- عرض التوقيت و التاريخ
2- عرض توقيت المنبه المنبه
3- عرض درجة الحرارة و الرطوبة
4- امكانية ظبط ساعة المنبه و الدقائق
5- استعمال 2 زر جرسا لزيادة و تخفيض الساعات و الدقائق عند تعديل المنبه
6- بيان كل العمليات عن طريق عرض ريانات على الشاشة

القطع المطلوبة

1- اردوينو اونوا
2- شاشة عرض LCD 16*2
3- قاطع
4- حساس حرارة ورطوبة DHT11
5- 4 زرجرس
6- 1 ليد
7- منبه


المخطط على البروتس


الكود


 #include "DHT.h"

#define DHTPIN 2 
  #define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

 int alarm_H=0;
 int alarm_M=0;
 
 
 #include
 #include
 RTC_DS1307 RTC;
   

 

 
#include

const int rs = A1, en = A0, d4 = A2, d5 = A3, d6 = 13, d7 = 12;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  dht.begin();
     lcd.begin(16, 2);
    
 
 

     lcd.setCursor(4, 0);
     lcd.print("Initialising");
       delay(100);
       lcd.clear();
   lcd.print("Weeelkooom");
     delay(100);
  lcd.clear();
  lcd.print("Salem BEN MOUSSA");
 lcd.setCursor(4, 2);
 lcd.print("\\ARDOUINO\\");
  delay(200);
 lcd.clear();
 
 pinMode(10,OUTPUT);
  pinMode(11,OUTPUT); 
  pinMode(12,INPUT_PULLUP);
   pinMode(9,INPUT_PULLUP);
    pinMode(8,INPUT_PULLUP);
    
       pinMode(7,INPUT_PULLUP);
      pinMode(6,INPUT_PULLUP);
      pinMode(5,INPUT_PULLUP);
       pinMode(2,INPUT);
 
 Wire.begin();
  RTC.begin();
  RTC.adjust(DateTime(__DATE__, __TIME__)); 
  digitalWrite(10,HIGH); 
    
}
 
void loop() { 
  if (digitalRead(5) == HIGH){ 
  lcd.clear();
  DateTime now = RTC.now();
       lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("TIME:");
    lcd.print(now.hour(), DEC);
     
     lcd.print('-');
   
    lcd.print(now.minute(), DEC);
    
     lcd.print('-');
    lcd.print(now.second(), DEC);
  
           
     lcd.setCursor(0, 1);
lcd.print("DATE:");
        
    lcd.print(now.year(), DEC);
     
     lcd.print('-');
   
    lcd.print(now.month(), DEC);
    
     lcd.print('-');
    lcd.print(now.day(), DEC);
  
    delay(1000);
     lcd.clear();
     lcd.setCursor(2,0);
  lcd.print("alarm_TIME");
                        lcd.setCursor(6,1);
                       lcd.print(alarm_H);
                       
  lcd.print(":");
  lcd.print(alarm_M);
 delay(1000);
 

   
 
  float h = dht.readHumidity();
   float t = dht.readTemperature();
 

   if (isnan(h) || isnan(t)  ) {
    lcd.clear();
    lcd.println(F("Failed to read from DHT sensor!"));
    return;
 
  }
 
                                     lcd.clear();    
                        lcd.setCursor(2,0);
  lcd.print("H(%): ");
  lcd.print(h);
       lcd.setCursor(2,1);
  lcd.print("T(C): ");
 lcd.print(t);
   
  delay(1000);

    if ( now.hour() == alarm_H  && now.minute() == alarm_M  )
        {
        // lcd.noBacklight();
         DateTime now = RTC.now();
         digitalWrite(11,HIGH);
         digitalWrite(10,HIGH);
         delay(10);
        digitalWrite(10,LOW);
         delay(10);
        }
        else {
                   digitalWrite(11,LOW);
         digitalWrite(10,HIGH);
        }
  }
  
   else { 
      

                                     lcd.clear();    
                        lcd.setCursor(2,0);
                    lcd.print("set_alarm");
                    
                        lcd.setCursor(3,1);
           
                      lcd.print("H: ");
                       lcd.print(alarm_H);
                       lcd.setCursor(8,1);
                        lcd.print("M: ");
                     lcd.print(alarm_M);
         delay(100);            
  if (digitalRead(9) == LOW){
     alarm_H=alarm_H;
    if (alarm_H < 24){
                 alarm_H++;  

                           delay(100);}
                           else {
                             lcd.print("alarm_H<=24");
                             alarm_H=0;
                              delay(200);
                           }
  
  
 }
  else if (digitalRead(8) == LOW){ 
     alarm_H=alarm_H;  
      if (alarm_H > 0){
                 alarm_H--;  
                delay(100);}
                           else {
                             
                             lcd.clear();
                             lcd.setCursor(2,0);
                             lcd.print("set_B_UP");
                             alarm_H=0;
                              delay(200);
                           }
  
  
 }
    
 
 
                         
else if (digitalRead(7) == LOW){
    
     alarm_M=alarm_M;
    if (alarm_M < 60){
                 alarm_M++;  
                      
                           delay(100);}
                           else {
                             lcd.print("alarm_M<=60");
                              delay(200);
                             alarm_M=0;
                           }
                             
      }
      
      else if (digitalRead(6) == LOW){
    
     alarm_M=alarm_M;
    if (alarm_M > 0){
                 alarm_M--;  
                     
                           delay(100);}
                           else {
          lcd.clear();
                             lcd.setCursor(2,0);
                             lcd.print("set_B_UP");
                              delay(200);
                             alarm_M=0;
                           }
                             
      }
   }

   
 
 

 
 
 
 
 
  } 
 
 
 

فهرس سلسلة مشاريع أردوينو للمبتدئين 

http://salembenmoussa.blogspot.com/2020/05/blog-post_17.html

ليست هناك تعليقات:

التعليقات

بحث هذه المدونة الإلكترونية