endpoint including temperature and distance sensors
Dependencies: mbed mbedConnectorInterface mbedEndpointNetwork TrashSensors
Fork of TempAndDistTest by
main.cpp
- Committer:
- coyotebush
- Date:
- 2015-05-02
- Revision:
- 4:1ca75e77ae33
- Parent:
- 2:b51fcb5fd114
- Child:
- 6:bbea44df21e8
File content as of revision 4:1ca75e77ae33:
#include "mbed.h" #include "EthernetInterface.h" #include "ConnectorEndpoint.h" #include "OptionsBuilder.h" #include "hcsr04.h" #include "GroveTemp.h" #include "OnBoardLED.h" #include "StaticResource.h" /* Terminal connection */ RawSerial term(USBTX, USBRX); Logger logger(&term); /* Sensors */ #define TRIG_PIN D6 #define ECHO_PIN D7 #define FIRE_THRESH 32.0 HCSR04 distS(TRIG_PIN, ECHO_PIN); GroveTempSensor tempS; /* Resources */ StaticResource mfg(&logger, "3/0/0", "Freescale"); StaticResource model(&logger, "3/0/1", "K64F mbed Ethernet demo"); /* DistanceResource distR(&logger, "3302/0/5600", distS); TemperatureResource tempR(&logger, "3303/0/5700", tempS); */ LEDResource led(&logger, "3311/1/5706"); /* invoked through linker magic via Endpoint::start() */ Connector::Options *configure_endpoint(Connector::OptionsBuilder &config) { /* NSP configuration is in nsp_configuration.h */ logger.log("configure_endpoint: building endpoint configuration..."); return config.addResource(&mfg) .addResource(&model) /* .addResource(&distR) */ /* .addResource(&tempR) */ .addResource(&led) .build(); } int main() { double temperature; unsigned int distance; logger.log("\r\n\r\nSmart Trash Can booting\r\n"); Connector::Endpoint::plumbNetwork(); Connector::Endpoint::start(); // actually, we never reach here because the Endpoint takes over while (1) { temperature = tempS.getTemp() * 3.0 / 5.0; logger.logIt("Temp: %0.1f\n\r", temperature); if (temperature > FIRE_THRESH) { logger.logIt(" OMG! THE TRASH CAN CAN IS TOTALLY ON FIRE!!\n\r"); } distS.start(); wait_ms(500); distance = distS.get_dist_cm(); logger.logIt("Distance: %d\n\r", distance); } }