Translate

Arduino Simulasi Traffic Light Sensor PIR Komunikasi Wireless NRF24L01

Arduino Simulasi Traffic Light Sensor PIR Komunikasi Wireless NRF24L01


         Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat mendeteksi pergerakan orang dan akan menghidupkan lampu traffic light secara otomatis, jadi terdapat dua buah tiang yang mana jika tiang 1 aktif maka setelah tiang 1 selesai, tiang 2 akan aktif, begitu sebaliknya. komunikasi antar tiang menggunakan wireless modul NRF24L01. untuk lebih jelasnya berikut adalah skema dan programnya.  



a. Arduino Uno




b. Modul Wireless NRF24L01




c. Sensor PIR






d. Program Arduino IDE

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

int msg[1];
int datain;
int counter;
int ledhijau = A1;
int ledkuning = A2;
int ledmerah = A3;
int z;
int y;

RF24 radio(9,10);

const uint64_t pipe = 0xE8E8F0F0E1LL;

void setup(void){

 Serial.begin(9600);
 radio.begin();
 radio.openWritingPipe(pipe);
 pinMode(13,OUTPUT);
 radio.startListening();

  pinMode(ledhijau,OUTPUT);
  pinMode(ledkuning,OUTPUT);
  pinMode(ledmerah,OUTPUT);
 }


void loop(void){
terima();
z = 0;
//kirim();

int dataadc = analogRead(A0);
//Serial.println(dataadc);
delay(200);

  digitalWrite(ledhijau,LOW);
  digitalWrite(ledkuning,HIGH);
  digitalWrite(ledmerah,HIGH);
  
if(dataadc > 100){
  digitalWrite(ledhijau,HIGH);
  digitalWrite(ledkuning,LOW);
  digitalWrite(ledmerah,HIGH);
  delay(1000);
  digitalWrite(ledhijau,HIGH);
  digitalWrite(ledkuning,HIGH);
  digitalWrite(ledmerah,LOW);
  delay(3000);
  z = 1;
  kirim(); 
  }


if( y == 1){
  digitalWrite(ledhijau,HIGH);
  digitalWrite(ledkuning,LOW);
  digitalWrite(ledmerah,HIGH);
  delay(1000);
  digitalWrite(ledhijau,HIGH);
  digitalWrite(ledkuning,HIGH);
  digitalWrite(ledmerah,LOW);
  delay(3000);
  y = 0;
  }

 }


void kirim(){
counter++;
 msg[0] = z;
 radio.write(msg, 1);
 Serial.println(msg[0]);

 if(counter > 300){
 counter = 0;
 return;
 }
 kirim();
}


void terima(){

if (radio.available()){
   bool done = false;  
   while (!done){
     done = radio.read(msg, 1);    
     Serial.println(msg[0]);
     if (msg[0] == 1){
      y = 1;
     }  
     delay(10);
   }
  
 }
 else{
 Serial.println("No radio available");
 }
 return;
}



e. VIDEO HASILNYA









No comments:

Post a Comment