Etiquetas: ,

É possível ativar um sistema, tal como um alarme, ao se detectar a presença de uma pessoa com um sensor de movimento PIR. Na automação doméstica, é comum ativar dispositivos quando alguém entra num cômodo. Isso é possível graças a sensores de movimento, como o sensor de infravermelho passivo ou PIR (Passive Infared Sensor). Veremos neste tutorial como gerir o sensor PIR com um microcontrolador Arduino.

pir-sensor Usar um sensor PIR com o Arduino

Material

  • Computador
  • Arduino UNO
  • Cabo USB A Macho/B Macho
  • Sensor de movimento PIR

Princípio de funcionamento

Qualquer objeto com uma temperatura acima de zero absoluto emite radiação infravermelha, como se pode ver nas imagens de câmeras térmicas. O sensor PIR é equipado com duas células sensíveis ao infravermelho que detectam os raios infravermelhos refletidos ou emitidos por um objeto.
Quando não há movimento, o nível de infravermelho recebido é o mesmo para ambas as células. Quando um objeto passa, a emissão dos raios é modificada em uma célula e depois na outra, permitindo que o movimento seja detectado.
A cobertura branca que normalmente cobre e protege o sensor é uma lente Fresnel com várias facetas, que permite a concentração da radiação infravermelha e, em alguns casos, a filtragem nas células.

Esquema

O módulo PIR pode ser alimentado diretamente pelo microcontrolador e, como ele devolve um estado, a saída do sensor é ligada a uma entrada digital.

arduino-pir-sensor_bb Usar um sensor PIR com o Arduino

Código

O sensor PIR retorna um estado alto (HIGH) quando detecta um movimento e um estado baixo (LOW) quando nada é detectado. Desse modo, ele será gerido como entrada digital, com a função digitalRead() do Arduino.

//Parameters
const int pirPin  = 2;

//Variables
bool pirStatus  = false;

void setup() {
  //Init Serial USB
  Serial.begin(9600);
  Serial.println(F("Initialize System"));
  //Init digital input
  pinMode(pirPin, INPUT);
}

void loop() {
  readPIR();
}

void readPIR( ) { /* function readPIR */
  ////Test routine for PIR
  pirStatus = digitalRead(pirPin);
  Serial.print(F("Sensor status")); Serial.println(pirStatus);
  if (pirStatus) {
    Serial.print(F("----> Detection"));
    delay(500);
  }
  delay(100);
}

Aplicações

  • Acender uma luz quando movimentos são detectados
  • Ativar um alarme quando uma pessoa entra

Fontes

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie