Repositório para o código final de Microcontroladores.

Dependencies:   BME280 MFRC522 mbed

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?

UserRevisionLine numberNew 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 }