O objetivo de qualquer tecnologia é resolver problemas, dos mais simples aos mais complexos. Pessoas idosas principalmente as que moram só, ou passam a maior parte do tempo só, tem dificuldade em lembrar os horários de suas medicações, causando problemas de saúde.
Esse tutorial lhe ajudará a construir uma caixa time automatizada com arduino. A cultura do faça você mesmo (cultura maker), vem popularizando-se no Brasil, com conhecimento básico de arduino e eletrônica você poderá montar sua caixa para uso próprio ou de algum familiar ou amigo.
O que é a Caixa Time ?
A caixa time é uma caixa onde você pode guardar seus medicamentos e em um horário pré programado, a caixa avisa a hora de tomar seus remédios. É acionado uma sirene que só para quando a tampa é aberta.
- 01 x Arduino Uno R3 ou Arduino Nano;
- 01 x Módulo RTC DS3231;
- 01 x Buzzer;
- 01 x Chave fim de Curso;
- 01 x Fonte de 9v (no caso de UNO);
- 01 x Resistor de 22 ohms;
- 01 x Cabos tipo Jumper
Ligação Elétrica
Código
// by Gean Viana Rodrigues
//email: geancomp@gmail.com
#include <DS3231.h> //biblioteca do RTC
#include <NewTone.h> //biblioteca do SOM do Buzzer
DS3231 rtc(A4, A5); // RTC - Shield RTC nas porta A4 e A5
Time hora;
int minuto; //variável para armazenar os minutos
int segundo; //variável para armazenar os segundos
int cont = 0; //conta a quantidade de vezes que a luz vai piscar
int botao = 0; //chave na tampa da caixa de remédios
//Dados do buzzer
int frequencia = 2000;
int Pinofalante = 10; //Buzzer na porta 10
int comando;
void setup() {
pinMode (botao, INPUT);
pinMode(Pinofalante, OUTPUT); //Pino do buzzer
delay (1000);
Serial.begin(9600);
rtc.begin();
}
void loop() {
comando = Serial.read();
hora = rtc.getTime(); //variável hora recebe a hora do RTC
minuto = hora.min;
segundo = hora.sec;
botao = digitalRead (6); //faz a leitura para saber qual estado da chave (tampa aberta ou fechada
Serial.println (rtc.getTimeStr()); //mostra a hora atual no monitor serial
if ((hora.hour == 7) && (minuto == 00) && (segundo == 00)) { //primeiro horário
while (botao == LOW) {
NewTone(Pinofalante, frequencia); // inicia o som do buzzer. Só para quando a tampa é aberta
botao = digitalRead (6);
}
if (botao == HIGH) {
noNewTone(Pinofalante); // para o som do Buzzer
}
}
//--------------------bloco para acetar o horário-------------
if (comando == 'A') {
rtc.setTime(22, 15, 0);
rtc.setDate(10, 05, 2017);
Serial.println (rtc.getTimeStr());
}
}//final
//Replicar o IF do primeiro horário para os demais horários
Vídeo Demonstração
E aí galera, curtiram esse post? Se sim, continue acompanhando nosso blog, teremos muitas postagens interessante toda semana! Se você ficou com alguma dúvida, nos envie sua pergunta, teremos enorme prazer em contribuir com seu aprendizado!
Trabalha há 15 anos com tecnologia da informação, é um amante de Arduino e robótica, encara o Arduino como a oportunidade perfeita de aflorar sua criatividade ao mesmo tempo que treina suas habilidades em eletrônica e programação.
