Skip to content

brancusi/snappy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Snapper - RPi2 + Node + gPhoto2

Please note there is a lot missing from these docs right now. More to come soon.

Snapper allows you to create swarms of cameras that can be controlled and triggered through a simple web interface.

Using the Raspberry Pi platform, each camera becomes an autonomous node in the cluster that manages its own image processing and uploading of synchronized swarm pictures.

Landing Swarm

Official site

The stack

  1. resin.io - For provisioning and managing the device fleet
  2. pubnub - For the pub/sub and command triggering
  3. firebase - For the data layer
  4. auth0 - For user identity management of the swarm admin
  5. emberjs - For the swarm admin app

Hardware Setup

  1. Raspberry Pi 2 Model B
  2. Your camera of choice. Supported gphoto2

For fast shutter capture snapper uses GPIO on the RPi-2. This is useful when using a flash or when more than 1 camera is involved in the setup and precise timing is required.

Circuit diagram

RPi-2 Switch Circuit

Parts

  1. 1 - PN2222A - Transistor
  2. 1 - 1m Ω - Resistor
  3. Jumper wires

Software setup

Snapper was built and tested using resin.io. This allows for super easy provisioning of the Pi2.

Raspberry Pi 2 - Setup (Resin.io)

  1. Setup an account at resin.io
  2. Follow their instructions for setting up the base device OS: guide. Pay close attention to the wifi setting if you are going wireless.
  3. Make note of the remote branch for your app on resin. We will use this in the coming steps
  4. Clone snapper git clone [email protected]:brancusi/snappy.git
  5. Now add the remote branch listed on resin under your new app: git remote add resin <RESIN REPO URL>
  6. You can now push code to your device using: git push resin
  7. Magic!

Setting up Pubnub

For pub/sub snapper uses Pubnub

  1. Setup free dev account at pubnub
  2. Copy your access keys from your pubnub dashboard
  3. Refer to the env vars below and add the info through the resin.io dashboard

Setting up firebase

For the data layer snapper uses Firebase

  1. Setup free dev account at firebase
  2. Refer to the env vars below and add the info through the resin.io dashboard

ENV Vars used by your device

FIREBASE_URL=https://<YOUR_APP>.firebaseio.com/

PUBNUB_PUBLISH_KEY=YOUR_PUB_KEY
PUBNUB_SUBSCRIBE_KEY=YOU_SUB_KEY

SWARM_ID=YOUR_SWARM_NAME

AWS_ACCESS_KEY_ID=AWS_KEY
AWS_SECRET_ACCESS_KEY=AWS_SECRET

NODE_NAME=NAME_OF_THIS_NODE

About

Raspberry Pi + gPhoto2

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published