for znrobotics workshop

Dependencies:   DHT22 HTTPClient SDFileSystem WIZnet_Library mbed

Fork of archlink_Temperture_dweetio by Kevin Lee

This program is for seeed arch link, using wiznet w550 ethernet interface. not compatible with mbed ethernet interface.

Committer:
Kevin_Lee
Date:
Tue Jun 30 05:41:58 2015 +0000
Revision:
1:0f6a216263aa
Parent:
0:29bbc7eec5e1
Child:
2:8b304d2b4ca5
new project

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kevin_Lee 0:29bbc7eec5e1 1 #include "mbed.h"
Kevin_Lee 0:29bbc7eec5e1 2 #include "SDFileSystem.h"
Kevin_Lee 0:29bbc7eec5e1 3 #include "BLE.h"
Kevin_Lee 0:29bbc7eec5e1 4 #include "WIZnetInterface.h"
Kevin_Lee 0:29bbc7eec5e1 5
Kevin_Lee 0:29bbc7eec5e1 6
Kevin_Lee 1:0f6a216263aa 7 #define USE_DHCP 1
Kevin_Lee 0:29bbc7eec5e1 8 #define LOOPBACKPORT 5000
Kevin_Lee 0:29bbc7eec5e1 9 int W5500_Test(void);
Kevin_Lee 1:0f6a216263aa 10
Kevin_Lee 0:29bbc7eec5e1 11 SPI spi(SPI_PSELMOSI0, SPI_PSELMISO0, SPI_PSELSCK0);
Kevin_Lee 0:29bbc7eec5e1 12 WIZnetInterface ethernet(&spi, p24, p17); // Spi ,cs, reset
Kevin_Lee 0:29bbc7eec5e1 13 int ret, dummy, lv = 1;
Kevin_Lee 0:29bbc7eec5e1 14 const char * IP_Addr = "192.168.21.247";
Kevin_Lee 0:29bbc7eec5e1 15 const char * IP_Subnet = "255.255.255.0";
Kevin_Lee 0:29bbc7eec5e1 16 const char * IP_Gateway = "192.168.21.2";
Kevin_Lee 0:29bbc7eec5e1 17 unsigned char MAC_Addr[6] = {0x00,0x08,0xDC,0x1C,0xAA,0xCA};
Kevin_Lee 0:29bbc7eec5e1 18
Kevin_Lee 0:29bbc7eec5e1 19
Kevin_Lee 0:29bbc7eec5e1 20 DigitalOut myled(LED1);
Kevin_Lee 0:29bbc7eec5e1 21 //Arch Link
Kevin_Lee 0:29bbc7eec5e1 22 Serial pc(USBTX, USBRX); /* uart */
Kevin_Lee 0:29bbc7eec5e1 23
Kevin_Lee 0:29bbc7eec5e1 24
Kevin_Lee 0:29bbc7eec5e1 25 int main() {
Kevin_Lee 1:0f6a216263aa 26 char buffer[256];
Kevin_Lee 0:29bbc7eec5e1 27 wait(1);
Kevin_Lee 0:29bbc7eec5e1 28 pc.baud(115200);
Kevin_Lee 0:29bbc7eec5e1 29 wait(1);
Kevin_Lee 0:29bbc7eec5e1 30 printf("helloworld\r\n");
Kevin_Lee 0:29bbc7eec5e1 31
Kevin_Lee 0:29bbc7eec5e1 32 if(W5500_Test() == 0) {
Kevin_Lee 0:29bbc7eec5e1 33 printf("W5500 tested OK \r\n");
Kevin_Lee 1:0f6a216263aa 34
Kevin_Lee 1:0f6a216263aa 35 TCPSocketServer server;
Kevin_Lee 1:0f6a216263aa 36
Kevin_Lee 1:0f6a216263aa 37 server.bind(LOOPBACKPORT);
Kevin_Lee 1:0f6a216263aa 38 server.listen();
Kevin_Lee 1:0f6a216263aa 39 while(1) {
Kevin_Lee 1:0f6a216263aa 40 printf("\nWait for new connection...\r\n");
Kevin_Lee 1:0f6a216263aa 41 TCPSocketConnection client;
Kevin_Lee 1:0f6a216263aa 42 server.accept(client);
Kevin_Lee 1:0f6a216263aa 43 client.set_blocking(false,0); // Timeout = 0.
Kevin_Lee 1:0f6a216263aa 44 printf("Connection from: %s\r\n",client.get_address());
Kevin_Lee 1:0f6a216263aa 45 while (client.is_connected() == true) {
Kevin_Lee 1:0f6a216263aa 46 int n = client.receive(buffer,sizeof(buffer));
Kevin_Lee 1:0f6a216263aa 47 if (n > 0) {
Kevin_Lee 1:0f6a216263aa 48 client.send_all(buffer,n);
Kevin_Lee 1:0f6a216263aa 49 } else {
Kevin_Lee 1:0f6a216263aa 50 }
Kevin_Lee 1:0f6a216263aa 51 if (client.is_fin_received()) {
Kevin_Lee 1:0f6a216263aa 52 client.close();
Kevin_Lee 1:0f6a216263aa 53 } else {
Kevin_Lee 1:0f6a216263aa 54 }
Kevin_Lee 1:0f6a216263aa 55
Kevin_Lee 1:0f6a216263aa 56 }
Kevin_Lee 1:0f6a216263aa 57 printf("Disconnected.\r\n");
Kevin_Lee 1:0f6a216263aa 58
Kevin_Lee 1:0f6a216263aa 59 }
Kevin_Lee 0:29bbc7eec5e1 60 }
Kevin_Lee 0:29bbc7eec5e1 61
Kevin_Lee 0:29bbc7eec5e1 62 while(1) {
Kevin_Lee 0:29bbc7eec5e1 63 myled = 1;
Kevin_Lee 0:29bbc7eec5e1 64 printf("light1\r\n");
Kevin_Lee 0:29bbc7eec5e1 65 wait(3);
Kevin_Lee 0:29bbc7eec5e1 66 myled = 0;
Kevin_Lee 0:29bbc7eec5e1 67 printf("light0\r\n");
Kevin_Lee 0:29bbc7eec5e1 68 wait(3);
Kevin_Lee 0:29bbc7eec5e1 69 }
Kevin_Lee 0:29bbc7eec5e1 70 }
Kevin_Lee 0:29bbc7eec5e1 71
Kevin_Lee 0:29bbc7eec5e1 72 int W5500_Test(void)
Kevin_Lee 0:29bbc7eec5e1 73 {
Kevin_Lee 0:29bbc7eec5e1 74 mbed_mac_address((char *)MAC_Addr); //Use mbed mac addres
Kevin_Lee 0:29bbc7eec5e1 75 wait(1);
Kevin_Lee 0:29bbc7eec5e1 76 printf("Start to test ethernet!\r\n");
Kevin_Lee 0:29bbc7eec5e1 77
Kevin_Lee 0:29bbc7eec5e1 78 #if USE_DHCP
Kevin_Lee 0:29bbc7eec5e1 79 printf("use DHCP\r\n");
Kevin_Lee 0:29bbc7eec5e1 80 ret = ethernet.init(MAC_Addr);
Kevin_Lee 0:29bbc7eec5e1 81 #else
Kevin_Lee 0:29bbc7eec5e1 82 printf("do NOT use DHCP\r\n");
Kevin_Lee 0:29bbc7eec5e1 83 int ret = ethernet.init(MAC_Addr,IP_Addr,IP_Subnet,IP_Gateway);
Kevin_Lee 0:29bbc7eec5e1 84 #endif
Kevin_Lee 0:29bbc7eec5e1 85
Kevin_Lee 0:29bbc7eec5e1 86 if (!ret) {
Kevin_Lee 0:29bbc7eec5e1 87 pc.printf("Initialized, MAC: %s\r\n", ethernet.getMACAddress());
Kevin_Lee 0:29bbc7eec5e1 88 ret = ethernet.connect();
Kevin_Lee 0:29bbc7eec5e1 89 if (!ret) {
Kevin_Lee 0:29bbc7eec5e1 90 pc.printf("IP: %s, MASK: %s, GW: %s\r\n",
Kevin_Lee 0:29bbc7eec5e1 91 ethernet.getIPAddress(), ethernet.getNetworkMask(), ethernet.getGateway());
Kevin_Lee 0:29bbc7eec5e1 92 return 0;
Kevin_Lee 0:29bbc7eec5e1 93 } else {
Kevin_Lee 0:29bbc7eec5e1 94 pc.printf("Error ethernet.connect() - ret = %d\r\n", ret);
Kevin_Lee 0:29bbc7eec5e1 95 //exit(0);
Kevin_Lee 0:29bbc7eec5e1 96 return -1;
Kevin_Lee 0:29bbc7eec5e1 97 }
Kevin_Lee 0:29bbc7eec5e1 98 } else {
Kevin_Lee 0:29bbc7eec5e1 99 pc.printf("Error ethernet.init() - ret = %d\r\n", ret);
Kevin_Lee 0:29bbc7eec5e1 100 //exit(0);
Kevin_Lee 0:29bbc7eec5e1 101 return -1;
Kevin_Lee 0:29bbc7eec5e1 102 }
Kevin_Lee 0:29bbc7eec5e1 103 /*
Kevin_Lee 0:29bbc7eec5e1 104 TCPSocketServer server;
Kevin_Lee 0:29bbc7eec5e1 105 server.bind(LOOPBACKPORT);
Kevin_Lee 0:29bbc7eec5e1 106 server.listen();
Kevin_Lee 0:29bbc7eec5e1 107
Kevin_Lee 0:29bbc7eec5e1 108 while (1) {
Kevin_Lee 0:29bbc7eec5e1 109 pc.printf("\nWait for new connection...\r\n");
Kevin_Lee 0:29bbc7eec5e1 110 TCPSocketConnection client;
Kevin_Lee 0:29bbc7eec5e1 111 server.accept(client);
Kevin_Lee 0:29bbc7eec5e1 112 client.set_blocking(false, 0); // Timeout=0.
Kevin_Lee 0:29bbc7eec5e1 113 pc.printf("Connection from: %s\r\n", client.get_address());
Kevin_Lee 0:29bbc7eec5e1 114 while (client.is_connected() == true) {
Kevin_Lee 0:29bbc7eec5e1 115 int n = client.receive(buffer, sizeof(buffer));
Kevin_Lee 0:29bbc7eec5e1 116 if(n > 0)
Kevin_Lee 0:29bbc7eec5e1 117 client.send_all(buffer, n);
Kevin_Lee 0:29bbc7eec5e1 118 if(client.is_fin_received())
Kevin_Lee 0:29bbc7eec5e1 119 client.close();
Kevin_Lee 0:29bbc7eec5e1 120 }
Kevin_Lee 0:29bbc7eec5e1 121 pc.printf("Disconnected.\r\n");
Kevin_Lee 0:29bbc7eec5e1 122 }*/
Kevin_Lee 0:29bbc7eec5e1 123 }