Code Examples & Coding Styles
1. Create your devices
addDevice(new Device(1, DeviceType.DIGITAL)); addDevice(new Device(2, DeviceType.ANALOG)); addDevice(new Sensor(3, DeviceType.DIGITAL)); addDevice(new Sensor(4, DeviceType.ANALOG));
2.Configure Input and output connections
// setup connection with arduino/hardware addOutput(Connections.out.usb()); // Connect to first USB port available addOutput(Connections.out.bluetooth("001303141907")); // Configure a Rest interface for receiving commands over HTTP addInput(Connections.in.rest(8181)); connect(); // Connects all configured connections
3.Now you can play
while(true){ led1.on(); Thread.sleep(500); led1.off(); Thread.sleep(500); }
3.1 Access the URL in the browser
http://localhost:8181/device/1/value/1 – Device UID:1 ON
http://localhost:8181/device/1/value/0 – Device UID:1 OFF
3.2 With JavaScript / JQuery
$.get("http://localhost:8181/device/1/value/1"); $.get("http://localhost:8181/device/1/value/0"); // or var deviceID = 1; var value = 1; // can be a value of a input or method param $.get("http://localhost:8181/device/" + deviceID + "/value/" + value, {},function (data) { // user logic });
4. Device (Arduino/Similar) Side
#include <OpenDevice.h> DeviceConnection deviceConnection(Serial); void setup(){ OpenDevice::addDevice(RED_LED, Device::DIGITAL); // ID:1 OpenDevice::addDevice(GREEN_LED, Device::DIGITAL); // ID:2 OpenDevice::addDevice(BLUE_LED, Device::DIGITAL); // ID:3 OpenDevice::addSensor(PUSH1, Device::DIGITAL); // ID:4 OpenDevice::addSensor(PUSH2, Device::DIGITAL); // ID:5 OpenDevice::begin(deviceConnection); } void loop(){ OpenDevice::loop(); }
Some sections of code were omitted for simplification. Do not worry we have examples!
See tutorial: A. First Steps with OpenDevice if you're eager to start
Communications & Protocols
You can communicate with OpenDevice Middleware (Cloud and Local Services) using a variety of protocols:
HTTP (REST)
Sockets/Websocket
MQTT (In progress)
You can communicate with devices using a variety of protocols via:
USB
Ethernet
WiFi
Bluetooth
Overview
Devices: Is an abstraction of a physical device, which may be a lamp, socket, sensor, robot, or even a logical device. These devices are managed and controlled by a hardware like Arduino, Raspberry and others (see list) or can be built in an embedded own equipment, this is the proposal of the internet of things. Communication with other components of the platform is done using a binary protocol that is implemented in firmware written in "C / C ++" and can be ported to other platforms.
Binary Protocol: Used in communication between Device and Middleware/Clients. Can be:
Usb, Ethernet, Wifi, Bluetooth
Clients: Any device that can make HTTP requests: PC, Mobile, Tablet or any device with a browser. According to the "client" you will decide which API to be used. More details are explained in the session: Components > Clients APIs
Clients Protocol: Rest API, WebSocket API. (Using JSON)
Local Server (Middleware): Any computer running JVM: PC, Raspberry, Android(not tested)
To simplify the documentation and images the term DEVICE will represent the Arduino / Similar
Requirements
Before using OpenDevice you will need as a minimum a Java Development Kit (JDK) installed version 1.6 or above. Download the appropriate JDK for your operating system, run the installer, and then set up an environment variable calledJAVA_HOME pointing to the location of this installation.
Linux, Windows, MacOS
Java Development Kit (JDK) (installed version 1.6 or above)
Java IDE (any one of your choice - if you plan compile the java examples)
Android SDK (if you plan compile the android examples)
Choose the Toolchain/IDE for the Specific hardware platform, example:
Installation
The APIs are managed by maven. Most IDEs have with native support for maven, you no need to install it manually.
Create a new maven project using the IDE and add this configuration:
<dependencies> <dependency> <groupId>br.com.criativasoft.opendevice</groupId> <artifactId>opendevice-core</artifactId> <version>[0.1.2-SNAPSHOT,)</version> </dependency> </dependencies>
- artifactId: Put the name of the component you need
- version : Find in maven central last version
- See full pom.xml sample
<repositories> <repository> <id>oss.sonatype.org</id> <url>https://oss.sonatype.org/content/repositories/releases</url> </repository> <repository> <id>oss.sonatype.org-snapshot</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> </repository> </repositories>
dependencies { compile('br.com.criativasoft.opendevice:opendevice-core:${opendevice.version}') { transitive = false } }
- Find in maven central last version and change ${opendevice.version}
Maven Tutorial (optional)
If you are new to maven these tutorials can help you:
Getting started with maven: http://tutorials.jenkov.com/maven/maven-tutorial.html
Get Sources
The source code is hosted on Github, you need install git. Some IDEs comes with it installed.
Alternatively you can download directly, it is more practical but would not recommend it because you can not get the updates.
Clone OpenDevice repository
git clone https://github.com/OpenDevice/OpenDevice --depth 1 --depth 1
Find folders
OpenDevice/examples
OpenDevice/opendevice-connection/opendevice-connection-samples (low-level samples)
Tutorial
To better understand how each example you can refer to the: documentation/tutorials , stating with: First Steps with OpenDevice
0 Comments