Dust Sesnsor PMS5003
Dependencies: NetServices ThingSpeakEthernet mbed
Diff: main.cpp
- 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