How to get a PIR motion sensor to open a website/program using a Arduino Leonardo

I want to make a small project that isn't too hard for my high school IT class.

The plan is to use a PIR motion sensor with a Arduino Leonardo so that when motion is detected it will open google.

I am an intermediate in C and not familiar at all with Arduino. I have found a tutorial on how to make the PIR sensor, but i'm still confused on how to make it so instead of an LED turning on, it opens google.

I also want to make sure this code for turning on an LED when motion is detected is right. Here s the Code i copied from the video:

//the time we give the sensor to calibrate (10-60 secs according to the datasheet)
int calibrationTime = 30;        

//the time when the sensor outputs a low impulse
long unsigned int lowIn;         

//the amount of milliseconds the sensor has to be low 
//before we assume all motion has stopped
long unsigned int pause = 5000;  

boolean lockLow = true;
boolean takeLowTime;  

int pirPin = 3;    //the digital pin connected to the PIR sensor's output
int ledPin = 13;


/////////////////////////////
//SETUP
void setup(){
  Serial.begin(9600);
  while(!Serial);           // wait until the serial monitor on the computer is opened.
  pinMode(pirPin, INPUT);
  pinMode(ledPin, OUTPUT);
  digitalWrite(pirPin, LOW);

  //give the sensor some time to calibrate
  Serial.print("calibrating sensor ");
    for(int i = 0; i < calibrationTime; i++){
      Serial.print(".");
      delay(1000);
      }
    Serial.println(" done");
    Serial.println("SENSOR ACTIVE");
    delay(50);
  }

////////////////////////////
//LOOP
void loop(){

     if(digitalRead(pirPin) == HIGH){
       digitalWrite(ledPin, HIGH);   //the led visualizes the sensors output pin state
       if(lockLow){  
         //makes sure we wait for a transition to LOW before any further output is made:
         lockLow = false;            
         Serial.println("---");
         Serial.print("motion detected at ");
         Serial.print(millis()/1000);
         Serial.println(" sec"); 
         delay(50);
         }         
         takeLowTime = true;
       }

     if(digitalRead(pirPin) == LOW){       
       digitalWrite(ledPin, LOW);  //the led visualizes the sensors output pin state

       if(takeLowTime){
        lowIn = millis();          //save the time of the transition from high to LOW
        takeLowTime = false;       //make sure this is only done at the start of a LOW phase
        }
       //if the sensor is low for more than the given pause, 
       //we assume that no more motion is going to happen
       if(!lockLow && millis() - lowIn > pause){  
           //makes sure this block of code is only executed again after 
           //a new motion sequence has been detected
           lockLow = true;                        
           Serial.print("motion ended at ");      //output
           Serial.print((millis() - pause)/1000);
           Serial.println(" sec");
           delay(50);
           }
       }
  }

Welcome to the forum

The Leo has the ability to send keystrokes to the PC as if they came from the PC keyboard. What would you type at the PC keyboard to open a website ?

I was thinking of using the keyboard shortcut "Windows + r" and putting Chrome and then pressing Ok if thats possible.

That is perfectly possible using the Keyboard library and the Leo

You can immediately put the URL in instead of the name of your browser.

You can experiment yourself without the use of the Leonardo if it works or not.

Note

  1. When you issue keypresses from the Leonardo, do NOT forget to release them. They will be stuck in the PC if you forget.
  2. Build in a safety mechanism (e.g. use a pin with input pullup. If that pin is high, do not send any keypresses and do release all keypresses, if the pin is LOW, do whatever you want.