Shark.IO - Library Websocket Client untuk IoT

Ridwan Fajar 15 Mei 2015

Shark.IO - Library Websocket Client untuk IoT

Shark.io merupakan sebuah nama untuk library yang diperuntukkan untuk websocket dalam membangun sebuah perangkat internet of things. Library ini dikembangkan oleh Anak10thn yang merupakan nama samaran dari Ibnu Yahya. Ibnu Yahya sendiri merupakan salah satu pengembang di IGOS Nusantara. Beliau sendiri merupakan pengembang sebuah software development kit yang bernama IGNSDK. Dengan SDK tersebut Anda dapat membangun aplikasi berbasis HTML5 + CSS3 + Javascript untuk lingkungan native.

Shark.io sendiri dibangun sehubungan dengan adanya versi ARM untuk IGOS Nusantara. Dan Shark.io ini merupakan varian dari IGNSDK untuk IoT. Ibnu Yahya sendiri mengumumkan dimulainya pengembangan Shark.io pada tanggal 6 Mei 2015 di grup Facebook - IGOS Nusantara. Shark.io ini dibangun diatas Node.js. Anda dapat membuat sebuah websocket server yang ditanamkan di IoT yang akan Anda kembangkan. Kemudian mengakses websocket server tersebut menggunakan library client yang telah disediakan.

Saat ini perangkat keras yang didukung baru yang berbasis ARM seperti Raspberry Pi. Karena Shark.io berbasis Node.js, Anda dapat memasangnya di sistem operasi untuk ARM yang mendukung Node.js seperti IGOS Nusantara ARM, Raspbian, dan lainnya. Selain gpio, jaringan, dan http, Shark.io pun sedang diupayakan untuk mendukung Geolocation. Dengan begitu Anda dapat memantau lokasi perangkat IoT Anda.

Berikut ini adalah contoh source code yang ditanamkan di dalam perangkat IoT:

led_blink.js


'use strict';

var shark = require('shark.io'); var sleep = require('sleep');

shark.init('127.0.0.1:6969'); var loop = shark.loop; var gpio; shark.setup.on('open',function(event){ gpio = event.gpio; gpio.set(18); gpio.mode("out"); });

function act(event){ console.log("on"); gpio.write(18,1); sleep.sleep(3); console.log("off"); gpio.write(18,0); }

loop(act,500);

gpio_read.js


'use strict';

var shark = require('shark.io'); var sleep = require('sleep');

shark.init('127.0.0.1:6969'); var loop = shark.loop; var gpio; shark.setup.on('open',function(event){ gpio = event.gpio; gpio.set(18); gpio.mode("in"); gpio.read(18,function(out){ out.stream.connect(function(data){ if(data == 1){ console.log("ON") } }); }); });

Sedangkan contoh source code Javascript dibawah ini adalah source code yang digunakan untuk mengakses Shark.io dari sisi client. Anda dapat menggunakan IGNSDK Standard untuk membuat aplikasi client dari IoT yang Anda kembangkan bersama Shark.io:


function output(message)
{
    var output = document.getElementById("output");
    output.innerHTML = output.innerHTML + message + "\n";
}
window.onload = function() {
    var socket;

    socket = new WebSocket("ws://127.0.0.1:6969");

    socket.onclose = function()
    {
        console.error("web channel closed");
    };
    socket.onerror = function(error)
    {
        console.error("web channel error: " + error);
    };
    socket.onopen = function()
    {
        output("WebSocket connected, setting up IGNSDK API.");

        new sharkIO(socket, function(channel) {
            window.fs = channel.objects.fs;
            window.sys = channel.objects.sys;
            window.net = channel.objects.net;
            window.serial = channel.objects.serial;
            serial.info(function(event) {
                output("Device count: "+event.count);
                event.device.forEach(function(i){
                    output("Location : "+i.location); 
                    output("Port Name : "+i.port); 
                    output("---------------------------"); 
                });
            });
            //output("Connected to WebChannel, ready to send/receive messages!"); 
        });
    }
}

Saat ini versi Shark.io sudah ada di versi 0.1.8. Selama bulan mei 2015 ini sudah tercata 341 jumlah unduhan. Anda dapat memasangnya melalui npm dengan perintah: npm install shark.io

(rfs/npmjs)