Counter
Dependencies: EthernetInterface NTPClient SDFileSystem TextLCD WebSocketClient mbed-rtos mbed Socket lwip-eth lwip-sys lwip FATFileSystem
main.cpp
- Committer:
- Tuxitheone
- Date:
- 2016-02-29
- Revision:
- 0:ecaf3e593122
File content as of revision 0:ecaf3e593122:
#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);
}
}