Projeto: Porta inteligente com Arduino

Como prometido no post passado hoje vou mostrar um projeto em que o objetivo é: Construir um prototipo de uma porta ou portão inteligente usando sensor ultrasonico, servo motor e um led. A principio o projeto é simples, e pode ser aplicado em rotinas diárias onde é necessário algum tipo de automação e/ou inteligência em ambientes como casas, lojas etc.

Bem, onde e como se encaixam os componentes do projeto: O sensor ultrasonico verifica a distancia de uma pessoa até a porta ou portão, se essa distancia for igual a um determinado valor o servo motor é acionado fazendo com que a porta se abra e logo após liga o led, então espera-se um determinado tempo para que a pessoa possa entrar ou sair do ambiente e novamente é verificado a distancia, caso a distancia seja maior que o valor estipulado o servo motor é acionado novamente fechando a porta e o led (luz) apaga. Simples não?!

Entendido o objetivo do projeto, vamos ao que interessa. Veja o esquema eletrico (hardware) do projeto:

Vamos a uma breve explicação sobre esse esquema:

SERVO MOTOR
O servo motor tem 3 fios: um de cor preta (terra) que deve ser ligado ao pino terra do arduino (GND). Um fio vermelho (corrente) que deve ser ligado ao pino 5 volts do arduino. E um fio amarelo (dados) que deve ser ligado ao pino digital 9 do arduino.

SENSOR ULTRASONICO
O sensor ultrasonico tem 4 pinos: VCC, Trig, Echo e  GND. O pino VCC deve ser ligado ao pino 5 volt do arduino. O pino Trig deve ser ligado ao pino digital 12 do arduino. O pino Echo deve ser ligado ao pino digital 13 do arduino. O pino GND deve ser ligado ao pino terra do arduino.

LED
O led tem dois pinos onde um é maior que o outro. No esquema acima o pino maior (corrente) é ligado a um resistor para regular a tensão que vem do pino digital 10 do arduino. O pino menor (terra) é ligado ao GND (terra) do arduino.

Não vou explicar o código nessa pagina por questões de estética do código e para que fique melhor a visualização, mas ao final do post tem um link para o download de todo o projeto incluindo o código explicado linha a linha.

/*******************************
Autor: Fernando Krein Pinheiro
Data: 26/05/2011
Linguagem: C/C++ (Arduino)
======== IMPORTANTE ============
O código esta livre para usar,
citar e compartilhar desde que
mantida sua fonte e seu autor.
Obrigado.
********************************
Codigo baseado nos originais de:
Blink: by David Cuartielles
Knob: by Michal Rinott
Sweep: by BARRAGAN
*******************************/
#include <Ultrasonic.h>
#include <Servo.h>
#define echoPin 13
#define trigPin 12

Servo servo_objeto;
Ultrasonic ultrasonic(12,13);

int posicao_inicial_servo = 0;
int ledPin =  10;
/*-----------------------------------------*/
void setup()
{
  Serial.begin(9600);
  pinMode(echoPin, INPUT);
  pinMode(trigPin, OUTPUT);
  pinMode(ledPin, OUTPUT);
  servo_objeto.attach(9);

}
/*-----------------------------------------*/
void loop()
{
   digitalWrite(ledPin, LOW);
   servo_objeto.write(posicao_inicial_servo);
   int valor = func_distancia_ultrasonico();
    if(valor <=15)
    {
        func_controladora();
        delay(5000);
    }

  delay(500);
}
/*----------------------------------------*/
void func_controladora()
{
   func_liga_led();
   func_chama_servo();
}
/*----------------------------------------*/
void func_liga_led()
{
  digitalWrite(ledPin, HIGH);
}
/*----------------------------------------*/
void func_chama_servo()
{
  int posicao_final_servo = 90;
  servo_objeto.write(posicao_final_servo);
}
/*----------------------------------------*/
int func_distancia_ultrasonico()
{
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);

  digitalWrite(trigPin, LOW);
  int distancia = (ultrasonic.Ranging(CM));
  Serial.print("Distancia em CM: ");
  Serial.println(distancia);
  return distancia;
}
/*------------------------------------------*/

Confira os testes iniciais:

Confira os testes finais e montado em uma maquete. Devo me desculpar pela qualidade do video e ainda mais da maquete que foi feita as pressas com uma caixa de sapatos e fita adesiva. Mas mesmo assim da para ser ter a ideia de como funciona.

Faça o download do projeto AQUI. (Inclui código comentado, esquema de hardware e imagens).

Anúncios
por ferpinheiro Postado em Arduino

8 comentários em “Projeto: Porta inteligente com Arduino

  1. Achei bem legal e simples o tutorial, porém, me deparei com 2 problemas: 1° não tenho o arduino, quanto custa? qual melhor lugar para comprar? qual comprar? resumindo recomendações se possível; 2° Eu não sei praticamente nada de eletrônica estou começando a a me interessar agora, gostaria de recomendações nesse assunto também, um material introdutório. Obrigado R(A)Sk8.

  2. Cara nao tenho palavras para descrever quao nobre é sua iniciativa de fazer um blog tao bem explicado, vc ajuda muitos amantes do arduino, parabens por todos os projetos e continue assim generoso e paciente compartilhando conhecimentos, vou estar sempre aqui a espera de projetos novos, abraços.

  3. po cara to me inteirando agora no asunto arduino mas adorei seu prototipo apesar de eu ser eletricista nao manjo muito de eletronica mas to me ajustando por a eletrica em si vai caminhando cada vez mais para eletronica ,isso é o futuro nao tao longe hoje um prototipo amahan uma uma revoluçao, valeu camarada pela sua capacidade de saber repassar o que sabe.

  4. Olá amigo, primeiramente, obrigado pela postagem!
    Gostaria de saber qual outro sensor poderia ser usado em lugar deste “SENSOR ULTRASONICO”, visto o mesmo ser de um tamanho um pouco grande. Desejo aproveitar este projeto para fazer, por exemplo, uma “lixeira eletrônica” – obrigado

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s