For Nabeel

Dependencies:   mbed mbed-http ESP8266

Committer:
sekefors
Date:
Sat Mar 26 22:30:25 2022 +0000
Revision:
12:2c3550f16e6d
Parent:
11:756321f0b0cd
ultrasonic works with sw2 and rgb;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jamiedillion2019 10:e4b6bc6d9b07 1 /**
jamiedillion2019 10:e4b6bc6d9b07 2 Electronically Controlled Intelligent Shelves
jamiedillion2019 10:e4b6bc6d9b07 3 Developed by: Priyank Kalgaonkar
jakobjohn949 9:607ee6e92552 4 **/
jamiedillion2019 10:e4b6bc6d9b07 5
andcor02 8:25138f7b9309 6 #include "mbed.h"
andcor02 8:25138f7b9309 7 #include "hcsr04.h"
jamiedillion2019 10:e4b6bc6d9b07 8 #include "math.h"
sekefors 12:2c3550f16e6d 9 #include "RGBLED.h"
andcor02 8:25138f7b9309 10
sekefors 12:2c3550f16e6d 11 //Setup RGB led using PWM pins and class
sekefors 12:2c3550f16e6d 12 RGBLed myRGBled(D6,D5,D3); //RGB PWM pins
sekefors 12:2c3550f16e6d 13
sekefors 12:2c3550f16e6d 14 DigitalIn sw2(SW2);
jamiedillion2019 10:e4b6bc6d9b07 15 DigitalOut RLed(LED1); //Onboard Red LED = Shelf Out of Stock
jamiedillion2019 10:e4b6bc6d9b07 16 DigitalOut GLed(LED2); //Onboard Green LED = All OK
jamiedillion2019 10:e4b6bc6d9b07 17 DigitalOut BLed(LED3); //Onboard Blue LED for Wifi Tx Indication
jamiedillion2019 10:e4b6bc6d9b07 18 HCSR04 usensor1(D8,D9); //ECHO Pin=D9, TRIG Pin=D8
jamiedillion2019 10:e4b6bc6d9b07 19 Serial pc(USBTX,USBRX); //Serial Communication with PC
sekefors 12:2c3550f16e6d 20
jamiedillion2019 10:e4b6bc6d9b07 21
jamiedillion2019 10:e4b6bc6d9b07 22 void wifi_send(void);; //Connect and Push Data Channel to Cloud Server
jamiedillion2019 10:e4b6bc6d9b07 23
jamiedillion2019 10:e4b6bc6d9b07 24 int num = 0;
jamiedillion2019 10:e4b6bc6d9b07 25 int distance1, distance2;
jamiedillion2019 10:e4b6bc6d9b07 26 float dist_remaining1, dist_percent1, dist_remaining2, dist_percent2;
jamiedillion2019 10:e4b6bc6d9b07 27 char snd[255],rcv[1000]; //snd: send command to ESP8266
jamiedillion2019 10:e4b6bc6d9b07 28 //rcv: receive response from ESP8266
jakobjohn949 9:607ee6e92552 29
andcor02 8:25138f7b9309 30 int main()
andcor02 8:25138f7b9309 31 {
jamiedillion2019 10:e4b6bc6d9b07 32 pc.baud(115200); //Baud Rate of 115200 for Tera Term
sekefors 12:2c3550f16e6d 33
jamiedillion2019 10:e4b6bc6d9b07 34 pc.printf("Initial Setup\r\n");
sekefors 12:2c3550f16e6d 35
jamiedillion2019 10:e4b6bc6d9b07 36 while(num<1000000000000)
jamiedillion2019 10:e4b6bc6d9b07 37 {
jamiedillion2019 10:e4b6bc6d9b07 38 num=num+1;
sekefors 12:2c3550f16e6d 39 //checking for switch value to detect traffic light
sekefors 12:2c3550f16e6d 40 if(sw2 == 0) {
sekefors 12:2c3550f16e6d 41 myRGBled.write(1.0,0.0,0.0); //red
sekefors 12:2c3550f16e6d 42 printf("Red light detected; applying breaks\n\r");
sekefors 12:2c3550f16e6d 43 wait(1.0);
sekefors 12:2c3550f16e6d 44 }else{
sekefors 12:2c3550f16e6d 45 myRGBled.write(0.0,1.0,0.0); //green
jamiedillion2019 10:e4b6bc6d9b07 46
jamiedillion2019 10:e4b6bc6d9b07 47 //Ultrasound Sensor (HC-SR04) #1 Initialization
jakobjohn949 9:607ee6e92552 48 usensor1.start();
jamiedillion2019 10:e4b6bc6d9b07 49 wait_ms(500);
jakobjohn949 9:607ee6e92552 50
sekefors 12:2c3550f16e6d 51 //Calculating Distance for Sensor # 1
jamiedillion2019 10:e4b6bc6d9b07 52 distance1 = usensor1.get_dist_cm();
sekefors 12:2c3550f16e6d 53
jamiedillion2019 10:e4b6bc6d9b07 54 //LED and Tera Term Output
sekefors 12:2c3550f16e6d 55 if (distance1<10) {
sekefors 12:2c3550f16e6d 56 RLed = 1;
sekefors 12:2c3550f16e6d 57 BLed = 0;
sekefors 12:2c3550f16e6d 58 GLed = 0;
sekefors 12:2c3550f16e6d 59 printf("Emergency Brakes Engaged %u\n\r", distance1);
sekefors 12:2c3550f16e6d 60 wait(1.0);
sekefors 12:2c3550f16e6d 61 } else {
sekefors 12:2c3550f16e6d 62 GLed = 1;
sekefors 12:2c3550f16e6d 63 BLed = 0;
sekefors 12:2c3550f16e6d 64 RLed = 0;
sekefors 12:2c3550f16e6d 65 printf("Distance: %u\n\r", distance1);
sekefors 12:2c3550f16e6d 66 } //end nested-if
sekefors 12:2c3550f16e6d 67 } //end if
sekefors 12:2c3550f16e6d 68 } //end while
sekefors 12:2c3550f16e6d 69 } //end main