wiznet-stm32 nucleo

Dependencies:   mbed WIZnet_Library_W5100_W3150

Files at this revision

API Documentation at this revision

Comitter:
nojetry
Date:
Thu Jul 23 06:58:07 2020 +0000
Commit message:
Test

Changed in this revision

WIZnet_Library.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WIZnet_Library.lib	Thu Jul 23 06:58:07 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/nojetry/code/WIZnet_Library_W5100_W3150/#dbae9b0c4a46
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Jul 23 06:58:07 2020 +0000
@@ -0,0 +1,116 @@
+#include "mbed.h"
+#include "WIZnetInterface.h"
+ 
+#define ST_NUCLEO
+#define MYPORT    80
+ 
+const char *IP_Addr    = "10.47.88.197";
+const char *IP_Subnet  = "255.255.255.0";
+const char *IP_Gateway = "10.47.88.1";
+unsigned char MAC_Addr[6] = {0x3c, 0xe1, 0xa1, 0xc5, 0x2c, 0xfa};
+ 
+Serial pc(USBTX, USBRX);
+AnalogIn adc_temp(PA_0);
+DigitalOut myled(LED2);
+DigitalOut enable_pin(PC_8);
+
+
+ 
+SPI spi(PB_15,PB_14,PB_13); //(mosi, miso, sclk, ssel=nc)
+WIZnetInterface ethernet(&spi,PC_6,PC_5);  //(spi* , cs , reset)
+ 
+char page_length[]= {"\r\nHTTP/1.0 200 OK\r\nContent-Type: text/html\r\nContent-Length: 2400\r\n\r\n"};
+char page_head  []= {"<!doctype html>\n\t<head>\n\t\t<style type=\"text/css\">\n\t\t\t.margem_laranja{\n\t\t\t\twidth: 98%;\n\t\t\t\theight: 40px;\n\t\t\t\tbackground-color:#F5B317;\n\t\t\t\tcolor: #FFFFFF;\n\t\t\t}\n\t\t\t.margem_cinza{\n\t\t\t\twidth: 98%;\n\t\t\t\theight: 40px;\n\t\t\t\tbackground-color:#6F6B5F;\n\t\t\t\tcolor: #FFFFFF;\n\t\t\t}\n\t\t\tbutton{\n\t\t\t\tfont-family:verdana;\n\t\t\t\tfont-size:10pt;\n\t\t\t\tbackground-color:#B0F0D2;\n\t\t\t\tborder: 50pt;\n\t\t\t\tborder-radius: 15px;\n\t\t\t\theight:15pt;\n\t\t\t\twidth:50pt;\n\t\t\t}\n\t\t</style>\n\t\t<title>Webserver</title>\n\t\t<meta http-equiv=\"refresh\" content=\"4\">\n\t\t<meta name=\"viewport\" content=\"width=320\">\n\t\t<meta name=\"viewport\" content=\"width=device-width\">\n\t\t<meta charset=\"utf-8\">\n\t\t<meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\">\n\t</head>"};
+char page_body  []= {"<body bgcolor=\"#E0FFFF\">\n\t\t<center>\n\t\t<div class=\"margem_laranja\"></div>\n\t\t<font size=\"7\" face=\"verdana\" color=\"#2E2E2E\">ARM Webserver </font>\n\t\t<br /><br /><br />\n\t\t<font size=\"5\" face=\"verdana\" color=\"black\">Temperature</font><br /><br />\n\t\t<font size=\"7\" face=\"verdana\" color=\"black\">"};
+char page_temp  []={"  "};
+char page_body_2[]= {" °C</font><br /><br />\n\t\t<font size=\"5\" face=\"verdana\" color=\"black\">LED</font><br /><br />\n\t\t<form action=\"1\" method=\"get\">\n\t\t\t<button type=submit style=\"width:200px;\" id=\"bot\" >LED on</button>\n\t\t</form><br />\n\t\t<form action=\"0\" method=\"get\">\n\t\t\t<button type=submit style=\"width:200px;\" id=\"bot\" >LED off</button>\n\t\t</form><br /><br />\n\t\t<font size=\"2\" face=\"verdana\" color=\"black\">Webserver on STM32 Nucleo with ethernet shield from Wiznet NM1070B+/W3150 </font><br /><br />\n\t\t<font size=\"2\" face=\"verdana\" color=\"black\">Made by: Jens Trydal</font><br />\n\t\t<font size=\"2\" face=\"verdana\" color=\"black\">Email: jens.trydal@hotmail.com</font><br />\n\t\t<font size=\"2\" face=\"verdana\" color=\"black\">-</font><br />\n\t</body>\n</html>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"};
+char get_buf    []= {"          "};
+ 
+int get_request (char* buf_get, int size,TCPSocketConnection& client){
+    
+    char buffer[300];
+    client.receive(buffer, sizeof(buffer) );
+    int get_size=0;
+    for(int i=0, k=0; i<sizeof(buffer) && k < 2; i++) {
+        if(buffer[i]==' ') {
+            k++;
+        }
+        if (k==1) {
+            buf_get[get_size] = buffer[i];
+            get_size++;
+        }
+    }
+    return get_size;
+}
+ 
+int main(){
+    
+    enable_pin = 1;
+    pc.baud(115200);
+    pc.printf("Starting\r\n");
+ 
+    while(1) {
+        int ret = ethernet.init(MAC_Addr,IP_Addr,IP_Subnet,IP_Gateway);
+        if (!ret) {
+            pc.printf("Initialized, MAC: %s\r\n", ethernet.getMACAddress());
+            ret = ethernet.connect();
+            if (!ret) {
+                pc.printf("IP: %s, MASK: %s, GW: %s\r\n",
+                          ethernet.getIPAddress(), ethernet.getNetworkMask(), ethernet.getGateway());
+            } else {
+                pc.printf("Error ethernet.connect() - ret = %d\r\n", ret);
+                exit(0);
+            }
+        } else {
+            pc.printf("Error ethernet.init() - ret = %d\r\n", ret);
+            exit(0);
+        }
+ 
+        TCPSocketServer server;
+        server.bind(MYPORT);
+        server.listen();
+ 
+        while (1) {
+            pc.printf("\nWait for new connection...\r\n");
+            TCPSocketConnection client;
+            server.accept(client);
+            client.set_blocking(false, 0); // Timeout=0.
+            pc.printf("Connection from: %s\r\n", client.get_address());
+            int temp = (adc_temp.read()*10);
+            page_temp  [0]= (adc_temp.read()*10) +'0'; 
+            page_temp  [1]= ((adc_temp.read()*100)-temp*10) +'0' ; 
+            
+            if (client.is_connected() == true){
+                
+                int j = get_request(get_buf , sizeof(get_buf), client);
+                
+                if(client.is_fin_received()) {
+                    client.close();
+                }
+                
+                client.send (page_length,   sizeof(page_length));
+                client.send (page_head,    sizeof(page_head));
+                client.send (page_body,    sizeof(page_body));
+                client.send (page_temp,    sizeof(page_temp));
+                client.send (page_body_2,  sizeof(page_body_2));
+                
+                pc.printf("get_buf[2] = %c \n", get_buf[2] );
+                if(get_buf[2] == '1'){
+                    pc.printf("LED on \n");
+                    myled = 1;
+                }else if(get_buf[2] == '0'){
+                    pc.printf("LED off \n");
+                    myled = 0;    
+                }
+                
+                pc.printf("print \n");
+                for(int i=0 ; i< j ; i++) {
+                    pc.printf("%c",get_buf[i]);
+                }
+                pc.printf("\n");
+                
+            }
+            pc.printf("\n Disconnected.\r\n");
+        }
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Jul 23 06:58:07 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file