Introduction: EMAIL PHONE SECURITY SYSTEM - ON Windows, for Non Linux Users
First things first, big shout out to Action_Owl, and KipKay. This is instructable was idealistically created by KipKay, and Bones by Action_Owl. I adapted the code and concept for something a little easier to use on my windows PC. You can find their instructables with the following links
https://www.instructables.com/id/Twittering-Laser-Tripwire-with-Webcam-Capture/
https://www.instructables.com/id/Protect-Your-Home-with-Laserbeams/
Thanks for your ideas and creativity.
https://www.instructables.com/id/Twittering-Laser-Tripwire-with-Webcam-Capture/
https://www.instructables.com/id/Protect-Your-Home-with-Laserbeams/
Thanks for your ideas and creativity.
Step 1: Things You Will Needs.
Here is a list of items you will need
- Soldering Tools
- A PC with USB ports, and internet connection
- Email address.
- Autoit Scripting language - Download here. - http://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3-setup.exe
- Adruino Uno rev 3
- Laser pointer any color, - for this instructable i used red. (they are cheap)
- 100k ohm 5% tolerance resistor.
- 1 Photo resistor, any size
- 24 gauge wire.
- Some Thermal Shrink tube.
- Mirror squares.
Step 2: Building Your Laser Sensor
Look at the picture below and follow the tool tips
Making a light hood for the Photo resistor is essential! Random light will keep your sensor from detecting a trips if you fail to construct yours correctly.
Making a light hood for the Photo resistor is essential! Random light will keep your sensor from detecting a trips if you fail to construct yours correctly.
Step 3: Building Your Laser
Remove your laser from its housing.
Connect the two power leds, one to the positive, one to the negative, which on this laser was + housing, Negative, spring.
Once the laser is wired up, Connect it to Digital pins GND, and pin13
Then secure it, I used a piece of 2x4 and zip ties.
Congrats your laser tripwire is now completely assembled, Now lets move to programming.
Connect the two power leds, one to the positive, one to the negative, which on this laser was + housing, Negative, spring.
Once the laser is wired up, Connect it to Digital pins GND, and pin13
Then secure it, I used a piece of 2x4 and zip ties.
Congrats your laser tripwire is now completely assembled, Now lets move to programming.
Step 4: Programming Your Laser Modual
Goto http://www.Adruino.CC and download to adruino software. -- http://arduino.cc/en/Main/Software
You will need to install the adruino drivers for USB emulation. this will be located within the zip file you just downloaded, under the drivers folder.
Now open the Adruino software, copy and past this code, provided by Action_Owl, and write it to the Adruino.
/////////////////////////////////////////
int ledPin = 13;
int analogPin = 0;
int ldrVal = 0;
int threshold = 100;
void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
}
void loop()
{
ldrVal = analogRead(analogPin);
if ( ldrVal > threshold )
{
Serial.print("1");
delay(200);
}
//Serial.println(ldrVal);
}
////////////////////////////////////////////////
DO not forget to connect your board VIA USB cable.
Once you upload this, your code will be active and your micro Controller will turn on, you can test your sensor by shining a flashlight into your photo resistor. Working, the RX LED will flash, Shine a flashlight into the photo resistor, it should stop flashing...
Congrats, next step.
You will need to install the adruino drivers for USB emulation. this will be located within the zip file you just downloaded, under the drivers folder.
Now open the Adruino software, copy and past this code, provided by Action_Owl, and write it to the Adruino.
/////////////////////////////////////////
int ledPin = 13;
int analogPin = 0;
int ldrVal = 0;
int threshold = 100;
void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
}
void loop()
{
ldrVal = analogRead(analogPin);
if ( ldrVal > threshold )
{
Serial.print("1");
delay(200);
}
//Serial.println(ldrVal);
}
////////////////////////////////////////////////
DO not forget to connect your board VIA USB cable.
Once you upload this, your code will be active and your micro Controller will turn on, you can test your sensor by shining a flashlight into your photo resistor. Working, the RX LED will flash, Shine a flashlight into the photo resistor, it should stop flashing...
Congrats, next step.
Step 5: Installing PC Side Software - Processing
For this step you will need to download a program called Processing. - http://www.processing.org
Processing is what we will use to listen for inputs from our Adruino Micro-controller, this interface is done with serial port emulation through a U.S.B controller. Now to make sure this functions as expected you need to have your RX-TX interface software correctly installed.
The files
RXTXParallel.dll
RXTXSerial.dll
Rxtxcomm.Jar
These three files THE SAME VERSION need to be placed in your Windows root folder, Windows System 32 folder, and Processing root folder, and Adruino root folder. Failing to do this will give you a RXTX error with Processing and it will not read serial inputs from the Adruino
Stable Library -- YOU SHOULD BE GETTING THIS MESSAGE IN PROCESSING
=========================================
Native lib Version = RXTX-2.1-7
Java lib Version = RXTX-2.1-7
[0] "COM1"
[1] "COM3"
Once this done, restart windows, reupload your Adruino programming.
I spent countless hours tying to make this happen in Ubuntu :/
Processing is what we will use to listen for inputs from our Adruino Micro-controller, this interface is done with serial port emulation through a U.S.B controller. Now to make sure this functions as expected you need to have your RX-TX interface software correctly installed.
The files
RXTXParallel.dll
RXTXSerial.dll
Rxtxcomm.Jar
These three files THE SAME VERSION need to be placed in your Windows root folder, Windows System 32 folder, and Processing root folder, and Adruino root folder. Failing to do this will give you a RXTX error with Processing and it will not read serial inputs from the Adruino
Stable Library -- YOU SHOULD BE GETTING THIS MESSAGE IN PROCESSING
=========================================
Native lib Version = RXTX-2.1-7
Java lib Version = RXTX-2.1-7
[0] "COM1"
[1] "COM3"
Once this done, restart windows, reupload your Adruino programming.
I spent countless hours tying to make this happen in Ubuntu :/
Step 6: Interfacing With the Adruino Through Processing.
Now that you have processing installed, Copy and paste the following info into Processing. In order for processing to find your adruino, you may need to change your serial port address. The location in the code to do this is listed in picture below.
import processing.serial.*;
Serial myPort;
char inBuffer;
int wait, now, timeout = 10000;
boolean hold = false;
void setup() {
size(200,200);
println(Serial.list());
myPort = new Serial(this, Serial.list()[1], 9600);
fill(#36ff00);
}
void draw() {
while (myPort.available() > 1)
{
inBuffer = myPort.readChar();
if(inBuffer=='1')
{
if ( !hold )
{
fill(#ff0000);
println("Tripped");
open("emailscript.exe");
wait = millis();
hold = true;
}
}
}
now = millis();
if (now > (wait + timeout))
{
hold = false;
fill(#36ff00);
}
rect(0,0,200,200);
}
Once this code is uploaded, activate your adruino, then launch your processing sketch.
You should be getting a alternating RED/GREEN box with a 4 second or so delay.
This will also launch a command line script to email you .
import processing.serial.*;
Serial myPort;
char inBuffer;
int wait, now, timeout = 10000;
boolean hold = false;
void setup() {
size(200,200);
println(Serial.list());
myPort = new Serial(this, Serial.list()[1], 9600);
fill(#36ff00);
}
void draw() {
while (myPort.available() > 1)
{
inBuffer = myPort.readChar();
if(inBuffer=='1')
{
if ( !hold )
{
fill(#ff0000);
println("Tripped");
open("emailscript.exe");
wait = millis();
hold = true;
}
}
}
now = millis();
if (now > (wait + timeout))
{
hold = false;
fill(#36ff00);
}
rect(0,0,200,200);
}
Once this code is uploaded, activate your adruino, then launch your processing sketch.
You should be getting a alternating RED/GREEN box with a 4 second or so delay.
This will also launch a command line script to email you .
Step 7: Sending an Email With Autoit - Macros
OK this part is super easy, just about anyone who has done any programming is familiar with macros. A Macro is one command or keystroke, that set off a series of predetermined commands or keystrokes.
Four simple commands are used in this macro
MouseClick - Choose Right or left mouse click Syntax "MouseClick("Left") or MouseClick("Right")"
MouseMove - Move to specified pixel location Syntax "MouseMove(X,Y)"
Send - Send String or keystroke series Syntax "Send("F10") Or Send("Have a nice day)" - if text box is selected
Sleep - Have macro wait between actions Syntax "Sleep(2000)" - Random number from 100 - 10000
To find pixel location on your screen you can use the embedded auto it tool Au3info or Au3info_X64. Each of these tools will be located in the default location, provided you did not custom install.
C:\Program Files (x86)\AutoIt3
To find a pixel location CLICK and DRAG THE SMALL CROSSHAIR icon on the finder tool to the desired location, the coordinates will be displayed in the tools info window.
Once you have macro built, you can test each stage using the "GO" command under tools, or press "F5"
Once you are certain your macro is working, Compile it into a EXE file Named "emailscript" and place it into the root folder of processing.
I have a Custom made macro here, but for it to work, you will need to set screen resolution to 1600 x 1050, While using the firefox browser place the shortcut Icon on pixel location "267, 133" . You will also have to use gmail.
MouseMove(267,133)
sleep(2000)
MouseClick("left")
MouseClick("left")
sleep(2000)
MouseMove(450,104)
MouseClick("left")
;click email feild
mousemove(1044,287)
Sleep(2000)
Mouseclick("left")
Sleep(2000)
Send("your email@gmail.com")
;Click password field
Mousemove(1044,360)
Mouseclick("Left")
Sleep(2000)
Send("your password")
sleep(2000)
;Click Signin
MouseMove(1061,410)
Mouseclick("left")
Sleep(4000)
;Click Compose Button
Mousemove(115,277)
MouseClick("left")
Sleep(2000)
;Click send to feild)
MouseMove(322,288)
Mouseclick("left")
Send("receiving email, can be any")
Sleep(2000)
;Subject feild
MouseMove(320,345)
sleep(2000)
MouseClick("left")
sleep(2000)
Send("Boundary Anomaly Detected")
;Click Body field
MouseMove(256,438)
Sleep(2000)
MouseClick("left")
sleep(500)
Send("Computer Generated automated email, Class:Boundary Anomaly - Interior breach")
Sleep(2000)
;Send Email
MouseMove(261,219)
sleep(500)
MouseClick("left")
Sleep(2000)
;Close Window
MouseMove(1653,7)
Sleep(500)
MouseClick("left")
Four simple commands are used in this macro
MouseClick - Choose Right or left mouse click Syntax "MouseClick("Left") or MouseClick("Right")"
MouseMove - Move to specified pixel location Syntax "MouseMove(X,Y)"
Send - Send String or keystroke series Syntax "Send("F10") Or Send("Have a nice day)" - if text box is selected
Sleep - Have macro wait between actions Syntax "Sleep(2000)" - Random number from 100 - 10000
To find pixel location on your screen you can use the embedded auto it tool Au3info or Au3info_X64. Each of these tools will be located in the default location, provided you did not custom install.
C:\Program Files (x86)\AutoIt3
To find a pixel location CLICK and DRAG THE SMALL CROSSHAIR icon on the finder tool to the desired location, the coordinates will be displayed in the tools info window.
Once you have macro built, you can test each stage using the "GO" command under tools, or press "F5"
Once you are certain your macro is working, Compile it into a EXE file Named "emailscript" and place it into the root folder of processing.
I have a Custom made macro here, but for it to work, you will need to set screen resolution to 1600 x 1050, While using the firefox browser place the shortcut Icon on pixel location "267, 133" . You will also have to use gmail.
MouseMove(267,133)
sleep(2000)
MouseClick("left")
MouseClick("left")
sleep(2000)
MouseMove(450,104)
MouseClick("left")
;click email feild
mousemove(1044,287)
Sleep(2000)
Mouseclick("left")
Sleep(2000)
Send("your email@gmail.com")
;Click password field
Mousemove(1044,360)
Mouseclick("Left")
Sleep(2000)
Send("your password")
sleep(2000)
;Click Signin
MouseMove(1061,410)
Mouseclick("left")
Sleep(4000)
;Click Compose Button
Mousemove(115,277)
MouseClick("left")
Sleep(2000)
;Click send to feild)
MouseMove(322,288)
Mouseclick("left")
Send("receiving email, can be any")
Sleep(2000)
;Subject feild
MouseMove(320,345)
sleep(2000)
MouseClick("left")
sleep(2000)
Send("Boundary Anomaly Detected")
;Click Body field
MouseMove(256,438)
Sleep(2000)
MouseClick("left")
sleep(500)
Send("Computer Generated automated email, Class:Boundary Anomaly - Interior breach")
Sleep(2000)
;Send Email
MouseMove(261,219)
sleep(500)
MouseClick("left")
Sleep(2000)
;Close Window
MouseMove(1653,7)
Sleep(500)
MouseClick("left")