84 lines
2.5 KiB
Plaintext
84 lines
2.5 KiB
Plaintext
# doorbuzz
|
|
raspberry Pi opening the front door and playing videos
|
|
the button has an RGB led to show status
|
|
features:
|
|
* button to push to open the door
|
|
* LED ring of 60 neopixels showing the current clock
|
|
* video player showing some default videos while the space is open
|
|
* a shutdown button for a clean shutdown
|
|
* watchdog
|
|
|
|
how to install
|
|
==============
|
|
|
|
sudo vi /etc/xdg/lxsession/LXDE/autostart
|
|
remove screensaver
|
|
sudo apt-get install unclutter xdotool git-core screen imagemagick x11-xserver-utils
|
|
git clone git://git.drogon.net/wiringPi
|
|
cd wiringPi
|
|
./build
|
|
|
|
mkdir -p /home/pi/.config/lxsession/LXDE/
|
|
cat > /home/pi/.config/lxsession/LXDE/autostart <<"EOF"
|
|
@xset s off
|
|
@xset -dpms
|
|
@xset s noblank
|
|
@unclutter -display :0 -noevents -grab
|
|
@sudo python ./doorbuzz/setneocolor.py
|
|
@./doorbuzz/buzzctrl.sh
|
|
@./doorbuzz/videoplayer.sh
|
|
@./doorbuzz/arpspoofdetect.sh
|
|
@sudo python ./doorbuzz/shutdownbutton.py
|
|
@./doorbuzz/phone_notification_client.sh
|
|
EOF
|
|
|
|
|
|
connect the button and LED to pins as shown in buzzctrl.sh
|
|
create a file "secret.txt" containing the http://user:pass@10.1.1.xx part of the URL
|
|
adapt the URL in buzzctrl.sh
|
|
adapt spaceapi URL in spacestatus.py
|
|
put .mp4 videos into ~pi/ and they will show when your hackerspace is open
|
|
you can add videos and they will be taken into account automatically
|
|
|
|
when booting, the button led uses morsecode to send the low byte of the
|
|
IP adress in decimal
|
|
|
|
phone_notification_client.sh communicates with pidor's doorbuzz_wrapper.sh
|
|
to command the flash light
|
|
|
|
# new: using redis to manage the 60 led circle
|
|
sudo apt-get install python-pip redis-server
|
|
sudo pip install redis
|
|
#the redi.sh comes from here: https://github.com/crypt1d/redi.sh
|
|
cd ~
|
|
git clone https://github.com/jgarff/rpi_ws281x.git
|
|
cd rpi_ws281x
|
|
sudo apt-get install scons
|
|
scons
|
|
sudo scons
|
|
|
|
# setup watchdog
|
|
sudo modprobe bcm2708_wdog
|
|
echo "bcm2708_wdog" | sudo tee -a /etc/modules
|
|
|
|
|
|
sudo apt-get install watchdog
|
|
sudo update-rc.d watchdog defaults
|
|
|
|
sudo sed -i 's/#\(watchdog-device\)/\1/
|
|
s/#\(max-load-1\s\)/\1/
|
|
' /etc/watchdog.conf
|
|
|
|
sudo service watchdog start
|
|
|
|
Note: projectionscreen.sh is a standalone program called remotely by pidor
|
|
because pidor knows the IP adress of the projector but doorbuzz has the RF remote connected.
|
|
The remote command works with ssh, so install pidor's root pub key into
|
|
~pi/.ssh/authorized_keys
|
|
todo
|
|
====
|
|
create a config file
|
|
put more of the hardcoded values from code into parameters
|
|
make code resilient against missing commands (e.g. gpio not in PATH)
|
|
move script to run in screen instead starting from rc.local
|