Temperature, Voltage & RTC via SMS

Dependencies:   DS1307 OLED160G1 mbed uOLED

Fork of Astromed by Renato Loureiro

Files at this revision

API Documentation at this revision

Comitter:
Renato
Date:
Fri Nov 23 14:24:58 2012 +0000
Parent:
3:603f315daf7b
Commit message:
Astromed with Temperature, Voltage & RTC via SMS

Changed in this revision

DS1307.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 603f315daf7b -r d352ae75fe0b DS1307.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DS1307.lib	Fri Nov 23 14:24:58 2012 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/harrypowers/code/DS1307/#c3e4da8feb10
diff -r 603f315daf7b -r d352ae75fe0b main.cpp
--- 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);
     }
 }