Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: pulga-lorawan-drv SX1272
main.cpp@6:c305f2aa79a4, 2021-03-17 (annotated)
- Committer:
- afzalsamira
- Date:
- Wed Mar 17 20:14:13 2021 +0000
- Revision:
- 6:c305f2aa79a4
- Parent:
- 5:ef21a65a3450
- Child:
- 7:37dc9ce68914
p2p-clickbuttonToPpingPong
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| cdupaty | 0:9859cc8476f2 | 1 | #include "mbed.h" | 
| marcoantonioara | 5:ef21a65a3450 | 2 | #include "bme280.txt" | 
| cdupaty | 0:9859cc8476f2 | 3 | |
| cdupaty | 2:4eef0eca4d26 | 4 | /////////////////////////////////////// | 
| cdupaty | 2:4eef0eca4d26 | 5 | // Globals variables | 
| cdupaty | 2:4eef0eca4d26 | 6 | /////////////////////////////////////// | 
| marcoantonioara | 3:cbe3f441353e | 7 | |
| marcoantonioara | 5:ef21a65a3450 | 8 | //declaraao gerais | 
| marcoantonioara | 3:cbe3f441353e | 9 | DigitalOut led1(P1_13); | 
| marcoantonioara | 3:cbe3f441353e | 10 | DigitalOut led2(P1_14); | 
| marcoantonioara | 3:cbe3f441353e | 11 | InterruptIn dio0(P0_12); | 
| marcoantonioara | 3:cbe3f441353e | 12 | DigitalIn button1(P1_11); | 
| marcoantonioara | 3:cbe3f441353e | 13 | DigitalIn button2(P1_12); | 
| marcoantonioara | 3:cbe3f441353e | 14 | DigitalIn button3(P0_30); | 
| marcoantonioara | 3:cbe3f441353e | 15 | |
| marcoantonioara | 3:cbe3f441353e | 16 | EventQueue queue; | 
| marcoantonioara | 3:cbe3f441353e | 17 | |
| marcoantonioara | 5:ef21a65a3450 | 18 | //============= internet of turtles ============= | 
| marcoantonioara | 3:cbe3f441353e | 19 | Timer time_breathing; | 
| marcoantonioara | 3:cbe3f441353e | 20 | Timer time_diving; | 
| marcoantonioara | 3:cbe3f441353e | 21 | bool beathing = false; | 
| marcoantonioara | 3:cbe3f441353e | 22 | float last_breathing_time = 0.0; | 
| marcoantonioara | 3:cbe3f441353e | 23 | float last_diving_time = 0.0; | 
| marcoantonioara | 3:cbe3f441353e | 24 | |
| marcoantonioara | 3:cbe3f441353e | 25 | char float_breathing_time[10]; | 
| marcoantonioara | 3:cbe3f441353e | 26 | char float_diving_time[10]; | 
| marcoantonioara | 3:cbe3f441353e | 27 | |
| afzalsamira | 6:c305f2aa79a4 | 28 | ///////////// | 
| afzalsamira | 6:c305f2aa79a4 | 29 | //tESTING INPUT AND OUTPUT | 
| afzalsamira | 6:c305f2aa79a4 | 30 | ////////////// | 
| afzalsamira | 6:c305f2aa79a4 | 31 | |
| marcoantonioara | 5:ef21a65a3450 | 32 | //Timer seconds; | 
| marcoantonioara | 3:cbe3f441353e | 33 | //================================================ | 
| marcoantonioara | 3:cbe3f441353e | 34 | |
| marcoantonioara | 5:ef21a65a3450 | 35 | #include "lora.txt" | 
| marcoantonioara | 3:cbe3f441353e | 36 | |
| marcoantonioara | 5:ef21a65a3450 | 37 | int main(void) { | 
| marcoantonioara | 3:cbe3f441353e | 38 | |
| marcoantonioara | 3:cbe3f441353e | 39 | |
| marcoantonioara | 3:cbe3f441353e | 40 | |
| marcoantonioara | 5:ef21a65a3450 | 41 | /////////////////////////////////////// | 
| marcoantonioara | 5:ef21a65a3450 | 42 | // Variables | 
| marcoantonioara | 5:ef21a65a3450 | 43 | /////////////////////////////////////// | 
| marcoantonioara | 3:cbe3f441353e | 44 | |
| marcoantonioara | 3:cbe3f441353e | 45 | |
| marcoantonioara | 5:ef21a65a3450 | 46 | |
| marcoantonioara | 5:ef21a65a3450 | 47 | // uint8_t big_message[] = "1234567890qwertyuiopasdfghjklzxcvbnm1234567890qwertyuiopasdfghjklzxcvbnm1234567890qwertyuiopasdfghjklzxcvbnm1234567890qwertyuiopasdfghjklzxcvbnm1234567890qwertyuiopasdfghjklzxcvbnm1234567890qwertyuiopasdfghjklzxcvbnm01234567890123456789"; | 
| marcoantonioara | 5:ef21a65a3450 | 48 | // uint8_t reset_message[] = "Reset"; | 
| marcoantonioara | 3:cbe3f441353e | 49 | |
| marcoantonioara | 5:ef21a65a3450 | 50 | //long int time_start = seconds.read(); | 
| marcoantonioara | 5:ef21a65a3450 | 51 | //printf ("timestart=%d leitura = %d\n",time_start,seconds.read()); | 
| marcoantonioara | 3:cbe3f441353e | 52 | |
| marcoantonioara | 3:cbe3f441353e | 53 | |
| marcoantonioara | 5:ef21a65a3450 | 54 | /////////////////////////////////////// | 
| marcoantonioara | 5:ef21a65a3450 | 55 | // Configuration | 
| marcoantonioara | 5:ef21a65a3450 | 56 | /////////////////////////////////////// | 
| marcoantonioara | 3:cbe3f441353e | 57 | |
| afzalsamira | 6:c305f2aa79a4 | 58 | printf(" Turning the LEDs on ..\n"); | 
| marcoantonioara | 5:ef21a65a3450 | 59 | led1=1;//----on leds--- | 
| marcoantonioara | 3:cbe3f441353e | 60 | led2=1; | 
| marcoantonioara | 3:cbe3f441353e | 61 | |
| marcoantonioara | 5:ef21a65a3450 | 62 | //____Configuration bme280 | 
| marcoantonioara | 5:ef21a65a3450 | 63 | bme_init(); | 
| marcoantonioara | 5:ef21a65a3450 | 64 | |
| marcoantonioara | 5:ef21a65a3450 | 65 | //____Configuration Lora | 
| marcoantonioara | 3:cbe3f441353e | 66 | Thread eventThread; | 
| marcoantonioara | 3:cbe3f441353e | 67 | eventThread.start(callback(&queue, &EventQueue::dispatch_forever)); | 
| marcoantonioara | 3:cbe3f441353e | 68 | |
| marcoantonioara | 5:ef21a65a3450 | 69 | dio0.rise(queue.event(&print_packet)); //configure interrupt rotine ro recieve packet | 
| marcoantonioara | 3:cbe3f441353e | 70 | setup(); //configura sx1272 | 
| marcoantonioara | 5:ef21a65a3450 | 71 | |
| marcoantonioara | 3:cbe3f441353e | 72 | //TESTE_COMUNICAÇAO LABRADOR | 
| marcoantonioara | 3:cbe3f441353e | 73 | //sx1272.writeRegister(0x0B,0x3B); | 
| marcoantonioara | 3:cbe3f441353e | 74 | //sx1272.writeRegister(0x18,0x10); | 
| marcoantonioara | 3:cbe3f441353e | 75 | //sx1272.writeRegister(0x33,0x26); | 
| marcoantonioara | 5:ef21a65a3450 | 76 | // sx1272.writeRegister(REG_MODEM_CONFIG1,0x0D); | 
| marcoantonioara | 5:ef21a65a3450 | 77 | // sx1272.writeRegister(REG_MODEM_CONFIG2,0xC4); | 
| marcoantonioara | 5:ef21a65a3450 | 78 | |
| marcoantonioara | 3:cbe3f441353e | 79 | sx1272.writeRegister(REG_OP_MODE,133); //leitura continua | 
| marcoantonioara | 5:ef21a65a3450 | 80 | sx1272.writeRegister(REG_IRQ_FLAGS_MASK,187);//configure interrupt mask to interrupt only when a packet receive and packet envied | 
| afzalsamira | 6:c305f2aa79a4 | 81 | |
| afzalsamira | 6:c305f2aa79a4 | 82 | printf("Turning the LEDs off ..\n"); | 
| marcoantonioara | 5:ef21a65a3450 | 83 | led1=0;//----off leds--- | 
| marcoantonioara | 3:cbe3f441353e | 84 | led2=0; | 
| marcoantonioara | 3:cbe3f441353e | 85 | |
| marcoantonioara | 3:cbe3f441353e | 86 | |
| marcoantonioara | 5:ef21a65a3450 | 87 | |
| marcoantonioara | 5:ef21a65a3450 | 88 | |
| marcoantonioara | 5:ef21a65a3450 | 89 | /////////////////////////////////////// | 
| marcoantonioara | 5:ef21a65a3450 | 90 | //LOOP | 
| marcoantonioara | 5:ef21a65a3450 | 91 | /////////////////////////////////////// | 
| marcoantonioara | 5:ef21a65a3450 | 92 | |
| marcoantonioara | 5:ef21a65a3450 | 93 | while(1){ | 
| afzalsamira | 6:c305f2aa79a4 | 94 | |
| marcoantonioara | 5:ef21a65a3450 | 95 | if (!button1){ | 
| afzalsamira | 6:c305f2aa79a4 | 96 | //test scanf | 
| afzalsamira | 6:c305f2aa79a4 | 97 | //led1=1; | 
| afzalsamira | 6:c305f2aa79a4 | 98 | //led2=1; | 
| afzalsamira | 6:c305f2aa79a4 | 99 | //char ch; | 
| afzalsamira | 6:c305f2aa79a4 | 100 | // printf("Enter one char"); | 
| afzalsamira | 6:c305f2aa79a4 | 101 | //scanf("%c", &ch); | 
| afzalsamira | 6:c305f2aa79a4 | 102 | // printf("%c\n",ch); | 
| afzalsamira | 6:c305f2aa79a4 | 103 | |
| afzalsamira | 6:c305f2aa79a4 | 104 | |
| afzalsamira | 6:c305f2aa79a4 | 105 | printf("SENDING PING\n"); | 
| afzalsamira | 6:c305f2aa79a4 | 106 | send_data(PING); | 
| afzalsamira | 6:c305f2aa79a4 | 107 | // send_data(DATA); | 
| afzalsamira | 6:c305f2aa79a4 | 108 | |
| afzalsamira | 6:c305f2aa79a4 | 109 | |
| marcoantonioara | 5:ef21a65a3450 | 110 | } | 
| afzalsamira | 6:c305f2aa79a4 | 111 | |
| marcoantonioara | 5:ef21a65a3450 | 112 | // if (button3 != beathing) { | 
| marcoantonioara | 5:ef21a65a3450 | 113 | // beathing = !beathing; | 
| marcoantonioara | 5:ef21a65a3450 | 114 | // if(button3){ | 
| marcoantonioara | 5:ef21a65a3450 | 115 | // send_packet(DATA); | 
| marcoantonioara | 5:ef21a65a3450 | 116 | // | 
| marcoantonioara | 5:ef21a65a3450 | 117 | // time_breathing.reset(); | 
| marcoantonioara | 5:ef21a65a3450 | 118 | // time_breathing.start(); | 
| marcoantonioara | 5:ef21a65a3450 | 119 | // | 
| marcoantonioara | 5:ef21a65a3450 | 120 | // time_diving.stop(); | 
| marcoantonioara | 5:ef21a65a3450 | 121 | // last_diving_time = time_diving.read(); | 
| marcoantonioara | 5:ef21a65a3450 | 122 | // } | 
| marcoantonioara | 5:ef21a65a3450 | 123 | // else{ | 
| marcoantonioara | 5:ef21a65a3450 | 124 | // time_diving.reset(); | 
| marcoantonioara | 5:ef21a65a3450 | 125 | // time_diving.start(); | 
| marcoantonioara | 5:ef21a65a3450 | 126 | // | 
| marcoantonioara | 5:ef21a65a3450 | 127 | // time_breathing.stop(); | 
| marcoantonioara | 5:ef21a65a3450 | 128 | // last_breathing_time = time_breathing.read(); | 
| marcoantonioara | 5:ef21a65a3450 | 129 | // | 
| marcoantonioara | 5:ef21a65a3450 | 130 | // } | 
| marcoantonioara | 5:ef21a65a3450 | 131 | // | 
| marcoantonioara | 5:ef21a65a3450 | 132 | // } | 
| marcoantonioara | 5:ef21a65a3450 | 133 | // if (button3){ | 
| marcoantonioara | 5:ef21a65a3450 | 134 | // // send_data(DATA); | 
| marcoantonioara | 5:ef21a65a3450 | 135 | //// send_packet(big_message,sizeof(big_message)); | 
| marcoantonioara | 5:ef21a65a3450 | 136 | //// send_packet(reset_message,sizeof(reset_message)); | 
| marcoantonioara | 5:ef21a65a3450 | 137 | //// wait_ms(400); | 
| marcoantonioara | 5:ef21a65a3450 | 138 | |
| marcoantonioara | 3:cbe3f441353e | 139 | |
| marcoantonioara | 5:ef21a65a3450 | 140 | |
| marcoantonioara | 3:cbe3f441353e | 141 | wait_ms(50); | 
| marcoantonioara | 3:cbe3f441353e | 142 | } | 
| marcoantonioara | 3:cbe3f441353e | 143 | |
| marcoantonioara | 3:cbe3f441353e | 144 | } | 
| afzalsamira | 6:c305f2aa79a4 | 145 | |
| afzalsamira | 6:c305f2aa79a4 | 146 | /* | 
| afzalsamira | 6:c305f2aa79a4 | 147 | |
| afzalsamira | 6:c305f2aa79a4 | 148 | //////// | 
| afzalsamira | 6:c305f2aa79a4 | 149 | //TESTING fREQUENCY CONFIGURATION | 
| afzalsamira | 6:c305f2aa79a4 | 150 | //////////////// | 
| afzalsamira | 6:c305f2aa79a4 | 151 | |
| afzalsamira | 6:c305f2aa79a4 | 152 | |
| afzalsamira | 6:c305f2aa79a4 | 153 | |
| afzalsamira | 6:c305f2aa79a4 | 154 | #include "lora.txt" | 
| afzalsamira | 6:c305f2aa79a4 | 155 | |
| afzalsamira | 6:c305f2aa79a4 | 156 | int main(void) { | 
| afzalsamira | 6:c305f2aa79a4 | 157 | |
| afzalsamira | 6:c305f2aa79a4 | 158 | uint8_t config_message[] = "1234567890qwertyuiopasdfghjklzxcvbnm1234567890qwertyuiopasdfghjklzxcvbnm1234567890qwertyuiopasdfghjklzxcvbnm1234567890qwertyuiopasdfghjklzxcvbnm1234567890qwertyuiopasdfghjklzxcvbnm1234567890qwertyuiopasdfghjklzxcvbnm01234567890123456789"; | 
| afzalsamira | 6:c305f2aa79a4 | 159 | |
| afzalsamira | 6:c305f2aa79a4 | 160 | |
| afzalsamira | 6:c305f2aa79a4 | 161 | led1=1;//----on leds--- | 
| afzalsamira | 6:c305f2aa79a4 | 162 | led2=1; | 
| afzalsamira | 6:c305f2aa79a4 | 163 | |
| afzalsamira | 6:c305f2aa79a4 | 164 | //____Configuration bme280 | 
| afzalsamira | 6:c305f2aa79a4 | 165 | bme_init(); | 
| afzalsamira | 6:c305f2aa79a4 | 166 | |
| afzalsamira | 6:c305f2aa79a4 | 167 | //____Configuration Lora | 
| afzalsamira | 6:c305f2aa79a4 | 168 | Thread eventThread; | 
| afzalsamira | 6:c305f2aa79a4 | 169 | eventThread.start(callback(&queue, &EventQueue::dispatch_forever)); | 
| afzalsamira | 6:c305f2aa79a4 | 170 | |
| afzalsamira | 6:c305f2aa79a4 | 171 | dio0.rise(queue.event(&print_packet)); //configure interrupt rotine ro recieve packet | 
| afzalsamira | 6:c305f2aa79a4 | 172 | setup(); //configura sx1272 | 
| afzalsamira | 6:c305f2aa79a4 | 173 | |
| afzalsamira | 6:c305f2aa79a4 | 174 | sx1272.writeRegister(REG_OP_MODE,133); //leitura continua | 
| afzalsamira | 6:c305f2aa79a4 | 175 | sx1272.writeRegister(REG_IRQ_FLAGS_MASK,187);//configure interrupt mask to interrupt only when a packet receive and packet envied | 
| afzalsamira | 6:c305f2aa79a4 | 176 | |
| afzalsamira | 6:c305f2aa79a4 | 177 | led1=0;//----off leds--- | 
| afzalsamira | 6:c305f2aa79a4 | 178 | led2=0; | 
| afzalsamira | 6:c305f2aa79a4 | 179 | |
| afzalsamira | 6:c305f2aa79a4 | 180 | printf("PROGRAM STARTS\n"); | 
| afzalsamira | 6:c305f2aa79a4 | 181 | while(1){ | 
| afzalsamira | 6:c305f2aa79a4 | 182 | |
| afzalsamira | 6:c305f2aa79a4 | 183 | led1=1; | 
| afzalsamira | 6:c305f2aa79a4 | 184 | led2=1; | 
| afzalsamira | 6:c305f2aa79a4 | 185 | send_data(PING); | 
| afzalsamira | 6:c305f2aa79a4 | 186 | led2=0; | 
| afzalsamira | 6:c305f2aa79a4 | 187 | |
| afzalsamira | 6:c305f2aa79a4 | 188 | |
| afzalsamira | 6:c305f2aa79a4 | 189 | // if (button3){ | 
| afzalsamira | 6:c305f2aa79a4 | 190 | // // send_data(DATA); | 
| afzalsamira | 6:c305f2aa79a4 | 191 | //// send_packet(big_message,sizeof(big_message)); | 
| afzalsamira | 6:c305f2aa79a4 | 192 | //// send_packet(reset_message,sizeof(reset_message)); | 
| afzalsamira | 6:c305f2aa79a4 | 193 | //// wait_ms(400); | 
| afzalsamira | 6:c305f2aa79a4 | 194 | wait_ms(500); | 
| afzalsamira | 6:c305f2aa79a4 | 195 | } | 
| afzalsamira | 6:c305f2aa79a4 | 196 | |
| afzalsamira | 6:c305f2aa79a4 | 197 | } | 
| afzalsamira | 6:c305f2aa79a4 | 198 | */ |