Hi list,

Below is a copy of a message I just posted to the Clojure mailing list; I
post it here because Iotivity was just as central as Clojure to the project
it describes. The short version is: with Clojure and Iotivity you can
interactively program the nodes in an Iotivity-based IoT system. Pretty
cool, IMO.

Many thanks to the people on this list who have answered my questions over
the last couple of months. I never did get CRUDN ops working; didn't have
enough time. Now that the contest is over I can get back to that bug, and
work on Darwin patches, plus I have lots more questions about Iotivity so
you'll be hearing more from me.

-Gregg

== copy of https://groups.google.com/forum/#!topic/clojure/2zBM-I9I7QE

Hi list,

The competition phase of the Intel Ultimate Coder Challenge for IoT
<https://ultimatecoder.intel.com/> drew to a close last Friday. Final
reports are now online.

Clojure played a starring role in my project (Team 2), along with Iotivity
<https://www.iotivity.org/>.  Briefly, I ported Iotivity to OS X, split out
the Java support as a separate project, and got Java over Iotivity running
on Ubuntu, OS X, the Intel Edison, and a Dell 3290 IoT Gateway running Wind
River Linux.

The end result, which I expect will seem slightly amazing to everybody
except Clojure programmers, is that we can now use Clojure to interactively
and remotely control Iotivity-enabled IoT devices. Naturally the devices
must be able to run the Iotivity stack and a JVM, but that covers a lot of
ground. Eventually I expect Clojure's IoT reach will be extended by things
like Jerryscript <https://github.com/Samsung/jerryscript>, but for now at
least you can get yourself an Edison
<http://www.intel.com/content/www/us/en/do-it-yourself/edison.html> (a kit
with an Arduino-compatible board will set you back about $70), fire up an
nREPL on the thing (caveat: it takes a loooong time to startup), and start
building and testing circuits, interactively. It shouldn't be too difficult
to do the same on a Raspberry Pi, Beaglebone, or whatever.  And actually
you don't need an IoT device; you can just run a couple JVMs on your
development machine, one for an Iotivity server and one for an Iotivity
client, and write a bit of code to emulate sensors etc.

See the blog entries for Team Two
<https://ultimatecoder.intel.com/team-two/>. There are a couple of
screencasts there showing how to use Clojure interactively to control the
Edison pins using mraa <https://github.com/intel-iot-devkit/mraa>, and how
use TinyB <https://github.com/intel-iot-devkit/tinyb> to control the
Edison's Bluetooth LE stack to control a TI Sensortag
<http://www.ti.com/ww/en/wireless_connectivity/sensortag2015/?INTC=SensorTag&HQS=sensortag>
. 

Source code is at https://github.com/iotk. It's pretty rudimentary but I
expect to continue development and add better documentation. A slack team
has been set up; join at https://iotivity-slack.herokuapp.com/.  Blogging
will be at http://blog.mobileink.com/, announcements tweeted (maybe) by
@minkdev.

There is one fly in the ointment: Iotivity discovery operations (which use
multicast) work just fine across the network, but CRUDN ops (which use
unicast) fail silently.  I discovered this in the last week of the
competition. :(  So my next task is to find and squash that bug. If you
want to help get in touch or join the slack team.

Have fun,

Gregg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.iotivity.org/pipermail/iotivity-dev/attachments/20160718/8aade9b9/attachment.html>

Reply via email to