GithubHelp home page GithubHelp logo

cocoahuke / coblue Goto Github PK

View Code? Open in Web Editor NEW
43.0 4.0 1.0 4.93 MB

Use Bluetooth Low Energy for remote commands, file transfer, Based on bluez Bluetooth protocol stack (BLE Terminal)

License: MIT License

Makefile 0.14% Shell 0.07% C 99.80%
raspberry-pi bluetooth gatt corebluetooth ble ble-terminal

coblue's Introduction

coBlue

Use Bluetooth Low Energy for remote commands, file transfer, Based on bluez Bluetooth protocol stack. Also save your ass when you are blocked by iptables

Contact build license version paypal

Bluetooth Low Energy compared to other forms of wireless connection such as wifi or Bluetooth have more uncomplicated, lower energy consumption. Image your iPhone wirelessly connect to a tiny computer such as raspberry pi etc, and use the powerful tool on Linux

Of course, this can not replace terminal in wifi or usb, but you can do for short thing hiddenly

This project can be installed quickly, run automatically when device boot up. Communicate through characteristics in a Service (Its a part of GATT/ATT procotol, On top of L2CAP). With Mac address filtering and password authentication. Broadcasts continuously when there is no connection or disconnect

Based on GATT / ATT, this allows devices that only support a third developer to program GATT / ATT, such as iOS

Service: CusService
characteristic: Shell Terminal (rw)
characteristic: File Transfer(rw)

Tested on Raspbian 8.5 (Code name: jessie), Mac os 10.10.5

Require

Raspberry pi (Should support other device which compatible with bluez)
A Bluetooth dongle (pi3 already build-in)

A Mac running Mac os (iOS should also be able to support, I built on GATT / ATT protocol for iOS, but i have not written a program for iOS yet)

coblue-control to communicate with coBlue on Macos
coBlue-iOS to communicate with coBlue on iOS

Feature

  1. BLE Low power consumption advantage
  2. Basic shell functionality.
  3. File transfer (Get / Put)
  4. Bluetooth Mac address filtering
  5. Password authentication with time limit (Eg. for iOS device)
  6. Start automatically when raspberry pi boot up
  7. You can change the device name or Service UUID for confusion
  8. Interactive command in Macos as Central
    More functions see -h
    maybe add more in the future...

Or you can add characteristic to connect to your own program, so that it make coblue able to control through A simple command, which means that your other devices can send commands to a linux device (such as your Macbook or iPhone).
I did not provide iOS program, but its a simple conversion from Mac program, both use CoreBluetooth

Shortcomings

  1. SLOW, send 20 bytes at a time
  2. Interactive commands are not supported
  3. other problems might have

How to use

Download

git clone https://github.com/cocoahuke/coblue.git
&& cd coblue

Compile and install coBlued on raspberry pi:

sudo make
sudo make install
coBlued

Configure the Mac Address filter file or authentication file, otherwise no device can be connected successfully
more info, please refer to -h

sudo coBlued -filterw

or

sudo coBlued -verifyw

Then reboot to Start using

Use coblue-control or coBlue-iOS Communication on Macos/iOS

If you want to Temporarily turn off

sudo killall coBlued

If you want to Disable it

sudo coBlued -configw

and you will see

/usr/sbin/$COBLUE_PROG_NAME $PARAMETERS &
#Comment out the line above to Disable coBlue

if need Uninstall

sudo make uninstall

Demo

sample

Demo (Modify the wpa configuration file)

sample1

sample2

coblue's People

Contributors

cocoahuke avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

miguellan

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.