demo of Murata wifi chip as TCP client.
Dependencies: SNICInterface mbed-rtos mbed
Fork of murataDemo by
Intro
this program demonstrates how to use TCP on the Murata Wifi chip. It will connect to a server and send a message, the server will then send a reply. The reply will be printed out to the terminal on the microcontroller.
Instructions
- Make sure you have both the wifi device and the computer running the server on the same network / wifi router.
- Change the hard coded IP in the microcontroller code to match that of the laptop running the python server.
- Run the python2 script below on the computer
- Have a console hooked up to the microcontroller and watch as messages are sent back and forth between the server (python) and the client (murata).
- Run the microcontroller code on the device.
For ease of use numbers have been appended to the end of the messages being sent back and forth.
Python Server
Please run this python2.7 code on your computer. Make sure to change the IP Address in the microcontroller code to match the IP of your computer.
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('', 7))
s.listen(1)
x = 0
while True:
conn, addr = s.accept()
print 'Connected b'TCP data from server: 'y', addr
while True:
# receive data from board
data = conn.recv(1024)
# check received data
if not data:
break
# print received data
print("TCP data from microcontroller: '"+data+"'")
# send data to board with counter to differentiate messages
conn.sendall("HelloFromPython!: "+str(x)+"\n\r")
x+=1
# close the port
conn.close()
xi_user_config.h@9:c5dc85d192e2, 2013-10-14 (annotated)
- Committer:
- Ilya Dmitrichenko
- Date:
- Mon Oct 14 11:58:41 2013 +0100
- Revision:
- 9:c5dc85d192e2
- Child:
- 11:bdf601a405fc
Add user config header as it's now required
(see https://github.com/xively/libxively/issues/51)
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 1 | #ifndef __XI_USER_CONFIG_H__ |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 2 | #define __XI_USER_CONFIG_H__ |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 3 | |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 4 | // The following settings should lower memory footprint. |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 5 | // The library currently allows one to send batch datapoint |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 6 | // and feed updates, but it's not needed in most use cases |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 7 | #define XI_MAX_DATAPOINTS 1 |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 8 | // The number of channels can be increased if needed |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 9 | #define XI_MAX_DATASTREAMS 5 |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 10 | |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 11 | // Below are optimisations that reduce some minor functionality |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 12 | #define XI_OPT_NO_ERROR_STRINGS |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 13 | |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 14 | // If you wish to enable assertions, set this to 1 |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 15 | #define XI_DEBUG_ASSERT 0 |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 16 | // If you wish to disable debug output, set this to 0 |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 17 | #define XI_DEBUG_OUTPUT 1 |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 18 | |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 19 | // On the mbed app board we can use the LCD for debug output, |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 20 | // but one may wish to modify this and write to file instead |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 21 | #include "app_board_io.h" |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 22 | #define XI_DEBUG_PRINTF lcd_printf |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 23 | |
| Ilya Dmitrichenko |
9:c5dc85d192e2 | 24 | #endif /* __XI_USER_CONFIG_H__ */ |
Austin Blackstone
