Repositório para o código final de Microcontroladores.
Dependencies: BME280 MFRC522 mbed
main.cpp
- Committer:
- RickBadKan
- Date:
- 2018-06-23
- Revision:
- 1:9c4b2fdf3b67
- Parent:
- 0:91215b8406ee
- Child:
- 2:3dd81ff9eb1f
File content as of revision 1:9c4b2fdf3b67:
#include "mbed.h" // Biblioteca do BME280: Temperatura e Pressão #include "BME280.h" // Biblioteca para utilização do RFID #include "MFRC522.h" // Declaração para utilização do serial bluetooth Serial bluetooth(p9, p10); // Declaração para utilização do sensor de temperatura e pressão BME280 sensor_t_p(p28, p27); // Declaração para utilização da bomba PwmOut bomba(p21); // Declaração para utilização do sensor de umidade AnalogIn sensor_u(p15); // 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"); 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; 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---------------------------------------------------------------------------"); } }