ported Axeda app. to mbed LPC1114FN28 with WIZ550io

Dependencies:   W5500Interface mbed

Fork of AxedaGo-mbedNXP by Axeda Corp

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "EthernetInterface.h"
00003 
00004 #if defined(TARGET_LPC1114)
00005     SPI spi(dp2, dp1, dp6); // mosi, miso, sclk
00006     EthernetInterface eth(&spi, dp25, dp26); // spi, cs, reset
00007     AnalogIn pot1(dp13);
00008 #else
00009     EthernetInterface eth;
00010     AnalogIn pot1(p19);
00011     AnalogIn pot2(p20);
00012 #endif 
00013 
00014 #if defined(TARGET_LPC1768)
00015 DigitalOut led1(LED1);
00016 DigitalOut led2(LED2);
00017 DigitalOut led3(LED3);
00018 DigitalOut led4(LED4); 
00019 #endif
00020 
00021 TCPSocketConnection sock;
00022  
00023 int main() 
00024 {
00025     char *MODEL = "mbed";
00026     char *SERIAL_NUM = "nlr__embeddist_gmail_com___343881"; 
00027     float DEADBAND = 0.015;
00028     
00029     char* ip;
00030     
00031     int http_cmd_sz=800;
00032     char http_cmd[http_cmd_sz];
00033     int buffer_sz=300;  
00034     char buffer[buffer_sz];  
00035     int returnCode = 0;
00036     
00037 #if defined(TARGET_LPC1768)    
00038     led1 = 1;
00039     led2 = 1;
00040     led3 = 1;
00041     led4 = 1;
00042 #endif
00043     
00044     printf("initializing Ethernet\r\n");
00045     returnCode = eth.init(); //Use DHCP
00046  
00047     if ( returnCode == 0 )
00048     {
00049         printf(" - Ethernet ready\r\n");
00050 #if defined(TARGET_LPC1768)    
00051         led1 = returnCode;
00052 #endif        
00053     }
00054     else
00055     {
00056         printf(" - Could not initialize Ethernet - ending\r\n");
00057         return 0;
00058     }
00059     
00060     printf("Ethernet.connecting \r\n");
00061     returnCode = eth.connect();
00062     printf(" - connecting returned %d \r\n", returnCode);
00063 #if defined(TARGET_LPC1768)    
00064     led2 = returnCode != -1 ? 0: 1;
00065 #endif    
00066     printf("Trying to get IP address..\r\n");
00067     ip = eth.getIPAddress();
00068 #if defined(TARGET_LPC1768)        
00069     led3 = strlen(ip)<4 ? 1: 0;
00070 #endif    
00071     printf("  -  IP address:%s\r\n", ip);
00072     
00073     float oil_level = 0.0;
00074     float oil_level2= 0.0;
00075     float oldPotVal = -2.0;
00076     float oldPotVal2 = -2.0;
00077     
00078     while(1) {
00079     
00080         oil_level = pot1.read();
00081 #if defined(TARGET_LPC1768)            
00082         oil_level2=pot2.read();
00083 #endif        
00084         //if ( abs(oil_level - oldPotVal) < DEADBAND && abs(oil_level2 - oldPotVal2) < DEADBAND) //LPC1768
00085         if ( abs(oil_level - oldPotVal) < DEADBAND) //LPC1114
00086         {
00087             continue;   
00088         }
00089         else
00090         {
00091             //led4 = 1;
00092             oldPotVal = oil_level;
00093 #if defined(TARGET_LPC1768)            
00094             oldPotVal2 = oil_level2; 
00095 #endif            
00096             printf("Sending Value for well1 %.2f\n\r", oil_level);
00097 #if defined(TARGET_LPC1768)                        
00098             printf("Sending Value for well2 %.2f\n\r", oil_level2);
00099 #endif            
00100             sock.connect("toolbox-connect.axeda.com", 80);
00101  
00102             snprintf(http_cmd, http_cmd_sz,  "POST /ammp/data/1/%s!%s HTTP/1.1\r\nContent-Type: application/json\r\nContent-Length: 65\r\n\r\n{\"data\":[{\"di\":{\"oil_level\":%.2f, \"oil_level2\":%.2f}}]}\r\n\r\n", MODEL, SERIAL_NUM, oil_level, oil_level2);
00103             sock.send_all(http_cmd, http_cmd_sz-1);
00104     
00105             while ( (returnCode = sock.receive(buffer, buffer_sz-1)) > 0)
00106             {
00107                 buffer[returnCode] = '\0';
00108                 printf("Received %d chars from server:\n\r%s\n", returnCode, buffer);
00109             }
00110             //led4 = returnCode;
00111             sock.close();
00112         }
00113  
00114     }
00115  
00116 }