Documentation


What is OpenDevice ?

"OpenDevice is a set of tools and APIs to build solutions for the Internet of Things"

It is an open source platform to facilitate communication between software and hardware locally or in cloud through rest, mqtt and websocket.
If your project does not need to communicate with an external software the OpenDevice will not serve for you!.

The OpenDevice APIs enables you to prototype interactive connected products quickly and easily.
It is designed to be modular, flexible, configurable and extensible. 

Our libraries make integrating with OpenDevice API more easy, letting you write code for your devices, applications, and services with easy integration.
All libraries are Open Source and hosted on Github, so that you can use, contribute, and request features on them freely.

The "OpenDevice" is a open-source platform  written in java (but not limited to it), which to develop cost effective solutions for the "Internet of Things" in an extremely easy way.


Philosophy

The philosophy of OpenDevice is making abstraction of communication between software and hardware with the least possible effort

We are working to have the minimal code in device (hardware), we want to reach zero lines of code. But in a way that can also be flexible.

This allows you to focus on your project and innovation, leave obscure details of communication protocols and specifications with OpenDevice, you will make a major step towards the success of your project.

Overview

  • Communication Overview
  • Architecture Overview

Communication Overview



Communication is real-time and event-based.

You not need consult the information, she comes to you when some data is available. This model is achieved thanks to new technologies like WebSockets. This makes it much easier when programming ..

Architecture Overview



Components

Middleware

The middleware is the central part of the platform and is composed with a set of servers that make the abstraction of communication protocols used between the components of hardware and software. It’s possible to control an Arduino or similar using any high-level programming language through the REST API for example.
The middleware can run both locally and in the cloud and is compatible with any operating system that can run java (windows, linux, mac, and possibly a tabllet running android)

Client APIs

APIs used to connect with the Middleware (or directly with the hardware) using protocols like Rest and WebSocket, some examples are: JavaScript APIJava APIAndroid API.
They make your life very easy by abstracting low-level details. You can communicate directly with the device without using the middleware using the binary protocol and with the help of the library opendevice-connection-stream (for USB, Bluetooth, Ethernet, Wifi)
See the tutorials and samles for how to use these libraries to control devices.

Firmware / Hardware

This component/library is used in the arduino (and similars) and has various facilities for working with sensors and actuators in some cases avoiding manual programming.
Also implements the binary communication protocol with Middleware or another device.

Technology

 

Get Started with OpenDevice

Now, let’s setup and use the OpenDevice!

Can’t find the information you need?

 If you have any issue or you want to follow the development of this software you can reach us at our discussion list.

Tutorials

Step-by-step tutorials are structured to help you with everything from hardware and apis.

Most of the examples and tutorials are in JAVA, but do not worry, you can program only with HTML / JavaScript (or other languages) if you wish, using the middleware and the cloud api.

Supported Devices

Here is a list where the firmware / C ++ library was tested.
Please help us to test on other platforms!

https://github.com/OpenDevice/OpenDevice/wiki/Supported-Devices

Integrations and Plugins

Sources

The OpenDevice is available on GitHub and includes the complete stack to build solutions for the "Internet of Things"


License

Copyright (c) 2013-2014 CriativaSoft.

Free use of this software is granted under the terms of the Eclipse Public License v1.0. See the LICENSE file for details.

Contributing

In the spirit of free software, everyone is encouraged to help improve this project.

Here are some ways you can contribute: using beta versions, reporting bugs, writing documentation, writing code…

Are you using the library? Let us know and add your project to Wiki: Projects Using OpenDevice

Submitting an Issue

We use the GitHub issue tracker associated with this project to track bugs and features.

Before submitting a bug report or feature request, check to make sure it hasn’t already been submitted.

Submitting a Pull Request

When performing any fix or implement a new feature feel free to make a pull request, so you need to create a fork of the repository.




Featured Pages

Recently Updated Pages