GPS to Pulga
source/main.cpp
- Committer:
- pancotinho
- Date:
- 2020-01-03
- Revision:
- 24:595155aa83c3
- Parent:
- 23:7f1c9c1a4c57
- Child:
- 25:ecdee9ef9939
File content as of revision 24:595155aa83c3:
/***GENERAL INCLUDES***/ //MBed Includes #include <events/mbed_events.h> #include <stdio.h> #include "mbed.h" /***Definições do Arquétipo***/ int comm=2; // Selecionar: 0 para nenhum, 1 para BLE, 2 para Lora ou 3 para Lorawan int sensors=0; // Selecionar: 0 para nenhum, 1 para sensor ambiental, 2 para sensor de luz, 3 para sensor de movimento. int peripherals=0; // Selecionar: 0 para nenhum, 1 para GPS /***Global Variables***/ float sensor_get_0 = 0; float sensor_get_1 = 0; float sensor_get_2 = 0; float sensor_get_3 = 0; float sensor_get_4 = 0; uint32_t sens00 = 0; uint32_t sens01 = 0; uint32_t sens02 = 0; int cont=0; int read_sens=0; int lat=0; int lon=0; int latitude=0; int longitude=0; /***SPECIFIC INCLUDES***/ //BLE Includes #include "platform/Callback.h" #include "events/EventQueue.h" #include "platform/NonCopyable.h" #include "ble/BLE.h" #include "ble/Gap.h" #include "ble/GattClient.h" #include "ble/GapAdvertisingParams.h" #include "ble/GapAdvertisingData.h" #include "ble/GattServer.h" #include "BLEProcess.h" //Lorawan Includes #include "lorawan/LoRaWANInterface.h" #include "lorawan/system/lorawan_data_structures.h" #include "trace_helper.h" #include "lora_radio_helper.h" DigitalOut led1(P1_13); InterruptIn button1(P1_11); //Sensors Includes #include "BME280.h" #include "Si1133.h" #include "BMX160.txt" #include "gps.txt" /***DEFINES***/ //Sensors and Peripherals BME280 sensor_amb(P0_13, P0_15, 0x77 << 1); Si1133 sensor_light(P0_13, P0_15); /***Functions***/ void Sensor_Read(int sens){ if (sens==1) { sensor_amb.initialize(); sensor_get_0 = sensor_amb.getTemperature(); //if (comm==1){ sens00 = sensor_get_0; sens00 = (sens00 < 0 ? 0 : sens00); sens00 = (sens00 > 255 ? 255 : sens00); printf("Temp = %u\n", sens00); // } printf("Temp = %f\n", sensor_get_0); sensor_get_1 = sensor_amb.getPressure(); if (comm==1){ sens01 = sensor_get_1/10; sens01 = (sens01 < 0 ? 0 : sens01); sens01 = (sens01 > 255 ? 255 : sens01); printf("Pres = %u\n", sens01); } printf("Pres = %f\n", sensor_get_1); sensor_get_2 = sensor_amb.getHumidity(); if (comm==1){ sens02 = sensor_get_2; sens02 = (sens02 < 0 ? 0 : sens02); sens02 = (sens02 > 255 ? 255 : sens02); printf("Hum = %u\n", sens02); } printf("Hum = %f\n", sensor_get_2); } if (sens==2) { if(sensor_light.open()){ sensor_get_3 = sensor_light.get_light_level(); if (comm==1){ sens00 = sensor_get_3; sens00 = (sens00 < 0 ? 0 : sens00); sens00 = (sens00 > 255 ? 255 : sens00); printf("Light Level = %u\n", sens00); } printf("Light Level = %f\n", sensor_get_3); } } if (sens==3) { if(sensor_light.open()){ sensor_get_4 = sensor_light.get_uv_index(); if (comm==1){ sens01 = sensor_get_4/10; sens01 = (sens01 < 0 ? 0 : sens01); sens01 = (sens01 > 255 ? 255 : sens01); printf("UV Index = %u\n", sens01); } printf("Uv Index = %f\n", sensor_get_4); } } if (sens==4) { BMX160_print(); } } void GPS_Read(void) { gps_print_local(); // send_nav_pvt(); //lon= gps_send_long (); printf ("gps longitude=%d \n",lon); //lat= gps_send_lat (); printf ("gps latitude=%d \n",lat); //if(lat!=0 && lon!=0){ longitude=lon; latitude=lat; //} } #include "BLE.txt" #include "Lorawan.txt" int Communication(int comm){ if(comm==1){ BLE &ble_interface = BLE::Instance(); events::EventQueue event_queue; MyService demo_service; BLEProcess ble_process(event_queue, ble_interface); ble_process.on_init(callback(&demo_service, &MyService::start)); ble_process.start(); event_queue.dispatch_forever(); } if(comm==2){ setup_trace(); lorawan_status_t retcode; if (lorawan.initialize(&ev_queue) != LORAWAN_STATUS_OK) { printf("\r\n LoRa initialization failed! \r\n"); return -1;} callbacks.events = mbed::callback(lora_event_handler); lorawan.add_app_callbacks(&callbacks); if (lorawan.set_confirmed_msg_retries(CONFIRMED_MSG_RETRY_COUNTER) != LORAWAN_STATUS_OK) { return -1;} if (lorawan.enable_adaptive_datarate() != LORAWAN_STATUS_OK) { printf("\r\n enable_adaptive_datarate failed! \r\n"); return -1;} retcode = lorawan.connect(); if (retcode == LORAWAN_STATUS_OK || retcode == LORAWAN_STATUS_CONNECT_IN_PROGRESS) { } else { return -1;} ev_queue.dispatch_forever(); } return 0; } void button1_pressed() { printf("Teste dos Periféricos\n"); Sensor_Read(1); wait(0.5); Sensor_Read(2); wait(0.5); Sensor_Read(3); wait(0.5); } void button1_released() { led1=1; wait(3); led1=0; } int main() { BMX160_config(); gps_config(); gps_config_gnss (); //button1.fall(&button1_pressed); //button1.rise(&button1_released); Communication (comm); }