V1
Dependencies: simple-mbed-client
function.h
- Committer:
- johnlynam2014
- Date:
- 2017-03-07
- Revision:
- 1:bb3336b7e953
File content as of revision 1:bb3336b7e953:
#include "mbed.h" #include "rtos.h" #include "config.h" #include "security.h" #include "easy-connect.h" #include "simple-mbed-client.h" #include "hcsr04.h" // Permanent statuses (set by led/0/permanent_status) #define STATUS_NONE 0 #define STATUS_ON 1 #define STATUS_OFF 2 // Declare our peripherals here DigitalOut red(LED_RED); DigitalOut green(LED_GREEN); DigitalOut blue(LED_BLUE); //HCSR04 sensor(D12, D11); //set D12 = trigger D11 = echo DigitalOut trig = D12; DigitalIn echo = D11; Timer timer; long duration,distance_cm; //return distance in cm long distance(); long echo_duration(); long distanceDetect(); void run() { SimpleMbedClient client; SimpleResourceString name = client.define_resource("device/0/name", "jan", M2MBase::GET_PUT_ALLOWED, true);//User name SimpleResourceString sensorName = client.define_resource("device/0/sensorName", "jan", M2MBase::GET_PUT_ALLOWED, true);//Module Name SimpleResourceInt UltraSonicData = client.define_resource("device/0/USdata", 0, M2MBase::GET_ALLOWED);//UltraSonicData //SimpleResourceInt pirCount = client.define_resource("pir/0/count", 0, M2MBase::GET_ALLOWED); red=1; green=1; blue=1; //printf("\r\nMAIN\n\r"); sensorName = "Front Window 2"; name = "John Lynam"; distance(); UltraSonicData = distance_cm; //return distance_cm; } //dictance long distance() { //printf("in distance function\r\n"); duration = echo_duration(); distance_cm = (duration/2)/29.1; if(distance_cm < 20) { distanceDetect(); } else { } printf("end distance function\r\n"); return distance_cm; } long echo_duration() { //printf("in echo duration function\r\n"); timer.reset(); //reset timer trig=1; // trigger low wait_us(2); // wait trig=0; // trigger high wait_us(10); trig=1; // trigger low while(!echo); // start pulseIN timer.start(); while(echo); timer.stop(); //printf("end echo duration function\r\n"); return timer.read_us(); } long distanceDetect() { DigitalOut led(LED_RED); DigitalOut led2(LED_BLUE); //an action to demo distance change led = !led; // toggle led wait(0.2f); led = !led2; // toggle led wait(0.2f); printf("Distance change detected: %d", distance_cm); printf("\n\r"); return distance_cm; } // Registered callback for mbed Client DigitalOut statusLed(LED1, 1); void registered() { printf("Welcome John Lynam"); statusLed = 0; }