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 lighting source, Adafruit Trinket Pro for control, and has a sensor to check if the safe door is open. The build also is setup to allow the color of the NeoPixels to be changed, brightness to be changed as well as an "always on" switch.
Build
There is a Fritzing schematic of the project in the main folder (look for the fzz file) that outlines how all of the parts need to be put together. 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.
- USE_PIR : Turn on to enable the PIR distance sensor code
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/)