Basic example using a TCP protocol. Client version. It connects to a Raspberry Pi server using a Python Script.

Dependencies:   EthernetInterface mbed-rtos mbed

Fork of TCPEchoClient by Gerardo CR

Basic program.

It connects to a remote server on a LAN running a Python script. Server send data to a spreadsheet in my google docs account.

PYTHON CODE

PYTHON CODE

#!/usr/bin/python
import time
import datetime
import sys
import gspread
import socket

# Socket
port = 50006
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('', port))
s.listen(1)

# Google Acoount Details
email = 'your-email@gmail.com'
password = 'your-password'
spreadsheet = 'ldr'

# Login with your Google account
try:
  gc = gspread.login(email, password)
except:
  print "unable to login in. Check your email address/password"
  sys.exit()
  
# Open a worksheet for your spreadsheet using the filename
try:
  wks = gc.open(spreadsheet).sheet1
except:
  print ("unable to open the spredsheet.  Check your filename: %s") % spreadsheet
  sys.exit()

time.sleep(1)

input = 0

conn, addr = s.accept()
print 'Connected by', addr

while True:  
    input = conn.recv(1024)
    print(input)
    print(datetime.datetime.now(), input)
    print('write angle to gdocs')
    try:
      values = [datetime.datetime.now(), input]
      wks.append_row(values)
    except:
      print ("Unable to append data.  Check your connection?")
      sys.exit()
Committer:
gerardo_carmona
Date:
Fri Nov 07 05:28:31 2014 +0000
Revision:
7:a6f3768bc4b7
Parent:
3:3fbf0efec25a
.;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 0:e8f884c94549 1 #include "mbed.h"
emilmont 1:a51d8ed156e6 2 #include "EthernetInterface.h"
emilmont 1:a51d8ed156e6 3
gerardo_carmona 7:a6f3768bc4b7 4 const char* ECHO_SERVER_ADDRESS = "10.43.18.213";
gerardo_carmona 7:a6f3768bc4b7 5 const int ECHO_SERVER_PORT = 50007;
emilmont 1:a51d8ed156e6 6
emilmont 1:a51d8ed156e6 7 int main() {
emilmont 1:a51d8ed156e6 8 EthernetInterface eth;
emilmont 1:a51d8ed156e6 9 eth.init(); //Use DHCP
emilmont 1:a51d8ed156e6 10 eth.connect();
emilmont 1:a51d8ed156e6 11 printf("IP Address is %s\n", eth.getIPAddress());
emilmont 1:a51d8ed156e6 12
emilmont 3:3fbf0efec25a 13 TCPSocketConnection socket;
emilmont 3:3fbf0efec25a 14 while (socket.connect(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT) < 0) {
emilmont 3:3fbf0efec25a 15 printf("Unable to connect to (%s) on port (%d)\n", ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT);
emilmont 1:a51d8ed156e6 16 wait(1);
emilmont 1:a51d8ed156e6 17 }
emilmont 1:a51d8ed156e6 18
emilmont 1:a51d8ed156e6 19 char hello[] = "Hello World\n";
emilmont 3:3fbf0efec25a 20 socket.send_all(hello, sizeof(hello) - 1);
emilmont 1:a51d8ed156e6 21
emilmont 1:a51d8ed156e6 22 char buf[256];
emilmont 3:3fbf0efec25a 23 int n = socket.receive(buf, 256);
emilmont 2:563aa530f0dd 24 buf[n] = '\0';
emilmont 1:a51d8ed156e6 25 printf("%s", buf);
emilmont 1:a51d8ed156e6 26
emilmont 3:3fbf0efec25a 27 socket.close();
emilmont 1:a51d8ed156e6 28 eth.disconnect();
emilmont 1:a51d8ed156e6 29
emilmont 1:a51d8ed156e6 30 while(true) {}
emilmont 1:a51d8ed156e6 31 }