Se afișează postările cu eticheta PIR. Afișați toate postările
Se afișează postările cu eticheta PIR. Afișați toate postările

marți, 31 mai 2016

Sistem de alarma (2)


   Fata de sistemul de alarma prezentat in articolul precedent, in care activarea si dezactivarea alarmei se facea cu un comutator, acum am conectat o tastatura cu 12 butoane:
   Sistemul de alarma functioneaza astfel, dupa incarcarea sketch-ului alarm_system_2a.ino:
- la pornire sistemul este dezactivat, confirmat prin aprinderea led-ului albastru;
- daca se tasteaza codul corect (1234* sau mai bine #1234* pentru a elimia posibilitatea erorilor din cauza unor apasari anteriorare, deoarece tasta # asta face), led-ul albastru se stinge si incepe sa clipeasca led-ul verde timp de 20 secunte, indicand ca alarma se pregateste de armare;
- dupa trecerea timpului de pregatire, se intra in modul activ de supraveghere, indicat de aprinderea continua a led-ului verde;
- daca se detecteaza o miscare, led-ul verde se stinge si se aprinde intermitent led-ul rosu, timp de 10 secunde, timp pentru a putea dezactiva alarma
- daca a trecut timpul si alarma nu a fost dezactivata, ledu-ul rosu se aprinde permanent indicand activarea avertizarii sonore (eu am doar led-ul de pe placa Arduino)
- daca nu se intervine nici acum pentru dezactivare alarma, sistemul trece in supraveghere si daca este iar miscare, asteapta 10 secunde si apoi se declanseaza avertizorul sonor tot 10 secunde.
- alarma se poate dezactiva in orice moment prin intorducerea codului.
   Am facut niste filmulete in care se vede mai bine modul de functionare:

Sistem de alarma


   Pe site-ul polonez http://majsterkowo.pl/ se gaseste un articol foarte interesant cu o alarma, care se poate activa/dezactiva dintr-un comutator.
   Schema alarmei este:
iar sketch-ul original se gaseste in articol, la pagtina 3.
   Dupa ce am tradus variabilele si am urmarit sketch-ul, am constatat urmatoarele:
- pinul D3 este pus permanent la masa (gnd), deci il pot elibera;
- led-ul albastru nu e folosit
- alarma este oprita cand comutatorul este in pozitia din stanga, adica pinul D2 in aer (la +5V prin rezistenta interna)
- alarma este functionala cand comutatorul este in pozitia din dreapta (pinul D2 la masa)
- dupa trecerea comutatorului spre dreapta, alarma este in asteptare timp de 20 secunde (pentru a pleca din casa), led-ul verde clipeste intermitent;
- dupa activarea supravegherii, led-ul verde este aprins permanent;
- daca se detecteaza miscare, led-ul rosu se aprinde cu intermitenta timp de 10 secunde, timp in care se poate dezactiva alarma prin trecerea comutatorului in stanga
- daca alarma nu se dezactiveaza ledul rosu ramane aprins permanent si avertizorul sonor este activ (suna), pana se dezactiveaza alarma (prin trecerea comutatorului in pozitia din stanga).
   Eu am facut mici modificari si schema a devenit:
   Am facut modificari si in sketch (alarm_system_1a.ino):
- comutatorul are pozitie de OFF (pin D2 in aer) sau ON (pin D2 la masa);
- daca alarnma este dezactivata led-ul albastru este aprins
- dupa trecerea comutatorului spre dreapta, alarma este in asteptare timp de 20 secunde (pentru a pleca din casa), led-ul verde clipeste intermitent;
- dupa activarea supravegherii, led-ul verde este aprins permanent;
- daca se detecteaza miscare si alarma nu este dezactivata, dupa trecerea celor 10 secunde, se aprinde led-ul galben (care se poate inlocui ca in schema originala cu un avertizor sonor, la mine este folosit led-ul de pe placa) timp de 10 secunde.. apoi se revine in starea de supraveghere, daca exista miscare, se asteapta iar 10 secunde si apoi 10 secunde avertizare.
 
 
   Am facut si 2 filmulete:

- in engleza, numit Arduino system alarm with delay

joi, 6 martie 2014

Senzorul de prezenta HC-SR501 si Arduino (II)

   In primul articol am facut o scurte prezentare si am dat niste adrese unde pot fi gasite informatii despre acest senzor...
   Acum am luat primele 2 articole de acolo si am facut mici teste, folosind intrarea analogica A0 ca una analogica sau ca una.. digitala, adica D14... ce primeste placa Arduino fiind evidentiat de LED-ul conectat la pinul D13 si/sau pe ecranul de monitorizare seriala...
   Primul sketch folosit de mine este:
// http://blog.roman-mueller.ch/index.php/2013/01/26/hc-sr501-passive-infrared-sensor-with-arduino/
#define pir A0
#define led 13

void setup() {
  pinMode(pir, INPUT);
  pinMode(led, OUTPUT);
}
void loop() {
  digitalWrite(led, digitalRead(pir));
  delay(100);
}
   Apoi am incercat pe cel prezentat in celalalt articole:
// http://robotic-controls.com/learn/sensors/pir-sensor-hc-sr501

int pirPin = 14; //is A0 :P
int val;

void setup() {
  Serial.begin(9600);
}

void loop() {
  val = digitalRead(pirPin); //read state of the PIR
  
  if (val == LOW) {
    Serial.println("No motion"); //if the value read is low, there was no motion
  }
  else {
    Serial.println("Motion!"); //if the value read was high, there was motion
  }
  
  delay(1000);
}
   Am "mixat" cele 2 sketch-uri, cand A0 este intrare digitala si a rezultat sketch-ul:
// http://robotic-controls.com/learn/sensors/pir-sensor-hc-sr501
// http://blog.roman-mueller.ch/index.php/2013/01/26/hc-sr501-passive-infrared-sensor-with-arduino/
// http://nicuflorica.blogspot.ro/2014/02/senzorul-de-prezenta-hc-sr501-si-arduino.html

int pirPin = 14;  //is A0
int val;
#define led 13

void setup() {
  Serial.begin(9600);
  pinMode(led, OUTPUT);
}

void loop() {
  val = digitalRead(pirPin); //read state of the PIR
  
  if (val == LOW) {
    Serial.println("No motion"); //if the value read is low, there was no motion
    digitalWrite(led, digitalRead(pirPin));
  }
  else {
    Serial.println("Motion!"); //if the value read was high, there was motion
    digitalWrite(led, digitalRead(pirPin));
  }
  
  delay(1000);
}
   Apoi am folosit intrarea analogica 0 ca intrare analogica...
// http://blog.roman-mueller.ch/index.php/2013/01/26/hc-sr501-passive-infrared-sensor-with-arduino/
// http://robotic-controls.com/learn/sensors/pir-sensor-hc-sr501
// http://nicuflorica.blogspot.ro/2014/02/senzorul-de-prezenta-hc-sr501-si-arduino.html

#define pir A0
#define led 13

void setup() {
  Serial.begin(9600);
  pinMode(pir, INPUT);
  pinMode(led, OUTPUT);
}

void loop() {
  int val = analogRead(pir);
  float val1 = val*5.00/1023.00;
  digitalWrite(led, LOW);
  if (val <650) {
    Serial.print(val);
    Serial.print("/1023 = ");
    Serial.print(val1);
    Serial.println("V - No motion"); //if the value read is low, there was no motion
    
  }
  else {
    Serial.print(val);
    Serial.print("/1023 = ");
    Serial.print(val1);
    Serial.println("V - Motion!"); //if the value read was high, there was motion
    digitalWrite(led, HIGH);
  }
  delay(500);
}
    Am realizat si un filmulet numit HC-SR501 PIR sensor (4)

vineri, 21 februarie 2014

Senzorul de prezenta HC-SR501 si Arduino

  La sfarsitul anului 2011, am prezentat un senzor de miscare alimentat direct la retea, care se foloseste pentru comanda unui bec (sau alt consumator). Articolul despre care fac referire se numeste senzor miscare PIR.
  Un senzor de prezenta PIR, la care se poate regla sensibilitatea si timpul de actionare, care poate fi folosit si cu placa de dezvoltare Arduino este modelul HC-SR501, care intern are alt cod (DSN-FIR800):
 
 
 
   Pe ebay.com am gasit o prezentare a principalelor componente de pe placa senzorului de miscare:
   Am gasit si o fisa tehnica unde este si schema interna, unde apare integratul BISS0001, pe care l-am gasit si in articolul Hacer sensores de movimiento con PIR:
   De mentionat, ca acest modul nu are fotorezistenta folosita la senzorii alimentati la retea, care avea rolul de a detecta starea zi/noapte si a nu aprinde becurile conectate la senzor pe timpul zilei...dar s-ar putea adauga la pinul 9, o fotorezistenta si o rezistenta de 100k(nu merge, cel putin la modulul meu).
   Pe alte site-uri am gasit aplicatii simple fara Arduino:
   Pe net sunt cateva articole, unde este prezentat acest senzor impreuna cu Arduino:
http://www.roroid.ro/senzori-pir/ (articol in romana)
datasheet-ul integratului BIS0001

1.martie.2014
   Am facut si un filmulet, numit HC-SR501 PIR sensor (1) unde am conectat la senzor un LED alb inseriat cu o rezistenta de 680 ohmi si un voltmetru de panou, pentru a vedea mai usor starile...

3.martie.2014
   Schema de testare, folosita in filmulet, este:
5.martie.2014
   Am mai pus 2 filmulete, in care am testat sensibilitatea fara lentina Fresnel:
NC-SR501 PIR sensor (2)
HC-SR501 PIR sensor (3)