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.
main.cpp@0:6e0a4dac6596, 2021-07-09 (annotated)
- Committer:
- uwizeyimana
- Date:
- Fri Jul 09 14:28:43 2021 +0000
- Revision:
- 0:6e0a4dac6596
- Child:
- 1:2a3b76b2e4e5
egg
Who changed what in which revision?
User | Revision | Line number | New 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 | } |