Adeline Yamfashije / Mbed 2 deprecated Trinity_company_project

Dependencies:   mbed

Committer:
adeline
Date:
Mon Jul 12 08:51:59 2021 +0000
Revision:
0:29f450c54d1c
This is a smart glass project for group 5 in Designing and programming (IoT) Embedded devices.it displays some output in LCD .These outputs including Temperature and automatic local time, company name, and its function.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
adeline 0:29f450c54d1c 1 #include "C12832.h"
adeline 0:29f450c54d1c 2 #include "Sht31.h"
adeline 0:29f450c54d1c 3 #include <string>
adeline 0:29f450c54d1c 4 #include "Timer.h"
adeline 0:29f450c54d1c 5
adeline 0:29f450c54d1c 6 int state =0;
adeline 0:29f450c54d1c 7
adeline 0:29f450c54d1c 8 time_t startTime;
adeline 0:29f450c54d1c 9 time_t stopTime;
adeline 0:29f450c54d1c 10 time_t startReading;
adeline 0:29f450c54d1c 11 time_t stopReading;
adeline 0:29f450c54d1c 12 int readingDuration;
adeline 0:29f450c54d1c 13 int i;
adeline 0:29f450c54d1c 14 Timer timer;
adeline 0:29f450c54d1c 15 Serial device (p9,p10);
adeline 0:29f450c54d1c 16 C12832 show(SPI_MOSI, SPI_SCK, SPI_MISO, p8, p11);
adeline 0:29f450c54d1c 17 Sht31 hum(I2C_SDA, I2C_SCL);
adeline 0:29f450c54d1c 18 DigitalOut le(p13);
adeline 0:29f450c54d1c 19 DigitalOut bl(p12);
adeline 0:29f450c54d1c 20 DigitalOut wh(p14);
adeline 0:29f450c54d1c 21 InterruptIn btn(p15);
adeline 0:29f450c54d1c 22 InterruptIn swt(p11);
adeline 0:29f450c54d1c 23
adeline 0:29f450c54d1c 24 int pushDuration;
adeline 0:29f450c54d1c 25 //int direction=0;
adeline 0:29f450c54d1c 26 bool forwards=true;
adeline 0:29f450c54d1c 27 int current=0;
adeline 0:29f450c54d1c 28 int mode=0;
adeline 0:29f450c54d1c 29 int btnState=1;
adeline 0:29f450c54d1c 30 int butnDuration = 0;
adeline 0:29f450c54d1c 31 int j;
adeline 0:29f450c54d1c 32 int k;
adeline 0:29f450c54d1c 33
adeline 0:29f450c54d1c 34 Ticker topicTicker;
adeline 0:29f450c54d1c 35 Ticker durationTime;
adeline 0:29f450c54d1c 36 Ticker resetted;
adeline 0:29f450c54d1c 37 Ticker backagain;
adeline 0:29f450c54d1c 38 int direction=0;
adeline 0:29f450c54d1c 39
adeline 0:29f450c54d1c 40 time_t butnTimerStart;
adeline 0:29f450c54d1c 41 time_t butnTimerStop;
adeline 0:29f450c54d1c 42 string str1 = " OUR SERVICE ";
adeline 0:29f450c54d1c 43 string str2 = " TRINITY COMPANY ";
adeline 0:29f450c54d1c 44 string str3= " TRINITY COMPANY \n Located at KIGALI";
adeline 0:29f450c54d1c 45 string topics[]={"OUR SERVICE ",
adeline 0:29f450c54d1c 46 "1. selling smart glasses",
adeline 0:29f450c54d1c 47 "2. making smart glasses",
adeline 0:29f450c54d1c 48 "3. selling glasses cover \n help eyes to be normal",
adeline 0:29f450c54d1c 49 "4. others ",
adeline 0:29f450c54d1c 50 "5.Press swich for more info",
adeline 0:29f450c54d1c 51 };
adeline 0:29f450c54d1c 52 string content[]={
adeline 0:29f450c54d1c 53 "01.Trinity company ",
adeline 0:29f450c54d1c 54 "02.it is located at Gisozi",
adeline 0:29f450c54d1c 55 "03.you may contact us at 0782890114",
adeline 0:29f450c54d1c 56 "22.we recover peoples's virsion ",
adeline 0:29f450c54d1c 57 "33.Trinit company offer good services",
adeline 0:29f450c54d1c 58 "44.it was started in 2021",
adeline 0:29f450c54d1c 59 "55.started by group 5 in Embedded "
adeline 0:29f450c54d1c 60 };
adeline 0:29f450c54d1c 61 void display(string sms){
adeline 0:29f450c54d1c 62 show.cls(); // change dane here
adeline 0:29f450c54d1c 63 show.locate(2,5);
adeline 0:29f450c54d1c 64 show.printf(sms.c_str());
adeline 0:29f450c54d1c 65 }
adeline 0:29f450c54d1c 66 void displaycontent(){
adeline 0:29f450c54d1c 67 mode=1;
adeline 0:29f450c54d1c 68 display(content[current]);
adeline 0:29f450c54d1c 69 wait_ms(1000);
adeline 0:29f450c54d1c 70 }
adeline 0:29f450c54d1c 71 void whiteled(){
adeline 0:29f450c54d1c 72 wh=1;
adeline 0:29f450c54d1c 73 wait_ms(500);
adeline 0:29f450c54d1c 74 wh=0;
adeline 0:29f450c54d1c 75 wait_ms(500);
adeline 0:29f450c54d1c 76 }
adeline 0:29f450c54d1c 77 void scrol(){
adeline 0:29f450c54d1c 78
adeline 0:29f450c54d1c 79 float temp = hum.readTemperature();
adeline 0:29f450c54d1c 80 time_t seconds = time(NULL);
adeline 0:29f450c54d1c 81 char buffer[32];
adeline 0:29f450c54d1c 82 strftime(buffer, 32, "%I:%M %p\n", localtime(&seconds));
adeline 0:29f450c54d1c 83 show.locate(5, 20); // get cursor to position x=3px and y=5px
adeline 0:29f450c54d1c 84 whiteled();
adeline 0:29f450c54d1c 85 wait(3);
adeline 0:29f450c54d1c 86 show.cls();
adeline 0:29f450c54d1c 87 show.set_auto_up(0);
adeline 0:29f450c54d1c 88 show.setmode(XOR);
adeline 0:29f450c54d1c 89 for (i = 0; i <5; i++) { // scrolling text
adeline 0:29f450c54d1c 90 show.locate(5, i);
adeline 0:29f450c54d1c 91 show.printf("Local Time: %s",buffer);
adeline 0:29f450c54d1c 92 show.locate(5, i + 12);
adeline 0:29f450c54d1c 93 show.printf("Temperature: %.2f C", temp);
adeline 0:29f450c54d1c 94 show.copy_to_lcd();
adeline 0:29f450c54d1c 95 show.locate(5, i);
adeline 0:29f450c54d1c 96 wait(1);
adeline 0:29f450c54d1c 97 show.printf("Local Time: %s",buffer);
adeline 0:29f450c54d1c 98 show.locate(5, i + 12);
adeline 0:29f450c54d1c 99 show.printf("Temperature: %.2f C", temp);
adeline 0:29f450c54d1c 100 i = i + 1;
adeline 0:29f450c54d1c 101 } }
adeline 0:29f450c54d1c 102
adeline 0:29f450c54d1c 103 void function(){
adeline 0:29f450c54d1c 104 j=0;
adeline 0:29f450c54d1c 105 while(j<6 && mode==0){
adeline 0:29f450c54d1c 106 whiteled();
adeline 0:29f450c54d1c 107 display(topics[j]);
adeline 0:29f450c54d1c 108 current=j;
adeline 0:29f450c54d1c 109 wait_ms(2000);
adeline 0:29f450c54d1c 110 j++;
adeline 0:29f450c54d1c 111 }}
adeline 0:29f450c54d1c 112
adeline 0:29f450c54d1c 113 void function2(){
adeline 0:29f450c54d1c 114 k=5;
adeline 0:29f450c54d1c 115 while(k>=0 && mode==0){
adeline 0:29f450c54d1c 116 whiteled();
adeline 0:29f450c54d1c 117 display(topics[k]);
adeline 0:29f450c54d1c 118 current=k;
adeline 0:29f450c54d1c 119 wait_ms(2000);
adeline 0:29f450c54d1c 120 k--;
adeline 0:29f450c54d1c 121 }}
adeline 0:29f450c54d1c 122
adeline 0:29f450c54d1c 123 void changedirection(){
adeline 0:29f450c54d1c 124 wait_ms(3000);
adeline 0:29f450c54d1c 125 direction=0;
adeline 0:29f450c54d1c 126 bl=1;
adeline 0:29f450c54d1c 127 if(direction==0){
adeline 0:29f450c54d1c 128 bl=le;
adeline 0:29f450c54d1c 129 le=!bl;
adeline 0:29f450c54d1c 130 }
adeline 0:29f450c54d1c 131 if(forwards){
adeline 0:29f450c54d1c 132 forwards=!forwards;
adeline 0:29f450c54d1c 133 function();
adeline 0:29f450c54d1c 134 display(str3);
adeline 0:29f450c54d1c 135
adeline 0:29f450c54d1c 136 }else{
adeline 0:29f450c54d1c 137 forwards=!forwards;
adeline 0:29f450c54d1c 138 function2();
adeline 0:29f450c54d1c 139 display(str3);
adeline 0:29f450c54d1c 140 } }
adeline 0:29f450c54d1c 141 void welcomeMsg(){
adeline 0:29f450c54d1c 142 display(str2);
adeline 0:29f450c54d1c 143 }
adeline 0:29f450c54d1c 144
adeline 0:29f450c54d1c 145
adeline 0:29f450c54d1c 146 void StartButtonTimer(){
adeline 0:29f450c54d1c 147 time(&stopTime);
adeline 0:29f450c54d1c 148 pushDuration=stopTime-startTime;
adeline 0:29f450c54d1c 149 if(pushDuration>5){
adeline 0:29f450c54d1c 150 display("System resetting......\n");
adeline 0:29f450c54d1c 151 durationTime.detach();
adeline 0:29f450c54d1c 152 topicTicker.detach();
adeline 0:29f450c54d1c 153 resetted.attach(callback(&welcomeMsg), 10.0f);
adeline 0:29f450c54d1c 154 direction=!direction;
adeline 0:29f450c54d1c 155 //backagain.attach(callback(&mode1),15.0f);
adeline 0:29f450c54d1c 156
adeline 0:29f450c54d1c 157 }
adeline 0:29f450c54d1c 158 else if(pushDuration>3 && state==0 ){
adeline 0:29f450c54d1c 159 state =0;
adeline 0:29f450c54d1c 160 direction=!direction;
adeline 0:29f450c54d1c 161 function2();
adeline 0:29f450c54d1c 162 }
adeline 0:29f450c54d1c 163 }
adeline 0:29f450c54d1c 164 void mode1(){
adeline 0:29f450c54d1c 165 mode=0;
adeline 0:29f450c54d1c 166 display(str3);
adeline 0:29f450c54d1c 167 }
adeline 0:29f450c54d1c 168
adeline 0:29f450c54d1c 169 void released(){
adeline 0:29f450c54d1c 170 direction=1;
adeline 0:29f450c54d1c 171 }
adeline 0:29f450c54d1c 172 int main() {
adeline 0:29f450c54d1c 173 show.locate(5,5);
adeline 0:29f450c54d1c 174 display(str2);
adeline 0:29f450c54d1c 175 wait_ms(5000);
adeline 0:29f450c54d1c 176 scrol();
adeline 0:29f450c54d1c 177 //btn.fall(callback(&released));
adeline 0:29f450c54d1c 178 btn.rise(callback(&StartButtonTimer));
adeline 0:29f450c54d1c 179 swt.rise(callback(&displaycontent));
adeline 0:29f450c54d1c 180 swt.fall(callback(&mode1));
adeline 0:29f450c54d1c 181 function();
adeline 0:29f450c54d1c 182 display(str3);
adeline 0:29f450c54d1c 183 }