Repositório para o código final de Microcontroladores.
Dependencies: BME280 MFRC522 mbed
main.cpp@1:9c4b2fdf3b67, 2018-06-23 (annotated)
- Committer:
- RickBadKan
- Date:
- Sat Jun 23 20:42:10 2018 +0000
- Revision:
- 1:9c4b2fdf3b67
- Parent:
- 0:91215b8406ee
- Child:
- 2:3dd81ff9eb1f
Primeiro arranjo do programa. Arrumar o .readable
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
RickBadKan | 0:91215b8406ee | 1 | #include "mbed.h" |
RickBadKan | 0:91215b8406ee | 2 | |
RickBadKan | 0:91215b8406ee | 3 | // Biblioteca do BME280: Temperatura e Pressão |
RickBadKan | 0:91215b8406ee | 4 | #include "BME280.h" |
RickBadKan | 0:91215b8406ee | 5 | |
RickBadKan | 0:91215b8406ee | 6 | // Biblioteca para utilização do RFID |
RickBadKan | 0:91215b8406ee | 7 | #include "MFRC522.h" |
RickBadKan | 0:91215b8406ee | 8 | |
RickBadKan | 0:91215b8406ee | 9 | // Declaração para utilização do serial bluetooth |
RickBadKan | 0:91215b8406ee | 10 | Serial bluetooth(p9, p10); |
RickBadKan | 0:91215b8406ee | 11 | |
RickBadKan | 0:91215b8406ee | 12 | // Declaração para utilização do sensor de temperatura e pressão |
RickBadKan | 0:91215b8406ee | 13 | BME280 sensor_t_p(p28, p27); |
RickBadKan | 0:91215b8406ee | 14 | |
RickBadKan | 0:91215b8406ee | 15 | // Declaração para utilização da bomba |
RickBadKan | 0:91215b8406ee | 16 | PwmOut bomba(p21); |
RickBadKan | 0:91215b8406ee | 17 | |
RickBadKan | 0:91215b8406ee | 18 | // Declaração para utilização do sensor de umidade |
RickBadKan | 0:91215b8406ee | 19 | AnalogIn sensor_u(p15); |
RickBadKan | 0:91215b8406ee | 20 | |
RickBadKan | 0:91215b8406ee | 21 | // Declaração para utilização do RFID |
RickBadKan | 0:91215b8406ee | 22 | MFRC522 RFID(p11, p12, p13, p14, p8); |
RickBadKan | 0:91215b8406ee | 23 | |
RickBadKan | 1:9c4b2fdf3b67 | 24 | // Variável de verificação de autenticação |
RickBadKan | 1:9c4b2fdf3b67 | 25 | int autenticado = 0; |
RickBadKan | 1:9c4b2fdf3b67 | 26 | |
RickBadKan | 1:9c4b2fdf3b67 | 27 | // Variável de entrada bluetooth |
RickBadKan | 1:9c4b2fdf3b67 | 28 | char input; |
RickBadKan | 1:9c4b2fdf3b67 | 29 | |
RickBadKan | 1:9c4b2fdf3b67 | 30 | |
RickBadKan | 1:9c4b2fdf3b67 | 31 | |
RickBadKan | 1:9c4b2fdf3b67 | 32 | // Função de exibição dos sensores |
RickBadKan | 1:9c4b2fdf3b67 | 33 | void exibirInfo() |
RickBadKan | 1:9c4b2fdf3b67 | 34 | { |
RickBadKan | 1:9c4b2fdf3b67 | 35 | int aux = 1; |
RickBadKan | 1:9c4b2fdf3b67 | 36 | char sair; |
RickBadKan | 1:9c4b2fdf3b67 | 37 | bluetooth.printf("Exibindo informacoes. 'S' para sair."); |
RickBadKan | 1:9c4b2fdf3b67 | 38 | while (aux) { |
RickBadKan | 1:9c4b2fdf3b67 | 39 | bluetooth.readable(); |
RickBadKan | 1:9c4b2fdf3b67 | 40 | sair = bluetooth.getc(); |
RickBadKan | 1:9c4b2fdf3b67 | 41 | bluetooth.printf("%2.2f C, %04.2f hPa\nUmidade: %3.3f%%", sensor_t_p.getTemperature(), sensor_t_p.getPressure(), (1-sensor_u.read()) * 100.0f); |
RickBadKan | 1:9c4b2fdf3b67 | 42 | } |
RickBadKan | 1:9c4b2fdf3b67 | 43 | } |
RickBadKan | 1:9c4b2fdf3b67 | 44 | |
RickBadKan | 1:9c4b2fdf3b67 | 45 | |
RickBadKan | 1:9c4b2fdf3b67 | 46 | |
RickBadKan | 1:9c4b2fdf3b67 | 47 | int main() |
RickBadKan | 1:9c4b2fdf3b67 | 48 | { |
RickBadKan | 1:9c4b2fdf3b67 | 49 | bomba.period_ms(10); |
RickBadKan | 1:9c4b2fdf3b67 | 50 | bluetooth.baud(9600); |
RickBadKan | 1:9c4b2fdf3b67 | 51 | RFID.PCD_Init(); |
RickBadKan | 1:9c4b2fdf3b67 | 52 | |
RickBadKan | 1:9c4b2fdf3b67 | 53 | bluetooth.printf("Bem vindo ao sistema de controle da estufa.\nPara acessar as configuracoes, identifique-se pelo cracha RFID.\n\n"); |
RickBadKan | 0:91215b8406ee | 54 | |
RickBadKan | 0:91215b8406ee | 55 | |
RickBadKan | 1:9c4b2fdf3b67 | 56 | while(1) { |
RickBadKan | 1:9c4b2fdf3b67 | 57 | |
RickBadKan | 1:9c4b2fdf3b67 | 58 | // Programa a ser executado caso esteja autenticado |
RickBadKan | 1:9c4b2fdf3b67 | 59 | if (autenticado) { |
RickBadKan | 1:9c4b2fdf3b67 | 60 | bluetooth.printf("\n\n\nSelecione a operacao desejada:\n"); |
RickBadKan | 1:9c4b2fdf3b67 | 61 | bluetooth.printf("\t(I)nformacoes de Pressao, Temperatura e Umidade\n"); |
RickBadKan | 1:9c4b2fdf3b67 | 62 | bluetooth.printf("\t(L)igar a Bomba\n"); |
RickBadKan | 1:9c4b2fdf3b67 | 63 | bluetooth.printf("\t(D)esligar a Bomba\n"); |
RickBadKan | 1:9c4b2fdf3b67 | 64 | bluetooth.printf("\t(S)air\n"); |
RickBadKan | 0:91215b8406ee | 65 | |
RickBadKan | 1:9c4b2fdf3b67 | 66 | if (bluetooth.readable()) { |
RickBadKan | 1:9c4b2fdf3b67 | 67 | //NAO TA ENTRANDO |
RickBadKan | 1:9c4b2fdf3b67 | 68 | while (autenticado) { |
RickBadKan | 1:9c4b2fdf3b67 | 69 | bluetooth.printf("ENTREI\n\n"); |
RickBadKan | 1:9c4b2fdf3b67 | 70 | input = bluetooth.getc(); |
RickBadKan | 1:9c4b2fdf3b67 | 71 | |
RickBadKan | 1:9c4b2fdf3b67 | 72 | switch (input) { |
RickBadKan | 1:9c4b2fdf3b67 | 73 | case 'I': |
RickBadKan | 1:9c4b2fdf3b67 | 74 | exibirInfo(); |
RickBadKan | 1:9c4b2fdf3b67 | 75 | break; |
RickBadKan | 1:9c4b2fdf3b67 | 76 | |
RickBadKan | 1:9c4b2fdf3b67 | 77 | case 'L': |
RickBadKan | 1:9c4b2fdf3b67 | 78 | bomba.write(0.5f); |
RickBadKan | 1:9c4b2fdf3b67 | 79 | break; |
RickBadKan | 1:9c4b2fdf3b67 | 80 | |
RickBadKan | 1:9c4b2fdf3b67 | 81 | |
RickBadKan | 1:9c4b2fdf3b67 | 82 | case 'D': |
RickBadKan | 1:9c4b2fdf3b67 | 83 | bomba.write(0.0f); |
RickBadKan | 1:9c4b2fdf3b67 | 84 | break; |
RickBadKan | 0:91215b8406ee | 85 | |
RickBadKan | 1:9c4b2fdf3b67 | 86 | case 'S': |
RickBadKan | 1:9c4b2fdf3b67 | 87 | autenticado = 0; |
RickBadKan | 1:9c4b2fdf3b67 | 88 | break; |
RickBadKan | 1:9c4b2fdf3b67 | 89 | } |
RickBadKan | 1:9c4b2fdf3b67 | 90 | } |
RickBadKan | 1:9c4b2fdf3b67 | 91 | } |
RickBadKan | 1:9c4b2fdf3b67 | 92 | } |
RickBadKan | 1:9c4b2fdf3b67 | 93 | |
RickBadKan | 1:9c4b2fdf3b67 | 94 | // Procura o card |
RickBadKan | 1:9c4b2fdf3b67 | 95 | if ( ! RFID.PICC_IsNewCardPresent()) { |
RickBadKan | 1:9c4b2fdf3b67 | 96 | wait_ms(500); |
RickBadKan | 1:9c4b2fdf3b67 | 97 | continue; |
RickBadKan | 1:9c4b2fdf3b67 | 98 | } |
RickBadKan | 1:9c4b2fdf3b67 | 99 | |
RickBadKan | 1:9c4b2fdf3b67 | 100 | // Seleciona um dos cards |
RickBadKan | 1:9c4b2fdf3b67 | 101 | if ( ! RFID.PICC_ReadCardSerial()) { |
RickBadKan | 1:9c4b2fdf3b67 | 102 | wait_ms(500); |
RickBadKan | 1:9c4b2fdf3b67 | 103 | continue; |
RickBadKan | 1:9c4b2fdf3b67 | 104 | } |
RickBadKan | 1:9c4b2fdf3b67 | 105 | |
RickBadKan | 1:9c4b2fdf3b67 | 106 | autenticado = 1; |
RickBadKan | 1:9c4b2fdf3b67 | 107 | |
RickBadKan | 1:9c4b2fdf3b67 | 108 | bluetooth.printf("Card reconhecido, acesso concedido.\n\n"); |
RickBadKan | 1:9c4b2fdf3b67 | 109 | |
RickBadKan | 1:9c4b2fdf3b67 | 110 | // Imprime Card UID |
RickBadKan | 1:9c4b2fdf3b67 | 111 | bluetooth.printf("Card UID: "); |
RickBadKan | 1:9c4b2fdf3b67 | 112 | for (uint8_t i = 0; i < RFID.uid.size; i++) { |
RickBadKan | 1:9c4b2fdf3b67 | 113 | bluetooth.printf(" %X02", RFID.uid.uidByte[i]); |
RickBadKan | 1:9c4b2fdf3b67 | 114 | } |
RickBadKan | 1:9c4b2fdf3b67 | 115 | bluetooth.printf("\n\n---------------------------------------------------------------------------"); |
RickBadKan | 0:91215b8406ee | 116 | } |
RickBadKan | 0:91215b8406ee | 117 | } |