Simple transmitter application for SX127x radio.

Dependencies:   MbedJSONValue SX127x sx12xx_hal

Revision:
7:803a185d7021
Parent:
6:83bedc32acaf
Child:
8:738ab96d41da
--- a/main.cpp	Tue Sep 24 21:13:28 2019 +0000
+++ b/main.cpp	Tue Sep 24 23:09:39 2019 +0000
@@ -27,9 +27,11 @@
 
 /******************** Setup radio transmitter ****************************/
 
-// Configure A1 as Analog Input
-AnalogIn sensor(A1);
-float light_val;
+// Analog Sensor setup
+AnalogIn sensor_light(A1);
+AnalogIn sensor_temp(A3);
+double light_val_analog;
+double temperature_analog;
 
 // Configure the User button as an interrupt
 InterruptIn button(USER_BUTTON, PullUp);
@@ -41,6 +43,10 @@
 MbedJSONValue message;
 Timer t;
 
+// Forward declaration
+float convert_analog_light_resistance(double analog_val);
+float convert_analog_temperature(double analog_val);
+
 // Transmit Done Callback Handler
 void txDoneCB()
 {
@@ -84,7 +90,9 @@
     //fill the object
     message["btn_count"] = seq;
     message["btn_timer"] = t.read();
-    message["light_val"] = light_val;
+    message["light_val"] = light_val_analog;
+    message["light_resistance"] = convert_analog_light_resistance(light_val_analog);
+    message["temperature"] = convert_analog_temperature(temperature_analog);
     message["my_str"] = "Hello World!";
     message["my_boolean"] = false;
     
@@ -118,6 +126,21 @@
     Radio::LoRaPacketConfig(8, false, true, false);
 }
 
+float convert_analog_light_resistance(double analog_val)
+{          
+    float Rsensor=(float)(1023-analog_val)*10/analog_val;
+    return Rsensor;
+}
+
+float convert_analog_temperature(double analog_val)
+{
+    double a = analog_val*1023;
+    double resistance=(float)(1023-a)*10000/a;
+    double temperature=1/(log(resistance/10000)/3975+1/298.15)-276.05;
+    double temperature_f = (9.0*temperature)/5.0 + 32.0;
+    return temperature_f;
+}
+
 int main()
 {        
     printf("\r\nreset-tx \n");
@@ -134,7 +157,8 @@
         while (!txDone)
         {
             Radio::service();
-            light_val = sensor.read();
+            light_val_analog = sensor_light.read();
+            temperature_analog = sensor_temp.read();
         }
     }
 }