fritzing_parts | ||
src | ||
Bill of Materials.ods | ||
LICENSE-APACHE-2.0.txt | ||
LICENSE-CC-BY-SA-3.0.html | ||
README.md | ||
Safe Lighting.fzz | ||
Safe Lighting_bb.png | ||
Safe Lighting_schem.png | ||
TODO.md |
Overview
This project is a basic lighting system that can be used with smaller SentrySafe products such as the X125 model.
The project uses Adafruit NeoPixels as a light source, Adafruit Trinket Pro for control, and has a sensor to check if the safe door is open. The build allows users to change brightness and the color of the pixels using a pair of potentiometers. The build includes an on/off switch, always on switch and color/white switch for further control.
Build
There is a Fritzing schematic of the project in the main folder (look for the fzz file) that outlines the parts and connections. The Fritzing document also includes a complete breadboard view for easier prototyping setup. The "Fritzing" directory has all custom parts used so you can import them into the program and use the fzz file.
There is a bill of materials (OpenOffice Calc format) in the main folder listing all parts that were used in the build.
IMPORTANT: To use the Adafruit Trinket Pro, you must setup a slightly different Arduino IDE as described here: https://learn.adafruit.com/adafruit-arduino-ide-setup/overview . You can use an Arduino Micro as a drop in replacement (identical pinout, follow the schematic/Fritzing docs for wiring).
Customization
The build can be customized in the following ways
- Use an Arduino Micro instead of Adafruit Trinket Pro. The code has been tested and is working with the Arduino Micro
- Omit the SparkFun LiPo Fuel Gauge. The code will auto-sense the fuel gauge and enable features if appropriate
- Use a PIR distance sensor instead of the magnetic door switch. The code is setup but untested for PIR sensors
Source Code Tweaks/Config
In the code you'll find the following variables which may need tweaking
- DEBUG : Turn on Serial output of various values read during execution of sketch
- INTERACTIVE_DEBUG : Turn on a wait at start and longer timeouts so the output is easier to debug
- SLEEP_INTERVAL : The amount of time (in miliseconds) that the device sleeps for between checks
- ALERT_LEVEL : The battery level that generates an alert. This must be set between 1 and 32%, inclusive
- NEO_PIX_NUM : Set this to the number of NeoPixels in your build. I setup mine for 5 pixels but it can be more/less depending on need and available power. NeoPixels consumer a lot of power and can easily use a full 500mA of power, overtaxing most power sources.
- USE_PIR : Turn on to enable the PIR distance sensor code. The existing code is only minimally tested and unreliable. You'll want to verify things work properly and/or update code as necessary
Known Issues
Please see the TODO.md document for current, known issues.
Code License
All code is licensed under the Apache 2 License (http://www.apache.org/licenses/LICENSE-2.0) unless otherwise specified.
The following external libraries are included and may not be licensed the same as my code/documentation
- Adafruit NeoPixel Library from https://github.com/adafruit/Adafruit_NeoPixel
- Adafruit Fritzing Parts from https://github.com/adafruit/Fritzing-Library
- SparkFun Lipo Fuel Gauge Library / Example code
- "Sleepy" class from https://github.com/jcw/jeelib/
- Metro timing lib from https://github.com/thomasfredericks/Metro-Arduino-Wiring
- SharpIR lib from http://playground.arduino.cc/Main/SharpIR
Non-Code License
All non-code Assets, documentation, etc is licensed under the Creative Commons Attribution-ShareAlike 3.0 license (https://creativecommons.org/licenses/by-sa/3.0/us/)