uwizeyimana abdulkarim / Mbed 2 deprecated mobileproject

Dependencies:   mbed

Committer:
uwizeyimana
Date:
Fri Jul 09 14:28:43 2021 +0000
Revision:
0:6e0a4dac6596
Child:
1:2a3b76b2e4e5
egg

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 0:6e0a4dac6596 12 #include "Timer.h"
uwizeyimana 0:6e0a4dac6596 13 Timer timer;
uwizeyimana 0:6e0a4dac6596 14 Serial device (p9,p10);
uwizeyimana 0:6e0a4dac6596 15 C12832 lcd(SPI_MOSI, SPI_SCK, SPI_MISO, p8, p11);
uwizeyimana 0:6e0a4dac6596 16 Sht31 theo(I2C_SDA, I2C_SCL);
uwizeyimana 0:6e0a4dac6596 17 DigitalOut led(p13);
uwizeyimana 0:6e0a4dac6596 18 DigitalOut bed(p12);
uwizeyimana 0:6e0a4dac6596 19 DigitalOut wed(p14);
uwizeyimana 0:6e0a4dac6596 20 InterruptIn btn(p15);
uwizeyimana 0:6e0a4dac6596 21 InterruptIn swt(p11);
uwizeyimana 0:6e0a4dac6596 22 int direction=0;
uwizeyimana 0:6e0a4dac6596 23 bool forwards=true;
uwizeyimana 0:6e0a4dac6596 24 int current=0;
uwizeyimana 0:6e0a4dac6596 25 int mode=0;
uwizeyimana 0:6e0a4dac6596 26 int btnState=1;
uwizeyimana 0:6e0a4dac6596 27 int butnDuration = 0;
uwizeyimana 0:6e0a4dac6596 28 int j;
uwizeyimana 0:6e0a4dac6596 29 int k;
uwizeyimana 0:6e0a4dac6596 30 time_t butnTimerStart;
uwizeyimana 0:6e0a4dac6596 31 time_t butnTimerStop;
uwizeyimana 0:6e0a4dac6596 32 string str1 = "Menu of the Day";
uwizeyimana 0:6e0a4dac6596 33 string str2 = "Rwanda Food Services Ltd";
uwizeyimana 0:6e0a4dac6596 34 string str3="Rwanda Food Services Ltd,click Btn to browseMenu";
uwizeyimana 0:6e0a4dac6596 35 string topics[]={"1.Out Side catering services",
uwizeyimana 0:6e0a4dac6596 36 "2.Restaurent Services","3.fast Food Services",
uwizeyimana 0:6e0a4dac6596 37 "4.Online ordering Food Services",
uwizeyimana 0:6e0a4dac6596 38 "5.Cook Training Services "
uwizeyimana 0:6e0a4dac6596 39 };
uwizeyimana 0:6e0a4dac6596 40 string content[]={"11.online bookings buffet package for 80+ guests with 10 percent off",
uwizeyimana 0:6e0a4dac6596 41 "22.Pilawo, biriyani, African food,western food","33.fried chicken with salad,fried fish with salad,Nyama choma",
uwizeyimana 0:6e0a4dac6596 42 "44.African food,westen food,fast food,pilawo,biriyani",
uwizeyimana 0:6e0a4dac6596 43 "55.bread,samosa cooking and smoothies preparation "
uwizeyimana 0:6e0a4dac6596 44 };
uwizeyimana 0:6e0a4dac6596 45 void display(string sms){
uwizeyimana 0:6e0a4dac6596 46 lcd.cls(); // change dane here
uwizeyimana 0:6e0a4dac6596 47 lcd.locate(0,0);
uwizeyimana 0:6e0a4dac6596 48 lcd.printf(sms.c_str());
uwizeyimana 0:6e0a4dac6596 49 }
uwizeyimana 0:6e0a4dac6596 50
uwizeyimana 0:6e0a4dac6596 51 void displaycontent(){
uwizeyimana 0:6e0a4dac6596 52 mode=1;
uwizeyimana 0:6e0a4dac6596 53 display(content[current]);
uwizeyimana 0:6e0a4dac6596 54 wait_ms(10000);
uwizeyimana 0:6e0a4dac6596 55 }
uwizeyimana 0:6e0a4dac6596 56
uwizeyimana 0:6e0a4dac6596 57 void whiteled()
uwizeyimana 0:6e0a4dac6596 58 {
uwizeyimana 0:6e0a4dac6596 59 wed=1;
uwizeyimana 0:6e0a4dac6596 60 wait_ms(2000);
uwizeyimana 0:6e0a4dac6596 61 wed=0;
uwizeyimana 0:6e0a4dac6596 62 wait_ms(2000);
uwizeyimana 0:6e0a4dac6596 63
uwizeyimana 0:6e0a4dac6596 64 }
uwizeyimana 0:6e0a4dac6596 65
uwizeyimana 0:6e0a4dac6596 66 void scrol(){
uwizeyimana 0:6e0a4dac6596 67
uwizeyimana 0:6e0a4dac6596 68 int i;
uwizeyimana 0:6e0a4dac6596 69 float temp = theo.readTemperature();
uwizeyimana 0:6e0a4dac6596 70 time_t seconds = time(NULL);
uwizeyimana 0:6e0a4dac6596 71 char buffer[32];
uwizeyimana 0:6e0a4dac6596 72 strftime(buffer, 32, "%I:%M %p\n", localtime(&seconds));
uwizeyimana 0:6e0a4dac6596 73 lcd.locate(5, 20); // get cursor to position x=3px and y=5px
uwizeyimana 0:6e0a4dac6596 74 whiteled();
uwizeyimana 0:6e0a4dac6596 75 wait(3);
uwizeyimana 0:6e0a4dac6596 76 lcd.cls();
uwizeyimana 0:6e0a4dac6596 77 lcd.set_auto_up(0);
uwizeyimana 0:6e0a4dac6596 78 lcd.setmode(XOR);
uwizeyimana 0:6e0a4dac6596 79 for (i = -20; i <5; i++) { // scrolling text
uwizeyimana 0:6e0a4dac6596 80 lcd.locate(5, i);
uwizeyimana 0:6e0a4dac6596 81 lcd.printf("Local Time: %s",buffer);
uwizeyimana 0:6e0a4dac6596 82 lcd.locate(5, i + 12);
uwizeyimana 0:6e0a4dac6596 83 lcd.printf("Temperature: %.2f C", temp);
uwizeyimana 0:6e0a4dac6596 84 lcd.copy_to_lcd();
uwizeyimana 0:6e0a4dac6596 85 lcd.locate(5, i);
uwizeyimana 0:6e0a4dac6596 86 wait(1);
uwizeyimana 0:6e0a4dac6596 87 lcd.printf("Local Time: %s",buffer);
uwizeyimana 0:6e0a4dac6596 88 lcd.locate(5, i + 12);
uwizeyimana 0:6e0a4dac6596 89 lcd.printf("Temperature: %.2f C", temp);
uwizeyimana 0:6e0a4dac6596 90 i = i + 1;
uwizeyimana 0:6e0a4dac6596 91 }
uwizeyimana 0:6e0a4dac6596 92 }
uwizeyimana 0:6e0a4dac6596 93
uwizeyimana 0:6e0a4dac6596 94
uwizeyimana 0:6e0a4dac6596 95
uwizeyimana 0:6e0a4dac6596 96 /*}
uwizeyimana 0:6e0a4dac6596 97
uwizeyimana 0:6e0a4dac6596 98 void StopBtnTimer(){
uwizeyimana 0:6e0a4dac6596 99 printf("Button timer stop \n");
uwizeyimana 0:6e0a4dac6596 100 // loraTimerStop =time(NULL);
uwizeyimana 0:6e0a4dac6596 101 butnTimerStop = time(NULL);
uwizeyimana 0:6e0a4dac6596 102 printf("Button timer stop: %d \n",butnTimerStop);
uwizeyimana 0:6e0a4dac6596 103 wait(0.5);
uwizeyimana 0:6e0a4dac6596 104
uwizeyimana 0:6e0a4dac6596 105 //loraDuration = loraTimerStop - loraTimerStart;
uwizeyimana 0:6e0a4dac6596 106
uwizeyimana 0:6e0a4dac6596 107 butnDuration = butnTimerStop - butnTimerStart;
uwizeyimana 0:6e0a4dac6596 108 //printf("Duration Lora: %d \n", loraDuration);
uwizeyimana 0:6e0a4dac6596 109 printf("Duration Button: %d \n", butnDuration);
uwizeyimana 0:6e0a4dac6596 110
uwizeyimana 0:6e0a4dac6596 111 // DurationCheck();
uwizeyimana 0:6e0a4dac6596 112 }*/
uwizeyimana 0:6e0a4dac6596 113
uwizeyimana 0:6e0a4dac6596 114 void function(){
uwizeyimana 0:6e0a4dac6596 115
uwizeyimana 0:6e0a4dac6596 116 j=0;
uwizeyimana 0:6e0a4dac6596 117 while(j<6 && mode==0){
uwizeyimana 0:6e0a4dac6596 118 whiteled();
uwizeyimana 0:6e0a4dac6596 119 display(topics[j]);
uwizeyimana 0:6e0a4dac6596 120 current=j;
uwizeyimana 0:6e0a4dac6596 121 wait_ms(2000);
uwizeyimana 0:6e0a4dac6596 122 j++;
uwizeyimana 0:6e0a4dac6596 123 }}
uwizeyimana 0:6e0a4dac6596 124
uwizeyimana 0:6e0a4dac6596 125 void function2(){
uwizeyimana 0:6e0a4dac6596 126 k=5;
uwizeyimana 0:6e0a4dac6596 127 while(k>=0 && mode==0){
uwizeyimana 0:6e0a4dac6596 128 whiteled();
uwizeyimana 0:6e0a4dac6596 129 display(topics[k]);
uwizeyimana 0:6e0a4dac6596 130 current=k;
uwizeyimana 0:6e0a4dac6596 131 wait_ms(2000);
uwizeyimana 0:6e0a4dac6596 132 k--;
uwizeyimana 0:6e0a4dac6596 133 }}
uwizeyimana 0:6e0a4dac6596 134
uwizeyimana 0:6e0a4dac6596 135 void changedirection()
uwizeyimana 0:6e0a4dac6596 136 {
uwizeyimana 0:6e0a4dac6596 137 wait_ms(3000);
uwizeyimana 0:6e0a4dac6596 138 direction=0;
uwizeyimana 0:6e0a4dac6596 139 bed=1;
uwizeyimana 0:6e0a4dac6596 140 if(direction==0){
uwizeyimana 0:6e0a4dac6596 141
uwizeyimana 0:6e0a4dac6596 142 bed=led;
uwizeyimana 0:6e0a4dac6596 143 led=!bed;
uwizeyimana 0:6e0a4dac6596 144 }
uwizeyimana 0:6e0a4dac6596 145 if(forwards){
uwizeyimana 0:6e0a4dac6596 146 forwards=!forwards;
uwizeyimana 0:6e0a4dac6596 147 function();
uwizeyimana 0:6e0a4dac6596 148 display(str3);
uwizeyimana 0:6e0a4dac6596 149
uwizeyimana 0:6e0a4dac6596 150
uwizeyimana 0:6e0a4dac6596 151 }else{
uwizeyimana 0:6e0a4dac6596 152 forwards=!forwards;
uwizeyimana 0:6e0a4dac6596 153 function2();
uwizeyimana 0:6e0a4dac6596 154 display(str3);
uwizeyimana 0:6e0a4dac6596 155 }
uwizeyimana 0:6e0a4dac6596 156
uwizeyimana 0:6e0a4dac6596 157 }
uwizeyimana 0:6e0a4dac6596 158 void StartButtonTimer(){
uwizeyimana 0:6e0a4dac6596 159 time_t seconds = time(NULL);
uwizeyimana 0:6e0a4dac6596 160 char buffer[32];
uwizeyimana 0:6e0a4dac6596 161 strftime(buffer, 32, "%I:%M %p\n", localtime(&seconds));
uwizeyimana 0:6e0a4dac6596 162 printf("Button Timer start \n");
uwizeyimana 0:6e0a4dac6596 163 butnTimerStart = strftime(buffer, 32, "%I:%M %p\n", localtime(&seconds));
uwizeyimana 0:6e0a4dac6596 164 //butnTimerStop=stoptime(buffer, 32, "%I:%M %p\n", localtime(&seconds));
uwizeyimana 0:6e0a4dac6596 165 printf("Button timer start: %d \n",butnTimerStart);
uwizeyimana 0:6e0a4dac6596 166 wait(0.5);
uwizeyimana 0:6e0a4dac6596 167 butnDuration = butnTimerStart;
uwizeyimana 0:6e0a4dac6596 168 printf("Duration Button: %d \n", butnDuration);
uwizeyimana 0:6e0a4dac6596 169 if(btnState==1 && butnDuration>=10) {
uwizeyimana 0:6e0a4dac6596 170 lcd.cls();
uwizeyimana 0:6e0a4dac6596 171 lcd.locate(0,0);
uwizeyimana 0:6e0a4dac6596 172 lcd.printf("Reset to factory ....");
uwizeyimana 0:6e0a4dac6596 173 wait(10);
uwizeyimana 0:6e0a4dac6596 174 display(str2);
uwizeyimana 0:6e0a4dac6596 175 function();
uwizeyimana 0:6e0a4dac6596 176 }
uwizeyimana 0:6e0a4dac6596 177 else{
uwizeyimana 0:6e0a4dac6596 178 changedirection();
uwizeyimana 0:6e0a4dac6596 179 }
uwizeyimana 0:6e0a4dac6596 180
uwizeyimana 0:6e0a4dac6596 181 }
uwizeyimana 0:6e0a4dac6596 182 void mode1(){
uwizeyimana 0:6e0a4dac6596 183 mode=0;
uwizeyimana 0:6e0a4dac6596 184 display(str3);
uwizeyimana 0:6e0a4dac6596 185 }
uwizeyimana 0:6e0a4dac6596 186 void released(){
uwizeyimana 0:6e0a4dac6596 187 direction=1;
uwizeyimana 0:6e0a4dac6596 188 }
uwizeyimana 0:6e0a4dac6596 189 int main() {
uwizeyimana 0:6e0a4dac6596 190 display(str2);
uwizeyimana 0:6e0a4dac6596 191 wait_ms(5000);
uwizeyimana 0:6e0a4dac6596 192 scrol();
uwizeyimana 0:6e0a4dac6596 193 btn.fall(callback(&released));
uwizeyimana 0:6e0a4dac6596 194 btn.rise(callback(&StartButtonTimer));
uwizeyimana 0:6e0a4dac6596 195 swt.rise(callback(&displaycontent));
uwizeyimana 0:6e0a4dac6596 196 swt.fall(callback(&mode1));
uwizeyimana 0:6e0a4dac6596 197 function();
uwizeyimana 0:6e0a4dac6596 198 display(str3);
uwizeyimana 0:6e0a4dac6596 199 }