Serial-To-WiFi Using WizFi250-CSI
by SteveK2 in Circuits > Software
974 Views, 20 Favorites, 0 Comments
Serial-To-WiFi Using WizFi250-CSI
A few weeks ago, I wrote a posting about WizFi250-CSI as below.
https://www.instructables.com/id/WizFi250-CSIC-Script-Interpreter-for-rapid-prototy/
And now, I will demonstrate a serial-to-wifi application using WizFi250-CSI.
With WizFi250-CSI, I finished the serial-to-wifi application in 10 minutes. (Writing and testing).
Description of WizFi250-CSI.h
You can any script with this "WizFi250-CSI.h" file.
This header file include all API function which you can use for a script file.
For all "WizFi250-CSI.h", you can refer to the below link.
Write "C Script File" for Serial-To-WiFi
Please refer to the below script file.
<p>#include "WizFi250-CSI.h"</p><p>void main(void) { struct sockaddr_in stSockAddr; int Res, result;</p><p> // Join to AP if ( result = wifi_join("WizFiDemoAP", "wpa2", "12345678", 0, 0, 0)!=0 ) { printf("wifi_join error : %d", result); return; }</p><p> // TCP Socket int SocketFD = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if (-1 == SocketFD) { printf("cannot create socket\r\n"); return; }</p><p> // Define Server IP, Port memset(&stSockAddr, 0, sizeof(stSockAddr)); stSockAddr.sin_family = AF_INET; stSockAddr.sin_addr.s_addr = inet_addr("192.168.3.54"); stSockAddr.sin_port = htons(6000);</p><p> if (-1 == connect(SocketFD, (struct sockaddr *)&stSockAddr, sizeof(stSockAddr))) { printf("connect failed\r\n"); close(SocketFD); return; }</p><p> char szData[256]; int length = 0;</p><p> // Set GPIO12 input-pin. pinMode(GPIO12, 1);</p><p> while(1) { length = uart_rx(0, szData, 256); if ( length>0 ) { pinOut(GPIO12, 0); result = send(SocketFD, szData, length, 0); pinOut(GPIO12, 1); if ( result<0 ) break; }</p><p> length = recv(SocketFD, szData, sizeof(szData), MSG_DONTWAIT); if ( length==0 ) { break; } else if ( length<0 ) { if ( sock_error==EAGAIN ) continue;</p><p> printf("<%d,%d>", length, sock_error); break; } else { pinOut(GPIO12, 0); uart_tx(0, szData, length); pinOut(GPIO12, 1); }</p><p> }</p><p> printf("Disconnected (%d) \r\n", length); close(SocketFD);</p><p> return; }</p>
Or you can refer the below link.
Upload "C Script File" for Serial-To-WiFi
At first, you should upload(or write) script file as attached picture.
Run "C Script File"
Now, if you reset the WizFi250-CSI, Serial-To-WiFi application will run as attached picture.
Data-communication worked well in both Serial-to-WiFi and WiFi-to-Serial.
Conclusion
Benefit of Serial-To-WiFi using WizFi250-CSI
- User can select TCP/UDP and Server/Client in source code level.
- It's very similar standard C.
- User can define LED indications(GPIO or ADC)
- User doesn't need serial-command(AT Command).
- User can implement data-packing of network-packet in socket-API.
- Multi sockets are available
- User doesn't need any tool or web server for configuration.