Counter

Dependencies:   EthernetInterface NTPClient SDFileSystem TextLCD WebSocketClient mbed-rtos mbed Socket lwip-eth lwip-sys lwip FATFileSystem

Revision:
0:ecaf3e593122
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Feb 29 18:59:15 2016 +0000
@@ -0,0 +1,97 @@
+#include "mbed.h"
+#include "EthernetInterface.h"
+#include "NTPClient.h"
+#include "TextLCD.h"
+#include "Websocket.h"
+#include "Counter.h"
+#include "SDFileSystem.h"
+#include "uplink.h"
+
+TextLCD lcd(p20, p19, p18, p17, p16, p15,TextLCD::LCD20x4); // rs, e, d4-d7
+SDFileSystem sd(p5, p6, p7, p8, "sd"); // the pinout on the mbed Cool Components workshop board
+
+NTPClient ntp;
+int offset_DK = 7200;
+Counter T1(p22);
+AnalogIn tempsensor(p16);
+
+
+float ReadTempetur(void)
+{
+    float tempreading=(tempsensor.read()*3.3-0.25)/0.028;
+    return  tempreading;
+}
+
+float TankContens()
+{
+//beregner hvor meget der er tilbage
+    return 1000-T1.Flow();
+}
+
+void InitLog(void) {
+    FILE *fp; //Logfile
+    fp = fopen("/sd/taptraq/Tank.log", "r");
+    if (fp == NULL)  //For at være sikker på at der er en fil og skrive i
+      fp = fopen("/sd/taptraq/Tank.log", "w");
+    fclose(fp);
+}
+
+void LogToSd(void)
+{
+    FILE *fp; //Logfile
+    time_t seconds = time(NULL);
+    char timestr[32];
+    seconds = time(NULL);
+    strftime(timestr, 32, "%Y/%m/%d-%H:%M:%S", localtime(&seconds));
+    fp = fopen("/sd/taptraq/Tank.log", "a");
+    fprintf(fp,"%s,%.4f,%.1f\r\n",
+            timestr,T1.Flow(),ReadTempetur());
+    fclose(fp);
+}
+
+int main()
+{
+    time_t seconds = time(NULL);
+    char timestr[32];
+    lcd.printf("Establishing...\n");
+    lcd.printf("Network Connection\n");
+    EthernetInterface eth;
+    eth.init(); //Use DHCP
+    if (eth.connect()<0) NVIC_SystemReset();
+    lcd.cls();
+    lcd.printf("Located IP ADR....\n");
+    lcd.printf("IP: - %s\n", eth.getIPAddress());
+    printf("IP: %s\n", eth.getIPAddress());
+    Websocket ws("ws://sockets.mbed.org/ws/gert_lauritsen/rw");
+    wait(3);
+    lcd.cls();
+    lcd.printf("Reconnecting...\n");
+    lcd.printf("TapTraQ Uplink\n");
+    while (!ws.connect());
+    lcd.cls();
+    lcd.printf("Faild Connect...\n");
+    lcd.printf("TapTraQ Uplink\n");
+    wait(5);
+    TapTraqUplink Uplink(&ws);
+    /* Set up NTP */
+   // printf("Setting up NTP \n\r");
+    //ntp.setTime("0.dk.pool.ntp.org",123);
+    //ntp.setTime("ntp1.jst.mfeed.ad.jp",123);
+    lcd.cls();
+    strftime(timestr, 32, "%H:%M", localtime(&seconds));
+    lcd.printf("%s \n",timestr);
+    wait(1);
+    InitLog();
+    while (1) { //Vis temperatur og mængde i tank
+        lcd.cls();
+        seconds = time(NULL)+offset_DK;
+        strftime(timestr, 32, "%H:%M", localtime(&seconds));
+        lcd.printf("TapTraQ Count System");
+        lcd.printf("KOLKKEN - %s\n",timestr);
+        lcd.printf("TEMP %.2f C\n",ReadTempetur());
+        lcd.printf("TANK %.1f - %.1f L \n",TankContens(),T1.Flow());
+        Uplink.FlowFrame("1000",1,T1.Count,0,0,0,0,0,0);
+        LogToSd();
+        wait(10);
+    }
+}