Bluetooth-button-pusher

Mechanical button-pusher securely controlled via Bluetooth LE

View project on GitHub

Pusher

CircleCI License

Mechanical wall switch button pusher securely controlled via Bluetooth LE with RFduino module/LCD panel & via Android smartphone

Download Pusher from Google Play

demo

screenshot


Application layer association security :

  • AES 256 encryption
  • user code for key exchange
  • additional password protection

protected against MIM & Replay attack

pairing

Project structure

  • /firmware - microcontroller code written for RFduino
  • /android - android application to control device
  • /hardware - wiring diagram, schematics & BOM

Build

Get source code

git clone git@github.com:bertrandmartel/pusher.git
cd pusher
git submodule update --init --recursive

Build Firmware

cd firmware
make

Build Android App

cd android
./gradlew build

Firmware specifications

Hardware specifications

External library

Firmware

  • rfduino software : https://github.com/RFduino/RFduino
  • LiquidCrystal arduino library : https://github.com/arduino-libraries/LiquidCrystal
  • rfduino-makefile : https://github.com/bertrandmartel/rfduino-makefile
  • AES library by Brian Gladman

Android application

  • smart Android dot progress bar : https://github.com/silvestrpredko/DotProgressBarExample
  • AES library by Brian Gladman
  • appcompat-v7, design & recyclerview-v7

License

Copyright (C) 2016  Bertrand Martel

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 3
of the License, or (at your option) any later version.

Pusher is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Pusher.  If not, see <http://www.gnu.org/licenses/>.