DHT22 tester (p21) (p22) 4,7kR pullup

Dependencies:   mbed

Fork of Solar by Skovbrynet

Committer:
Tuxitheone
Date:
Tue Mar 08 20:48:12 2016 +0000
Revision:
2:a347938f640b
Parent:
1:87df5ce85ede
Child:
3:ae94f568bde5
tilf?jet en 5A sensor mere og rattet en pin P19 -> P16

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Tuxitheone 2:a347938f640b 1 #include "mbed.h",
Tuxitheone 1:87df5ce85ede 2 #include "TextLCD.h"
Tuxitheone 1:87df5ce85ede 3 #include "DHT.h"
Tuxitheone 1:87df5ce85ede 4
Tuxitheone 1:87df5ce85ede 5 #define VoltDevider 16.0*3.3 // --- Voltade devider Solar Cell --1k--|---15k--- 50V "V"
Tuxitheone 1:87df5ce85ede 6 #define VoltBatDevider 9.2*3.3 // --- Voltade devider Battery --1k--|---8.2k--- 30V "V"
Tuxitheone 1:87df5ce85ede 7 #define ISensorFaktor 1*3.5 // --- ACS712T 5A "I"
Tuxitheone 1:87df5ce85ede 8
Tuxitheone 1:87df5ce85ede 9 RawSerial pc(USBTX, USBRX);//Serial LOG
Tuxitheone 1:87df5ce85ede 10
Tuxitheone 2:a347938f640b 11 I2C i2c(p28,p27); // SDA, SCL
Tuxitheone 2:a347938f640b 12 BH1750 lum(i2c); // BH1750 SDA, SCL (Data available every 120mSec)
Tuxitheone 2:a347938f640b 13
Tuxitheone 1:87df5ce85ede 14 AnalogIn Ain1(p20);// --- Voltade devider Battery --1k--|---8.2k--- 30V "V"
Tuxitheone 2:a347938f640b 15 AnalogIn Ain2(p16);// --- ACS712T 5A "I" Battery chr
Tuxitheone 2:a347938f640b 16 AnalogIn Ain3(p11);// --- ACS712T 5A "I" Solar
Tuxitheone 1:87df5ce85ede 17 AnalogIn CellLow1(p18);// --- Voltade devider Solar Cell --1k--|---15k--- 50V "V"
Tuxitheone 1:87df5ce85ede 18 AnalogIn CellLow2(p17);// --- Voltade devider Solar Cell --1k--|---15k--- 50V "V"
Tuxitheone 2:a347938f640b 19 AnalogIn CellTotal(p19);// --- Voltade devider Solar Cell --1k--|---15k--- 50V "V"
Tuxitheone 1:87df5ce85ede 20
Tuxitheone 1:87df5ce85ede 21 AnalogIn tempsensor1(p15);//AD22103 Sensor
Tuxitheone 1:87df5ce85ede 22 DHT dht22(p13,DHT22); //Udendørs temperatur
Tuxitheone 1:87df5ce85ede 23
Tuxitheone 1:87df5ce85ede 24 TextLCD lcd(p26, p25, p24, p23, p22, p21, TextLCD::LCD20x4); // rs, e, d4-d7
Tuxitheone 1:87df5ce85ede 25
Tuxitheone 1:87df5ce85ede 26 InterruptIn Knap(p14);
Tuxitheone 1:87df5ce85ede 27 DigitalOut LCDBackLigth(p12);
Tuxitheone 1:87df5ce85ede 28 Timeout BL;
Tuxitheone 1:87df5ce85ede 29
Tuxitheone 1:87df5ce85ede 30 void LCDDisplay(int menu);
Tuxitheone 1:87df5ce85ede 31
Tuxitheone 1:87df5ce85ede 32 float VRaw; //This will store our raw ADC data
Tuxitheone 1:87df5ce85ede 33 float IRaw;
Tuxitheone 1:87df5ce85ede 34
Tuxitheone 1:87df5ce85ede 35 float UdeTemp;
Tuxitheone 1:87df5ce85ede 36 float UdeHym;
Tuxitheone 1:87df5ce85ede 37 float Cells[4];
Tuxitheone 1:87df5ce85ede 38
Tuxitheone 1:87df5ce85ede 39 int menustate=1;
Tuxitheone 1:87df5ce85ede 40
Tuxitheone 1:87df5ce85ede 41 float ReadTempetur(void)
Tuxitheone 1:87df5ce85ede 42 {
Tuxitheone 1:87df5ce85ede 43 float tempreading=(tempsensor1.read()*3.3-0.25)/0.028;
Tuxitheone 1:87df5ce85ede 44 return tempreading;
Tuxitheone 1:87df5ce85ede 45 }
Tuxitheone 1:87df5ce85ede 46
Tuxitheone 1:87df5ce85ede 47
Tuxitheone 1:87df5ce85ede 48 void LEDOff()
Tuxitheone 1:87df5ce85ede 49 {
Tuxitheone 1:87df5ce85ede 50 LCDBackLigth=0;
Tuxitheone 1:87df5ce85ede 51 LCDDisplay(0);
Tuxitheone 1:87df5ce85ede 52 }
gert_lauritsen 0:40a765d1b46b 53
Tuxitheone 1:87df5ce85ede 54 void LEDON()
Tuxitheone 1:87df5ce85ede 55 {
Tuxitheone 1:87df5ce85ede 56 LCDBackLigth=1;
Tuxitheone 1:87df5ce85ede 57 BL.attach(&LEDOff,10.0);
Tuxitheone 1:87df5ce85ede 58 LCDDisplay(menustate);
Tuxitheone 1:87df5ce85ede 59 menustate++;
Tuxitheone 1:87df5ce85ede 60 if (menustate>3) menustate=1;
Tuxitheone 1:87df5ce85ede 61 }
Tuxitheone 1:87df5ce85ede 62
Tuxitheone 1:87df5ce85ede 63
Tuxitheone 1:87df5ce85ede 64 void LCDDisplay(int menu)
Tuxitheone 1:87df5ce85ede 65 {
Tuxitheone 1:87df5ce85ede 66 switch (menu) {
Tuxitheone 1:87df5ce85ede 67 case 0: {
Tuxitheone 1:87df5ce85ede 68 lcd.cls();
Tuxitheone 1:87df5ce85ede 69 lcd.printf("###################\n");
Tuxitheone 1:87df5ce85ede 70 lcd.printf("#### TuxiNet.dk ###\n");
Tuxitheone 1:87df5ce85ede 71 lcd.printf("### Solar Charger #\n");
Tuxitheone 1:87df5ce85ede 72 lcd.printf("###################");
Tuxitheone 1:87df5ce85ede 73 }
Tuxitheone 1:87df5ce85ede 74 break;
gert_lauritsen 0:40a765d1b46b 75
Tuxitheone 1:87df5ce85ede 76 case 1: {
Tuxitheone 1:87df5ce85ede 77 lcd.cls();
Tuxitheone 1:87df5ce85ede 78 lcd.printf("Battery\n");
Tuxitheone 1:87df5ce85ede 79 lcd.printf("%.2fV %.2fA %.2fW\n",VRaw,IRaw,IRaw*VRaw);
Tuxitheone 1:87df5ce85ede 80 }
Tuxitheone 1:87df5ce85ede 81 break;
Tuxitheone 1:87df5ce85ede 82
Tuxitheone 1:87df5ce85ede 83 case 2: {
Tuxitheone 1:87df5ce85ede 84 lcd.cls();
Tuxitheone 1:87df5ce85ede 85 lcd.printf("Temp:\n");
Tuxitheone 1:87df5ce85ede 86 lcd.printf("Inde %.2fC\n Ude: %.2fC %.1f%\n",ReadTempetur(),UdeTemp,UdeHym);
Tuxitheone 1:87df5ce85ede 87 }
Tuxitheone 1:87df5ce85ede 88 break;
Tuxitheone 1:87df5ce85ede 89
Tuxitheone 1:87df5ce85ede 90 case 3: {
Tuxitheone 1:87df5ce85ede 91 lcd.cls();
Tuxitheone 1:87df5ce85ede 92 lcd.printf("Solar Cell:\n");
Tuxitheone 1:87df5ce85ede 93 lcd.printf("C1 %.1f C2 %.1f\n C3 %.1f C4 %.1f\n",Cells[0],Cells[1],Cells[2],Cells[3]);
Tuxitheone 2:a347938f640b 94 lcd.printf("%.1fV %.1fA %.1fW\n",Cell[2],IRaw1,IRaw1*Cell[2]);
Tuxitheone 1:87df5ce85ede 95 }
Tuxitheone 1:87df5ce85ede 96 break;
Tuxitheone 1:87df5ce85ede 97
Tuxitheone 1:87df5ce85ede 98 case 4: {
Tuxitheone 1:87df5ce85ede 99 lcd.cls();
Tuxitheone 1:87df5ce85ede 100 lcd.printf("Reng / LUX");
Tuxitheone 2:a347938f640b 101 lcd.printf("LUM: %.2f [Lux]\n", lum.lux());
Tuxitheone 1:87df5ce85ede 102 }
Tuxitheone 1:87df5ce85ede 103 break;
Tuxitheone 1:87df5ce85ede 104 }
Tuxitheone 1:87df5ce85ede 105 }
gert_lauritsen 0:40a765d1b46b 106
gert_lauritsen 0:40a765d1b46b 107 int main()
gert_lauritsen 0:40a765d1b46b 108 {
Tuxitheone 1:87df5ce85ede 109 Knap.rise(&LEDON);
Tuxitheone 1:87df5ce85ede 110 LCDDisplay(0);
gert_lauritsen 0:40a765d1b46b 111 while(1) {
Tuxitheone 1:87df5ce85ede 112 VRaw = Ain1.read()*VoltBatDevider;
Tuxitheone 1:87df5ce85ede 113 IRaw = ((Ain2.read()*3.3)-2.5)*ISensorFaktor;
Tuxitheone 2:a347938f640b 114 IRaw1 = ((Ain3.read()*3.3)-2.5)*ISensorFaktor;
Tuxitheone 1:87df5ce85ede 115 Cells[0]=CellLow1.read()*VoltDevider;
Tuxitheone 1:87df5ce85ede 116 Cells[1]=CellLow2.read()*VoltDevider;
Tuxitheone 1:87df5ce85ede 117 Cells[2]=CellTotal.read()*VoltDevider-Cells[0];
Tuxitheone 1:87df5ce85ede 118 Cells[3]=CellTotal.read()*VoltDevider-Cells[1];
gert_lauritsen 0:40a765d1b46b 119
Tuxitheone 1:87df5ce85ede 120 int err=dht22.readData();
Tuxitheone 1:87df5ce85ede 121 wait(2.0);
Tuxitheone 1:87df5ce85ede 122 if (err==0) {
Tuxitheone 1:87df5ce85ede 123 UdeTemp=dht22.ReadTemperature(CELCIUS);
Tuxitheone 1:87df5ce85ede 124 UdeHym=dht22.ReadHumidity();
Tuxitheone 1:87df5ce85ede 125 }
gert_lauritsen 0:40a765d1b46b 126
Tuxitheone 1:87df5ce85ede 127 //Serial Log
Tuxitheone 1:87df5ce85ede 128 pc.printf("Bettery:\r\n");
Tuxitheone 1:87df5ce85ede 129 pc.printf("%.3f Volts %.3f Amps %.3f watt\r\n",VRaw,IRaw,IRaw*VRaw);
Tuxitheone 1:87df5ce85ede 130 pc.printf("Temp:\r\n");
Tuxitheone 1:87df5ce85ede 131 pc.printf("Inde %.2fC Ude: %.2fC %.1f% \n\r",ReadTempetur(),UdeTemp,UdeHym);
Tuxitheone 1:87df5ce85ede 132 pc.printf("Solar Cell:\r\n");
Tuxitheone 1:87df5ce85ede 133 pc.printf("C1 %.1f C2 %.1f C3 %.1f C4 %.1f \n\n\r",Cells[0],Cells[1],Cells[2],Cells[3]);
Tuxitheone 2:a347938f640b 134 pc.printf("%.3f Volt %.3f Amp %.3f Watt\r\n",Cell[2],IRaw1,IRaw1*Cell[2]);
Tuxitheone 2:a347938f640b 135 pc.printf("Illuminance: %+7.2f [Lux]\r\n", lum.lux());
Tuxitheone 1:87df5ce85ede 136
Tuxitheone 1:87df5ce85ede 137
Tuxitheone 1:87df5ce85ede 138
Tuxitheone 1:87df5ce85ede 139 wait(2.0);
gert_lauritsen 0:40a765d1b46b 140 }
gert_lauritsen 0:40a765d1b46b 141 }