GPS to Pulga

Dependencies:   Si1133 BME280

Committer:
pancotinho
Date:
Mon Dec 30 18:38:40 2019 +0000
Revision:
23:7f1c9c1a4c57
Parent:
22:2c6161c96a76
Child:
24:595155aa83c3
working on demmand e periodic sensor reading with all sensors working

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pancotinho 23:7f1c9c1a4c57 1 /***GENERAL INCLUDES***/
pancotinho 23:7f1c9c1a4c57 2
pancotinho 23:7f1c9c1a4c57 3 //MBed Includes
pancotinho 23:7f1c9c1a4c57 4
pancotinho 23:7f1c9c1a4c57 5 #include <events/mbed_events.h>
pancotinho 23:7f1c9c1a4c57 6 #include <stdio.h>
pancotinho 23:7f1c9c1a4c57 7 #include "mbed.h"
pancotinho 23:7f1c9c1a4c57 8 /***Definições do Arquétipo***/
pancotinho 23:7f1c9c1a4c57 9
pancotinho 23:7f1c9c1a4c57 10 int comm=1; // Selecionar: 0 para nenhum, 1 para BLE, 2 para Lora ou 3 para Lorawan
pancotinho 23:7f1c9c1a4c57 11 int sensors=0; // Selecionar: 0 para nenhum, 1 para sensor ambiental, 2 para sensor de luz, 3 para sensor de movimento.
pancotinho 23:7f1c9c1a4c57 12 int peripherals=0; // Selecionar: 0 para nenhum, 1 para GPS
pancotinho 23:7f1c9c1a4c57 13
pancotinho 23:7f1c9c1a4c57 14 /***Global Variables***/
pancotinho 23:7f1c9c1a4c57 15
pancotinho 23:7f1c9c1a4c57 16 float sensor_get = 0;
pancotinho 23:7f1c9c1a4c57 17 uint32_t sens00 = 0;
pancotinho 23:7f1c9c1a4c57 18 uint32_t sens01 = 0;
pancotinho 23:7f1c9c1a4c57 19 uint32_t sens02 = 0;
pancotinho 23:7f1c9c1a4c57 20 int cont=0;
pancotinho 23:7f1c9c1a4c57 21 int read_sens=0;
pancotinho 23:7f1c9c1a4c57 22
pancotinho 23:7f1c9c1a4c57 23
pancotinho 23:7f1c9c1a4c57 24
pancotinho 23:7f1c9c1a4c57 25
pancotinho 23:7f1c9c1a4c57 26 /***SPECIFIC INCLUDES***/
pancotinho 23:7f1c9c1a4c57 27
pancotinho 23:7f1c9c1a4c57 28 //BLE Includes
pancotinho 23:7f1c9c1a4c57 29
pancotinho 23:7f1c9c1a4c57 30 #include "platform/Callback.h"
pancotinho 23:7f1c9c1a4c57 31 #include "events/EventQueue.h"
pancotinho 23:7f1c9c1a4c57 32 #include "platform/NonCopyable.h"
pancotinho 23:7f1c9c1a4c57 33
pancotinho 23:7f1c9c1a4c57 34 #include "ble/BLE.h"
pancotinho 23:7f1c9c1a4c57 35 #include "ble/Gap.h"
pancotinho 23:7f1c9c1a4c57 36 #include "ble/GattClient.h"
pancotinho 23:7f1c9c1a4c57 37 #include "ble/GapAdvertisingParams.h"
pancotinho 23:7f1c9c1a4c57 38 #include "ble/GapAdvertisingData.h"
pancotinho 23:7f1c9c1a4c57 39 #include "ble/GattServer.h"
pancotinho 23:7f1c9c1a4c57 40 #include "BLEProcess.h"
pancotinho 23:7f1c9c1a4c57 41
pancotinho 23:7f1c9c1a4c57 42 //Sensors Includes
pancotinho 23:7f1c9c1a4c57 43
pancotinho 23:7f1c9c1a4c57 44
pancotinho 23:7f1c9c1a4c57 45 #include "BME280.h"
pancotinho 23:7f1c9c1a4c57 46 #include "Si1133.h"
pancotinho 23:7f1c9c1a4c57 47 #include "BMX160.txt"
pancotinho 23:7f1c9c1a4c57 48
pancotinho 23:7f1c9c1a4c57 49 /***DEFINES***/
pancotinho 23:7f1c9c1a4c57 50
pancotinho 23:7f1c9c1a4c57 51 //Sensors and Peripherals
pancotinho 23:7f1c9c1a4c57 52 DigitalOut led1(P1_13);
pancotinho 23:7f1c9c1a4c57 53 InterruptIn button1(P1_11);
pancotinho 23:7f1c9c1a4c57 54 BME280 sensor_amb(P0_13, P0_15, 0x77 << 1) ;
pancotinho 23:7f1c9c1a4c57 55 Si1133 sensor_light(P0_13, P0_15);
pancotinho 23:7f1c9c1a4c57 56
pancotinho 23:7f1c9c1a4c57 57
pancotinho 23:7f1c9c1a4c57 58
pancotinho 23:7f1c9c1a4c57 59
pancotinho 23:7f1c9c1a4c57 60 /***Functions***/
pancotinho 23:7f1c9c1a4c57 61
pancotinho 23:7f1c9c1a4c57 62
pancotinho 23:7f1c9c1a4c57 63
pancotinho 23:7f1c9c1a4c57 64 void Sensor_Read(int sens){
pancotinho 23:7f1c9c1a4c57 65
pancotinho 23:7f1c9c1a4c57 66 if (sens==1) {
pancotinho 23:7f1c9c1a4c57 67 sensor_amb.initialize();
pancotinho 23:7f1c9c1a4c57 68 sensor_get = sensor_amb.getTemperature();
pancotinho 23:7f1c9c1a4c57 69
pancotinho 23:7f1c9c1a4c57 70 if (comm==1){
pancotinho 23:7f1c9c1a4c57 71 sens00 = sensor_get;
pancotinho 23:7f1c9c1a4c57 72 sens00 = (sens00 < 0 ? 0 : sens00);
pancotinho 23:7f1c9c1a4c57 73 sens00 = (sens00 > 255 ? 255 : sens00);
pancotinho 23:7f1c9c1a4c57 74 printf("Temp = %u\n", sens00);
pancotinho 23:7f1c9c1a4c57 75 }
pancotinho 23:7f1c9c1a4c57 76
pancotinho 23:7f1c9c1a4c57 77 printf("Temp = %f\n", sensor_get);
pancotinho 23:7f1c9c1a4c57 78
pancotinho 23:7f1c9c1a4c57 79
pancotinho 23:7f1c9c1a4c57 80 sensor_get = sensor_amb.getPressure();
pancotinho 23:7f1c9c1a4c57 81
pancotinho 23:7f1c9c1a4c57 82 if (comm==1){
pancotinho 23:7f1c9c1a4c57 83 sens01 = sensor_get/10;
pancotinho 23:7f1c9c1a4c57 84 sens01 = (sens01 < 0 ? 0 : sens01);
pancotinho 23:7f1c9c1a4c57 85 sens01 = (sens01 > 255 ? 255 : sens01);
pancotinho 23:7f1c9c1a4c57 86 printf("Pres = %u\n", sens01);
pancotinho 23:7f1c9c1a4c57 87 }
pancotinho 23:7f1c9c1a4c57 88
pancotinho 23:7f1c9c1a4c57 89 printf("Pres = %f\n", sensor_get);
pancotinho 23:7f1c9c1a4c57 90
pancotinho 23:7f1c9c1a4c57 91
pancotinho 23:7f1c9c1a4c57 92 sensor_get = sensor_amb.getHumidity();
pancotinho 23:7f1c9c1a4c57 93
pancotinho 23:7f1c9c1a4c57 94
pancotinho 23:7f1c9c1a4c57 95 if (comm==1){
pancotinho 23:7f1c9c1a4c57 96 sens02 = sensor_get;
pancotinho 23:7f1c9c1a4c57 97 sens02 = (sens02 < 0 ? 0 : sens02);
pancotinho 23:7f1c9c1a4c57 98 sens02 = (sens02 > 255 ? 255 : sens02);
pancotinho 23:7f1c9c1a4c57 99 printf("Hum = %u\n", sens02);
pancotinho 23:7f1c9c1a4c57 100 }
pancotinho 23:7f1c9c1a4c57 101
pancotinho 23:7f1c9c1a4c57 102 printf("Hum = %f\n", sensor_get);
pancotinho 23:7f1c9c1a4c57 103 }
pancotinho 23:7f1c9c1a4c57 104
pancotinho 23:7f1c9c1a4c57 105 if (sens==2) {
pancotinho 23:7f1c9c1a4c57 106 if(sensor_light.open()){
pancotinho 23:7f1c9c1a4c57 107 sensor_get = sensor_light.get_light_level();
pancotinho 23:7f1c9c1a4c57 108 if (comm==1){
pancotinho 23:7f1c9c1a4c57 109 sens00 = sensor_get;
pancotinho 23:7f1c9c1a4c57 110 sens00 = (sens00 < 0 ? 0 : sens00);
pancotinho 23:7f1c9c1a4c57 111 sens00 = (sens00 > 255 ? 255 : sens00);
pancotinho 23:7f1c9c1a4c57 112 printf("Light Level = %u\n", sens00);
pancotinho 23:7f1c9c1a4c57 113 }
pancotinho 23:7f1c9c1a4c57 114
pancotinho 23:7f1c9c1a4c57 115 printf("Light Level = %f\n", sensor_get);
pancotinho 23:7f1c9c1a4c57 116 }
pancotinho 23:7f1c9c1a4c57 117 }
pancotinho 23:7f1c9c1a4c57 118
pancotinho 23:7f1c9c1a4c57 119 if (sens==3) {
pancotinho 23:7f1c9c1a4c57 120 if(sensor_light.open()){
pancotinho 23:7f1c9c1a4c57 121 sensor_get = sensor_light.get_uv_index();
pancotinho 23:7f1c9c1a4c57 122 if (comm==1){
pancotinho 23:7f1c9c1a4c57 123 sens01 = sensor_get/10;
pancotinho 23:7f1c9c1a4c57 124 sens01 = (sens01 < 0 ? 0 : sens01);
pancotinho 23:7f1c9c1a4c57 125 sens01 = (sens01 > 255 ? 255 : sens01);
pancotinho 23:7f1c9c1a4c57 126 printf("UV Index = %u\n", sens01);
pancotinho 23:7f1c9c1a4c57 127 }
pancotinho 23:7f1c9c1a4c57 128 printf("Uv Index = %f\n", sensor_get);
pancotinho 23:7f1c9c1a4c57 129 }
pancotinho 23:7f1c9c1a4c57 130 }
pancotinho 23:7f1c9c1a4c57 131
pancotinho 23:7f1c9c1a4c57 132 if (sens==4) {
pancotinho 23:7f1c9c1a4c57 133
pancotinho 23:7f1c9c1a4c57 134 BMX160_print();
pancotinho 23:7f1c9c1a4c57 135
pancotinho 23:7f1c9c1a4c57 136 }
pancotinho 23:7f1c9c1a4c57 137 }
pancotinho 23:7f1c9c1a4c57 138
pancotinho 23:7f1c9c1a4c57 139
pancotinho 23:7f1c9c1a4c57 140
pancotinho 23:7f1c9c1a4c57 141 #include "BLE.txt"
pancotinho 23:7f1c9c1a4c57 142
pancotinho 23:7f1c9c1a4c57 143 int Communication(int comm){
pancotinho 23:7f1c9c1a4c57 144
pancotinho 23:7f1c9c1a4c57 145 if(comm==1){
pancotinho 23:7f1c9c1a4c57 146
pancotinho 23:7f1c9c1a4c57 147 BLE &ble_interface = BLE::Instance();
pancotinho 23:7f1c9c1a4c57 148 events::EventQueue event_queue;
pancotinho 23:7f1c9c1a4c57 149 MyService demo_service;
pancotinho 23:7f1c9c1a4c57 150 BLEProcess ble_process(event_queue, ble_interface);
pancotinho 23:7f1c9c1a4c57 151 ble_process.on_init(callback(&demo_service, &MyService::start));
pancotinho 23:7f1c9c1a4c57 152 ble_process.start();
pancotinho 23:7f1c9c1a4c57 153 event_queue.dispatch_forever();
pancotinho 23:7f1c9c1a4c57 154 }
pancotinho 23:7f1c9c1a4c57 155 return 0;
pancotinho 23:7f1c9c1a4c57 156 }
pancotinho 23:7f1c9c1a4c57 157 void button1_pressed()
pancotinho 23:7f1c9c1a4c57 158 {
pancotinho 23:7f1c9c1a4c57 159 printf("Teste dos Periféricos\n");
pancotinho 23:7f1c9c1a4c57 160 Sensor_Read(1);
pancotinho 23:7f1c9c1a4c57 161 wait(0.5);
pancotinho 23:7f1c9c1a4c57 162 Sensor_Read(2);
pancotinho 23:7f1c9c1a4c57 163 wait(0.5);
pancotinho 23:7f1c9c1a4c57 164 Sensor_Read(3);
pancotinho 23:7f1c9c1a4c57 165 wait(0.5);
pancotinho 23:7f1c9c1a4c57 166 }
pancotinho 23:7f1c9c1a4c57 167
pancotinho 23:7f1c9c1a4c57 168 void button1_released()
pancotinho 23:7f1c9c1a4c57 169 {
pancotinho 23:7f1c9c1a4c57 170 led1=1;
pancotinho 23:7f1c9c1a4c57 171 wait(3);
pancotinho 23:7f1c9c1a4c57 172 led1=0;
pancotinho 23:7f1c9c1a4c57 173
pancotinho 23:7f1c9c1a4c57 174 }
pancotinho 23:7f1c9c1a4c57 175
pancotinho 23:7f1c9c1a4c57 176 int main() {
pancotinho 23:7f1c9c1a4c57 177
pancotinho 23:7f1c9c1a4c57 178 BMX160_config();
pancotinho 23:7f1c9c1a4c57 179 //button1.fall(&button1_pressed);
pancotinho 23:7f1c9c1a4c57 180 //button1.rise(&button1_released);
pancotinho 23:7f1c9c1a4c57 181 Communication (comm);
pancotinho 23:7f1c9c1a4c57 182
pancotinho 23:7f1c9c1a4c57 183 }