Translate

Membuat Alat Deteksi Kecepatan Menggunakan Sensor Ultrasonic HC-SRF04 dan PIR ARDUINO Komunikasi wireless NRF24L01

Membuat Alat Deteksi Kecepatan Menggunakan Sensor Ultrasonic HC-SRF04 dan PIR ARDUINO Komunikasi wireless NRF24L01


           Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang menggunakan sensor ultrasonik sebagai deteksi kecepatan laju benda bergerak, jadi alat ini dilengkapi juga dengan sensor PIR yang berfungsi untuk mendeteksi apakah yang bergerak manusia atau bukan, jika manusia maka akan dimulai counter untuk deteksi kecepatannya namun jika tidak maka tidak akan dilakukan counter, ada dua sensor jarak difungsikan untuk awal counter dan akhir counter, setelah nilai counter didapat maka dikirimkan ke receiver menggunakan modul wireless NRF24L01. untuk lebih jelasnya berikut adalah skema dan programnya.



 a. Arduino Uno




b. Sensor Jarak HC-SRF04




c. LCD 16x2 I2C




d. Sensor PIR 




e. Modul NRF24L01






f. Program Arduino Uno

1. Master

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#define trigPin1 2
#define echoPin1 3
#define trigPin2 4
#define echoPin2 5

  long duration1, distance1;
  long duration2, distance2;
  int dataadc, counter, mark;

RF24 radio(9, 10); // CE, CSN

const byte address[6] = "00001";

void setup() {
  Serial.begin (9600);
  pinMode(trigPin1, OUTPUT);
  pinMode(echoPin1, INPUT);
  pinMode(trigPin2, OUTPUT);
  pinMode(echoPin2, INPUT);
  digitalWrite(13,LOW);
  radio.begin();
  radio.openWritingPipe(address);
  radio.setPALevel(RF24_PA_MIN);
  radio.stopListening();
  }

 void loop() {

  dataadc = analogRead(A0);

  digitalWrite(trigPin1, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin1, HIGH);
//  delayMicroseconds(1000); - Removed this line
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin1, LOW);
  duration1 = pulseIn(echoPin1, HIGH);
  distance1 = (duration1/2) / 29.1;
  Serial.print(distance1);
  Serial.print (" cm   ");

  digitalWrite(trigPin2, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin2, HIGH);
//  delayMicroseconds(1000); - Removed this line
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin2, LOW);
  duration2 = pulseIn(echoPin2, HIGH);
  distance2 = (duration2/2) / 29.1;
  Serial.print(distance2);
  Serial.print(" cm   ");
  Serial.println(dataadc);
  delay(200);

  if((distance1 < 10)&&(dataadc > 1000)){
  mark = 1;
  }
 
  if((distance2 < 10)&&(dataadc > 1000)){
  mark = 0;
  Serial.print(" speed= ");
  Serial.println(counter);
  /*
  if(counter <= 10){
  const char text[] = "kec > 13 m/s";
  radio.write(&text, sizeof(text));
  delay(1000);
  }
  */
  if((counter > 10)&&(counter <= 30)){
  const char text[] = "Ada Penyu";
  radio.write(&text, sizeof(text));
  delay(1000);
  }
  /*
  if(counter > 30){
  const char text[] = "kec < 6 m/s";
  radio.write(&text, sizeof(text));
  delay(1000);
  }
  */
  counter = 0;
  }
 
  if(mark == 1){
  counter++;
  }

}
 



2. Slave

#include <Wire.h>  // i2C Conection Library
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#include <LiquidCrystal_I2C.h>  //i2C LCD Library
LiquidCrystal_I2C lcd(0x3F, 16, 2); //library i2c lcd

RF24 radio(9, 10); // CE, CSN
const byte address[6] = "00001";

int buzp = 4;
int buzm = 7;


void setup(){
  lcd.begin(); //set lcd i2c
  lcd.noCursor(); //biar gak ada cursor di lcd
  lcd.clear(); //clear lcd
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(0, address);
  radio.setPALevel(RF24_PA_MIN);
  radio.startListening();
  pinMode(buzp,OUTPUT);
  pinMode(buzm,OUTPUT);
   digitalWrite(buzp,LOW);
    digitalWrite(buzm,LOW);
 
}


void loop(){
    lcd.setCursor(0,0);
    lcd.print("TEST ARDUINO");
   
    if (radio.available()) {
    char text[32] = "";
    radio.read(&text, sizeof(text));
    //Serial.println(text);
    lcd.setCursor(0,1);
    lcd.print(text);
   
    digitalWrite(buzp,HIGH);
    digitalWrite(buzm,LOW);
   
  }

}





g. VIDEO HASILNYA








No comments:

Post a Comment