Version Mai 2019. Ce programme permet de faire clignoter le led1 du mbed à une fréquence saisie sur une page web. Transfert d'une variable entière du navigateur vers mbed.

Dependencies:   mbed HTTPServer EthernetNetIf RPCInterface

Ce programme permet de faire clignoter le led1 du mbed à une fréquence saisie sur une page web. Transfert d'une variable entière du navigateur vers mbed via RPC. Pour fonctionner, ce programme a besoin d'un fichier html/javascript nommé index.htm, joint ci-après.

/media/uploads/LouisReynier/index_mai_2019.bin

/!\ Pour fonctionner ce fichier doit être renommé index.htm

Committer:
LouisReynier
Date:
Thu Apr 06 18:56:46 2017 +0000
Revision:
3:c2b64cce42d8
Parent:
1:114e347434c1
Une version de serveur mbed embarqu? qui commande 1 led et qui lit un potentiometre + variable temps.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:0b1369ae8b74 1 #include "mbed.h"
donatien 0:0b1369ae8b74 2 #include "EthernetNetIf.h"
donatien 0:0b1369ae8b74 3 #include "HTTPServer.h"
LouisReynier 3:c2b64cce42d8 4 #include "SerialRPCInterface.h"
LouisReynier 3:c2b64cce42d8 5
LouisReynier 3:c2b64cce42d8 6 // LR 2/2/17
LouisReynier 3:c2b64cce42d8 7 // sur ce fichier j'ai rajouté une variable RPC count que je peux lire à distance
LouisReynier 3:c2b64cce42d8 8 // adresse/rpc/count/read/
donatien 0:0b1369ae8b74 9
donatien 0:0b1369ae8b74 10 DigitalOut led1(LED1, "led1");
donatien 0:0b1369ae8b74 11 DigitalOut led2(LED2, "led2");
donatien 0:0b1369ae8b74 12 DigitalOut led3(LED3, "led3");
donatien 0:0b1369ae8b74 13 DigitalOut led4(LED4, "led4");
LouisReynier 3:c2b64cce42d8 14 AnalogIn Pot1(p19, "pot1");
LouisReynier 3:c2b64cce42d8 15
LouisReynier 3:c2b64cce42d8 16 int count = 0 ;
LouisReynier 3:c2b64cce42d8 17 RPCVariable<int> rpc_count(&count, "count");
donatien 0:0b1369ae8b74 18
donatien 0:0b1369ae8b74 19 LocalFileSystem fs("webfs");
donatien 0:0b1369ae8b74 20
donatien 0:0b1369ae8b74 21 EthernetNetIf eth;
donatien 0:0b1369ae8b74 22 HTTPServer svr;
donatien 0:0b1369ae8b74 23
donatien 0:0b1369ae8b74 24 int main() {
donatien 0:0b1369ae8b74 25 Base::add_rpc_class<DigitalOut>();
donatien 0:0b1369ae8b74 26
donatien 1:114e347434c1 27 printf("Setting up...\n");
LouisReynier 3:c2b64cce42d8 28
LouisReynier 3:c2b64cce42d8 29 // modif LR config IP manuelle sinon dhcp !
LouisReynier 3:c2b64cce42d8 30 EthernetNetIf eth( IpAddr(192,168,1,102), // IP
LouisReynier 3:c2b64cce42d8 31 IpAddr(255,255,255,0), // Subnet mask
LouisReynier 3:c2b64cce42d8 32 IpAddr(192,168,1,1), // Gateway
LouisReynier 3:c2b64cce42d8 33 IpAddr(192,168,1,1) ); // DNS
LouisReynier 3:c2b64cce42d8 34
LouisReynier 3:c2b64cce42d8 35
donatien 0:0b1369ae8b74 36 EthernetErr ethErr = eth.setup();
donatien 0:0b1369ae8b74 37 if(ethErr)
donatien 0:0b1369ae8b74 38 {
donatien 0:0b1369ae8b74 39 printf("Error %d in setup.\n", ethErr);
donatien 0:0b1369ae8b74 40 return -1;
donatien 0:0b1369ae8b74 41 }
donatien 0:0b1369ae8b74 42 printf("Setup OK\n");
LouisReynier 3:c2b64cce42d8 43 // on définit où seront stockés les fichiers !
donatien 0:0b1369ae8b74 44 FSHandler::mount("/webfs", "/files"); //Mount /webfs path on /files web path
donatien 0:0b1369ae8b74 45 FSHandler::mount("/webfs", "/"); //Mount /webfs path on web root path
donatien 0:0b1369ae8b74 46
LouisReynier 3:c2b64cce42d8 47 svr.addHandler<SimpleHandler>("/hello"); // http://a.b.c.d/hello : hello world !
donatien 0:0b1369ae8b74 48 svr.addHandler<RPCHandler>("/rpc");
donatien 0:0b1369ae8b74 49 svr.addHandler<FSHandler>("/files");
donatien 0:0b1369ae8b74 50 svr.addHandler<FSHandler>("/"); //Default handler
donatien 0:0b1369ae8b74 51 //Example : Access to mbed.htm : http://a.b.c.d/mbed.htm or http://a.b.c.d/files/mbed.htm
donatien 0:0b1369ae8b74 52
donatien 0:0b1369ae8b74 53 svr.bind(80);
donatien 0:0b1369ae8b74 54
donatien 0:0b1369ae8b74 55 printf("Listening...\n");
donatien 0:0b1369ae8b74 56
donatien 0:0b1369ae8b74 57 Timer tm;
donatien 0:0b1369ae8b74 58 tm.start();
donatien 0:0b1369ae8b74 59 //Listen indefinitely
donatien 0:0b1369ae8b74 60 while(true)
donatien 0:0b1369ae8b74 61 {
donatien 0:0b1369ae8b74 62 Net::poll();
donatien 0:0b1369ae8b74 63 if(tm.read()>.5)
donatien 0:0b1369ae8b74 64 {
donatien 0:0b1369ae8b74 65 led1=!led1; //Show that we are alive
LouisReynier 3:c2b64cce42d8 66 count ++ ;
donatien 0:0b1369ae8b74 67 tm.start();
donatien 0:0b1369ae8b74 68 }
donatien 0:0b1369ae8b74 69 }
donatien 0:0b1369ae8b74 70
donatien 0:0b1369ae8b74 71 return 0;
donatien 0:0b1369ae8b74 72
donatien 0:0b1369ae8b74 73 }
LouisReynier 3:c2b64cce42d8 74 // http://192.168.1.102/rpc/pot1/read dans le navigateur permet de lire l'état du potard !