Experimental Platform

the easiest way to
develop for smart devices

For us, working on IoT projects always meant spending hours trying to fiddle around with environments, obscure device APIs and figuring out how to access them remotely with languages and frameworks we didn't know.

So we decided to build an open development platform that makes the whole experience fun. It uses standard technologies like CoreOS and Docker and runs on your local machine. Here is the Experimental Platform:

Let's start

If you aren't already running the Experimental Platform, you will need to set it up. Luckily this is very easy:

Setup Experimental Platform

Here is our example project: Connect a CO₂ Sensor to a Smartlight and create an Office Air Quality System:

co2demo
  1. Connect the hardware and find them in the Device Manager

    Once you have activated the sensor and smartlight, they will show up in the Device Manager.
    Don't worry if you don't have the hardware ready yet, we can skip this step for now and use virtual devices in this example.

  2. Clone the example from github.com.

    git clone https://github.com/experimental-platform/example-co2-to-hue.git && cd example-co2-to-hue
  3. Deploy it

    Now deploy the app to the platform (e.g. your VM or a local machine):

    git remote add platform ssh://dokku@your-box.local:8022/example-co2-to-hue git push platform master

    You can find your freshly deployed app under My Apps.

  4. That's it! Your app is now available within your local network and on the internet.

    Locally via

    http://your-name.local/example-co2-to-hue/

    and remotely via

    https://your-name.protonet.info/example-co2-to-hue/

    And most important of all: it's not just super simple but the logic and your data stays fully under your control!

Turn it into the real thing

order hardware

If you'd like to try the example on real hardware order the modules via the links below.

Order the CO₂ Sensor co2meter.com Order the Smartlight amazon.com Order the Mini PC newegg.com

For more information on how to setup the CO₂ Sensor check out this little tutorial.

Spread the word

We believe in a decentralized alternative to our shiny new smart device world. So, if you like where this is heading follow us and star us on GitHub, you'll help us spread the word to make this even more useful!

If you've built a cool integration make sure you drop us a line at experimental-platform [át] protonet.info so we can include it in our example library (and yes - pull requests work too). For more infos, feel free to visit us in our Mountain View (CA) or Hamburg (Germany) office, invite us to a user group or just hit the links below:

Features

  1. Device Discovery

    device discovery

    Working on IoT projects shouldn't mean spending hours trying to find your devices, getting them to connect and figure out their APIs. EP comes with a simple device discovery mechanism that is both simple to use and simple to expand.

  2. REST API

    rest api

    A standard for the internet-of-things (IoT)? It's already here: REST. So no need to reinvent the weel. Experimental Platform aims to provide an easy way to access all of a smart devices capability. Wether it's reading sensors or actuating actuators.

  3. Firmware Directory

    firmware directory

    That CO2 sensor you always wanted to build and hook up to your wireless network? Somebody already built that! By building up a directory of firmwares and an easy way to flash your devices we'll be able to build upon each others work. That's what it's all about isn't it?

  4. Services

    services

    That cool app that you just pushed to the Experimental Platform now needs a simple messaging layer? What if you could simply add a service to provide that? Just like on Heroku, EP provides a simple way to include services and use them in your application.

Use your favorite technology

Use any language you like. Anything that works with heroku buildpacks can be used with the Experimental Platform. The interface to the hardware is http, so connecting to it should work in any common language.

This project wouldn't be possible without the extensive use of other great open source technologies: Docker, Dokku, Node.js, Go and so many more.

Here is a technical overview:

overview over the open source technologies used

And please remember that this is under heavy development!

More components to play with

A list of open source reference apps built with Experimental Platform. More can be found here.

Made with ♥ by

Fork Experimental Platform on GitHub