Dust Sesnsor PMS5003

Dependencies:   NetServices ThingSpeakEthernet mbed

Revision:
6:ebbde59c5a1d
Parent:
5:1e77bdd1a639
Child:
7:1da0a084cd69
--- a/main.cpp	Wed Dec 15 18:03:19 2010 +0000
+++ b/main.cpp	Fri Nov 20 08:28:11 2015 +0000
@@ -1,96 +1,59 @@
 #include "mbed.h"
-#include "EthernetNetIf.h"
-#include "HTTPClient.h"
-#include "NTPClient.h"
-#include "HTTPServer.h"
-#include "RPCFunction.h"
+#include "iostream"
+#include "ThingSpeak.h"
+#include "Sensor.h"
+#include "C12832.h"
+#include "INA219.h"
 
-#define HOSTNAME "mbedSE"
 
-EthernetNetIf eth(HOSTNAME);
-HTTPClient http;
-NTPClient ntp;
-HTTPServer svr;
 
-DigitalOut led1(LED1, "led1");
-DigitalOut led2(LED2, "led2");
-DigitalOut led3(LED3, "led3");
-DigitalOut led4(LED4, "led4");
+    ThingSpeak ts("074MPWFODR7JHD1K", 6); 
+    C12832 lcd(p5, p7, p6, p8, p11);
+    Sensor current(p19,4);
+    Sensor voltage(p20,24);
+   
 
-void DoEcho(char* input, char* output);
-RPCFunction Echo(&DoEcho, "echo");
-
-void DoEcho(char* input, char* output) {
-    printf("%s\n", input);
-    strcpy(output, input);
-}
 
 int main() {
-
-    printf("\n\n/* Segundo Equipo NetServices library demonstration */\n");
-    printf("Try starting the program with the network disconnected and then connect after a few timeouts reported\n\n");
-    EthernetErr ethErr;
-    int count = 0;
-    do {
-        printf("Setting up %d...\n", ++count);
-        ethErr = eth.setup();
-        if (ethErr) printf("Timeout\n", ethErr);
-    } while (ethErr != ETH_OK);
-
-    printf("Connected OK\n");
-    const char* hwAddr = eth.getHwAddr();
-    printf("HW address : %02x:%02x:%02x:%02x:%02x:%02x\n",
-           hwAddr[0], hwAddr[1], hwAddr[2],
-           hwAddr[3], hwAddr[4], hwAddr[5]);
-
-    IpAddr ethIp = eth.getIp();
-    printf("IP address : %d.%d.%d.%d\n", ethIp[0], ethIp[1], ethIp[2], ethIp[3]);
-    printf("Check router DHCP table for name : %s\n", eth.getHostname());
-
-    printf("\nHTTPClient get...\n");
-    HTTPText txt;
-    HTTPResult r = http.get("http://mbed.org/media/uploads/donatien/hello.txt", &txt);
-    if (r==HTTP_OK) {
-        printf("Result ok : %s\n", txt.gets());
-    } else {
-        printf("Error %d\n", r);
-    }
-
-    time_t ctTime;
-    ctTime = time(NULL);
-    printf("\nCurrent time is (UTC): %d %s\n", ctTime, ctime(&ctTime));
-    printf("NTP setTime...\n");
-    Host server(IpAddr(), 123, "pool.ntp.org");
-    printf("Result : %d\n", ntp.setTime(server));
-
-    ctTime = time(NULL);
-    printf("\nTime is now (UTC): %d %s\n", ctTime, ctime(&ctTime));
-
-    printf("NTP setTime to a deliberately incorrect server...\n");
-    server.setName("www.google.com");
-    printf("Result : %d\n", ntp.setTime(server));
-
-    ctTime = time(NULL);
-    printf("\nTime should still be correct (UTC): %d %s\n", ctTime, ctime(&ctTime));
+    INA219 ina219;
+    float U, I, ina[3];
+    int i;
+    
+    lcd.cls();
+    lcd.locate(0,3);    
+    ts.connect();
+    lcd.printf("Ethernet Connected ! \n");
+    ts.getIP();
+    
+    wait(1);
     
-    char ip[16];
-    sprintf(ip, "%d.%d.%d.%d", ethIp[0], ethIp[1], ethIp[2], ethIp[3]);
-    
-#define PORT 80
-    svr.addHandler<RPCHandler>("/rpc");
-    svr.bind(PORT);
-    printf("Server listening (port %d)\n", PORT);
-    printf("- LED1 should flash\n");
-    printf("- type into browser to test url decode : %s/rpc/echo/run \"quoted string with <>\" or http://192.168.1.103/rpc/echo/run%%20%%22quoted%%20string%%20with%%20%%3C%%3E%%22\n", ip);
-
-    Timer tm;
-    tm.start();
-
-    while (true) {
-        Net::poll();
-        if (tm.read() > 0.5) {
-            led1 = !led1;
-            tm.start();
-        }
+    while(1){
+           
+        voltage.read();
+        current.read();           
+        U = voltage.calc();       
+        I = current.calc();
+        ina[0] = ina219.readRawReg(0x04); //* Current *//
+        ina[1] = ina219.readRawReg(0x02); //* Bus Voltage *//
+        ina[2] = ina219.readRawReg(0x03); //* Power *// 
+        
+        lcd.cls();
+        lcd.locate(0,3);
+        lcd.printf("V = %.2f V \n",U);
+        lcd.printf("I = %.2f A \n",I);
+        lcd.printf("P = %.2f W \n", U*I);
+        lcd.locate(0,14);        
+        lcd.printf("V = %.2f V \n",ina[1]);
+        lcd.printf("I = %.2f A \n",ina[0]);
+        lcd.printf("P = %.2f W \n",ina[2]);
+        
+        i = 1;
+        ts.setField(U, i++);
+        ts.setField(I, i++); 
+        for(int j = 0 ; j<= 3; j++)
+            ts.setField(ina[j], i++);
+            
+        ts.putUp();
+        wait(15);                    
     }
 }
\ No newline at end of file