Repositório para o código final de Microcontroladores.
Dependencies: BME280 MFRC522 mbed
Diff: main.cpp
- Revision:
- 1:9c4b2fdf3b67
- Parent:
- 0:91215b8406ee
- Child:
- 2:3dd81ff9eb1f
--- a/main.cpp Fri Jun 15 22:09:12 2018 +0000 +++ b/main.cpp Sat Jun 23 20:42:10 2018 +0000 @@ -21,24 +21,97 @@ // Declaração para utilização do RFID MFRC522 RFID(p11, p12, p13, p14, p8); +// Variável de verificação de autenticação +int autenticado = 0; + +// Variável de entrada bluetooth +char input; + + + +// Função de exibição dos sensores +void exibirInfo() +{ + int aux = 1; + char sair; + bluetooth.printf("Exibindo informacoes. 'S' para sair."); + while (aux) { + bluetooth.readable(); + sair = bluetooth.getc(); + 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); + } +} + + + +int main() +{ + bomba.period_ms(10); + bluetooth.baud(9600); + RFID.PCD_Init(); + + bluetooth.printf("Bem vindo ao sistema de controle da estufa.\nPara acessar as configuracoes, identifique-se pelo cracha RFID.\n\n"); -// Código PWM da bomba (realocar) - bomba.period_ms(10); - bomba.write(0.5f); + while(1) { + + // Programa a ser executado caso esteja autenticado + if (autenticado) { + bluetooth.printf("\n\n\nSelecione a operacao desejada:\n"); + bluetooth.printf("\t(I)nformacoes de Pressao, Temperatura e Umidade\n"); + bluetooth.printf("\t(L)igar a Bomba\n"); + bluetooth.printf("\t(D)esligar a Bomba\n"); + bluetooth.printf("\t(S)air\n"); - + if (bluetooth.readable()) { +//NAO TA ENTRANDO + while (autenticado) { + bluetooth.printf("ENTREI\n\n"); + input = bluetooth.getc(); + + switch (input) { + case 'I': + exibirInfo(); + break; + + case 'L': + bomba.write(0.5f); + break; + + + case 'D': + bomba.write(0.0f); + break; -int main() { - - bluetooth.baud(9600); - - while(1) { - bluetooth.printf("%2.2f Cº, %04.2f hPa\n", sensor_t_p.getTemperature(), sensor_t_p.getPressure()); - bluetooth.printf("Valor Absoluto (umidade): %2.3f", 1-sensor.read()); - wait(1); - - - + case 'S': + autenticado = 0; + break; + } + } + } + } + + // Procura o card + if ( ! RFID.PICC_IsNewCardPresent()) { + wait_ms(500); + continue; + } + + // Seleciona um dos cards + if ( ! RFID.PICC_ReadCardSerial()) { + wait_ms(500); + continue; + } + + autenticado = 1; + + bluetooth.printf("Card reconhecido, acesso concedido.\n\n"); + + // Imprime Card UID + bluetooth.printf("Card UID: "); + for (uint8_t i = 0; i < RFID.uid.size; i++) { + bluetooth.printf(" %X02", RFID.uid.uidByte[i]); + } + bluetooth.printf("\n\n---------------------------------------------------------------------------"); } }