With the "Internet of Things," connectivity is key but it needs to be more than just a web server. Technologies like sockets, TCP/IP, HTTP, and SOAP make writing M2M (machine-to-machine) communication easier but they are low level tools. It takes a good bit of programming to make these work but if you want to get a system up and running quickly then environments like Eurotech's Everyware Cloud 2.0 are the way to go.
I got my hands on Eurotech's EDC Development Kit (EDCK4000) a while back but I had a stack of projects to get through first. I took a look at the same Atom-based Helios platform with the prior incarnation of the software so I thought it was going to take a little longer to check out (see Hands-On Eval Of Eurotech's Helios Edge Controller). I should have pulled it out of the box sooner because I was up in running with this cloud based system in less than an afternoon.
The EDCK4000 includes a Eurotech Helios (Fig. 1) end node running Wind River Linux 4.2 and Everyware Software Foundation (ESF). ESF builds on the Java-based OSGi Alliance's Service Gateway Architecture. This makes portability easier and the Helios is just one Eurotech platform that supports ESF. Kontron.
The kit also includes a DirectLogic 05 Micro Brick PLC (Fig. 2) that is controlled by the Helios. It also has a Eurotech board with a few buttons, LEDs and switches. The idea is to demo the Everyware Cloud M2M (machine-to-machine) link to a device simulated by the Eurotech board.
Wiring up the system took the most time. A monitor is handy to find out what IP address the system picks up from the Ethernet connection. It also has a WiFi link and that can be configured from the web interface (Fig. 3). It is possible to log into Linux and do all this but the web interface is faster and easier. The system can configure the cellular modem, Ethernet, and WiFi including static routing and firewall support.
The web interface also controls access to the Everyware Cloud that is an Internet service that Eurotech provides. The Helios connects to the server via MQTT, a low overhead communications protocol. The cloud client configuration (Fig. 4) controls how the system connections. The broker defaults to Eurotech's sandbox development environment. The kit comes with a one year account on the system. The idea is to use this platform to develop an application that will run on multiple ends like the Helios that will upload information and be managed by the Everyware Cloud. The one limitation is that data is only stored for a week. Normally there would not be a limit other than maintaining a suitable subscription. A week's worth of data should be more than sufficient for development purposes.
The next step was to access the Everyware Cloud (Fig. 5) on the Internet. This is actually the site with the one year subscription. It is used to manage any number of Everyware Cloud clients like the one on my workbench.
The first step was to play with the buttons and switches on the Eurotech board to generate some data for the Everyware cloud server. This data is automatically uploaed by the demo Java application running on the Helios. This is then available on the Everyware Cloud client (Fig. 6) as a timestamped data stream and, of course, there are graphical presentations (Fig. 7). The Metrics are the named variables on the selected client. Most applications will upload data in this fashion and it is possible to change settings to control the device. There is also a rule-based system for monitoring the incoming data. This can be useful for providing notifications without the need for changing any code. The afternoon was spent playing with the rules and exploring the cloud client interface.
This is just the first article I'll be doing on the Everyware Cloud 2.0 and this kit. The programming side is where this environment really shines because most applications need more than just data acquisition and system control. Java provides that while ESF handles the connectivity details.
The other components for the kit were actually a bunch of USB flash drives. The main one is the Wind River development tools plus a stripped down version of Fedora Linux. It is designed to plug into a PC or a virtual machine so it boots Fedora Linux. The development tools are already configured for the Helios platform. There are sample applications such as the demo app and tutorial as well. More on this in a future article.
Another USB flash drive is for restoring the Helios software. It is actually unlikely that this will be needed since Java OSGi bundles are how most programming will be done for the Everyware Cloud support but drivers and other applications written languages in C or C++ can be included with the system as well. These are useful for dealing with custom hardware.
I actually mention this flash drive because of the earlier Helios review did just that. The older device was not compatible with the latest Internet support and getting that box to run the latest software was as simple as booting from the flash drive and running a script.
The Wind River development tools are based on Eclipse, the open source IDE, so I was able to quickly run through the system and check out the customizations. This is actually why you want to use the Wind River tools because the integration and preconfigured support is well worth the cost. More on this and ESF in the next article.
The bottom line, you can be up and developing with ESF in an afternoon.