
For Nabeel
Dependencies: mbed mbed-http ESP8266
main.cpp@12:2c3550f16e6d, 2022-03-26 (annotated)
- 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?
User | Revision | Line number | New 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 |