Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

In this tutorial we will show the steps to use OpenDevice LIBs and easily do communication between a Java application and Arduino

Info

This tutorial is focused on creating custom applications, if you just want to connect your device and start controlling it, you can use the server. If you do not know OpenDevice, I recommend reading the overview, to understand the features, capabilities, languages and operating models.

...

You can install through the Library Manager, click to the "Sketch" menu and then Include Library > Manage Libraries.

Find OpenDevice and click <Install>

For a more detailed guide: http://www.arduino.cc/en/guide/libraries

Install from source

To install the library, you can simply clone the repository: opendevice-lib-arduino 

git clone https://github.com/OpenDevice/opendevice-lib-arduino OpenDevice

Rename the folder to "OpenDevice" and And put in the "/libraries" folder of the Arduino IDE.

Tip

Remember that some examples in the this library need extra libraries that must be downloaded and enabled in the configuration file: dependencies.h

...

Code Block
languagexml
titlepom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.example</groupId>
	<artifactId>opendevice-tutorial</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<opendevice-version>0version>[0.1.2-SNAPSHOT<3-SNAPSHOT,1.0.0)</opendevice-version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>br.com.criativasoft.opendevice</groupId>
			<artifactId>opendevice-connection-stream</artifactId>
			<version>${opendevice-version}</version>
		</dependency>
		<dependency>
			<groupId>br.com.criativasoft.opendevice</groupId>
			<artifactId>opendevice-core</artifactId>
			<version>${opendevice-version}</version>
		</dependency>
	</dependencies>
	
    <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>
</project>

...

Code Block
languagejava
titleDemo.java source
linenumberstrue
import br.com.criativasoft.opendevice.core.LocalDeviceManager;
import br.com.criativasoft.opendevice.core.connectionmodel.ConnectionsDevice;
import brjava.com.criativasoft.opendevice.core.model.Deviceio.IOException;

public class Demo extends LocalDeviceManager {

    public static void main(String[] args) { launch(args); }

    public void start() throws IOException {

        Device led = new Device(1, Device.DIGITAL);

        connect(out.usb()); // Connect to first USB port available

        while(true){
            led.on();
            delay(500);
            led.off();
            delay(500);
        }
    }
}

...

Now you must see the LED blinking in the Arduino

...

...



Adding Hardware

Now that you have control of the gates of Arduino, you can control various devices such as lamps, fans, coffeemakers, robots, etc. ..

To control this type of device you will need a relay, which is a device capable of controlling high voltages.

ExamplesExample:

Image RemovedImage Removed

These modules are ready, but it's quite easy to build your own, if you have some knowledge in electronics.

Image Removed

Image Addedimg ref

Info

Some relay modules are active-low, ie they are triggered with a negative pulse, in which case you can configure it like this:

ODev.addDevice("light", 9, Device::DIGITAL)->invertedState();

Reference: http://openenergymonitor.org/emon/buildingblocks/mains-ac-relay-module
Tutorial: http://www.instructables.com/id/Connecting-a-12V-Relay-to-Arduino/


Info

In this example we created our own application to connect and manipulate devices directly, this model is very similar to Android development. The OpenDevice project provides a standard server (opendevice-middleware) that contains a dashboard for management, visualization, and storage that you can use and customize to create your project.

The examples and code used in this tutorial and others can be found here:
https://github.com/OpenDevice/opendevice-examples/tree/master/opendevice-tutorial


See next step
Adding REST Support

...

...