In this project, I am going to show you how to detect someone stealing your valuable stuff. If detected, PHPoC sends a notification via Gmail and makes an alert sound and light.
Demonstration
Things Used In This Project
- PHPoC Blue
- Force Sensor
- Resistor 3.3k ohm
- PHPoC 4-Port Relay Expansion Board (T-type)
- Warning Lights & Electric Horns
- Jumper wires
Wiring Diagram
- Stack PHPoC Relay Board on PHPoC Blue
- Connect Force sensor to PHPoC Blue as below image.
- Connect Warning Lights & Electric Horns to port 0 of Relay Board
Detecting Something is Taken Away
To detect treasure present or not, I put the treasure on the force sensor. This sensor let us know how heavy the treasure is. If output value of sensor is below a threshold, it means the treasure is not present and someone took it away.
Electronic part is hidden below table
Laptop overlays force sensor
Electronic part should be hidden under table.
Handling Event
If event is detected, PHPoC will make an alert sound and light, and send a Gmail notification to owner.
Source Code
<task0.php>
PHP Code:
<?php
if(_SERVER("REQUEST_METHOD"))
exit; // avoid php execution via http request
include_once "/lib/sd_340.php";
include_once "/lib/sn_dns.php";
include_once "/lib/sn_esmtp.php";
include_once "/lib/sd_spc.php";
define("THRESHOLD", 50); // in ADC value
function send_gmail()
{
esmtp_account("[email protected]", "PHPoC");
esmtp_auth("your_account", "your_password");
esmtp_msa("smtp.gmail.com", 465);
$time = date("Y-M-d H:i:s", time());
$subject = "Alert: Your treasure is being taken away";
$message = "Location: Planet Earth\r\n";
$message .= "Time: $time\r\n";
$message .= "Your treasure is being taken away\r\n";
$msg = esmtp_send("[email protected]", "Boss", $subject, $message);
if($msg == "221")
return true;
else
return false;
}
spc_reset();
spc_sync_baud(115200);
adc_setup(0, 0); // adc0, channel 0
$obj_present = false;
while(1)
{
$adc_in = adc_in(0, 30);
if($adc_in < THRESHOLD)
{
if($obj_present)
{
//Alert
spc_request(14, 4, "set 0 output high");
// send notification
while(!send_gmail())
;
$obj_present = false;
}
}
else
{
$obj_present = true;
spc_request(14, 4, "set 0 output low");
}
}
?>