uwizeyimana abdulkarim / Mbed 2 deprecated mobileproject

Dependencies:   mbed

Committer:
uwizeyimana
Date:
Sun Jul 11 06:59:01 2021 +0000
Revision:
2:b990d41df49e
Parent:
1:2a3b76b2e4e5
Child:
3:6076b262dc5e
updated

Who changed what in which revision?

UserRevisionLine numberNew contents of line
uwizeyimana 0:6e0a4dac6596 1 /*mobile project
uwizeyimana 0:6e0a4dac6596 2 GROUP MEMBERS:
uwizeyimana 0:6e0a4dac6596 3 1)UWIZEYIMANA ABDULKARIM REG NBER:220020691
uwizeyimana 0:6e0a4dac6596 4 2)AMOUR SALIM MOHAMMED REG NBER: 221027397
uwizeyimana 0:6e0a4dac6596 5 3)SHAAME M. BAKAR REG NBER: 220020578
uwizeyimana 0:6e0a4dac6596 6 4)ANGELIQUE*/
uwizeyimana 2:b990d41df49e 7
uwizeyimana 0:6e0a4dac6596 8 #include "mbed.h"
uwizeyimana 0:6e0a4dac6596 9 #include "C12832.h"
uwizeyimana 0:6e0a4dac6596 10 #include "Sht31.h"
uwizeyimana 0:6e0a4dac6596 11 #include <string>
uwizeyimana 1:2a3b76b2e4e5 12 #include "time.h"
uwizeyimana 1:2a3b76b2e4e5 13 time_t startTime;
uwizeyimana 1:2a3b76b2e4e5 14 time_t stopTime;
uwizeyimana 1:2a3b76b2e4e5 15 time_t startReading;
uwizeyimana 1:2a3b76b2e4e5 16 time_t stopReading;
uwizeyimana 1:2a3b76b2e4e5 17 int readingDuration;
uwizeyimana 0:6e0a4dac6596 18 Serial device (p9,p10);
uwizeyimana 0:6e0a4dac6596 19 C12832 lcd(SPI_MOSI, SPI_SCK, SPI_MISO, p8, p11);
uwizeyimana 0:6e0a4dac6596 20 Sht31 theo(I2C_SDA, I2C_SCL);
uwizeyimana 0:6e0a4dac6596 21 DigitalOut led(p13);
uwizeyimana 0:6e0a4dac6596 22 DigitalOut bed(p12);
uwizeyimana 0:6e0a4dac6596 23 DigitalOut wed(p14);
uwizeyimana 0:6e0a4dac6596 24 InterruptIn btn(p15);
uwizeyimana 0:6e0a4dac6596 25 InterruptIn swt(p11);
uwizeyimana 1:2a3b76b2e4e5 26 Timeout t;
uwizeyimana 1:2a3b76b2e4e5 27 Ticker k;
uwizeyimana 1:2a3b76b2e4e5 28 Ticker topicTicker;
uwizeyimana 1:2a3b76b2e4e5 29 Ticker durationTime;
uwizeyimana 1:2a3b76b2e4e5 30 Ticker resetted;
uwizeyimana 1:2a3b76b2e4e5 31 Ticker backagain;
uwizeyimana 0:6e0a4dac6596 32 int direction=0;
uwizeyimana 1:2a3b76b2e4e5 33 int i=0;
uwizeyimana 1:2a3b76b2e4e5 34 int pushDuration;
uwizeyimana 0:6e0a4dac6596 35 int current=0;
uwizeyimana 1:2a3b76b2e4e5 36 int state=0;
uwizeyimana 2:b990d41df49e 37
uwizeyimana 0:6e0a4dac6596 38 string str1 = "Menu of the Day";
uwizeyimana 0:6e0a4dac6596 39 string str2 = "Rwanda Food Services Ltd";
uwizeyimana 0:6e0a4dac6596 40 string str3="Rwanda Food Services Ltd,click Btn to browseMenu";
uwizeyimana 0:6e0a4dac6596 41 string topics[]={"1.Out Side catering services",
uwizeyimana 0:6e0a4dac6596 42 "2.Restaurent Services","3.fast Food Services",
uwizeyimana 0:6e0a4dac6596 43 "4.Online ordering Food Services",
uwizeyimana 0:6e0a4dac6596 44 "5.Cook Training Services "
uwizeyimana 0:6e0a4dac6596 45 };
uwizeyimana 0:6e0a4dac6596 46 string content[]={"11.online bookings buffet package for 80+ guests with 10 percent off",
uwizeyimana 0:6e0a4dac6596 47 "22.Pilawo, biriyani, African food,western food","33.fried chicken with salad,fried fish with salad,Nyama choma",
uwizeyimana 0:6e0a4dac6596 48 "44.African food,westen food,fast food,pilawo,biriyani",
uwizeyimana 0:6e0a4dac6596 49 "55.bread,samosa cooking and smoothies preparation "
uwizeyimana 0:6e0a4dac6596 50 };
uwizeyimana 0:6e0a4dac6596 51 void display(string sms){
uwizeyimana 0:6e0a4dac6596 52 lcd.cls(); // change dane here
uwizeyimana 0:6e0a4dac6596 53 lcd.locate(0,0);
uwizeyimana 0:6e0a4dac6596 54 lcd.printf(sms.c_str());
uwizeyimana 0:6e0a4dac6596 55 }
uwizeyimana 2:b990d41df49e 56
uwizeyimana 1:2a3b76b2e4e5 57 void welcomeMsg(){
uwizeyimana 1:2a3b76b2e4e5 58 display(str2);
uwizeyimana 0:6e0a4dac6596 59 }
uwizeyimana 2:b990d41df49e 60
uwizeyimana 1:2a3b76b2e4e5 61 void displayState1(){
uwizeyimana 0:6e0a4dac6596 62 float temp = theo.readTemperature();
uwizeyimana 0:6e0a4dac6596 63 time_t seconds = time(NULL);
uwizeyimana 0:6e0a4dac6596 64 char buffer[32];
uwizeyimana 0:6e0a4dac6596 65 strftime(buffer, 32, "%I:%M %p\n", localtime(&seconds));
uwizeyimana 0:6e0a4dac6596 66 lcd.locate(5, 20); // get cursor to position x=3px and y=5px
uwizeyimana 0:6e0a4dac6596 67 lcd.cls();
uwizeyimana 0:6e0a4dac6596 68 lcd.set_auto_up(0);
uwizeyimana 1:2a3b76b2e4e5 69 lcd.locate(5, 1);
uwizeyimana 0:6e0a4dac6596 70 lcd.printf("Local Time: %s",buffer);
uwizeyimana 1:2a3b76b2e4e5 71 lcd.locate(5, 9);
uwizeyimana 0:6e0a4dac6596 72 lcd.printf("Temperature: %.2f C", temp);
uwizeyimana 0:6e0a4dac6596 73 }
uwizeyimana 2:b990d41df49e 74
uwizeyimana 0:6e0a4dac6596 75
uwizeyimana 1:2a3b76b2e4e5 76 void whiteled()
uwizeyimana 0:6e0a4dac6596 77 {
uwizeyimana 1:2a3b76b2e4e5 78 wed=!wed;
uwizeyimana 1:2a3b76b2e4e5 79 }
uwizeyimana 1:2a3b76b2e4e5 80 void forwards(){
uwizeyimana 1:2a3b76b2e4e5 81 display(topics[i]);
uwizeyimana 1:2a3b76b2e4e5 82 current=i;
uwizeyimana 1:2a3b76b2e4e5 83 i+=1;
uwizeyimana 1:2a3b76b2e4e5 84 if(i>4){
uwizeyimana 1:2a3b76b2e4e5 85 i=0;
uwizeyimana 1:2a3b76b2e4e5 86 }
uwizeyimana 1:2a3b76b2e4e5 87 }
uwizeyimana 1:2a3b76b2e4e5 88 void backwards(){
uwizeyimana 1:2a3b76b2e4e5 89 display(topics[i]);
uwizeyimana 1:2a3b76b2e4e5 90 current=i;
uwizeyimana 1:2a3b76b2e4e5 91 i-=1;
uwizeyimana 1:2a3b76b2e4e5 92 if(i<0){
uwizeyimana 1:2a3b76b2e4e5 93 i=4;
uwizeyimana 0:6e0a4dac6596 94 }
uwizeyimana 0:6e0a4dac6596 95 }
uwizeyimana 1:2a3b76b2e4e5 96 void displayState2(){
uwizeyimana 2:b990d41df49e 97 printf("direction %d \n",direction);
uwizeyimana 1:2a3b76b2e4e5 98 if(direction==0){
uwizeyimana 1:2a3b76b2e4e5 99 i=0;
uwizeyimana 1:2a3b76b2e4e5 100 bed=1;
uwizeyimana 1:2a3b76b2e4e5 101 led=0;
uwizeyimana 1:2a3b76b2e4e5 102 topicTicker.attach(callback(&forwards),2.0f);
uwizeyimana 1:2a3b76b2e4e5 103 }
uwizeyimana 1:2a3b76b2e4e5 104 else{
uwizeyimana 1:2a3b76b2e4e5 105 i=4;
uwizeyimana 1:2a3b76b2e4e5 106 led=1;
uwizeyimana 1:2a3b76b2e4e5 107 bed=0;
uwizeyimana 1:2a3b76b2e4e5 108 topicTicker.attach(callback(& backwards),2.0f);
uwizeyimana 1:2a3b76b2e4e5 109 }
uwizeyimana 1:2a3b76b2e4e5 110 }
uwizeyimana 2:b990d41df49e 111
uwizeyimana 1:2a3b76b2e4e5 112 void fallBtn(){
uwizeyimana 1:2a3b76b2e4e5 113 state = 0;
uwizeyimana 2:b990d41df49e 114 durationTime.detach();
uwizeyimana 2:b990d41df49e 115
uwizeyimana 1:2a3b76b2e4e5 116 }
uwizeyimana 1:2a3b76b2e4e5 117 void mode1(){
uwizeyimana 1:2a3b76b2e4e5 118 k.attach(callback(& whiteled),1.0f);
uwizeyimana 1:2a3b76b2e4e5 119 displayState1();
uwizeyimana 1:2a3b76b2e4e5 120 t.attach(callback(&displayState2),3.0f);
uwizeyimana 1:2a3b76b2e4e5 121
uwizeyimana 1:2a3b76b2e4e5 122 }
uwizeyimana 1:2a3b76b2e4e5 123
uwizeyimana 1:2a3b76b2e4e5 124 void riseSwt(){
uwizeyimana 1:2a3b76b2e4e5 125 time(&startReading);
uwizeyimana 1:2a3b76b2e4e5 126 display(content[current]);
uwizeyimana 1:2a3b76b2e4e5 127 topicTicker.detach();
uwizeyimana 1:2a3b76b2e4e5 128
uwizeyimana 0:6e0a4dac6596 129
uwizeyimana 0:6e0a4dac6596 130 }
uwizeyimana 1:2a3b76b2e4e5 131 void fallSwt(){
uwizeyimana 1:2a3b76b2e4e5 132 topicTicker.detach();
uwizeyimana 1:2a3b76b2e4e5 133 time(&stopReading);
uwizeyimana 1:2a3b76b2e4e5 134 readingDuration=stopReading-startReading;
uwizeyimana 1:2a3b76b2e4e5 135 printf("Reading time is:%d \n",readingDuration);
uwizeyimana 1:2a3b76b2e4e5 136 if(readingDuration>5){
uwizeyimana 1:2a3b76b2e4e5 137 printf("message sent,Item Id is:%d \n",current+1);
uwizeyimana 1:2a3b76b2e4e5 138 }
uwizeyimana 1:2a3b76b2e4e5 139 displayState2();
uwizeyimana 0:6e0a4dac6596 140 }
uwizeyimana 1:2a3b76b2e4e5 141 void countDuration(){
uwizeyimana 1:2a3b76b2e4e5 142 time(&stopTime);
uwizeyimana 1:2a3b76b2e4e5 143 pushDuration=stopTime-startTime;
uwizeyimana 2:b990d41df49e 144 printf("elapsed time is:%d \n",pushDuration);
uwizeyimana 1:2a3b76b2e4e5 145 if(pushDuration>5){
uwizeyimana 1:2a3b76b2e4e5 146 display("System resetting......\n");
uwizeyimana 1:2a3b76b2e4e5 147 durationTime.detach();
uwizeyimana 1:2a3b76b2e4e5 148 topicTicker.detach();
uwizeyimana 1:2a3b76b2e4e5 149 resetted.attach(callback(&welcomeMsg),10.0f);
uwizeyimana 1:2a3b76b2e4e5 150 direction=!direction;
uwizeyimana 1:2a3b76b2e4e5 151 backagain.attach(callback(&mode1),15.0f);
uwizeyimana 1:2a3b76b2e4e5 152
uwizeyimana 1:2a3b76b2e4e5 153 }
uwizeyimana 2:b990d41df49e 154 else if(pushDuration>=3 && state==0 ){
uwizeyimana 2:b990d41df49e 155 state =1;
uwizeyimana 2:b990d41df49e 156 printf("direction changed %d \n",direction);
uwizeyimana 1:2a3b76b2e4e5 157 direction=!direction;
uwizeyimana 1:2a3b76b2e4e5 158 displayState2();
uwizeyimana 1:2a3b76b2e4e5 159
uwizeyimana 1:2a3b76b2e4e5 160 }
uwizeyimana 1:2a3b76b2e4e5 161 }
uwizeyimana 1:2a3b76b2e4e5 162 void riseBtn(){
uwizeyimana 1:2a3b76b2e4e5 163 time(&startTime);
uwizeyimana 1:2a3b76b2e4e5 164 durationTime.attach(callback(&countDuration),0.5f);
uwizeyimana 2:b990d41df49e 165
uwizeyimana 1:2a3b76b2e4e5 166 }
uwizeyimana 2:b990d41df49e 167
uwizeyimana 0:6e0a4dac6596 168 int main() {
uwizeyimana 1:2a3b76b2e4e5 169 welcomeMsg();
uwizeyimana 1:2a3b76b2e4e5 170 t.attach(callback(&mode1),5.0f);
uwizeyimana 1:2a3b76b2e4e5 171 btn.rise(callback(&riseBtn));
uwizeyimana 1:2a3b76b2e4e5 172 btn.fall(callback(&fallBtn));
uwizeyimana 1:2a3b76b2e4e5 173 swt.rise(callback(&riseSwt));
uwizeyimana 1:2a3b76b2e4e5 174 swt.fall(callback(&fallSwt));
uwizeyimana 2:b990d41df49e 175 }