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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to