GPS to Pulga

Dependencies:   Si1133 BME280

source/main.cpp

Committer:
pancotinho
Date:
2019-12-30
Revision:
23:7f1c9c1a4c57
Parent:
22:2c6161c96a76
Child:
24:595155aa83c3

File content as of revision 23:7f1c9c1a4c57:

/***GENERAL INCLUDES***/

//MBed Includes

#include <events/mbed_events.h>
#include <stdio.h>
#include "mbed.h"
/***Definições do Arquétipo***/

int comm=1; // 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;
uint32_t sens00 = 0;
uint32_t sens01 = 0;
uint32_t sens02 = 0;
int cont=0;
int read_sens=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"

//Sensors Includes


#include "BME280.h"
#include "Si1133.h"
#include "BMX160.txt"

/***DEFINES***/

//Sensors and Peripherals
DigitalOut led1(P1_13);
InterruptIn button1(P1_11);
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 =  sensor_amb.getTemperature();
             
             if (comm==1){
                 sens00 = sensor_get;
                 sens00 = (sens00 < 0 ? 0 : sens00); 
                 sens00 = (sens00 > 255 ? 255 : sens00);
                 printf("Temp = %u\n", sens00);
                 }

             printf("Temp = %f\n", sensor_get);             

              
             sensor_get =  sensor_amb.getPressure();

             if (comm==1){
                 sens01 = sensor_get/10;
                 sens01 = (sens01 < 0 ? 0 : sens01); 
                 sens01 = (sens01 > 255 ? 255 : sens01);
                 printf("Pres = %u\n", sens01); 
                 }
                 
             printf("Pres = %f\n", sensor_get);              
            
             
             sensor_get =  sensor_amb.getHumidity();
             
             
             if (comm==1){
                 sens02 = sensor_get;
                 sens02 = (sens02 < 0 ? 0 : sens02); 
                 sens02 = (sens02 > 255 ? 255 : sens02);
                 printf("Hum = %u\n", sens02);
                 }
                 
             printf("Hum = %f\n", sensor_get); 
             }
             
        if (sens==2) {
            if(sensor_light.open()){
                sensor_get =  sensor_light.get_light_level();
                if (comm==1){
                 sens00 = sensor_get;
                 sens00 = (sens00 < 0 ? 0 : sens00); 
                 sens00 = (sens00 > 255 ? 255 : sens00);
                 printf("Light Level = %u\n", sens00);
                 }

            printf("Light Level = %f\n", sensor_get);             
            }
        }
            
        if (sens==3) {
            if(sensor_light.open()){              
                sensor_get =  sensor_light.get_uv_index();
                if (comm==1){
                    sens01 = sensor_get/10;
                    sens01 = (sens01 < 0 ? 0 : sens01); 
                    sens01 = (sens01 > 255 ? 255 : sens01);
                    printf("UV Index = %u\n", sens01); 
                    }
                printf("Uv Index = %f\n", sensor_get);
                }              
            } 
            
        if (sens==4) {
            
            BMX160_print();
            
            }
    }
    

     
#include "BLE.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();            
            }
     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();
    //button1.fall(&button1_pressed);
    //button1.rise(&button1_released);
    Communication (comm);        
    
    }