![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Dust Sesnsor PMS5003
Dependencies: DustSenzor NetServices ThingSpeakEthernet mbed
Fork of PMS5003 by
Diff: main.cpp
- Revision:
- 6:ebbde59c5a1d
- Parent:
- 5:1e77bdd1a639
- Child:
- 7:1da0a084cd69
diff -r 1e77bdd1a639 -r ebbde59c5a1d main.cpp --- 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