Water level sensing with simulation using potentiometer. The value uploads on the local phant server using HTTP GET method.

Dependencies:   WIZnet_Library mbed

main.cpp

Committer:
eduvanceIoT
Date:
2016-08-02
Revision:
0:2c1f983dd2cc

File content as of revision 0:2c1f983dd2cc:

#include "mbed.h"
#include "WIZnetInterface.h"

//MAC address of sheild
unsigned char MAC_Addr[6] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

//server ip were server is set
char* ServerIP = "192.168.0.101"; 

//public and private key of stream
char* public_key = "9Ojdd3Vk2aCqvx1Jg0yLsx2ParXq"; 
char* private_key = "KzprrvRqKeC5neDN7GRbuQbExAG4"; 

int Count = 15;
int x;

Serial pc(USBTX, USBRX);
SPI spi(PTD2,PTD3,PTD1);

//wiznet object
WIZnetInterface ethernet(&spi,PTD0,PTA20);

//analog input
AnalogIn waterLevel(PTC1);
int writtenLen,eth;

int main()
{
    //Set serial port baudrate speed: 9600
    pc.baud(9600);
    pc.printf("Start\r\n");
    
    while(1) 
    {
        x=10*waterLevel.read();
        int ret = ethernet.init(MAC_Addr);
        
        if (!ret) 
        {
            //print MAC address of device
            pc.printf("Initialized, MAC: %s\r\n", ethernet.getMACAddress());
            ret = ethernet.connect();
            if (!ret)
            {
                //print IP alloted and details obtianed from network
                pc.printf("IP: %s, MASK: %s, GW: %s\r\n",
                          ethernet.getIPAddress(), ethernet.getNetworkMask(), ethernet.getGateway());
            }
            else
            {
                pc.printf("Error ethernet.connect() - ret = %d\r\n", ret);
                exit(0);
            }
        }
        else
        {
            pc.printf("Error ethernet.init() - ret = %d\r\n", ret);
            exit(0);
        }  
        
        //create TCP socket
        TCPSocketConnection sock;
        
        while(1){
            
        //connect the server to port 8080
            sock.connect(ServerIP, 8080);
            if(sock.is_connected())
                pc.printf("Socket Connected\n\r");
            else
                pc.printf("Socket NoT Connected\n\r");
        
            //create character buffer for URL
            char buffer[300];
            int ret_t;
        
            char http_cmd[100];
        
            //make URL
            sprintf(http_cmd,"GET /input/%s?private_key=%s&pot=%d HTTP/1.0\n\n",public_key,private_key,x);
            printf("sending %d characters",strlen(http_cmd));
            printf("Running - %s\r\n",http_cmd);
            writtenLen = sock.send_all(http_cmd, strlen(http_cmd));
            
            //print the result of URL GET method
            if(writtenLen == -1)
                printf("sending failed\r\n");
            else    
                printf("sending success\r\n");
                
            eth=ret_t = sock.receive(buffer, strlen(buffer));
            buffer[ret_t] = '\0';
            printf("Received %d chars from server:\r\n%s\r\n", ret_t, buffer);
        
            sock.close();
        
            ethernet.disconnect();
            pc.printf("Socket Closed\r\n");
            wait(1);
            
            }
    }
}