Program test for Coragem
Dependencies: SX1272 SPI_MX25R
main.cpp
- Committer:
- marcoantonioara
- Date:
- 2019-11-13
- Revision:
- 4:05d5aa4d3f2d
- Parent:
- 3:cbe3f441353e
File content as of revision 4:05d5aa4d3f2d:
#include "mbed.h" /////////////////////////////////////// // Defines /////////////////////////////////////// //#define BMX160 //#define BME280 //#define SI1133 #define LORA_SX1272 //#define MEM_MX25R #define GPS_ZOE /////////////////////////////////////// // Globals variables /////////////////////////////////////// DigitalOut led1(P1_13); DigitalOut led2(P1_14); DigitalIn button1(P1_11); DigitalIn button2(P1_12); DigitalIn button3(P0_30); EventQueue queue; //============= internet of turtles ============= Timer time_breathing; Timer time_diving; bool beathing = false; float last_breathing_time = 0.0; float last_diving_time = 0.0; char float_breathing_time[10]; char float_diving_time[10]; //Timer seconds; #ifdef BMX160 #include "bmx160.txt" #endif #ifdef BME280 #include "bme280.txt" #endif #ifdef LORA_SX1272 #include "lora.txt" #endif #ifdef GPS_ZOE #include "gps.txt" #endif #ifdef MEM_MX25R #include "memory.txt" SPI_MX25R mem(P0_17, P0_20, P0_22, P0_24); #endif #ifdef SI1133 #include "Si1133.h" Si1133 si1133(P0_13, P0_15); #endif void coragem_sleep (){ #ifdef BMX160 bmx_sleep (); #endif #ifdef BME280 bme_sleep (); #endif #ifdef LORA_SX1272 lora_sleep(); #endif #ifdef SI1133 si1133.wait_until_sleep();//ligth sensor sleep #endif #ifdef MEM_MX25R mem.deepPowerdown();//memory sleep #endif } void coragem_wake(){ #ifdef BMX160 bmx_wake(); #endif #ifdef BME280 bme_wake(); #endif #ifdef LORA_SX1272 lora_wake(); #endif #ifdef SI1133 si1133.wake();//ligth sensor wake up #endif //memory wake #ifdef MEM_MX25R mem.m_cs = CS_LOW ; wait_ms(0.1); mem.m_cs = CS_HIGH ; #endif } int main(void) { /////////////////////////////////////// // Configuraion /////////////////////////////////////// printf("------Coragem all sensor-------------\n---------Configuration initied----------"); //led1=1;//on leds led2=1; #ifdef BMX160//bmx160 configuration bmx_config(); #endif #ifdef BME280 //sensor bme280 BME_ADDR = 0; bme_init(); #endif #ifdef LORA_SX1272 //configura sx1272 Thread eventThread; eventThread.start(callback(&queue, &EventQueue::dispatch_forever)); dio0.rise(queue.event(&lora_print_packet)); //configure interrupt rotine ro recieve packet lora_setup(); sx1272.writeRegister(REG_OP_MODE,133); //leitura continua #endif //gps configuration #ifdef GPS_ZOE gps_config(); #endif //wait_ms(2100); //led1=0;//off leds led2=0; printf("------Configuration finished------------\n"); /////////////////////////////////////// // Main Loop /////////////////////////////////////// uint8_t packet[]={0,1,2,3}; while (1) { //TEST all sensors #ifdef BMX160 bmx_read(); #endif #ifdef BME280 printf("Temp %2.2f degC, Press %04.2f hPa, Hum %2.2f %%\n", getTemperature(), getPressure(), getHumidity()); #endif #ifdef LORA_SX1272 lora_send_packet (packet,sizeof(packet)); #endif #ifdef SI1133 if (si1133.open()) printf("Lux = %.3f UV index = %.3f\n", (float)si1133.get_light_level(), (float)si1133.get_uv_index()); #endif #ifdef MEM_MX25R memory_test(); #endif #ifdef GPS_ZOE //gps_print_local(); send_nav_pvt(); #endif wait(1); } }