Garage Genie – Parking & Remote Control using Arduino
The Garage Genie is a car automation Arduino gadget. Click on the two images above to see the animated explanation. It aims to do a few things:
1. The “traffic lights” tells you when you’ve inched your car up close enough when parking. The lights are control by an Arduino using an ultrasonic distance sensor.
2. The ultrasonic distance sensor tells the system whether a car is parked in the stall or not. Using iPhone or Android app, you can check whether or not someone’s car is in the garage.
3. Non-invasive remote open/close operation of the garage door via smart phone app. I’m using a spare garage door remote so that you don’t need to cut into existing wiring.
4. Webcam view of garage if you have a webcam in the garage.
The Garage Genie is part of my series of Instructables for Arduino devices based on an awesome, open source home automation platform called OpenHAB.
Here is how the pieces of the Garage Genie fit together. Continue on for a step-by-step of how it’s built.
Don’t know if it’ll amount to anything. But I’m in the Instructables Contest, if you want to vote. Thanks!
Step 1: Parts List and Initial Hardware Prep
Here’s the parts list.
- Ultrasonic distance sensor (less than $4)
- Arduino Uno clone ($9)
- Arduino prototype shield ($4)
- Arduino ethernet shield ($8)
- Relay module ($6)
- Color LEDs
- Dupont cables
- 5V AC adapter (like from a smart phone / USB charger)
The initial hardware preparation involves putting the Arduino together and getting the garage door remote ready for wiring. I’ve combined these tasks into this step.
Once you have the parts, assemble the Arduino components (Arduino, ethernet shield, prototype shield) into a stack like this. Pretty simple.
Next, we’ll be using the relay module to actuate the button on the spare garage door remote. To do this, we need to prepare the remote. First, remove the circuit board and solder wires to one of the buttons. This following series of pictures should give you a good idea of what to do.
Here’s the circuit board removed from the remote housing.
Next, decide which button corresponds to the garage door open button. Use a multimeter to determine which two pads/legs on the button are shorted when the button is pressed. Solder a few inches of wire to these two legs. You should take the batteries out of the remote so you don’t accidentally operate the garage door.
If you measure the continuity across the two wires, it should be an open circuit. Once the wires are installed, try to open garage by touching the two wires together. It won’t work because the batteries aren’t installed. Put in the battery and try again.
Step 2: Software Setup
The data flow diagram above explains how the three pieces of software (Arduino, Mosquitto, and OpenHAB) work together to get the functionality we’re after. This one diagram pretty much explains how all the communications work. Hopefully it makes sense.
Let’s take care of the PC side by installing the two programs Mosquitto and OpenHAB.
Install the MQTT broker called Mosquitto. Once installed, Mosquitto can simply be ran by double clicking on the executable after installation. Make sure Mosquitto is running by navigating to the program folder and running this following command in the command prompt window (“dos prompt”).
cd C:\"Program Files (x86)"\mosquitto mosquitto_sub -h localhost -t #
This subscribes to all topics on the MQTT broker. When numbers come in from the Arduino’s ultrasonic distance sensor in later steps, you’ll see them appear here. And when you push the garage door open button, you’ll also see that activity here. Use ctrl_c to cancel out of this.
OpenHAB is the main server. It can be installed on a PC, Mac, or Raspberry Pi (and other similar single board computer). The Raspberry Pi is ideal for this since it’s very energy efficient, but for first time users, a Windows or Mac installation will be easiest.
Install OpenHAB according to the instructions on the OpenHAB wiki. Get familiar with some of the OpenHAB files like the sitemap, item, and rules file. The wiki does a good job explaining this, so I’ll forgo the OpenHAB explanation myself.
For more detail: Garage Genie – Parking & Remote Control using Arduino
This Post / Project can also be found using search terms:
- automatic door to ultrasonic arduino pdf
- ultrasonic garage parking assistant steps
- arduino project remote led
- arduino sensor schematic