ESTE PROGRAMA VA A CONTROLAR LAS VARIABLES DE HUMEDAD Y TEMPERATURA SET POINT POR EL USUARIO A TRAVES DE UNA INTERFAZ

Dependencies:   mbed TextLCD Keypad DS1307 DHT11

Revision:
1:2377110920ce
Parent:
0:fff27b50ca98
Child:
2:0edb81388d5f
--- a/main.cpp	Sat Feb 01 20:01:54 2020 +0000
+++ b/main.cpp	Fri Feb 07 00:09:10 2020 +0000
@@ -1,12 +1,133 @@
-#include "mbed.h"
+////////////////////////////////// LIBRERIAS DEL PROYECTO/////////////////////////////////////////////
+
+#include "mbed.h"// libreria principal mbed
+#include "TextLCD.h"// libreria lcd
+#include "Keypad.h"// libreria Keypad
+#include "DHT11.h"// libreria sensor de humedad y temperatura
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////  CONFIGURACION DE  GPIO ////////////////////////////////////////////
+
+DigitalOut myled(PD_13);// configura salida digital y asigna a myled al pin d13
+TextLCD lcd(PB_7,PB_8,PB_15,PB_14,PB_13,PB_12,TextLCD:: LCD16x2);// configuracion de conexion de lcd
+Keypad  teclado(PC_8,PC_11,PC_7,PC_6,PB_0,PD_6,PD_7,PB_3);
+DHT11 dato(PC_5);
+/////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////     DECLARACION DE VARIABLES GLOBALES ////////////////////////////////////
 
-DigitalOut myled(LED1);
+int z;
+char key;
+int released;
+int s; // variable usada en rutina sensor 
+int temp;
+int hum;
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////// SUB-RUTina keypad/////////////////////////////////////////////
+     void keypad1(){
+       
+        key=teclado.ReadKey();
+        if(key== '\0')
+          released=1;
+        if((key!= '\0')&& (released==1)){
+            //lcd.printf("%c\n",key);
+            released=0;
+            }               
+    }
+          
+/////////////////////////////////////////////////////////////////////////////////////////////////////// 
+////////////////////////////////////////// SUB-RUTina SENSORE DHT11/////////////////////////////////////////////
+     void sensor(){
+        s=dato.readData();
+        if (s != DHT11::OK){
+            lcd.printf("ERROR SENSOR\r\n");
+        }    
+        else{
+           lcd.cls();
+           return;
+         
+            
+        }
+       
+        
+    }
+          
+/////////////////////////////////////////////////////////////////////////////////////////////////////// 
+////////////////////////////////////////// SUB-RUTINA MENU/////////////////////////////////////////////
+ void menu(){
+      while(1){
+          
+        keypad1();
+        if(key=='D' ){
+        lcd.cls();
+        return;
+        }
+        //void inicial();
+         
+        lcd.locate(0,0);// LOCALIZA INICIO DE TEXTO EN COLUMNAS  Y FILAS
+        lcd.printf( "      Menu  " );
+        lcd.locate(0,1);
+        lcd.printf( "  Configuracion " );
+        //wait(3);
+        //lcd.cls();//borra caracters
+             
+       }           
+          
+    }
+          
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////// SUB-RUTINA INICIAL ///////////////////////////////////////////////
+ void inicial(){
+   while(1){
+        //lcd.cls();
+        keypad1();
+        
+       if ( key=='A'){
+         lcd.cls();                        //borra caracters
+         menu();
+         }
+         
+       sensor();
+      
+           
+       //temp:dato.readTemperature();
+       //hum: dato.readHumidity();   
+       lcd.locate(0,0);                   // LOCALIZA INICIO DE TEXTO EN COLUMNAS  Y FILAS
+       lcd.printf( "T :%d C  SP: 40",dato.readTemperature());
+       lcd.locate(0,1);
+       lcd.printf( "Hr:%d hr SP: 75 ",dato.readHumidity());
+       //wait(0.1);
+            
+        }                                 // cierra while
+}                                        //  cierra rutina
 
+/////////////////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////// RUTINA  PRINCIPAL //////////////////////////////////////////////
 int main() {
+    z=0;
+    released=1;
+    //lcd.printf("helllooo people");// escribe caracteres en el lcd 
+    
     while(1) {
-        myled = 1;
-        wait(0.2);
-        myled = 0;
-        wait(0.2);
+   //  lcd.cls();//borra caracters
+      lcd.locate(0,0);// LOCALIZA INICIO DE TEXTO EN COLUMNAS  Y FILAS
+      lcd.printf( "    Proyecto " );
+      lcd.locate(0,1);
+      lcd.printf( "    Tutoria " );
+       wait(3);
+      lcd.cls();//borra caracters
+      lcd.locate(0,0);
+      lcd.printf( "    Sistemas " );
+      lcd.locate(0,1);
+      lcd.printf( "Microprocesados " );
+      wait(3);
+      lcd.cls();//borra caracters
+      inicial();
+     
+      }      
+        
     }
-}
+     
+///////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
+