• Stars
    star
    127
  • Rank 282,790 (Top 6 %)
  • Language
    JavaScript
  • Created almost 5 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Garage door opener

garage-door

Project under development. READ DISCLAIMER ON THE BOTTOM

And safety concerns here:

https://news.ycombinator.com/item?id=23174493

A garage door remote control system, that can open / close / freeze the door through a mobile app or physical wall (up & down) pushbuttons (NO or 'normally open').

A breadboard prototype

Garage door breadboard prototype

Features

  • User accounts, authentication & authorization, email verification
  • Role assignments & permissions
  • Garage door & UI responsiveness via realtime communication & connection/signal status.
  • Works locally only, via WLAN (it's a feature, not a bug!)

Installation instructions

$ git clone https://github.com/evzaboun/garage-door.git

$ cd garage-door

$ npm install

$ cd client

$ npm install

$ cd ..

Setting the environment variables

$ touch .env

$ nano .env

Add the following

NODE_ENV=development
IP = "YourRaspberryPiIP"
HOSTNAME = `${os.hostname() + ".local"}`
JWT_KEY = "SetYourJWTKeyHere"  # Can be any string as your secret
SENDGRID_API_KEY = "YourSendgridAPIKey" # Used for user email verification
SENDGRID_FROM_EMAIL = "[email protected]"
REGISTER_LINK = "http://YourRaspberryPiIP:AndPort/activate"

Save the .env file, and run:

$ npm run dev

Used the following tools

Hardware

  • Raspberry Pi Zero WH (1x)
  • 2 channel relay module (with optocoupler isolation & snubber circuitry, compatible with raspberry pi, the one I use for the project is "active low") (1x)
  • A 5v DC power supply in order to use the relay optocoupler isolation (for safety reasons!) (1x)
  • Magnetic reed switches (future implementation) (2x)

Software stack & tools

Server

Node.js, Express.js (REST API), socket.io, lowdb (JSON DB), Sendgrid API

Client

HTML/CSS/JS & React & Material UI, socket.io

TODO

  • Simplify wiring (utilizing built in raspberry pi's pull up resistors)
  • HTTPS (self-signed cert)
  • Add laser beam switches with reflector (stops & reverses the door when interrupted, for safety reasons)

DISCLAIMER

USE SOLELY ON YOUR OWN RISK. ELECTRICITY CAN BE FATAL, SO CONSULT A CERTIFIED PROFESSIONAL.

I am not a certified electrician, and this project does not meet any CPSC or any other security / safety regulations & standards. This project is experimental.

Licence

MIT