Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: HTTPServer WIZnetInterface mbed-rpc DHT mbed-src
main.cpp@1:cffa64d79a8b, 2015-07-30 (annotated)
- Committer:
- kaizen
- Date:
- Thu Jul 30 02:31:11 2015 +0000
- Revision:
- 1:cffa64d79a8b
- Parent:
- 0:ca442200bc8a
Added function for controlling led and get temperature information
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| kaizen | 0:ca442200bc8a | 1 | #include "mbed.h" |
| kaizen | 0:ca442200bc8a | 2 | #include "EthernetInterface.h" |
| kaizen | 0:ca442200bc8a | 3 | #include "HTTPServer.h" |
| kaizen | 0:ca442200bc8a | 4 | #include "mbed_rpc.h" |
| kaizen | 1:cffa64d79a8b | 5 | #include "DHT.h" |
| kaizen | 1:cffa64d79a8b | 6 | |
| kaizen | 1:cffa64d79a8b | 7 | RpcDigitalOut led1(D9,"led1"); |
| kaizen | 1:cffa64d79a8b | 8 | RpcDigitalOut led2(D10,"led2"); |
| kaizen | 1:cffa64d79a8b | 9 | RpcDigitalOut led3(D11,"led3"); |
| kaizen | 0:ca442200bc8a | 10 | |
| kaizen | 1:cffa64d79a8b | 11 | //RPCVarialbe<float> RPCTemperature(&GetTemperature, "Temperature"); |
| kaizen | 1:cffa64d79a8b | 12 | //RPCVarialbe<float> RPCHumidity(&GetHumidity, "Humidity"); |
| kaizen | 1:cffa64d79a8b | 13 | void Get_Temp_and_Humidity(Arguments * input, Reply * output); |
| kaizen | 1:cffa64d79a8b | 14 | |
| kaizen | 1:cffa64d79a8b | 15 | RPCFunction Temp_and_Humidity_Finder(&Get_Temp_and_Humidity, "Temp_and_Humidity_Finder"); |
| kaizen | 0:ca442200bc8a | 16 | |
| kaizen | 0:ca442200bc8a | 17 | EthernetInterface eth; |
| kaizen | 0:ca442200bc8a | 18 | HTTPServer svr; |
| kaizen | 0:ca442200bc8a | 19 | |
| kaizen | 1:cffa64d79a8b | 20 | DHT sensor(D4, DHT11); |
| kaizen | 1:cffa64d79a8b | 21 | |
| kaizen | 1:cffa64d79a8b | 22 | void Get_Temp_and_Humidity(Arguments * input, Reply *output){ |
| kaizen | 1:cffa64d79a8b | 23 | int error = 0; |
| kaizen | 1:cffa64d79a8b | 24 | float h = 0.0f, c = 0.0f; |
| kaizen | 1:cffa64d79a8b | 25 | char arg[100]; |
| kaizen | 1:cffa64d79a8b | 26 | |
| kaizen | 1:cffa64d79a8b | 27 | error = sensor.readData(); |
| kaizen | 1:cffa64d79a8b | 28 | if (0 == error) { |
| kaizen | 1:cffa64d79a8b | 29 | c = sensor.ReadTemperature(CELCIUS); |
| kaizen | 1:cffa64d79a8b | 30 | h = sensor.ReadHumidity(); |
| kaizen | 1:cffa64d79a8b | 31 | sprintf(arg,"Temperature in Celcius: %4.2f, Humidity is %4.2f",c, h); |
| kaizen | 1:cffa64d79a8b | 32 | |
| kaizen | 1:cffa64d79a8b | 33 | output->putData(arg); |
| kaizen | 1:cffa64d79a8b | 34 | } |
| kaizen | 1:cffa64d79a8b | 35 | } |
| kaizen | 1:cffa64d79a8b | 36 | |
| kaizen | 0:ca442200bc8a | 37 | int main() { |
| kaizen | 0:ca442200bc8a | 38 | //Turn the LEDs off |
| kaizen | 1:cffa64d79a8b | 39 | uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x32, 0x23, 0x42}; |
| kaizen | 1:cffa64d79a8b | 40 | led1.write(0); |
| kaizen | 1:cffa64d79a8b | 41 | led2.write(0); |
| kaizen | 1:cffa64d79a8b | 42 | led3.write(0); |
| kaizen | 0:ca442200bc8a | 43 | |
| kaizen | 0:ca442200bc8a | 44 | RPC::add_rpc_class<RpcDigitalOut>(); |
| kaizen | 0:ca442200bc8a | 45 | |
| kaizen | 0:ca442200bc8a | 46 | printf("Setting up...\n"); |
| kaizen | 0:ca442200bc8a | 47 | eth.init(mac_addr); |
| kaizen | 0:ca442200bc8a | 48 | int ethErr = eth.connect(); |
| kaizen | 0:ca442200bc8a | 49 | if(ethErr < 0) |
| kaizen | 0:ca442200bc8a | 50 | { |
| kaizen | 0:ca442200bc8a | 51 | printf("Error %d in setup.\n", ethErr); |
| kaizen | 0:ca442200bc8a | 52 | return -1; |
| kaizen | 0:ca442200bc8a | 53 | } |
| kaizen | 0:ca442200bc8a | 54 | svr.addHandler<HTTPRpcRequestHandler>("/rpc"); |
| kaizen | 0:ca442200bc8a | 55 | |
| kaizen | 0:ca442200bc8a | 56 | //attach server to port 80 |
| kaizen | 1:cffa64d79a8b | 57 | printf("Listening...\n"); |
| kaizen | 0:ca442200bc8a | 58 | svr.start(80, ð); |
| kaizen | 0:ca442200bc8a | 59 | |
| kaizen | 0:ca442200bc8a | 60 | Timer tm; |
| kaizen | 0:ca442200bc8a | 61 | tm.start(); |
| kaizen | 0:ca442200bc8a | 62 | //Listen indefinitely |
| kaizen | 0:ca442200bc8a | 63 | while(true) |
| kaizen | 0:ca442200bc8a | 64 | { |
| kaizen | 0:ca442200bc8a | 65 | svr.poll(); |
| kaizen | 0:ca442200bc8a | 66 | if(tm.read()>.5) |
| kaizen | 0:ca442200bc8a | 67 | { |
| kaizen | 0:ca442200bc8a | 68 | tm.start(); |
| kaizen | 0:ca442200bc8a | 69 | } |
| kaizen | 0:ca442200bc8a | 70 | } |
| kaizen | 1:cffa64d79a8b | 71 | } |