Skovbrynet / Mbed 2 deprecated DHT2_NY_TEST

Dependencies:   mbed

Fork of Solar by Skovbrynet

Files at this revision

API Documentation at this revision

Comitter:
Tuxitheone
Date:
Mon Feb 29 18:56:21 2016 +0000
Parent:
0:40a765d1b46b
Child:
2:a347938f640b
Commit message:
Lader

Changed in this revision

DHT.lib Show annotated file Show diff for this revision Revisions of this file
TextLCD.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DHT.lib	Mon Feb 29 18:56:21 2016 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/teams/Skovbrynet1/code/Solar/#1a62a24e3955
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TextLCD.lib	Mon Feb 29 18:56:21 2016 +0000
@@ -0,0 +1,1 @@
+https://mbed.org/users/wim/code/TextLCD/#e0da005a777f
--- a/main.cpp	Wed Feb 17 22:09:53 2016 +0000
+++ b/main.cpp	Mon Feb 29 18:56:21 2016 +0000
@@ -1,30 +1,133 @@
 #include "mbed.h"
+#include "TextLCD.h"
+#include "DHT.h"
+
+#define VoltDevider 16.0*3.3 // --- Voltade devider Solar Cell --1k--|---15k--- 50V "V"
+#define VoltBatDevider 9.2*3.3 // --- Voltade devider Battery --1k--|---8.2k--- 30V "V"
+#define ISensorFaktor 1*3.5 // --- ACS712T 5A "I"
+
+RawSerial pc(USBTX, USBRX);//Serial LOG
+
+AnalogIn Ain1(p20);// --- Voltade devider Battery --1k--|---8.2k--- 30V "V"
+AnalogIn Ain2(p19);// --- ACS712T 5A "I"
+AnalogIn CellLow1(p18);// --- Voltade devider Solar Cell --1k--|---15k--- 50V "V"
+AnalogIn CellLow2(p17);// --- Voltade devider Solar Cell --1k--|---15k--- 50V "V"
+AnalogIn CellTotal(p16);// --- Voltade devider Solar Cell --1k--|---15k--- 50V "V"
+
+AnalogIn tempsensor1(p15);//AD22103 Sensor
+DHT dht22(p13,DHT22);  //Udendørs temperatur
+
+TextLCD lcd(p26, p25, p24, p23, p22, p21, TextLCD::LCD20x4); // rs, e, d4-d7
+
+InterruptIn Knap(p14);
+DigitalOut LCDBackLigth(p12);
+Timeout BL;
+
+void LCDDisplay(int menu);
+
+float VRaw; //This will store our raw ADC data
+float IRaw;
+
+float UdeTemp;
+float UdeHym;
+float Cells[4];
+
+int menustate=1;
+
+float ReadTempetur(void)
+{
+    float tempreading=(tempsensor1.read()*3.3-0.25)/0.028;
+    return  tempreading;
+}
+
+
+void LEDOff()
+{
+    LCDBackLigth=0;
+    LCDDisplay(0);
+}
 
-RawSerial pc(USBTX, USBRX);
-AnalogIn   Ain1(p19);// --- AttoPilot "V"
-AnalogIn   Ain2(p20);// --- AttoPilot "I"
+void LEDON()
+{
+    LCDBackLigth=1;
+    BL.attach(&LEDOff,10.0);
+    LCDDisplay(menustate);
+    menustate++;
+    if (menustate>3) menustate=1;
+}
+
+
+void LCDDisplay(int menu)
+{
+    switch (menu) {
+        case 0: {
+            lcd.cls();
+            lcd.printf("###################\n");
+            lcd.printf("#### TuxiNet.dk ###\n");
+            lcd.printf("### Solar Charger #\n");
+            lcd.printf("###################");
+        }
+        break;
 
-int VRaw; //This will store our raw ADC data
-int IRaw;
-float VFinal; //This will store the converted data
-float IFinal;
+        case 1: {
+            lcd.cls();
+            lcd.printf("Battery\n");
+            lcd.printf("%.2fV  %.2fA %.2fW\n",VRaw,IRaw,IRaw*VRaw);
+        }
+        break;
+
+        case 2: {
+            lcd.cls();
+            lcd.printf("Temp:\n");
+            lcd.printf("Inde %.2fC\n Ude: %.2fC %.1f%\n",ReadTempetur(),UdeTemp,UdeHym);
+        }
+        break;
+
+        case 3: {
+            lcd.cls();
+            lcd.printf("Solar Cell:\n");
+            lcd.printf("C1 %.1f C2 %.1f\n C3 %.1f C4 %.1f\n",Cells[0],Cells[1],Cells[2],Cells[3]);
+        }
+        break;
+
+        case 4: {
+            lcd.cls();
+            lcd.printf("Reng / LUX");
+            lcd.printf("");
+        }
+        break;
+    }
+}
 
 int main()
 {
+    Knap.rise(&LEDON);
+    LCDDisplay(0);
     while(1) {
-        VRaw = Ain1.read_u16();
-        IRaw = Ain2.read_u16();
+        VRaw = Ain1.read()*VoltBatDevider;
+        IRaw = ((Ain2.read()*3.3)-2.5)*ISensorFaktor;
+        Cells[0]=CellLow1.read()*VoltDevider;
+        Cells[1]=CellLow2.read()*VoltDevider;
+        Cells[2]=CellTotal.read()*VoltDevider-Cells[0];
+        Cells[3]=CellTotal.read()*VoltDevider-Cells[1];
 
-        //Conversion
-        VFinal = VRaw/49.44; //45 Amp board
-        //VFinal = VRaw/12.99; //90 Amp board
-        //VFinal = VRaw/12.99; //180 Amp board
+        int err=dht22.readData();
+        wait(2.0);
+        if (err==0) {
+            UdeTemp=dht22.ReadTemperature(CELCIUS);
+            UdeHym=dht22.ReadHumidity();
+        }
 
-        IFinal = IRaw/14.9; //45 Amp board
-        //IFinal = IRaw/7.4; //90 Amp board
-        //IFinal = IRaw/3.7; //180 Amp board
-        pc.printf("%.1   Volts\r\n",VFinal);
-        pc.printf("%.1f   Amps\r\n\r\n\r\n",IFinal);
-        wait(0.2);
+        //Serial Log
+        pc.printf("Bettery:\r\n");
+        pc.printf("%.3f Volts  %.3f Amps %.3f watt\r\n",VRaw,IRaw,IRaw*VRaw);
+        pc.printf("Temp:\r\n");
+        pc.printf("Inde %.2fC Ude: %.2fC %.1f% \n\r",ReadTempetur(),UdeTemp,UdeHym);
+        pc.printf("Solar Cell:\r\n");
+        pc.printf("C1 %.1f C2 %.1f C3 %.1f C4 %.1f \n\n\r",Cells[0],Cells[1],Cells[2],Cells[3]);
+
+
+
+        wait(2.0);
     }
 }