How to make a trespass detector using PIC

You must have come in to a situation where you will like to have or make a device capable of detecting the presence of persons. Worry not because it is exactly what we will be doing today.

A trespass detector is a normally a device that can be positioned at a targeted area to detect the presence of persons or animals entering a particular place legally or illegally depending on one’s objectives.

A typical example is at the entrance of a bank safe, to alert the manager in case there’s an intruder to the safe.  

Things needed to construct the trespass detector.

Step 1: Tools and materials

IR Transmitter (5mm LED) X 1

IR receiver (5mm photo-diode) X 1

10k resistor X 4

1k resistor X 1

120 Ohms resistor X 1

330 ohms resistor X 1

470 Ohms resistor X 1

BC547 transistor X 1

NO push button X 1

16X2 LCD X 1

5V buzzer X 1

Green LED X 1

10K potentiometer X 2

Lm 358 X 1

8 pin IC socket

40 pin IC socket

4MHz Crystal X 1

PIC16F877A

LM35

A soldering iron and some solder

Jumper wires and breadboard wires

Wire cutter

A breadboard

4.318cm x 2.667cm copper board

See how to make IR Sensor here.

Step 2: Bill of materials

click to enlarge

Step 3: Circuit Diagram

Construct the following circuit on a breadboard for testing purposes. 

click to enlarge

After constructing the above circuit on your breadboard, upload the compiled hex file in to the micro-controller (pic16f877a) using a PIC Programmer and test the system for proper functioning.

Step 4: The source code

The source code was written and compiled using MikroC pro for PIC. Download the source code here.

// Trespass detector with fire outbreak arlarm
// PIC16F877A
// https://lrn2make.com

#define MAX_TEMP 30
#define MAX_Tp 700

sbit LCD_RS at RB0_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D4 at RB2_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D7 at RB5_bit;

sbit LCD_RS_Direction at TRISB0_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB2_bit;
sbit LCD_D6_Direction at TRISB3_bit;
sbit LCD_D5_Direction at TRISB4_bit;
sbit LCD_D7_Direction at TRISB5_bit;

sbit reset at RD1_bit; //reset button
sbit alarm at RD0_bit; //relay
sbit alarm_led at RD2_bit;
char temp[4];
unsigned int temperature(){
return adc_read(0) / 2;
}

void Home_scr(){
lcd_cmd(_lcd_clear);
lcd_out(1,1,"Temp: ");
lcd_out(1, 9, "C");
lcd_out(2,1,"System Normal");
}
unsigned int trespass(){
return adc_read(1);
}

void main() {
ADCON1 = 0X00;
TRISD = 0b00000010;
TRISA = 0XFF;
alarm =0;
alarm_led =0;
lcd_init();
lcd_cmd(_lcd_cursor_off);
LCD_out(1,1,"System Normal");
delay_ms(1000);
lcd_cmd(_lcd_clear);
Home_scr();
while(1){
bytetostr((unsigned short)temperature(), temp);
lcd_out(1,6,temp);
if(temperature() > MAX_TEMP){
alarm = 1;
alarm_led =1;
lcd_cmd(_lcd_clear);
lcd_out(1,1,"FIRE OUTBREAK!!!");
while(!reset){}
delay_ms(200);
alarm = 0;
alarm_led =0;
Home_scr();
}
if(trespass() > MAX_Tp){
alarm = 1;
alarm_led =1;
lcd_cmd(_lcd_clear);
lcd_out(1,1,"ALERT");
lcd_out(2,1,"Trespass Detect!");
while(!reset){}
delay_ms(200);
alarm = 0;
alarm_led =0;
Home_scr();
}
}
}

Step 5: How to upload the compiled HEX file using PICKIT2 programmer

Please, follow the tutorials here (With pictures).

Step 6: Realization Process

Download the top silk and bottom copper at the end of this article.

Top silk
Bottom copper

Step 7: Working Video

Coming Soon….

Step 8: Downloads

Download the complete project in a zip folder here

Step 9: Done!

Thanks for reading. 

Please don’t leave the page without sharing with others what you think about this article in the comments section below.

Press Like and share, thanks

Leave a Reply

Shopping Cart
Scroll to Top