uwizeyimana abdulkarim / Mbed 2 deprecated mobileproject

Dependencies:   mbed

Committer:
uwizeyimana
Date:
Sat Jul 10 17:44:52 2021 +0000
Revision:
1:2a3b76b2e4e5
Parent:
0:6e0a4dac6596
Child:
2:b990d41df49e
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 0:6e0a4dac6596 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 1:2a3b76b2e4e5 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 0:6e0a4dac6596 56
uwizeyimana 1:2a3b76b2e4e5 57 void welcomeMsg(){
uwizeyimana 1:2a3b76b2e4e5 58 display(str2);
uwizeyimana 0:6e0a4dac6596 59 }
uwizeyimana 0:6e0a4dac6596 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 0:6e0a4dac6596 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 1:2a3b76b2e4e5 97 if(direction==0){
uwizeyimana 1:2a3b76b2e4e5 98 i=0;
uwizeyimana 1:2a3b76b2e4e5 99 bed=1;
uwizeyimana 1:2a3b76b2e4e5 100 led=0;
uwizeyimana 1:2a3b76b2e4e5 101 topicTicker.attach(callback(&forwards),2.0f);
uwizeyimana 1:2a3b76b2e4e5 102 }
uwizeyimana 1:2a3b76b2e4e5 103 else{
uwizeyimana 1:2a3b76b2e4e5 104 i=4;
uwizeyimana 1:2a3b76b2e4e5 105 led=1;
uwizeyimana 1:2a3b76b2e4e5 106 bed=0;
uwizeyimana 1:2a3b76b2e4e5 107 topicTicker.attach(callback(& backwards),2.0f);
uwizeyimana 1:2a3b76b2e4e5 108 }
uwizeyimana 1:2a3b76b2e4e5 109 }
uwizeyimana 1:2a3b76b2e4e5 110
uwizeyimana 1:2a3b76b2e4e5 111 void fallBtn(){
uwizeyimana 1:2a3b76b2e4e5 112 state = 0;
uwizeyimana 1:2a3b76b2e4e5 113
uwizeyimana 1:2a3b76b2e4e5 114 }
uwizeyimana 1:2a3b76b2e4e5 115 void mode1(){
uwizeyimana 1:2a3b76b2e4e5 116 k.attach(callback(& whiteled),1.0f);
uwizeyimana 1:2a3b76b2e4e5 117 displayState1();
uwizeyimana 1:2a3b76b2e4e5 118 t.attach(callback(&displayState2),3.0f);
uwizeyimana 1:2a3b76b2e4e5 119
uwizeyimana 1:2a3b76b2e4e5 120 }
uwizeyimana 1:2a3b76b2e4e5 121
uwizeyimana 1:2a3b76b2e4e5 122 void riseSwt(){
uwizeyimana 1:2a3b76b2e4e5 123 time(&startReading);
uwizeyimana 1:2a3b76b2e4e5 124 display(content[current]);
uwizeyimana 1:2a3b76b2e4e5 125 topicTicker.detach();
uwizeyimana 1:2a3b76b2e4e5 126
uwizeyimana 0:6e0a4dac6596 127
uwizeyimana 0:6e0a4dac6596 128 }
uwizeyimana 1:2a3b76b2e4e5 129 void fallSwt(){
uwizeyimana 1:2a3b76b2e4e5 130 topicTicker.detach();
uwizeyimana 1:2a3b76b2e4e5 131 time(&stopReading);
uwizeyimana 1:2a3b76b2e4e5 132 readingDuration=stopReading-startReading;
uwizeyimana 1:2a3b76b2e4e5 133 printf("Reading time is:%d \n",readingDuration);
uwizeyimana 1:2a3b76b2e4e5 134 if(readingDuration>5){
uwizeyimana 1:2a3b76b2e4e5 135 printf("message sent,Item Id is:%d \n",current+1);
uwizeyimana 1:2a3b76b2e4e5 136 }
uwizeyimana 1:2a3b76b2e4e5 137 displayState2();
uwizeyimana 0:6e0a4dac6596 138 }
uwizeyimana 1:2a3b76b2e4e5 139 void countDuration(){
uwizeyimana 1:2a3b76b2e4e5 140 time(&stopTime);
uwizeyimana 1:2a3b76b2e4e5 141 pushDuration=stopTime-startTime;
uwizeyimana 1:2a3b76b2e4e5 142 if(pushDuration>5){
uwizeyimana 1:2a3b76b2e4e5 143 display("System resetting......\n");
uwizeyimana 1:2a3b76b2e4e5 144 durationTime.detach();
uwizeyimana 1:2a3b76b2e4e5 145 topicTicker.detach();
uwizeyimana 1:2a3b76b2e4e5 146 resetted.attach(callback(&welcomeMsg),10.0f);
uwizeyimana 1:2a3b76b2e4e5 147 direction=!direction;
uwizeyimana 1:2a3b76b2e4e5 148 backagain.attach(callback(&mode1),15.0f);
uwizeyimana 1:2a3b76b2e4e5 149
uwizeyimana 1:2a3b76b2e4e5 150 }
uwizeyimana 1:2a3b76b2e4e5 151 else if(pushDuration>3 && state==0 ){
uwizeyimana 1:2a3b76b2e4e5 152 state =0;
uwizeyimana 1:2a3b76b2e4e5 153 direction=!direction;
uwizeyimana 1:2a3b76b2e4e5 154 displayState2();
uwizeyimana 1:2a3b76b2e4e5 155
uwizeyimana 1:2a3b76b2e4e5 156 }
uwizeyimana 1:2a3b76b2e4e5 157 }
uwizeyimana 1:2a3b76b2e4e5 158 void riseBtn(){
uwizeyimana 1:2a3b76b2e4e5 159 time(&startTime);
uwizeyimana 1:2a3b76b2e4e5 160 durationTime.attach(callback(&countDuration),0.5f);
uwizeyimana 1:2a3b76b2e4e5 161
uwizeyimana 1:2a3b76b2e4e5 162 }
uwizeyimana 1:2a3b76b2e4e5 163
uwizeyimana 0:6e0a4dac6596 164 int main() {
uwizeyimana 1:2a3b76b2e4e5 165 welcomeMsg();
uwizeyimana 1:2a3b76b2e4e5 166 t.attach(callback(&mode1),5.0f);
uwizeyimana 1:2a3b76b2e4e5 167 btn.rise(callback(&riseBtn));
uwizeyimana 1:2a3b76b2e4e5 168 btn.fall(callback(&fallBtn));
uwizeyimana 1:2a3b76b2e4e5 169 swt.rise(callback(&riseSwt));
uwizeyimana 1:2a3b76b2e4e5 170 swt.fall(callback(&fallSwt));
uwizeyimana 0:6e0a4dac6596 171 }