We are very happy to announce that Ardulink 2 is finally available. You can download Ardulink v2.0.0 Phoenix from our download page. Ardulink birthday is October 11 so now it is three years old. Happy birthday Ardulink. In these three years several international research projects used Ardulink. This is a great goal for us, now with Ardulink 2 we have a more flexible and complete solution for IoT and integration project for research or production purpose. Ardulink can easily link Arduino based boards (and other hardware) with IT systems in a very simple way. Ardulink is completely written in Java so you can use it in a lot of environments and systems and you integrate it with all frameworks and libraries available with this technology.
Ardulink 2 has a core library set that defines links, connections and protocols between SoC boards and IT systems. The project has also other ready libraries or applications to help developer or to be used directly from users. Here a list of available modules with a short description:
- ardulink-core-util is a utility jar with some useful classes.
- ardulink-core-beans is another utility jar used to manage beans.
- ardulink-core-base is the Ardulink heart.
- ardulink-core-serial-rxtx is the Link obtained with the rxtx library. With this Link you can use an USB cable to connect a system to an Arduino board.
- ardulink-core-serial-jssc is a Link alternative to rxtx. It uses jssc serial library that is simpler to use than rxtx so this Link is usually preferred to the previous one.
- ardulink-core-bluetooth with this Link you can connect your system to Arduino with Bluetooth technology
- ardulink-core-mqtt with this Link you can send/receive messages to/from a mqtt queue. So if an Arduino board is connected to the same queue it can receive and send messages from/to Ardulink
- ardulink-core-proxy with this Link you can send/receive messages to/from an Ardulink Network Proxy Server just over a TCP/IP connection
- ardulink-core-raspberry this Link wraps for Ardulink a Raspberry PI’s GPIO like an Arduino.
- ardulink-core-digispark this a special Link for Arduino boards compatible with Digispark/PicoDuino. An USB cable is required
- ardulink-core-virtual this is just a Link used for our internal tests. It implements a virtual Arduino (with no logic)
- ardulink-legacy this library wraps new Ardulink 2’s links as Ardulink 1’s links. In this library you can migrate your previous code in a very simple way. Ardulink Swing uses this library
- ardulink-swing it is a set of SWING components designed to manage Ardulink messages and events. With this library you can develop a desktop application for Arduino control in minutes
- ardulink-camel in this library there is an Apache Camel: component, endpoint, producer and consumer for Ardulink. With this library you can easily integrate Arduino/Ardulink with your system using Apache Camel
- ardulink-mail Ardulink Mail actually isn’t an application anymore. Now it uses Apache Camel technology and you can easily develop an application that receives an email and controls an Arduino board
- ardulink-console this is a ready desktop application that collects all Ardulink SWING components. A user can use it to control Arduino boards.
- ardulink-mqtt this is an application able to read and post events from/to an MQTT queue and forward they to/from an Arduino board
- ardulink-networkproxyserver this is an application able to be connected to several Arduino boards and expose these connection on TCP/IP.
You can download Ardulink 2 distribution from this site here or use directly our artifacts. Ardulink’s artifacts are deployed in The Central Repository. This is a very simple way to use Ardulink artifacts in your projects. Please search they here.
Ardulink 2 distribution has some examples. Most of them are very similar to Ardulink 1 examples. However now they use Ardulink 2 links and are very useful to understand how you can use Ardulink in your code. Another very useful source examples can be found in our JUnit tests code. Ardulink 2 is a test driven project so you can find a lot of examples in our test units.
A very interesting example in Ardulink 2 distribution is the UniqueID example. It shows how you can request an information from Arduino. In detail UniqueID example requests for an unique ID to Arduino. In other words with Ardulink and few lines of code now you can assign and retrieve an unique id to your Arduino boards.
Ardulink 2 is J2SE 6 compliant, just some modules require J2SE 7 because their dependences (check maven pom.xml for more detail). So Ardulink 2 is widely compatible with other Java technologies.
We will post other articles to explain better how you can use Ardulink 2.