Sensor Code By Jorge Troncoso

Dependencies:   Sensor2 MAX31855-1 libmDot-1

Fork of 0A101_mDot_Sensor_Rev3_AUS by Jorge Troncoso

Committer:
jortronm2
Date:
Thu Jan 04 03:42:09 2018 +0000
Revision:
0:1441b10e38a6
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jortronm2 0:1441b10e38a6 1 #include "board_config.h"
jortronm2 0:1441b10e38a6 2 #include "radio_sensor.h"
jortronm2 0:1441b10e38a6 3 #include "sensors.h" //Sesing
jortronm2 0:1441b10e38a6 4 #include "status_led.h" //Displys the atatus of the sensor through LED
jortronm2 0:1441b10e38a6 5
jortronm2 0:1441b10e38a6 6
jortronm2 0:1441b10e38a6 7 #define MDOT_TIME_SLEEP (180) // Sleep time in seconds
jortronm2 0:1441b10e38a6 8
jortronm2 0:1441b10e38a6 9
jortronm2 0:1441b10e38a6 10 DigitalIn button(PIN_INPUT_BUTTON);
jortronm2 0:1441b10e38a6 11 #ifdef DEBUG_SERIAL_ENABLED
jortronm2 0:1441b10e38a6 12 // Note: Apparently MTSLog is dependant on the initialization of the debug serial port.
jortronm2 0:1441b10e38a6 13 Serial debug_serial(PIN_OUTPUT_DEBUG_UART_TX, PIN_OUTPUT_DEBUG_UART_RX, DEBUG_UART_BAUD);
jortronm2 0:1441b10e38a6 14 #endif
jortronm2 0:1441b10e38a6 15
jortronm2 0:1441b10e38a6 16
jortronm2 0:1441b10e38a6 17 void print_sensor_data(struct sensor_data_raw data);
jortronm2 0:1441b10e38a6 18
jortronm2 0:1441b10e38a6 19
jortronm2 0:1441b10e38a6 20 int main(void)
jortronm2 0:1441b10e38a6 21 {
jortronm2 0:1441b10e38a6 22 struct sensor_data_raw data;
jortronm2 0:1441b10e38a6 23
jortronm2 0:1441b10e38a6 24
jortronm2 0:1441b10e38a6 25 status_led_blink(STATUS_LED_POWER_ON);
jortronm2 0:1441b10e38a6 26
jortronm2 0:1441b10e38a6 27
jortronm2 0:1441b10e38a6 28 sensors_init(); //Initializes teh ADS1115, sets the devises switch and signals to 0
jortronm2 0:1441b10e38a6 29 radio_sensor_init(mts::MTSLog::DEBUG_LEVEL); //???
jortronm2 0:1441b10e38a6 30
jortronm2 0:1441b10e38a6 31
jortronm2 0:1441b10e38a6 32 status_led_blink(STATUS_LED_CONNECTED);
jortronm2 0:1441b10e38a6 33
jortronm2 0:1441b10e38a6 34
jortronm2 0:1441b10e38a6 35 while (true) {
jortronm2 0:1441b10e38a6 36 sensors_read(&data);
jortronm2 0:1441b10e38a6 37
jortronm2 0:1441b10e38a6 38
jortronm2 0:1441b10e38a6 39 // Print the sensor data to be transmitted.
jortronm2 0:1441b10e38a6 40 print_sensor_data(data);
jortronm2 0:1441b10e38a6 41
jortronm2 0:1441b10e38a6 42
jortronm2 0:1441b10e38a6 43 // Transmit the sensor data.
jortronm2 0:1441b10e38a6 44 if(radio_sensor_transmit(data) == 0) {
jortronm2 0:1441b10e38a6 45 data.reading_number++;
jortronm2 0:1441b10e38a6 46 status_led_blink(STATUS_LED_RADIO_ACTIVITY);
jortronm2 0:1441b10e38a6 47 logInfo("Successfully transmited sensor data.");
jortronm2 0:1441b10e38a6 48 } else {
jortronm2 0:1441b10e38a6 49 logError("Failed to transmit sensor data.");
jortronm2 0:1441b10e38a6 50 }
jortronm2 0:1441b10e38a6 51
jortronm2 0:1441b10e38a6 52
jortronm2 0:1441b10e38a6 53 // Set the wakeup pin, save the configuration of the pins and then configure them for low power mode.
jortronm2 0:1441b10e38a6 54 dot->setWakePin(PIN_INPUT_BUTTON);
jortronm2 0:1441b10e38a6 55 sleep_save_io();
jortronm2 0:1441b10e38a6 56 sleep_configure_io();
jortronm2 0:1441b10e38a6 57
jortronm2 0:1441b10e38a6 58 // Send the MDot to sleep.
jortronm2 0:1441b10e38a6 59 dot->sleep(MDOT_TIME_SLEEP, mDot::RTC_ALARM_OR_INTERRUPT, false);
jortronm2 0:1441b10e38a6 60
jortronm2 0:1441b10e38a6 61 // Restore the save pin configuration.
jortronm2 0:1441b10e38a6 62 sleep_restore_io();
jortronm2 0:1441b10e38a6 63
jortronm2 0:1441b10e38a6 64 if(button.read() == 1) {
jortronm2 0:1441b10e38a6 65 logDebug("Button press.");
jortronm2 0:1441b10e38a6 66 status_led_blink(STATUS_LED_CHECK);
jortronm2 0:1441b10e38a6 67 }
jortronm2 0:1441b10e38a6 68 }
jortronm2 0:1441b10e38a6 69 }
jortronm2 0:1441b10e38a6 70
jortronm2 0:1441b10e38a6 71 void print_sensor_data(struct sensor_data_raw data)
jortronm2 0:1441b10e38a6 72 {
jortronm2 0:1441b10e38a6 73 logInfo("reading #: %7u", data.reading_number);
jortronm2 0:1441b10e38a6 74 logInfo("battery: %7u", data.voltage_battery);
jortronm2 0:1441b10e38a6 75 logInfo("signal 1-1: %7u", data.voltage_wire[0]);
jortronm2 0:1441b10e38a6 76 logInfo("signal 1-2: %7u", data.voltage_wire[1]);
jortronm2 0:1441b10e38a6 77 logInfo("signal 1-3: %7u", data.voltage_wire[2]);
jortronm2 0:1441b10e38a6 78 logInfo("signal 2-1: %7u", data.voltage_wire[3]);
jortronm2 0:1441b10e38a6 79 logInfo("signal 2-2: %7u", data.voltage_wire[4]);
jortronm2 0:1441b10e38a6 80 logInfo("signal 2-3: %7u", data.voltage_wire[5]);
jortronm2 0:1441b10e38a6 81 logInfo("signal 3-1: %7u", data.voltage_wire[6]);
jortronm2 0:1441b10e38a6 82 logInfo("signal 3-2: %7u", data.voltage_wire[7]);
jortronm2 0:1441b10e38a6 83 logInfo("signal 3-3: %7u", data.voltage_wire[8]);
jortronm2 0:1441b10e38a6 84 logInfo("temperature: %7i", data.temperature);
jortronm2 0:1441b10e38a6 85 }