Temperature, Voltage & RTC via SMS

Dependencies:   DS1307 OLED160G1 mbed uOLED

Fork of Astromed by Renato Loureiro

Revision:
4:d352ae75fe0b
Parent:
3:603f315daf7b
--- a/main.cpp	Tue Nov 06 10:19:38 2012 +0000
+++ b/main.cpp	Fri Nov 23 14:24:58 2012 +0000
@@ -3,10 +3,10 @@
 #include "DS18B20.h"
 #include "OLED160G1.h"
 #include "uOLED.h"
-
+#include "ds1307.h"
 
 DigitalInOut sensor(p23);     //DS18b20 connected on pin 23
-
+DS1307 my1307(p9,p10);        // start DS1307 class and give it pins for connections of the DS1307 device
 OLED160G1 oled(p28, p27, p8);
 AnalogIn input(p20);          //Voltage meter
 
@@ -24,23 +24,53 @@
 unsigned char CtrlZ = 0x1A;
 float volt=0;
 
+
+int sec = 0;       // Values to set time with
+int min = 32;
+int hours = 13;
+int day = 6;
+int date = 23;
+int month = 11;
+int year = 12;
+int loop = 10;     // Non zero value for the while loop
+
+ void test_rw(int test) {
+     if (test == 0) pc.printf("Last R/W operation passed!\n\r");
+     else pc.printf("Last R/W operation failed!\n\r");
+ }
+
+
 int main() {
 
 
 GSM.baud(9600);
 GSM.format(8,Serial::None,1);
 
+test_rw(my1307.settime( sec, min, hours, day, date, month, year));    // Set the time on the DS1307
+     
+     
     oled.init();
     oled.eraseScreen();
     oled.setTextBackgroundType(OLED_SET_TEXT_OPAQUE);
     oled.setFontSize(0);
-    
+    wait(.3);
     sensor.mode(PullUp);
     
     ROM_Code_t ROM_Code = ReadROM();
     
+    test_rw(my1307.gettime( &sec, &min, &hours, &day, &date, &month, &year));  // Read the time and display on screen
+      pc.printf("seconds read are %.2D \n\r",sec);
+      pc.printf("min read are %.2D \n\r",min);
+      pc.printf("hour read are %.2D \n\r",hours);
+      pc.printf("day read are %.2D \n\r",day);
+      pc.printf("date read are %.2D \n\r",date);
+      pc.printf("month read are %.2D \n\r",month);
+      pc.printf("year read are %.2D \n\r",year);
+    
     oled.locate(0,1);
+    oled.eraseScreen();
     oled.printf("Temp Actual..\n");
+    pc.printf("Temp Actual..\n");
     
     while (1) {
     volt = input.read()*3.3;
@@ -48,21 +78,67 @@
        oled.locate(2,3);
        oled.setFontSize(2);
         oled.printf("%.2f C",temp);
-        wait(600);
+        wait(3600);
 
 
 GSM.printf("AT+CMGF=1\r\n");
+pc.printf("AT+CMGF=1\r\n");
 wait(1);
 
 GSM.printf("AT+CMGS=937831063\r\n");
+pc.printf("AT+CMGS=937831063\r\n");
 wait(1);
 
 GSM.printf("%.2f C\r\n",temp);
 GSM.printf("%.2f V\r\n", volt);
-GSM.printf("%c",CtrlZ);
+//GSM.printf("%c",CtrlZ);
+pc.printf("%.2f C\r\n",temp);
+pc.printf("%.2f V\r\n", volt);
 
-
-
+test_rw(my1307.gettime( &sec, &min, &hours, &day, &date, &month, &year));
+        oled.locate(0,1);            // Print and refresh data on line 2 of the oled display     
+        oled.setFontSize(0);
+        oled.printf("\r%.2D",hours);
+        GSM.printf("%.2D",hours);
+        oled.printf(":%.2D",min);
+        GSM.printf(":%.2D",min);
+        oled.printf(":%.2D\r\n",sec);
+        GSM.printf(":%.2D",sec);
+        oled.printf("   %.2D",date);
+        GSM.printf("   %.2D",date);
+        oled.printf("/%.2D",month);
+        GSM.printf("/%.2D",month);
+        oled.printf("/%.2D\r\n",year);
+        GSM.printf("/%.2D",year);
+        if (day == 1){
+            oled.printf("   Domingo \n");
+            GSM.printf("   Domingo \n");
+            }
+        if (day == 2){
+            oled.printf("   Segunda \n"); 
+            GSM.printf("   Segunda-Feira \n");
+            }  
+        if (day == 3){
+            oled.printf("   Terca \n");
+            GSM.printf("   Terca-Feira \n");
+            }
+        if (day == 4){
+            oled.printf("   Quarta \n");
+            GSM.printf("   Quarta-Feira \n");
+            }
+        if (day == 5){
+            oled.printf("   Quinta \n");
+            GSM.printf("   Quinta-Feira \n");
+            }
+        if (day == 6){
+            oled.printf("   Sexta \n");
+            GSM.printf("   Sexta-Feira \n");
+            }
+        if (day == 7){
+            oled.printf("   Sabado \n");
+            GSM.printf("   Sabado \n");
+            }
+GSM.printf("%c",CtrlZ);
     }
 }