#include #include #include #include // HC - 06 ARDUINO // VCC - 5V // GND - GND // TXD - 10 // RXD - 11 SoftwareSerial miBT(10,11); // Pines del chip I2C al LCD: // (addr,en,rw,rs,d4,d5,d6,d7,BackLight, BLstatus) LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address [0x27 o 0x3F] RTC_DS3231 reloj; bool alarma = true; DateTime fecha; void setup() { Serial.begin(9600); lcd.begin(20,4); miBT.begin(9600); if(!reloj.begin()) { Serial.println("Modulo RTC no encontrado!!"); while(1); // 1 = true - blucle infito si no hay modulo } //reloj.adjust(DateTime(__DATE__, __TIME__)); // Descomentar para ajustar fecha y hora } void loop() { fecha = reloj.now(); getFecha(); lcd.clear(); lcd.home(); mostrarHora(); comBT(); delay(1000); } /* if(fecha.hour() == 13 && fecha.minute() == 00) { if(alarma == true) { Serial.println("Alarma 1 PM"); alarma = false; } } getFecha(); delay(1000); if(fecha.hour() == 12 && fecha.minute() ==30) { alarma = true; } } */ //En caso de ser necesario mostrar hora, este codigo aƱade un 0 a los valores menores a 10 String getHora(char var) { switch (var) { case 'h': if(fecha.hour() < 10) { return ('0'+(String)fecha.hour()); break; } else { return (String)fecha.hour();break; } case 'm': if(fecha.minute() <10) { return ('0'+(String)fecha.minute()); break; } else { return (String)fecha.minute();break; } case 's': if(fecha.second() <10) { return ('0'+(String)fecha.second()); break; } else { return (String)fecha.second();break; } } } //Hora en LCD void mostrarHora() { lcd.print("La hora es: "); lcd.print(getHora('h')); lcd.print(":"); lcd.print(getHora('m')); lcd.print(":"); lcd.print(getHora('s')); } // Enviar hora y fecha por puerto serie void getFecha() { Serial.print(fecha.day()); Serial.print("/"); Serial.print(fecha.month()); Serial.print("/"); Serial.print(fecha.year()); Serial.print(" "); Serial.print(fecha.hour()); Serial.print(":"); Serial.print(fecha.minute()); Serial.print(":"); Serial.println(fecha.second()); } void comBT() { if(miBT.available()) { lcd.setCursor(0, 1); while(miBT.available() > 0) { lcd.print((char)miBT.read()); //lee BT y envia a Arduino } delay(1000); } if(Serial.available()) { while(Serial.available() > 0) { miBT.write(Serial.read()); // lee Arduino y envia a BT } } }