V1

Dependencies:   simple-mbed-client

Committer:
johnlynam2014
Date:
Tue Mar 07 12:57:42 2017 +0000
Revision:
1:bb3336b7e953
Mbed_1st_Commit_V1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
johnlynam2014 1:bb3336b7e953 1 #include "mbed.h"
johnlynam2014 1:bb3336b7e953 2 #include "rtos.h"
johnlynam2014 1:bb3336b7e953 3 #include "config.h"
johnlynam2014 1:bb3336b7e953 4 #include "security.h"
johnlynam2014 1:bb3336b7e953 5 #include "easy-connect.h"
johnlynam2014 1:bb3336b7e953 6 #include "simple-mbed-client.h"
johnlynam2014 1:bb3336b7e953 7 #include "hcsr04.h"
johnlynam2014 1:bb3336b7e953 8
johnlynam2014 1:bb3336b7e953 9 // Permanent statuses (set by led/0/permanent_status)
johnlynam2014 1:bb3336b7e953 10 #define STATUS_NONE 0
johnlynam2014 1:bb3336b7e953 11 #define STATUS_ON 1
johnlynam2014 1:bb3336b7e953 12 #define STATUS_OFF 2
johnlynam2014 1:bb3336b7e953 13
johnlynam2014 1:bb3336b7e953 14
johnlynam2014 1:bb3336b7e953 15
johnlynam2014 1:bb3336b7e953 16
johnlynam2014 1:bb3336b7e953 17 // Declare our peripherals here
johnlynam2014 1:bb3336b7e953 18 DigitalOut red(LED_RED);
johnlynam2014 1:bb3336b7e953 19 DigitalOut green(LED_GREEN);
johnlynam2014 1:bb3336b7e953 20 DigitalOut blue(LED_BLUE);
johnlynam2014 1:bb3336b7e953 21
johnlynam2014 1:bb3336b7e953 22
johnlynam2014 1:bb3336b7e953 23 //HCSR04 sensor(D12, D11);
johnlynam2014 1:bb3336b7e953 24 //set D12 = trigger D11 = echo
johnlynam2014 1:bb3336b7e953 25 DigitalOut trig = D12;
johnlynam2014 1:bb3336b7e953 26 DigitalIn echo = D11;
johnlynam2014 1:bb3336b7e953 27 Timer timer;
johnlynam2014 1:bb3336b7e953 28 long duration,distance_cm;
johnlynam2014 1:bb3336b7e953 29
johnlynam2014 1:bb3336b7e953 30 //return distance in cm
johnlynam2014 1:bb3336b7e953 31 long distance();
johnlynam2014 1:bb3336b7e953 32 long echo_duration();
johnlynam2014 1:bb3336b7e953 33 long distanceDetect();
johnlynam2014 1:bb3336b7e953 34
johnlynam2014 1:bb3336b7e953 35
johnlynam2014 1:bb3336b7e953 36 void run()
johnlynam2014 1:bb3336b7e953 37 {
johnlynam2014 1:bb3336b7e953 38 SimpleMbedClient client;
johnlynam2014 1:bb3336b7e953 39
johnlynam2014 1:bb3336b7e953 40 SimpleResourceString name = client.define_resource("device/0/name", "jan", M2MBase::GET_PUT_ALLOWED, true);//User name
johnlynam2014 1:bb3336b7e953 41 SimpleResourceString sensorName = client.define_resource("device/0/sensorName", "jan", M2MBase::GET_PUT_ALLOWED, true);//Module Name
johnlynam2014 1:bb3336b7e953 42 SimpleResourceInt UltraSonicData = client.define_resource("device/0/USdata", 0, M2MBase::GET_ALLOWED);//UltraSonicData
johnlynam2014 1:bb3336b7e953 43 //SimpleResourceInt pirCount = client.define_resource("pir/0/count", 0, M2MBase::GET_ALLOWED);
johnlynam2014 1:bb3336b7e953 44
johnlynam2014 1:bb3336b7e953 45
johnlynam2014 1:bb3336b7e953 46 red=1;
johnlynam2014 1:bb3336b7e953 47 green=1;
johnlynam2014 1:bb3336b7e953 48 blue=1;
johnlynam2014 1:bb3336b7e953 49 //printf("\r\nMAIN\n\r");
johnlynam2014 1:bb3336b7e953 50 sensorName = "Front Window 2";
johnlynam2014 1:bb3336b7e953 51 name = "John Lynam";
johnlynam2014 1:bb3336b7e953 52 distance();
johnlynam2014 1:bb3336b7e953 53 UltraSonicData = distance_cm;
johnlynam2014 1:bb3336b7e953 54 //return distance_cm;
johnlynam2014 1:bb3336b7e953 55
johnlynam2014 1:bb3336b7e953 56
johnlynam2014 1:bb3336b7e953 57 }
johnlynam2014 1:bb3336b7e953 58
johnlynam2014 1:bb3336b7e953 59
johnlynam2014 1:bb3336b7e953 60 //dictance
johnlynam2014 1:bb3336b7e953 61 long distance()
johnlynam2014 1:bb3336b7e953 62 {
johnlynam2014 1:bb3336b7e953 63
johnlynam2014 1:bb3336b7e953 64 //printf("in distance function\r\n");
johnlynam2014 1:bb3336b7e953 65 duration = echo_duration();
johnlynam2014 1:bb3336b7e953 66 distance_cm = (duration/2)/29.1;
johnlynam2014 1:bb3336b7e953 67 if(distance_cm < 20)
johnlynam2014 1:bb3336b7e953 68 {
johnlynam2014 1:bb3336b7e953 69 distanceDetect();
johnlynam2014 1:bb3336b7e953 70 }
johnlynam2014 1:bb3336b7e953 71 else
johnlynam2014 1:bb3336b7e953 72 {
johnlynam2014 1:bb3336b7e953 73
johnlynam2014 1:bb3336b7e953 74
johnlynam2014 1:bb3336b7e953 75 }
johnlynam2014 1:bb3336b7e953 76 printf("end distance function\r\n");
johnlynam2014 1:bb3336b7e953 77 return distance_cm;
johnlynam2014 1:bb3336b7e953 78
johnlynam2014 1:bb3336b7e953 79 }
johnlynam2014 1:bb3336b7e953 80
johnlynam2014 1:bb3336b7e953 81 long echo_duration()
johnlynam2014 1:bb3336b7e953 82 {
johnlynam2014 1:bb3336b7e953 83 //printf("in echo duration function\r\n");
johnlynam2014 1:bb3336b7e953 84 timer.reset(); //reset timer
johnlynam2014 1:bb3336b7e953 85 trig=1; // trigger low
johnlynam2014 1:bb3336b7e953 86 wait_us(2); // wait
johnlynam2014 1:bb3336b7e953 87 trig=0; // trigger high
johnlynam2014 1:bb3336b7e953 88 wait_us(10);
johnlynam2014 1:bb3336b7e953 89 trig=1; // trigger low
johnlynam2014 1:bb3336b7e953 90 while(!echo); // start pulseIN
johnlynam2014 1:bb3336b7e953 91 timer.start();
johnlynam2014 1:bb3336b7e953 92 while(echo);
johnlynam2014 1:bb3336b7e953 93 timer.stop();
johnlynam2014 1:bb3336b7e953 94 //printf("end echo duration function\r\n");
johnlynam2014 1:bb3336b7e953 95 return timer.read_us();
johnlynam2014 1:bb3336b7e953 96
johnlynam2014 1:bb3336b7e953 97 }
johnlynam2014 1:bb3336b7e953 98
johnlynam2014 1:bb3336b7e953 99 long distanceDetect()
johnlynam2014 1:bb3336b7e953 100 {
johnlynam2014 1:bb3336b7e953 101 DigitalOut led(LED_RED);
johnlynam2014 1:bb3336b7e953 102 DigitalOut led2(LED_BLUE);
johnlynam2014 1:bb3336b7e953 103 //an action to demo distance change
johnlynam2014 1:bb3336b7e953 104 led = !led; // toggle led
johnlynam2014 1:bb3336b7e953 105 wait(0.2f);
johnlynam2014 1:bb3336b7e953 106 led = !led2; // toggle led
johnlynam2014 1:bb3336b7e953 107 wait(0.2f);
johnlynam2014 1:bb3336b7e953 108 printf("Distance change detected: %d", distance_cm);
johnlynam2014 1:bb3336b7e953 109 printf("\n\r");
johnlynam2014 1:bb3336b7e953 110 return distance_cm;
johnlynam2014 1:bb3336b7e953 111
johnlynam2014 1:bb3336b7e953 112 }
johnlynam2014 1:bb3336b7e953 113
johnlynam2014 1:bb3336b7e953 114
johnlynam2014 1:bb3336b7e953 115 // Registered callback for mbed Client
johnlynam2014 1:bb3336b7e953 116 DigitalOut statusLed(LED1, 1);
johnlynam2014 1:bb3336b7e953 117
johnlynam2014 1:bb3336b7e953 118 void registered()
johnlynam2014 1:bb3336b7e953 119 {
johnlynam2014 1:bb3336b7e953 120 printf("Welcome John Lynam");
johnlynam2014 1:bb3336b7e953 121 statusLed = 0;
johnlynam2014 1:bb3336b7e953 122 }
johnlynam2014 1:bb3336b7e953 123
johnlynam2014 1:bb3336b7e953 124
johnlynam2014 1:bb3336b7e953 125
johnlynam2014 1:bb3336b7e953 126