Giter VIP home page Giter VIP logo

devices's Introduction

Go libraries/drivers for IoT devices

GoDoc Build Status

This repo contains a suite of libraries for IoT devices/sensors/actuators. The suite is meant to be as dependency free and as idiomatic as possible.

If you are interested in helping, feel free to look at the open issues mentioning help needed. If you have questions on how you implement some of the features, don't hesitate to ask. If you are trying to integrate these libraries in your projects and have questions, please open an issue.

Note that there are a LOT of IoT devices and while we would love to have libs for all of them, we will need your help.

Supported devices

Generic

The following libraries can be used on multiple devices that use the same underlying component. Often various manufacturers create their own version of a device using the same component. If you have device that doesn't have a driver listed above, look at the main component used and see it it matches one of the ones mentioned below.

Repo organization

Device libraries are organized by manufacturers and should use names that easy to google or identify. Each device package contains a README file with references and details about the device (and usually a picture and links to datasheets). You will also find an examples folder with basic examples on how to use the library.

Test setup

Testing IoT devices is quite complicated, most of us use a Raspberry Pi, connect the devices directly or via shield and run the examples to test. Yes, it's far from perfect :(

More information / Advanced topics

Checkout the wiki for more info.

devices's People

Contributors

mattetti avatar rakyll avatar zankich 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

devices's Issues

grove/accel3xdigital support for interrupts

The sensor can trigger interrupts based on analyzed events. The type of events and the pin used to trigger these events can be defined as explained in the datasheet: http://www.farnell.com/datasheets/1670762.pdf

Unfortunately, the current state of exp/io/gpio doesn't allow us to add this feature. That said, we expect the gpio pkg to be soon ready. If you are interested in this issue, look at the gpio pkg, if he does support interrupt pins, then you can work on it.

dotstar: nothing works

The examples are not working. We are not setting the bits per word, SPI mode or the max speed. I don't know what else is missing but was not able to light up my dotstar strip.

Fix misleading message

README mentions the following:

These libraries rely on Go's new exp/io interfaces and are designed so they can be used as is or via
existing Go IoT libraries/frameworks such as GoBot, Embed and hwio.

Even though this is practically possible, this is not the goal of exp/io packages. Trying to achieve it by writing drivers that work against Gobot, Embed, etc also will create confusing and more layers of unnecessary implementation. The more optimal strategy is to rewrite, eg. rewriting Gobot's SPI adaptor layer as an spi.driver and contribute it to golang.org/x/exp/spi.

/cc @mattetti

reorganize the device packages by manufacturers

As we are adding more devices, it's getting hard to find them. For instance I organized the seedstudio devices under grove which was probably a mistake.

My suggestion is to use the manufacturer name such as seeedstudio, adafruit, pimorini etc..

Thoughts?

s/New/Open/ as the entry point into devices

As discussed in the accel3xdigital device PR, it is semantically more correct to use Open vs New and it is also a more symmetrical API since one needs to Close after being done with the device.

Gophercon hacking!

I'm hoping on hacking on:

  • finishing the OLED 96x96 implementation
  • analog sensor now that the exp/io GPIO package should be stable
  • planning of a generic solution for the GrovePi
  • Maybe an oscilloscope if someone is interested in pairing with me on that

Anyone going to the conf and interested in some GoIoT hacking?
/cc @rakyll @zankich @deadprogram

Rename repo to devices?

"drivers" is a terminology preserved for the protocol drivers. To help with the ambiguity, should we rename the repo to "devices"?

/cc @mattetti

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.