A smart remote using the sparkfun IR transmitter and receiver. The program also uses a web server to show the buttons on a mobile platform.

Dependencies:   EthernetInterface HTTPServer RemoteIR SDFileSystem mbed-rpc mbed-rtos mbed

Fork of SmartRemoteClean by Sarvagya Vaish

Committer:
sarvagyavaish
Date:
Mon Dec 02 20:21:10 2013 +0000
Revision:
3:a3b4d032f48f
Parent:
HTTPServerHelloWorld.cpp@0:5630d7e58a0b
Child:
4:36e0aa194b45
dependencies broken;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:5630d7e58a0b 1 #include "mbed.h"
donatien 0:5630d7e58a0b 2 #include "EthernetNetIf.h"
donatien 0:5630d7e58a0b 3 #include "HTTPServer.h"
donatien 0:5630d7e58a0b 4
sarvagyavaish 3:a3b4d032f48f 5
sarvagyavaish 3:a3b4d032f48f 6 // Start DB
sarvagyavaish 3:a3b4d032f48f 7 #include <stdio.h>
sarvagyavaish 3:a3b4d032f48f 8 #include <stdlib.h>
sarvagyavaish 3:a3b4d032f48f 9 #include "SDFileSystem.h"
sarvagyavaish 3:a3b4d032f48f 10 #include "db.h"
sarvagyavaish 3:a3b4d032f48f 11 // End DB
sarvagyavaish 3:a3b4d032f48f 12
sarvagyavaish 3:a3b4d032f48f 13
sarvagyavaish 3:a3b4d032f48f 14 // Start RPC
sarvagyavaish 3:a3b4d032f48f 15 #include "RPCVariable.h"
sarvagyavaish 3:a3b4d032f48f 16 int Request;
sarvagyavaish 3:a3b4d032f48f 17 int Learn = 0;
sarvagyavaish 3:a3b4d032f48f 18 //Make these variables accessible over RPC by attaching them to an RPCVariable
sarvagyavaish 3:a3b4d032f48f 19 RPCVariable<int>(&Request), "Request");
sarvagyavaish 3:a3b4d032f48f 20 //RPCVariable RPCLearn(&Learn, "Learn");
sarvagyavaish 3:a3b4d032f48f 21 // End RPC
sarvagyavaish 3:a3b4d032f48f 22
sarvagyavaish 3:a3b4d032f48f 23
sarvagyavaish 3:a3b4d032f48f 24 EthernetNetIf eth;
donatien 0:5630d7e58a0b 25 HTTPServer svr;
donatien 0:5630d7e58a0b 26
donatien 0:5630d7e58a0b 27 DigitalOut led1(LED1);
donatien 0:5630d7e58a0b 28
sarvagyavaish 3:a3b4d032f48f 29 int main()
sarvagyavaish 3:a3b4d032f48f 30 {
sarvagyavaish 3:a3b4d032f48f 31 printf("Setting up...\n");
sarvagyavaish 3:a3b4d032f48f 32 EthernetErr ethErr = eth.setup();
sarvagyavaish 3:a3b4d032f48f 33 if(ethErr) {
sarvagyavaish 3:a3b4d032f48f 34 printf("Error %d in setup.\n", ethErr);
sarvagyavaish 3:a3b4d032f48f 35 return -1;
sarvagyavaish 3:a3b4d032f48f 36 }
sarvagyavaish 3:a3b4d032f48f 37 printf("Setup OK\n");
sarvagyavaish 3:a3b4d032f48f 38
sarvagyavaish 3:a3b4d032f48f 39 svr.addHandler<SimpleHandler>("/"); //Default handler
sarvagyavaish 3:a3b4d032f48f 40 svr.bind(80);
sarvagyavaish 3:a3b4d032f48f 41
sarvagyavaish 3:a3b4d032f48f 42
sarvagyavaish 3:a3b4d032f48f 43 // DB Init
sarvagyavaish 3:a3b4d032f48f 44 mkdir("/sd/SmartRemote", 0777);
sarvagyavaish 3:a3b4d032f48f 45
sarvagyavaish 3:a3b4d032f48f 46 char code[] = "123AB";
sarvagyavaish 3:a3b4d032f48f 47 char name[] = "Button Name";
donatien 0:5630d7e58a0b 48
sarvagyavaish 3:a3b4d032f48f 49 char results_code[128];
sarvagyavaish 3:a3b4d032f48f 50 char results_name[128];
sarvagyavaish 3:a3b4d032f48f 51
sarvagyavaish 3:a3b4d032f48f 52 db_insert_tuple(code, name);
sarvagyavaish 3:a3b4d032f48f 53 FILE *fread = fopen("/sd/SmartRemote/db.txt", "r");
sarvagyavaish 3:a3b4d032f48f 54 db_find_tuple(fread, 2, results_name, results_code);
sarvagyavaish 3:a3b4d032f48f 55 fclose(fread);
sarvagyavaish 3:a3b4d032f48f 56 //End DB init
sarvagyavaish 3:a3b4d032f48f 57
sarvagyavaish 3:a3b4d032f48f 58
sarvagyavaish 3:a3b4d032f48f 59 printf("Listening...\n");
sarvagyavaish 3:a3b4d032f48f 60
sarvagyavaish 3:a3b4d032f48f 61 Timer tm;
sarvagyavaish 3:a3b4d032f48f 62 tm.start();
sarvagyavaish 3:a3b4d032f48f 63 //Listen indefinitely
sarvagyavaish 3:a3b4d032f48f 64 while(true) {
sarvagyavaish 3:a3b4d032f48f 65 Net::poll();
sarvagyavaish 3:a3b4d032f48f 66 if(tm.read()>.5) {
sarvagyavaish 3:a3b4d032f48f 67 led1=!led1; //Show that we are alive
sarvagyavaish 3:a3b4d032f48f 68 tm.start();
sarvagyavaish 3:a3b4d032f48f 69 }
donatien 0:5630d7e58a0b 70 }
sarvagyavaish 3:a3b4d032f48f 71
sarvagyavaish 3:a3b4d032f48f 72 return 0;
donatien 0:5630d7e58a0b 73 }