Code Monkey home page Code Monkey logo

feather-ble's Introduction

feather-ble

A Node.js module that helps find, wrap, and add easy basic functionality to a Noble peripheral that is an Adafruit Bluefruit LE Arduino Micro Controller

Features

  • Event system for the following:
    • On connect & ready with adafruit device
    • On message from adafruit device
    • On RSSI signal update
    • On device disconnect
  • Can send strings of any length to adafruit device

Works With

Quick Start

Install

npm install --save feather-ble

Require

var Feather = require("feather-ble");

Setup & Start

var possible_feather = some_noble_peripheral_instance;

// Check is peripheral is an adafruit feather
if (new Feather().isFeather(possible_feather)) {
  // possible_feather is an adafruit feather device
  
  // Create settings
  var instanceSettings = {
    peripheral: possible_feather,     // REQUIRED: A Noble Peripheral Instance to use
    verbose: Bool,                    // OPTIONAL: If instance should print out logs to console (default FALSE)
    rssi: Bool,                       // OPTIONAL: If instance should request/trigger RSSI updates (default FALSE)
    rssi_update_rate: Int             // OPTIONAL: Rate (in ms) at which RSSI updates should be requested/triggered (default 5000)
  };
  
  // Create instance
  var feather = new Feather(instanceSettings);
  
  // Add event listeners
  feather.on("ready", function(err){
    if (!err) {
      // feather is connected and ready
      
      // Can send strings over to adafruit device
      feather.sendMessage("Hello World!");
      feather.sendMessage("This is a really long string that works just as well :)");
    }
  });
  
  feather.on("message", function(msg){
    // Message recieved from adafruit device
  });
  
  feather.on("rssi", function(err, rssi){
    if (!err) {
      // RSSI was updated
    }
  });
  
  feather.on("disconnect", function(){
    // feather was disconnected
  });
  
  // Start feather process
  feather.setup();

}

Dependencies:

Future Plans

  • Rename and add ability to accept wider range of adafruit devices
  • Improve verbose comments
  • Expand instance settings for more custom tweaking
  • Create Arduino Library that works hand-in-hand with module

feather-ble's People

Contributors

isaiahbydayah avatar

Stargazers

Dan Beech avatar Nadine avatar

Watchers

James Cloos avatar Alex Schäfer avatar

feather-ble's Issues

Wait for ready

Update message callback triggers to wait for ready to be set before calling callbacks.

Currently, you can technically get "message" triggers before "ready" triggers fire.

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.