https://www.youtube.com/watch?v=FnNo10FYSTE

Dependencies:   DISCO_L475VG_IOT01A_wifi

Committer:
hexfactory
Date:
Wed Nov 20 15:22:41 2019 +0000
Revision:
0:d4bf65e1d0d7
add WOL-WIFI project

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hexfactory 0:d4bf65e1d0d7 1 #include "mbed.h"
hexfactory 0:d4bf65e1d0d7 2 #include "wifi.h"
hexfactory 0:d4bf65e1d0d7 3 /*------------------------------------------------------------------------------
hexfactory 0:d4bf65e1d0d7 4 Hyperterminal settings: 115200 bauds, 8-bit data, no parity
hexfactory 0:d4bf65e1d0d7 5
hexfactory 0:d4bf65e1d0d7 6 This example
hexfactory 0:d4bf65e1d0d7 7 - connects to a wifi network (SSID & PWD to set in mbed_app.json)
hexfactory 0:d4bf65e1d0d7 8 - Connects to a TCP server (set the address in RemoteIP)
hexfactory 0:d4bf65e1d0d7 9 - Sends "Hello" to the server when data is received
hexfactory 0:d4bf65e1d0d7 10
hexfactory 0:d4bf65e1d0d7 11 This example uses SPI3 ( PE_0 PC_10 PC_12 PC_11), wifi_wakeup pin (PB_13),
hexfactory 0:d4bf65e1d0d7 12 wifi_dataready pin (PE_1), wifi reset pin (PE_8)
hexfactory 0:d4bf65e1d0d7 13 ------------------------------------------------------------------------------*/
hexfactory 0:d4bf65e1d0d7 14
hexfactory 0:d4bf65e1d0d7 15 /* Private defines -----------------------------------------------------------*/
hexfactory 0:d4bf65e1d0d7 16 #define WIFI_WRITE_TIMEOUT 10000
hexfactory 0:d4bf65e1d0d7 17 #define WIFI_READ_TIMEOUT 10000
hexfactory 0:d4bf65e1d0d7 18 #define CONNECTION_TRIAL_MAX 10
hexfactory 0:d4bf65e1d0d7 19
hexfactory 0:d4bf65e1d0d7 20 /* Private typedef------------------------------------------------------------*/
hexfactory 0:d4bf65e1d0d7 21 /* Private macro -------------------------------------------------------------*/
hexfactory 0:d4bf65e1d0d7 22 /* Private variables ---------------------------------------------------------*/
hexfactory 0:d4bf65e1d0d7 23 Serial pc(SERIAL_TX, SERIAL_RX);
hexfactory 0:d4bf65e1d0d7 24 uint8_t RemoteIP[] = {MBED_CONF_APP_SERVER_IP_1,MBED_CONF_APP_SERVER_IP_2,MBED_CONF_APP_SERVER_IP_3, MBED_CONF_APP_SERVER_IP_4};
hexfactory 0:d4bf65e1d0d7 25 uint8_t RxData [500];
hexfactory 0:d4bf65e1d0d7 26 char* modulename;
hexfactory 0:d4bf65e1d0d7 27 uint8_t TxData[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
hexfactory 0:d4bf65e1d0d7 28 0x40, 0x8D, 0x5C, 0x1E, 0x3B, 0x75,
hexfactory 0:d4bf65e1d0d7 29 0x40, 0x8D, 0x5C, 0x1E, 0x3B, 0x75,
hexfactory 0:d4bf65e1d0d7 30 0x40, 0x8D, 0x5C, 0x1E, 0x3B, 0x75,
hexfactory 0:d4bf65e1d0d7 31 0x40, 0x8D, 0x5C, 0x1E, 0x3B, 0x75,
hexfactory 0:d4bf65e1d0d7 32 0x40, 0x8D, 0x5C, 0x1E, 0x3B, 0x75,
hexfactory 0:d4bf65e1d0d7 33 0x40, 0x8D, 0x5C, 0x1E, 0x3B, 0x75,
hexfactory 0:d4bf65e1d0d7 34 0x40, 0x8D, 0x5C, 0x1E, 0x3B, 0x75,
hexfactory 0:d4bf65e1d0d7 35 0x40, 0x8D, 0x5C, 0x1E, 0x3B, 0x75,
hexfactory 0:d4bf65e1d0d7 36 0x40, 0x8D, 0x5C, 0x1E, 0x3B, 0x75,
hexfactory 0:d4bf65e1d0d7 37 0x40, 0x8D, 0x5C, 0x1E, 0x3B, 0x75,
hexfactory 0:d4bf65e1d0d7 38 0x40, 0x8D, 0x5C, 0x1E, 0x3B, 0x75,
hexfactory 0:d4bf65e1d0d7 39 0x40, 0x8D, 0x5C, 0x1E, 0x3B, 0x75,
hexfactory 0:d4bf65e1d0d7 40 0x40, 0x8D, 0x5C, 0x1E, 0x3B, 0x75,
hexfactory 0:d4bf65e1d0d7 41 0x40, 0x8D, 0x5C, 0x1E, 0x3B, 0x75,
hexfactory 0:d4bf65e1d0d7 42 0x40, 0x8D, 0x5C, 0x1E, 0x3B, 0x75,
hexfactory 0:d4bf65e1d0d7 43 0x40, 0x8D, 0x5C, 0x1E, 0x3B, 0x75};
hexfactory 0:d4bf65e1d0d7 44 uint16_t RxLen;
hexfactory 0:d4bf65e1d0d7 45 uint8_t MAC_Addr[6];
hexfactory 0:d4bf65e1d0d7 46 uint8_t IP_Addr[4];
hexfactory 0:d4bf65e1d0d7 47
hexfactory 0:d4bf65e1d0d7 48 int main()
hexfactory 0:d4bf65e1d0d7 49 {
hexfactory 0:d4bf65e1d0d7 50 int32_t Socket = -1;
hexfactory 0:d4bf65e1d0d7 51 uint16_t Datalen;
hexfactory 0:d4bf65e1d0d7 52 uint16_t Trials = CONNECTION_TRIAL_MAX;
hexfactory 0:d4bf65e1d0d7 53
hexfactory 0:d4bf65e1d0d7 54 pc.baud(115200);
hexfactory 0:d4bf65e1d0d7 55
hexfactory 0:d4bf65e1d0d7 56 /*Initialize WIFI module */
hexfactory 0:d4bf65e1d0d7 57 if(WIFI_Init() == WIFI_STATUS_OK) {
hexfactory 0:d4bf65e1d0d7 58 printf("> WIFI Module Initialized.\n");
hexfactory 0:d4bf65e1d0d7 59 if(WIFI_GetMAC_Address(MAC_Addr) == WIFI_STATUS_OK) {
hexfactory 0:d4bf65e1d0d7 60 printf("> es-wifi module MAC Address : %X:%X:%X:%X:%X:%X\n",
hexfactory 0:d4bf65e1d0d7 61 MAC_Addr[0],
hexfactory 0:d4bf65e1d0d7 62 MAC_Addr[1],
hexfactory 0:d4bf65e1d0d7 63 MAC_Addr[2],
hexfactory 0:d4bf65e1d0d7 64 MAC_Addr[3],
hexfactory 0:d4bf65e1d0d7 65 MAC_Addr[4],
hexfactory 0:d4bf65e1d0d7 66 MAC_Addr[5]);
hexfactory 0:d4bf65e1d0d7 67 } else {
hexfactory 0:d4bf65e1d0d7 68 printf("> ERROR : CANNOT get MAC address\n");
hexfactory 0:d4bf65e1d0d7 69 }
hexfactory 0:d4bf65e1d0d7 70
hexfactory 0:d4bf65e1d0d7 71 if( WIFI_Connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, WIFI_ECN_WPA2_PSK) == WIFI_STATUS_OK) {
hexfactory 0:d4bf65e1d0d7 72 printf("> es-wifi module connected \n");
hexfactory 0:d4bf65e1d0d7 73 if(WIFI_GetIP_Address(IP_Addr) == WIFI_STATUS_OK) {
hexfactory 0:d4bf65e1d0d7 74 printf("> es-wifi module got IP Address : %d.%d.%d.%d\n",
hexfactory 0:d4bf65e1d0d7 75 IP_Addr[0],
hexfactory 0:d4bf65e1d0d7 76 IP_Addr[1],
hexfactory 0:d4bf65e1d0d7 77 IP_Addr[2],
hexfactory 0:d4bf65e1d0d7 78 IP_Addr[3]);
hexfactory 0:d4bf65e1d0d7 79
hexfactory 0:d4bf65e1d0d7 80 printf("> Trying to connect to Server: %d.%d.%d.%d:8002 ...\n",
hexfactory 0:d4bf65e1d0d7 81 RemoteIP[0],
hexfactory 0:d4bf65e1d0d7 82 RemoteIP[1],
hexfactory 0:d4bf65e1d0d7 83 RemoteIP[2],
hexfactory 0:d4bf65e1d0d7 84 RemoteIP[3]);
hexfactory 0:d4bf65e1d0d7 85
hexfactory 0:d4bf65e1d0d7 86 if( WIFI_OpenClientConnection(0, WIFI_UDP_PROTOCOL, "UDP_WOL", RemoteIP, 8002, 0) == WIFI_STATUS_OK){
hexfactory 0:d4bf65e1d0d7 87 printf("> UDP configured successfully.\n");
hexfactory 0:d4bf65e1d0d7 88 Socket = 0;
hexfactory 0:d4bf65e1d0d7 89 }
hexfactory 0:d4bf65e1d0d7 90 } else {
hexfactory 0:d4bf65e1d0d7 91 printf("> ERROR : es-wifi module CANNOT get IP address\n");
hexfactory 0:d4bf65e1d0d7 92 }
hexfactory 0:d4bf65e1d0d7 93 } else {
hexfactory 0:d4bf65e1d0d7 94 printf("> ERROR : es-wifi module NOT connected\n");
hexfactory 0:d4bf65e1d0d7 95 }
hexfactory 0:d4bf65e1d0d7 96 } else {
hexfactory 0:d4bf65e1d0d7 97 printf("> ERROR : WIFI Module cannot be initialized.\n");
hexfactory 0:d4bf65e1d0d7 98 }
hexfactory 0:d4bf65e1d0d7 99
hexfactory 0:d4bf65e1d0d7 100 if(WIFI_SendData(Socket, TxData, sizeof(TxData), &Datalen, WIFI_WRITE_TIMEOUT) != WIFI_STATUS_OK) {
hexfactory 0:d4bf65e1d0d7 101 printf("> ERROR : Failed to send Data.\n");
hexfactory 0:d4bf65e1d0d7 102 } else {
hexfactory 0:d4bf65e1d0d7 103 printf("> WOL packet sent\n");
hexfactory 0:d4bf65e1d0d7 104 }
hexfactory 0:d4bf65e1d0d7 105
hexfactory 0:d4bf65e1d0d7 106 }