Code for sensor nodes connected by radio receiver with gateway
Dependencies: mbed WakeUp coapRadioClient DHT11
distanceMeter.cpp@7:2393eb882f82, 2019-01-25 (annotated)
- Committer:
- Ka_myk
- Date:
- Fri Jan 25 12:11:18 2019 +0000
- Revision:
- 7:2393eb882f82
- Parent:
- 6:5102672e8ff4
inrement message id
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Ka_myk | 3:4ffffdb5230f | 1 | #include "distanceMeter.h" |
Ka_myk | 3:4ffffdb5230f | 2 | #include "mbed.h" |
Ka_myk | 3:4ffffdb5230f | 3 | |
Ka_myk | 3:4ffffdb5230f | 4 | void DistanceMeter::echoUp() { |
Ka_myk | 3:4ffffdb5230f | 5 | timer.start(); |
Ka_myk | 3:4ffffdb5230f | 6 | } |
Ka_myk | 3:4ffffdb5230f | 7 | |
Ka_myk | 3:4ffffdb5230f | 8 | void DistanceMeter::echoDown() { |
Ka_myk | 3:4ffffdb5230f | 9 | timer.stop(); |
Ka_myk | 3:4ffffdb5230f | 10 | timeUs = timer.read_us(); |
Ka_myk | 3:4ffffdb5230f | 11 | timer.reset(); |
Ka_myk | 3:4ffffdb5230f | 12 | timeReady = true; |
Ka_myk | 3:4ffffdb5230f | 13 | } |
Ka_myk | 3:4ffffdb5230f | 14 | |
Ka_myk | 3:4ffffdb5230f | 15 | DistanceMeter::DistanceMeter(PinName echoPin, PinName triggerPin): timeReady(false), echo(echoPin), trigger(triggerPin) { |
Ka_myk | 3:4ffffdb5230f | 16 | trigger = 0; |
Ka_myk | 3:4ffffdb5230f | 17 | } |
Ka_myk | 3:4ffffdb5230f | 18 | |
Ka_myk | 3:4ffffdb5230f | 19 | void DistanceMeter::initialize() { |
thewiztory | 6:5102672e8ff4 | 20 | echo.rise(this, &DistanceMeter::echoUp); |
thewiztory | 6:5102672e8ff4 | 21 | echo.fall(this, &DistanceMeter::echoDown); |
Ka_myk | 3:4ffffdb5230f | 22 | } |
Ka_myk | 3:4ffffdb5230f | 23 | |
Ka_myk | 3:4ffffdb5230f | 24 | int DistanceMeter::read() { |
Ka_myk | 3:4ffffdb5230f | 25 | trigger = 1; |
Ka_myk | 3:4ffffdb5230f | 26 | wait_us(10); |
Ka_myk | 3:4ffffdb5230f | 27 | trigger = 0; |
Ka_myk | 3:4ffffdb5230f | 28 | |
Ka_myk | 3:4ffffdb5230f | 29 | while(!timeReady) |
Ka_myk | 3:4ffffdb5230f | 30 | wait_us(100); |
Ka_myk | 3:4ffffdb5230f | 31 | |
Ka_myk | 3:4ffffdb5230f | 32 | timeReady = false; |
Ka_myk | 3:4ffffdb5230f | 33 | return timeUs * 17 / 1000; // dist in cm, (time * 340) / (2 * 10000) |
Ka_myk | 3:4ffffdb5230f | 34 | |
Ka_myk | 3:4ffffdb5230f | 35 | } |
Ka_myk | 3:4ffffdb5230f | 36 | |
Ka_myk | 3:4ffffdb5230f | 37 | int DistanceMeter::getSensorId() { |
Ka_myk | 3:4ffffdb5230f | 38 | return 0; |
Ka_myk | 3:4ffffdb5230f | 39 | } |