This is RPC_HTTP Example for using WIZnetInterface

Dependencies:   HTTPServer WIZnetInterface mbed-rpc DHT mbed-src

I want to make example which can use mbed RPC library and Python interface so I made this project. This project is led controller and temperature/humidity checker with android application. In brief, This project has function as below.

  • Controlling tri-color led in the mbed platform ( On/Off )
  • Checking current led status ( It can check led color using TTS(Text to Speech) on Android)
  • Checking temperature and humidity information using Android

This example used mbed RPC library to control WIzwiki-W7500 board with Android and Android application is made using kivy library of Python.

https://farm1.staticflickr.com/470/20036515102_d298ed0b5f_o.png

Simple Application in Android

I explain how to make android application using kivy library of Python. This android application can control mbed device and get information from mbed device. For implementation and operation this application, you have to have step as below.

https://farm1.staticflickr.com/297/19891752250_3853ef53aa_z.jpg

Demo Video

For more detailed information, refer to this URL.

http://www.life4iot.com/2015/07/28/remote-temperaturehumidity-checker-led-controller-using-mbed-rpc/?lang=en

Committer:
kaizen
Date:
Wed Jul 22 09:41:02 2015 +0000
Revision:
0:ca442200bc8a
Child:
1:cffa64d79a8b
First release

Who changed what in which revision?

UserRevisionLine numberNew 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 0:ca442200bc8a 5
kaizen 0:ca442200bc8a 6 RpcDigitalOut led1(LED1,"led1");
kaizen 0:ca442200bc8a 7
kaizen 0:ca442200bc8a 8 EthernetInterface eth;
kaizen 0:ca442200bc8a 9 HTTPServer svr;
kaizen 0:ca442200bc8a 10
kaizen 0:ca442200bc8a 11 int main() {
kaizen 0:ca442200bc8a 12 //Turn the LEDs off
kaizen 0:ca442200bc8a 13 uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x00, 0x00};
kaizen 0:ca442200bc8a 14 led1.write(1);
kaizen 0:ca442200bc8a 15
kaizen 0:ca442200bc8a 16 RPC::add_rpc_class<RpcDigitalOut>();
kaizen 0:ca442200bc8a 17
kaizen 0:ca442200bc8a 18 printf("Setting up...\n");
kaizen 0:ca442200bc8a 19 eth.init(mac_addr);
kaizen 0:ca442200bc8a 20 int ethErr = eth.connect();
kaizen 0:ca442200bc8a 21 if(ethErr < 0)
kaizen 0:ca442200bc8a 22 {
kaizen 0:ca442200bc8a 23 printf("Error %d in setup.\n", ethErr);
kaizen 0:ca442200bc8a 24 return -1;
kaizen 0:ca442200bc8a 25 }
kaizen 0:ca442200bc8a 26
kaizen 0:ca442200bc8a 27 svr.addHandler<HTTPRpcRequestHandler>("/rpc");
kaizen 0:ca442200bc8a 28
kaizen 0:ca442200bc8a 29 //attach server to port 80
kaizen 0:ca442200bc8a 30 svr.start(80, &eth);
kaizen 0:ca442200bc8a 31
kaizen 0:ca442200bc8a 32 printf("Listening...\n");
kaizen 0:ca442200bc8a 33
kaizen 0:ca442200bc8a 34 Timer tm;
kaizen 0:ca442200bc8a 35 tm.start();
kaizen 0:ca442200bc8a 36 //Listen indefinitely
kaizen 0:ca442200bc8a 37 while(true)
kaizen 0:ca442200bc8a 38 {
kaizen 0:ca442200bc8a 39 svr.poll();
kaizen 0:ca442200bc8a 40 if(tm.read()>.5)
kaizen 0:ca442200bc8a 41 {
kaizen 0:ca442200bc8a 42 tm.start();
kaizen 0:ca442200bc8a 43 }
kaizen 0:ca442200bc8a 44 }
kaizen 0:ca442200bc8a 45 }