hg

Dependencies:   LoRaTransmitter mbed BME280 SX1272Lib

Dependents:   LoRaTransmitter

Revision:
3:4e51739d3a97
Parent:
1:30ce00fbab55
diff -r 30ce00fbab55 -r 4e51739d3a97 main.cpp
--- a/main.cpp	Fri May 13 15:45:57 2022 +0000
+++ b/main.cpp	Sat Jun 11 14:20:20 2022 +0000
@@ -2,8 +2,9 @@
 #include "main.h"
 #include "sx1272-hal.h"
 #include "debug.h"
+#include "BME280.h"
 
-#include "Grove_LCD_RGB_Backlight.h"
+
 
 /* Set this flag to '1' to display debug messages on the console */
 #define DEBUG_MESSAGE   1
@@ -57,14 +58,14 @@
 DigitalOut led( LED1 );
 #endif
 
-Serial pc(USBTX, USBRX); // tx, rx
-AnalogIn   voltage(PC_5);
-AnalogIn   current(A1);
+//Serial pc(USBTX, USBRX); // tx, rx
+AnalogIn   ground(A1);
+BME280 sensor(I2C_SDA, I2C_SCL);
 Ticker measure;
-Ticker send;
-Grove_LCD_RGB_Backlight lcd(I2C_SDA, I2C_SCL);
+
 
-//Grove_LCD_RGB_Backlight rgbLCD(I2C_SDA, I2C_SCL);
+
+
 
 /*
  *  Global variables declarations
@@ -106,57 +107,27 @@
 int8_t SnrValue = 0.0;
 //float measured_sinus = 0.0;
 int16_t j = 0;
-float voltage_sinus, current_sinus;
-volatile float Vsum = 0,Vmax =0, Vmean = 0, Imax =0, Isum = 0, Imean = 0, Ud = 0,  Id = 0, cosi = 0;
-volatile double P = 0, P2 = 0, S2 = 0, P1=0, S1=0;
+float ground_hum, temperature, pressure, humidity;
 
 uint16_t strSize = 0;
 char str[BUFFER_SIZE];
-char monitor[16]="0", monitor1[16]="0";
+
 
 
 
 void meas (void)
 {
         
-        j++;
-        voltage_sinus = voltage*2200;
-        current_sinus = current*5;
-        Vsum+=voltage_sinus;
-        Isum+=current_sinus;
-        if (voltage_sinus>Vmax)
-                Vmax=voltage_sinus;
-        if (current_sinus>Imax)
-                Imax=current_sinus;
-        
-        P=P+(((voltage_sinus-Vmean)*(current_sinus-Imean))*(0.0002/3600000));
-        P2=P2+((voltage_sinus-Vmean)*(current_sinus-Imean));
-        if((((voltage_sinus-Vmean)*(current_sinus-Imean))*(0.0002/3600000))>0)
-        S2=S2+((voltage_sinus-Vmean)*(current_sinus-Imean));
+        ground_hum = ground;
+        printf("Ground humidity is %5.2f%%\n\r", ground_hum*100);
+        printf("%2.2f degC, %04.2f hPa, %2.2f %%\n\r", temperature, pressure, humidity);
+        strSize = sprintf ( str, "%5.2f%%, %5.2f degC, %5.2f hPa, %5.2f %%", ground_hum*100, temperature, pressure, humidity);
+        State = TX;
         
-        
-        
-        if (j>=300)
-        {
-            j = 0;
-            Vmean=Vsum/(300);
-            Imean = Isum/(300);
-            P1=P2/300; S1=S2/300;
-            Ud=(Vmax-Vmean)/1.41;
-            Id=(Imax-Imean)/1.41;
-            Vmax = 0; Imax = 0;
-
-            cosi = P2/S2;
-            P2=0; S2=0;
-        }
+     
 }
 
-void transmit (void)
-{
-            strSize = sprintf ( str, "W=%10.4fkWh, cos fi=%5.4f, P1=%5.4f, S1=%5.4f", P, cosi, P2, S2);
-            State = TX;
-                     
-}
+
 
 
 
@@ -242,25 +213,14 @@
         
         
     
-        measure.attach_us(&meas, 200);
-        send.attach(&transmit, 30);
+        measure.attach(&meas, 5);
         
     while( 1 )
     {
         
         
         
-        lcd.setRGB(0, 255, 0);
-
- 
         
-        sprintf(monitor, "U=%3.0fV, I=%3.2fA", Ud, Id);
-        sprintf(monitor1, "P=%8.2f kWh", P);
-        // Print a message to the LCD.
-        lcd.locate(0, 0);
-        lcd.print(monitor);
-        lcd.locate(0, 1);
-        lcd.print(monitor1);
         
         switch( State )
         {
@@ -281,6 +241,7 @@
             State = LOWPOWER;
             break;
         case RX_ERROR:
+            Radio.Rx( RX_TIMEOUT_VALUE );
             State = LOWPOWER;
             break;
         case TX_TIMEOUT:
@@ -293,7 +254,10 @@
             State = LOWPOWER;
             break;
         }
-
+        temperature = sensor.getTemperature();
+        pressure = sensor.getPressure();
+        humidity = sensor.getHumidity();
+        
         wait(5);
     }
 }