Categories
Eclipse IoT

Learn from IoT experts with the Virtual IoT meetup group

About a year ago, we realized that although the IoT is on everyone’s lips, there is a huge lack of technical resources available for people interested in learning more and getting their hands dirty with the solutions available today.
Our Virtual IoT meetup group is an attempt, pretty successful so far, at bridging this gap.

The idea is simple: we are organizing regular hangouts where we invite IoT experts and thought leaders to share their experience in IoT, and you can join us to get a chance to learn more and directly ask to these experts any question you may have.
We try to answer some of the most commons questions like: “What protocols should I use?”, “How do wireless sensor networks really work?”, “Is there a programming language of choice for IoT?”, “How can I extract meaningful info from my IoT firehose?”, etc.

You should definitely check out (and subscribe to!) the YouTube playlist of our webinars to date.

Please also make sure to RSVP to our next meetup on July 23 with Günter Obiltschnig. We’re going to learn more on macchina.io, a toolkit for building embedded IoT applications that is written in C++ (for efficiency and embeddability) that also leverages the V8 JavaScript engine for making it even simpler to write applications.

http://www.meetup.com/Virtual-IoT/events/223651075

Last but not least, if you are interested in sharing with our crowd your experience on an IoT-related topic, please contact me and we would certainly be happy to have you!

Categories
Eclipse IoT

Remote management of an ARM mbed device using LwM2M, Wakaama & Leshan

One of the great strengths of LightweightM2M (LwM2M) is to be… ahem… lightweight! The fact that it relies on CoAP for the communication, and that all the standard resources are meant to be very concise really helps making very small implementations that can fit in constrained devices.

In the video below, you can see how Eclipse Wakaama (a C implementation of LwM2M) has been ported to an mbed NXP LPC1768 – a device with just 32KB of RAM! – and is controlled from Eclipse Leshan, a LwM2M server in Java.

What I really like in this video is that it shows how simple yet powerful LwM2M actually is, and how efficiently you can fit advanced features like firmware upgrade in very constrained devices.

View the video on YouTube

Categories
Eclipse IoT

Bridging IoTivity and Eclipse SmartHome

There are several ongoing initiatives that aim at standardizing protocols and interfaces in order to enable a truly interoperable Internet of Things.
On the protocol front, I would certainly argue that the technology is already there and over the last decade standards organizations like OASIS, IETF or the Bluetooth SIG have done a lot to provide clear specifications for, respectively, MQTT, CoAP, or Bluetooth Smart. Not only are these protocols mature, but they really are optimized for the constrained networks that make IoT. And of course, there is an always growing ecosystem of open-source implementations.

What is interesting to see though, is the work being done by the likes of the Allseen Alliance (with Alljoyn) and the Open Interconnect Consortium (with Iotivity) when it comes to:

  • Advertisement/Discovery: while the aforementioned protocols provide ways to do one-to-many communications, this isn’t quite enough if there is no agreed upon methodology for devices and applications to make themselves known to the world,
  • Interoperability: protocols like MQTT or CoAP provide you with what is more or less a simple bit pipe, that allow you to connect things to each other, while certainly not guaranteeing that they will understand each other. Implementing IoT communications is not only about making the data flow, but also, and more importantly, making sure the associated metadata (“what is this temperature’s unit?”, “oh, and by the way is this really a temperature?”) is understood by all the parties involved,
  • Provisioning: it is important to be able to provision a brand-new device on an existing IoT network, and to be able to associate all the required security credentials that will make it able to speak with its peers. Security at the transport layer is one thing, having access to a flexible model for configuring secured communication channels is another, that initiatives like LwM2M or IoTivity are trying to address.

While it is hard to tell what will become *the* standard for IoT between AllJoyn, OIC, now Google with Weave – and certainly many others – it is however interesting to start evaluating the pros and cons of all these solutions. Interesting fact: since most of these initiatives are embracing existing protocols like CoAP or MQTT, it’s actually pretty easy to start coupling them to the Eclipse IoT technology.

In the video below, you will see how you can interact with IoTivity-compatible devices from Eclipse Smarthome, thanks to a dedicated binding1 which you can find here.

The videos goes through the following steps:

  • Introduction to IoTivity
  • 1:28 – Setting up SmartHome with the IoTivity binding
  • 3:11 – Discover an IoTivity “thing”
  • 6:16 – Manually configure a Kinoma Create exposed as an IoTivity “thing”

1. Please note that this is absolutely not production-ready 🙂 The OIC standard isn’t publicly available so this implementation is only covering basic use cases featured in the IoTivity examples. Also, this binding uses a slightly patched version of Californium to allow for multicast CoAP communications.