weatherbox:data_specification

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
weatherbox:data_specification [2016/03/27 22:54]
kluong [Converting from volts to w_m2]
weatherbox:data_specification [2021/09/19 21:59] (current)
Line 2: Line 2:
  
 This page contains the data specification versions for the weatherbox. ​ This page contains the data specification versions for the weatherbox. ​
 +
 +
  
  
 ====== 296 Basic Schema ====== ====== 296 Basic Schema ======
  
-This is a simplified schema that is to be used by EE 296 teams for Spring 2016. +This is a simplified schema that is to be used by EE 296 teams for Spring 2016. In the interests of time, you should consider getting your weatherbox to work with this schema first and then update your firmware later to tackle the full schema
  
 <​code>​ <​code>​
Line 18: Line 20:
     int16_t bmp185_temp_decic; ​   // Temperature Value (in celsius)     int16_t bmp185_temp_decic; ​   // Temperature Value (in celsius)
     uint16_t humidity_centi_pct;​     uint16_t humidity_centi_pct;​
-    uint16_t ​apogee_w_m2;+    uint16_t ​solar_irr_w_m2;
 } schema_296; } schema_296;
  
Line 36: Line 38:
 | solar_irr_w_m2 ​    | 16            | Solar Irradiance. Taken from the apogee reading.. ​                                                                                                                             | | solar_irr_w_m2 ​    | 16            | Solar Irradiance. Taken from the apogee reading.. ​                                                                                                                             |
  
-In the interests of time, this packet is simplified from the original weatherbox specification. In this specification there are no varying sample rates for each data type - one packet gives you one sample point for each data type.  ​+This packet is simplified from the original weatherbox specification. In this specification there are no varying sample rates for each data type - one packet gives you one sample point for each data type.  ​
  
 ===== Converting from volts to w_m2 ===== ===== Converting from volts to w_m2 =====
Line 46: Line 48:
 $Conversion Factor = (4.0mV) / (1 W/m^2)$ $Conversion Factor = (4.0mV) / (1 W/m^2)$
  
-Therefore this is the formula you can use to convert ​voltages ​units to $w/m^2$+Therefore this is the formula you can use to convert units of $V$ to units of $w/m^2$.
  
 $X_{sensor} (W/m^2) = V_{sensor} / (0.004V)$ $X_{sensor} (W/m^2) = V_{sensor} / (0.004V)$
  
 +====== EE 296 Full Schema ======
 +
 +This schema is the same as the EE 296 Basic Schema but contains more samples for the irradiance sensor as well as the battery voltage and panel voltage. ​
 +
 +<​code>​
 +typedef struct {
 +    uint16_t schema; ​             // Schema Identification Number
 +    uint16_t address;​  ​ // Address of the particular node
 +    uint32_t uptime_ms;​  ​ // Time since start of program
 +    uint16_t batt_mv[6];​  ​ // Battery Voltage (in milli volts)
 +    uint16_t panel_mv[6];​  ​ // Panel Voltage (in milli volts)
 +    uint32_t bmp185_press_pa;​  ​ // Pressure Value (in pascals)
 +    int16_t bmp185_temp_decic; ​   // Temperature Value (in celsius)
 +    uint16_t humidity_centi_pct;​
 +    uint16_t solar_irr_w_m2[20];​
 +} schema_296_full;​
 +</​code>​
 +
 +
 +Additional Comments:
 +
 +  * These numbers are all in reference to a minute - since batt_mv has 15 entries, there will be 15 samples per minute. These datapoints should be spread evenly through the minute. For example, batt_mv will be sampled every 60/15 or every 4 seconds. ​
 +  * Single data types are allowed to be sampled at any point during the minute, so long as it is consistent across all data points. ​
 +  * Your sampling pattern should be consistent for every minute. ​
 +  * For this schema, you should set the schema number in your packet to 297 instead of 296.
  
 ====== Schema v1 ====== ====== Schema v1 ======
Line 61: Line 88:
     uint32_t uptime_ms;​ //​ Time since start of program     uint32_t uptime_ms;​ //​ Time since start of program
     uint8_t n; // number of data points in packet 0..30     uint8_t n; // number of data points in packet 0..30
-    uint16_t batt_mv[15]; // Battery Voltage (in milli volts) +    uint16_t batt_mv[6]; // Battery Voltage (in milli volts) 
-    uint16_t panel_mv[15]; // Panel Voltage (in milli volts)+    uint16_t panel_mv[6]; // Panel Voltage (in milli volts)
     uint32_t bmp085_press_pa;​ //​ Pressure Value (in pascals)     uint32_t bmp085_press_pa;​ //​ Pressure Value (in pascals)
     int16_t bmp085_temp_decic; ​ // Temperature Value (in celsius)     int16_t bmp085_temp_decic; ​ // Temperature Value (in celsius)
     uint16_t humidity_centi_pct;​     uint16_t humidity_centi_pct;​
-    uint16_t apogee_w_m2[60];+    uint16_t apogee_w_m2[20];
 } schema_1; } schema_1;
  
Line 110: Line 137:
     uint16_t apogee_w_m2[20];​     uint16_t apogee_w_m2[20];​
 } schema_3; } schema_3;
 +</​code>​
 +====== Unified Packet Schema ======
 +// Schema Number 5
 +// Fields that are unimplemented should be set to 0
  
 +This schema is currently in draft.
  
 +<​code>​
 +typedef struct {
 +    uint16_t schema; ​             // Schema Identification Number
 +    uint16_t address;​  ​ // Address of the particular node
 +    uint32_t uptime_ms;​  ​ // Time since start of program
 +    float    batt_mv;​  ​ // Battery Voltage (in milli volts)
 +    float    panel_mv;​  ​ // Panel Voltage (in milli volts)
 +    float    bmp185_press_pa;​  ​ // Pressure Value (in pascals)
 +    float    bmp185_temp_decic; ​   // Temperature Value (in celsius)
 +    float    humidity_centi_pct;​
 +    float    solar_irr_w_m2;​
 +} schema_unified;​
 +// Total bytes to aim for under: 84
 </​code>​ </​code>​
 +
  • weatherbox/data_specification.1459119281.txt.gz
  • Last modified: 2021/09/19 21:59
  • (external edit)