
wiznet-stm32 nucleo
Dependencies: mbed WIZnet_Library_W5100_W3150
Revision 0:a7892b6808b1, committed 2020-07-23
- Comitter:
- nojetry
- Date:
- Thu Jul 23 06:58:07 2020 +0000
- Commit message:
- Test
Changed in this revision
--- /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