Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BME280 BMP280 TextLCD mbed
Revision 0:7023c3f98f36, committed 2018-01-06
- Comitter:
- ckalintra
- Date:
- Sat Jan 06 17:28:05 2018 +0000
- Commit message:
- code;
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/BME280.lib Sat Jan 06 17:28:05 2018 +0000 @@ -0,0 +1,1 @@ +http://os.mbed.com/users/MACRUM/code/BME280/#c1f1647004c4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/BMP280.lib Sat Jan 06 17:28:05 2018 +0000 @@ -0,0 +1,1 @@ +http://os.mbed.com/users/charly/code/BMP280/#d22ecbef9b90
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TextLCD.lib Sat Jan 06 17:28:05 2018 +0000 @@ -0,0 +1,1 @@ +http://os.mbed.com/users/simon/code/TextLCD/#308d188a2d3a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/data.h Sat Jan 06 17:28:05 2018 +0000
@@ -0,0 +1,166 @@
+#include "mbed.h"
+#include "BMP280.h"
+#include "date.h"
+float tempf;
+float pressuref;
+float lvl;
+float data_temp [120], data_press[120], data_light[120];
+BMP280 bmp(D14,D15,0x76);
+
+AnalogIn LDR(A0);
+int counterw = 0, full = 0, day, month, year, leap;
+
+void time_rule()
+{
+ if (ss == 10)
+ {
+ ss = 0;
+ s++;
+ }
+
+ if (s == 6 && ss == 0)
+ {
+ ss = 1;
+ s = 0;
+ mmi++;
+ }
+
+ if (mmi == 10)
+ {
+ mmi = 0;
+ mi++;
+ }
+
+ if (mi == 6 && mmi == 0)
+ {
+ mi = 0;
+ mmi = 1;
+ hh++;
+ }
+
+ if (hh == 10)
+ {
+ hh = 0;
+ h++;
+ }
+
+ if(h == 2 && hh == 4)
+ {
+ h = 0;
+ hh = 0;
+ dd++;
+ }
+}
+
+
+void date_rule()
+{
+ if (mm == 10)
+ {
+ mm = 0;
+ m++;
+ }
+
+ if (m == 1 && mm == 3)
+ {
+ m = 0;
+ mm = 1;
+ yyyy++;
+ }
+
+ if (yyyy== 10)
+ {
+ yyyy = 0;
+ yyy++;
+ }
+ if (yyy == 10)
+ {
+ yyy = 0;
+ yy++;
+ }
+ if (yy == 10)
+ {
+ yy = 0;
+ y++;
+ }
+
+}
+
+
+void day_check()
+{
+ day = 10*d + dd;
+ month = mi*10+mmi;
+ year = y*1000+yy*100+yyy*10+yyyy;
+ if(month == 1||3||5||7||8||10||12)
+ {
+ if (day == 32)
+ {
+ mm++;
+ d = 0;
+ dd = 1;
+ }
+ }
+
+ else if(month == 4||6||9||11 )
+ {
+ if (day == 31)
+ {
+ mm++;
+ d = 0;
+ dd = 1;
+ }
+ }
+
+ else if(month == 2)
+ {
+ leap = year % 4;
+ if(leap == 0)
+ {
+ if (day == 30)
+ {
+ mm++;
+ d = 0;
+ dd = 1;
+ }
+ }
+ else
+ {
+ if (day == 29)
+ {
+ mm++;
+ d = 0;
+ dd = 1;
+ }
+ }
+ }
+ date_rule();
+}
+
+
+
+
+void getdata()
+{
+ tempf = bmp.getTemperature();
+ //tempf = tempf*-1;
+ pressuref = bmp.getPressure();
+ lvl = LDR;
+}
+
+void store()
+{
+ data_temp[counterw] = tempf;
+ data_press[counterw] = pressuref;
+ data_light[counterw] = lvl;
+
+ if (counterw == 120)
+ {
+ counterw = 0;
+ full = 1;
+ }
+ counterw++;
+}
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/date.h Sat Jan 06 17:28:05 2018 +0000
@@ -0,0 +1,334 @@
+#include "mbed.h"
+DigitalIn sw1(PE_12);
+DigitalIn sw2(PE_14);
+int d = 0,dd = 0,m = 0,mm = 0,y = 0,yy = 0,yyy = 0,yyyy = 0, pointer = 0, h = 0, hh = 0, mi = 0, mmi = 0, s = 0, ss = 0;
+TextLCD lcd(D9,D8,D7,D6,D4,D2);
+
+
+
+
+void display_date_time()
+{
+ lcd.locate(0,0);
+ lcd.printf("%i", d);
+ lcd.locate(1,0);
+ lcd.printf("%i", dd);
+ lcd.locate(3,0);
+ lcd.printf("%i", m);
+ lcd.locate(4,0);
+ lcd.printf("%i", mm);
+ lcd.locate(6,0);
+ lcd.printf("%i", y);
+ lcd.locate(7,0);
+ lcd.printf("%i", yy);
+ lcd.locate(8,0);
+ lcd.printf("%i", yyy);
+ lcd.locate(9,0);
+ lcd.printf("%i", yyyy);
+ lcd.locate(0,1);
+ lcd.printf("%i", h);
+ lcd.locate(1,1);
+ lcd.printf("%i", hh);
+ lcd.locate(3,1);
+ lcd.printf("%i", mi);
+ lcd.locate(4,1);
+ lcd.printf("%i", mmi);
+ lcd.locate(6,1);
+ lcd.printf("%i", s);
+ lcd.locate(7,1);
+ lcd.printf("%i", ss);
+}
+
+void display_time()
+{
+ lcd.locate(0,1);
+ lcd.printf("%i", h);
+ lcd.locate(1,1);
+ lcd.printf("%i", hh);
+ lcd.locate(2,1);
+ lcd.printf(":");
+ lcd.locate(3,1);
+ lcd.printf("%i", mi);
+ lcd.locate(4,1);
+ lcd.printf("%i", mmi);
+ lcd.locate(5,1);
+ lcd.printf(":");
+ lcd.locate(6,1);
+ lcd.printf("%i", s);
+ lcd.locate(7,1);
+ lcd.printf("%i", ss);
+}
+
+void display_dates()
+{
+ lcd.locate(0,0);
+ lcd.printf("%i", d);
+ lcd.locate(1,0);
+ lcd.printf("%i", dd);
+ lcd.locate(2,0);
+ lcd.printf(":");
+ lcd.locate(3,0);
+ lcd.printf("%i", m);
+ lcd.locate(4,0);
+ lcd.printf("%i", mm);
+ lcd.locate(5,0);
+ lcd.printf(":");
+ lcd.locate(6,0);
+ lcd.printf("%i", y);
+ lcd.locate(7,0);
+ lcd.printf("%i", yy);
+ lcd.locate(8,0);
+ lcd.printf("%i", yyy);
+ lcd.locate(9,0);
+ lcd.printf("%i", yyyy);
+}
+
+
+void update_date_and_time()
+{
+ if (pointer == 0)
+ {
+ lcd.locate(0,0);
+ lcd.printf("%i", d);
+ }
+
+ if (pointer == 1)
+ {
+ lcd.locate(1,0);
+ lcd.printf("%i", dd);
+ }
+
+ if (pointer == 2)
+ {
+ lcd.locate(3,0);
+ lcd.printf("%i", m);
+ }
+
+ if (pointer == 3)
+ {
+ lcd.locate(4,0);
+ lcd.printf("%i", mm);
+ }
+
+ if (pointer == 4)
+ {
+ lcd.locate(6,0);
+ lcd.printf("%i", y);
+ }
+
+ if (pointer == 5)
+ {
+ lcd.locate(7,0);
+ lcd.printf("%i", yy);
+ }
+ if (pointer == 6)
+ {
+ lcd.locate(8,0);
+ lcd.printf("%i", yyy);
+ }
+
+ if (pointer == 7)
+ {
+ lcd.locate(9,0);
+ lcd.printf("%i", yyyy);
+ }
+ if (pointer == 8)
+ {
+ lcd.locate(0,1);
+ lcd.printf("%i", h);
+ }
+ if (pointer == 9)
+ {
+ lcd.locate(1,1);
+ lcd.printf("%i", hh);
+ }
+
+ if (pointer == 10)
+ {
+ lcd.locate(3,1);
+ lcd.printf("%i", mi);
+ }
+ if (pointer == 11)
+ {
+ lcd.locate(4,1);
+ lcd.printf("%i", mmi);
+ }
+ if (pointer == 12)
+ {
+ lcd.locate(6,1);
+ lcd.printf("%i", s);
+ }
+
+ if (pointer == 13)
+ {
+ lcd.locate(7,1);
+ lcd.printf("%i", ss);
+ }
+}
+
+void select_date()
+{
+ if (sw2 == 1)
+ {
+ wait (1);
+ pointer++;
+ }
+ else if(pointer != 14)
+ {
+ switch (pointer)
+ {
+ case 0:
+ if (sw1 == 1)
+ {
+ wait (1);
+ d++;
+ if (d == 4)
+ {
+ d = 0;
+ }
+ }
+ case 1:
+ if (sw1 == 1)
+ {
+ wait (1);
+ dd++;
+ if (dd == 10)
+ {
+ dd = 0;
+ }
+ }
+ case 2:
+ if (sw1 == 1)
+ {
+ wait (1);
+ m++;
+ if (m == 2)
+ {
+ m = 0;
+ }
+ }
+ case 3:
+ if (sw1 == 1)
+ {
+ wait (1);
+ mm++;
+ if (mm == 10)
+ {
+ mm = 0;
+ }
+ }
+ case 4:
+ if (sw1 == 1)
+ {
+ wait (1);
+ y++;
+ if (y == 3)
+ {
+ y = 0;
+ }
+ }
+ case 5:
+ if (sw1 == 1)
+ {
+ wait (1);
+ yy++;
+ if (yy == 10)
+ {
+ yy = 0;
+ }
+ }
+ case 6:
+ if (sw1 == 1)
+ {
+ wait (1);
+ yyy++;
+ if (yyy == 10)
+ {
+ yyy = 0;
+ }
+ }
+ case 7:
+ if (sw1 == 1)
+ {
+ wait (1);
+ yyyy++;
+ if (yyyy == 10)
+ {
+ yyyy = 0;
+ }
+ }
+ case 8:
+ if (sw1 == 1)
+ {
+ wait (1);
+ h++;
+ if (h== 3)
+ {
+ h = 0;
+ }
+ }
+ case 9:
+ if (sw1 == 1)
+ {
+ wait (1);
+ hh++;
+ if (hh == 10)
+ {
+ hh = 0;
+ }
+ }
+ case 10:
+ if (sw1 == 1)
+ {
+ wait (1);
+ mi++;
+ if (mi == 6)
+ {
+ mi = 0;
+ }
+ }
+ case 11:
+ if (sw1 == 1)
+ {
+ wait (1);
+ mmi++;
+ if (mmi == 10)
+ {
+ mmi = 0;
+ }
+ }
+ case 12:
+ if (sw1 == 1)
+ {
+ wait (1);
+ s++;
+ if (s == 6)
+ {
+ s = 0;
+ }
+ }
+ case 13:
+ if (sw1 == 1)
+ {
+ wait (1);
+ ss++;
+ if (ss == 10)
+ {
+ ss = 0;
+ }
+ }
+
+
+
+ }
+ }
+update_date_and_time();
+}
+
+
+
+
+
+
+
+
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Sat Jan 06 17:28:05 2018 +0000
@@ -0,0 +1,85 @@
+#include "mbed.h"
+#include "TextLCD.h"
+#include "BMP280.h"
+#include "putty.h"
+//DigitalOut myled(LED1);
+int dislcd = 0;
+float T = 15;
+Ticker display;
+Ticker second_pass;
+InterruptIn button(USER_BUTTON);
+
+//NVIC_SetPriority(display, 0);
+//NVIC_SetPriority(second_pass, 1);
+//NVIC_SetPriority(button, 1);
+void second_tick()
+{
+ ss++;
+ time_rule();
+ day_check();
+ lcd.cls();
+ if (dislcd == 1)
+ {
+ lcd.locate(10,0);
+ lcd.printf("l:%1.2f", lvl);
+ lcd.locate(0,0);
+ lcd.printf("p:%3.1f", pressuref);
+ lcd.locate(10,1);
+ lcd.printf("t:%3.1f", tempf);
+ display_time();
+ }
+
+ else if (dislcd == 0)
+ {
+ display_dates();
+ display_time();
+ }
+}
+
+void lcddisp()
+{
+ display_time();
+ getdata();
+ store();
+}
+
+void check_display()
+{
+ if(dislcd == 0)
+ {dislcd = 1;}
+ else
+ {dislcd = 0;}
+}
+
+
+int main()
+{
+ lcd.cls();
+ //display_date_time();
+// while (pointer != 14)
+// {
+// select_date();
+// }
+ bmp.initialize();
+ pc.printf("putty ready\n\r");
+ display.attach(&lcddisp, T);
+ second_pass.attach(&second_tick, 1.0);
+ button.rise(&check_display);
+
+
+ while(1)
+ {
+ check_display();
+ putty_write();
+ if (interrupt == 1);
+ {
+ T = t;
+ display.attach(&lcddisp, T);
+ interrupt =0;
+ }
+ check_display();
+ }
+}
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Sat Jan 06 17:28:05 2018 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/7130f322cb7e \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/putty.h Sat Jan 06 17:28:05 2018 +0000
@@ -0,0 +1,270 @@
+#include "mbed.h"
+#include "data.h"
+Serial pc(USBTX, USBRX);
+char user_command[40] = {0};
+char user_command2[40] = {0};
+int n, datan = 0, datac = 0, counterd = 0, dates, times, interrupt = 0;
+float t;
+
+
+void readall()
+{
+ datan = counterw;
+ pc.printf("readall selected\n\r");
+ if (full == 1)
+ {
+ datac = 120;
+ }
+ else
+ {
+ datac = counterw;
+ }
+ pc.printf("printting %i datas\n\r", datac);
+ while (counterd < datac)
+ {
+ pc.printf("light: %2.4f, temp: %3.4f, press: %3.4f\n\r", data_light[datan], data_temp [datan], data_press[datan]);
+ if (datan == 0)
+ {
+ datan = 121;
+ }
+ datan--;
+ counterd++;
+ }
+ counterd = 0;
+}
+
+void readn()
+{
+
+ counterd = 0;
+ n = atoi(user_command2);
+ pc.printf("read %i datas\n\r",n);
+ if (n > counterw)
+ {
+ pc.printf("we only have %i datas \n\r", counterw);
+ }
+ else
+ {
+ while (counterd < n)
+ {
+ pc.printf("light: %2.4f, temp: %3.4f, press: %3.4f\n\r",data_light[datan], data_temp [datan], data_press[datan]);
+ if (datan == 0)
+ {
+ datan = 121;
+ }
+ datan--;
+ counterd++;
+ }
+ }
+}
+
+void deleteall()
+{
+ pc.printf("deleted %i datas \n\r", counterw);
+ counterw = 0;
+ int counter = 0;
+ while (counter < 121)
+ {
+ data_light[counter] = 0;
+ data_temp [counter] = 0;
+ data_press[counter] = 0;
+ counter ++;
+ full = 0;
+ }
+}
+
+void deleten()
+{
+ datan = counterw;
+ counterd = 0;
+ n = atoi(user_command2);
+ if (n > counterw && full == 0)
+ {
+ pc.printf("we only have %i datas \n\r", counterw);
+ }
+ else if(full == 1 && n> 120)
+ {
+ pc.printf("we only have 120 datas \n\r");
+ }
+ else if(full == 0 && n < counterw)
+ {
+ pc.printf("deleted %i datas \n\r", n);
+ counterw = counterw-n;
+ while (counterd < n)
+ {
+ data_light[datan] = 0;
+ data_temp [datan] = 0;
+ data_press[datan] = 0;
+ counterd ++;
+ datan--;
+ }
+ }
+ else if(full == 1 && n < 120)
+ {
+ pc.printf("deleted %i datas \n\r", n);
+ counterw = counterw-n;
+ while (counterd < 120)
+ {
+ data_light[datan] = 0;
+ data_temp [datan] = 0;
+ data_press[datan] = 0;
+ counterd ++;
+ datan--;
+ }
+ }
+}
+//void fill(char c[20], char c2[20])
+//{
+// int counterino = 0;
+// while (counterino <21)
+// {
+// user_command[counterino] = c[counterino];
+// user_command2[counterino] = c2[counterino];
+// counterino++;
+// }
+
+//}
+void clear()
+{
+ int counter = 0;
+ while (counter < 40)
+ {
+ user_command[counter] = 0;
+ counter ++;
+ }
+}
+
+
+void clear2()
+{
+ int counter = 0;
+ while (counter < 40)
+ {
+ user_command2[counter] = 0;
+ counter ++;
+ }
+}
+
+void selection()
+{
+ counterd = 0;
+ datan = counterw-1;
+ if (user_command[0] == 'R'&& user_command[1] == 'E'&& user_command[2] == 'A'&& user_command[3] == 'D')
+ {
+ if (user_command2[0] == 'A'&& user_command2[1]== 'L'&& user_command2[2]== 'L')
+ {
+ readall();
+ }
+
+ else
+ {
+ readn();
+ }
+ }
+
+ else if (user_command[0] == 'D'&& user_command[1] == 'E'&& user_command[2] == 'L'&& user_command[3] == 'E' && user_command[4] == 'T' && user_command[5] == 'E')
+ {
+ if (user_command2[0] == 'A'&& user_command2[1]== 'L'&& user_command2[2]== 'L')
+ {
+ pc.printf("deleteall selected\n\r");
+ deleteall();
+ }
+
+ else
+ {
+ n = atoi(user_command2);
+ pc.printf("delete %i\n\r",n);
+ deleten();
+ }
+ }
+
+ else if (user_command[0] == 'S'&& user_command[1] == 'E'&& user_command[2] == 'T'&& user_command[3] == 'D' && user_command[4] == 'A' && user_command[5] == 'T' && user_command[6] == 'E')
+ {
+ dates = atoi(user_command2);
+ yyyy = dates%10;
+ dates /= 10;
+ yyy = dates%10;
+ dates /= 10;
+ yy = dates%10;
+ dates /= 10;
+ y = dates%10;
+ dates /= 10;
+ mm = dates%10;
+ dates /= 10;
+ m = dates%10;
+ dates /= 10;
+ dd = dates%10;
+ dates /= 10;
+ d = dates%10;
+ pc.printf("you set the date to %i%i/%i%i/%i%i%i%i\n\r", d,dd,m,mm,y,yy,yyy,yyyy);
+ }
+ else if (user_command[0] == 'S'&& user_command[1] == 'E'&& user_command[2] == 'T'&& user_command[3] == 'T' && user_command[4] == 'I' && user_command[5] == 'M' && user_command[6] == 'E')
+ {
+ times = atoi(user_command2);
+ ss = times%10;
+ times /= 10;
+ s = times%10;
+ times /= 10;
+ mmi = times%10;
+ times /= 10;
+ mi = times%10;
+ times /= 10;
+ hh = times%10;
+ times /= 10;
+ h = times%10;
+ pc.printf("you set the time to %i%i:%i%i:%i%i\n\r", h,hh,mi,mmi,s,ss);
+ }
+ else if (user_command[0] == 'S'&& user_command[1] == 'E'&& user_command[2] == 'T'&& user_command[3] == 'T')
+ {
+ t = atof(user_command2);
+ pc.printf("you set the period to %2.2f", t);
+ interrupt = 1;
+ }
+}
+//int main()
+//{
+// pc.printf("putty ready\n\r");
+// while(1)
+// {
+// clear();
+// clear2();
+// while (user_command[0] == 0)
+// {
+// pc.scanf("%s",user_command);
+// pc.scanf("%s",user_command2);
+// pc.printf("you typed: %s %s\n\r",user_command,user_command2);
+// }
+//
+// selection();
+// }
+//}
+
+
+void putty_write ()
+{
+ int count = 0;
+ int wcount = 0;
+ while (user_command[wcount]!= ' ')
+ {
+ user_command[count] = pc.getc();
+ pc.putc(user_command[count]);
+ count++;
+ wcount = count -1;
+ }
+ int count2 = 0;
+ int wcount2 = 0;
+ while(user_command2[wcount2]!= '\r')
+ {
+ user_command2[count2] = pc.getc();
+ pc.putc(user_command2[count2]);
+ count2++;
+ wcount2 = count2 -1;
+ }
+
+
+ pc.printf("you typed: %s %s\n\r",user_command,user_command2);
+ selection();
+ clear();
+ clear2();
+
+}
\ No newline at end of file