HTTP server is created by connecting an ENC28J60 module to the mbed board. It is serving a webpage which enables remotely turn on/off LED1 (or other device). Compile, download, run and type 192.168.0.170/secret/ into your web browser and Flot Interactivity Graphique

Dependencies:   UIPEthernet mbed FCT_WEB hebergement

Fork of WebSwitch_ENC28J60 by Zoltan Hudak

Page généré : /media/uploads/Fo170/webservernucleo.png

P.S : 1ère mise en fonctionnement de la carte NUCLEO STM32F411RET6 Instruction pour la mise en fonctionnement : https://developer.mbed.org/users/Fo170/notebook/the-stm32-nucleo-64-board/

Vue d'ensemble : /media/uploads/Fo170/vue_d_ensemble_1.jpg

/media/uploads/Fo170/vue_d_ensemble_2.jpg

Vue de la carte ENC28J60 : /media/uploads/Fo170/carte_enc28j60_a.jpg

/media/uploads/Fo170/carte_enc28j60_b.jpg

Carte Nucléo : /media/uploads/Fo170/nucleo_stm32f411re.jpg

Revision:
4:d34811deedab
Parent:
3:0133517ba02d
Child:
5:a46a2512e17e
--- a/main.cpp	Sat Dec 20 11:23:20 2014 +0000
+++ b/main.cpp	Wed Feb 04 19:27:26 2015 +0000
@@ -1,6 +1,7 @@
 /* In this example LED1 is switched on/off using a web browser connected to this HTTP server.
- * The example is based on the Tuxgraphics Web Switch <tuxgraphics.org>.
- * This HTTP server is built around the the ENC28J60 chip driven by the UIPEthernet library <https://github.com/ntruchsess/arduino_uip>
+ * The example is based on the Tuxgraphics Web Switch <http://www.tuxgraphics.org/>.
+ * This HTTP server is built around the the ENC28J60 chip 
+ * driven by the UIPEthernet library <https://github.com/ntruchsess/arduino_uip>
  * ported to mbed.
  */
 
@@ -14,17 +15,32 @@
 
 // UIPEthernet is the name of a global instance of UIPEthernetClass.
 // Do not change the name! It is used within the UIPEthernet library.
-// Adapt the SPI pin names to your mbed platform/board if not present yet.
 #if defined(TARGET_LPC1768)
-UIPEthernetClass UIPEthernet(p11, p12, p13, p8);          // mosi, miso, sck, cs
+UIPEthernetClass UIPEthernet(p11, p12, p13, p8);        // mosi, miso, sck, cs
 #elif defined(TARGET_LPC1114)
 UIPEthernetClass UIPEthernet(dp2, dp1, dp6, dp25);      // mosi, miso, sck, cs
 #elif defined(TARGET_LPC11U68)
 UIPEthernetClass UIPEthernet(P0_9, P0_8, P1_29, P0_2);  // mosi, miso, sck, cs
 #elif defined (TARGET_NUCLEO_F103RB)
 UIPEthernetClass UIPEthernet(PB_5, PB_4, PB_3, PB_6);   // mosi, miso, sck, cs
+#elif defined (TARGET_NUCLEO_F401RE)
+UIPEthernetClass UIPEthernet(PB_5, PB_4, PB_3, PB_6);   // mosi, miso, sck, cs
+#elif defined (TARGET_NUCLEO_F411RE)
+UIPEthernetClass UIPEthernet(PB_5, PB_4, PB_3, PB_6);   // mosi, miso, sck, cs
+
+// If your board/plaform is not present yet then uncomment the following two lines and replace TARGET_YOUR_BOARD as appropriate.
+
+//#elif defined (TARGET_YOUR_BOARD)
+//UIPEthernetClass UIPEthernet(SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS);   // mosi, miso, sck, cs
+
 #endif
 
+// Note:
+// If it happends that any of the SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS pins collide with LED1 pin
+// then either use different SPI port (if available on the board) and change the pin names in the constructor UIPEthernet(...) accordingly
+// or instead of using LED1 pin, select a free pin (not used by SPI port) and connect to it an external LED which is connected to a resitor that is connected to the groud.
+// In the second case remember to replace LED1 in sw(LED1) constructor (see below).
+
 
 // MAC number must be unique within the connected network. Modify as appropriate.
 const uint8_t    MY_MAC[6] = {0x00,0x01,0x02,0x03,0x04,0x06};
@@ -33,9 +49,7 @@
 const uint16_t   MY_PORT = 80;      // for HTTP connection
 EthernetServer   myServer = EthernetServer(MY_PORT);
 // In this example we are turning on/off LED1.
-// Change the pin name if you would like to switch on/off something else.
-// However, make sure you avoid SPI pin names used already for UIPEthernet.
-DigitalOut       sw(LED1);
+DigitalOut       sw(LED1);  // Change LED1 to a pin of your choice. However, make sure that it does not collide with any of the SPI pins already used in the UIPEthernet(...) constructor above!
 
 const string PASSWORD     = "secret";   // change as you like
 const string HTTP_OK      = "HTTP/1.0 200 OK";