hg

Dependencies:   LoRaTransmitter mbed BME280 SX1272Lib

Dependents:   LoRaTransmitter

Files at this revision

API Documentation at this revision

Comitter:
aizakharov
Date:
Sat Jun 11 14:20:20 2022 +0000
Parent:
1:30ce00fbab55
Commit message:
hhjjhkxkhn

Changed in this revision

BME280.lib Show annotated file Show diff for this revision Revisions of this file
Grove_LCD_RGB_Backlight.lib Show diff for this revision Revisions of this file
LoRaTransmitter.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/BME280.lib	Sat Jun 11 14:20:20 2022 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/users/MACRUM/code/BME280/#bce5ac62b015
--- a/Grove_LCD_RGB_Backlight.lib	Fri May 13 15:45:57 2022 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-https://os.mbed.com/users/cmatz3/code/Grove_LCD_RGB_Backlight/#5ce38ef7a7db
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LoRaTransmitter.lib	Sat Jun 11 14:20:20 2022 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/aizakharov/code/LoRaTransmitter/#30ce00fbab55
--- 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);
     }
 }