Overview

Jumpwire.io is a super simple M2M messaging and data logging platform for the Internet of Things.

Subscribe us on facebook twitter newsletter to get latest info.

How it works

Concept

jumpwire.io's framework (library) automatically connects to jumpwire.io sever using Websocket (and socket.io for easy web integration). If your device 1 Throw a massage, the massage is broadcasted to all devices in real time. When a massage Catched by devices, callback function will be called on your devices.

You can send a message from the web console, you can control your devices over the Internet. Also you can download message log in CSV. It is suitable for data logging.

Project

Project is a group of your devices. Each device can communicate with the other devices in the same Project, but it can't communicate with the devices in the other Project.

You can use a character A to E to label Project. Only 5 projects? Yes, at this time, but it will be enhanced in the future. Capital letters only.

Key

Key is a label of messages which is send between devices. A character A to Z can be used. So you can use 26 Keys in each Project. Capital letters only.

Value

Value is infomation itself in a message. Float value is supported.

Example: 0, 1, 12345, 0.12, 567.89 ...

Character and string is not supported at this time.

Getting started

What you meke

First, I'm gonna tell you how to make Internet connected LED in order to explain how to Catch a message sent from the server. You can ON and OFF your LED from the web console.

After that, I'm gonna tell you how to make Internet connected Button in order to explain how to Throw a message to the sever. You can send ON and OFF infomation to the other devices.

Internet connected LED

What you need
Hardware setup

Note: Sometimes ESP8266 eats huge current, so using external power supply is reccomended.

Software setup
  1. Download jumpwire.io client framework for Arduino+ESP8266.
    https://github.com/jumpwire-io/Arduino-ESP8266/archive/master.zip
  2. Unzip and Rename dir Arduino-ESP8266-master to Arduino-ESP8266.
    Open Arduino-ESP8266.ino.
    Note: Arduino IDE must already be installed.
  3. Login to the web console and get your token. Set your token on the code.
    #define jumpwire_io_token    "YoUrToKeN1234567ABCDEFGabcdefg"
  4. Set your WiFi SSID, password, baud rate (usually 115200).
    #define your_WiFi_SSID           "My_Wifi_SSID"
    #define your_WiFi_password       "My_Password"
    #define your_ESP8266_baud_rate   115200
  5. Edit setup function like this. We are going to use 'L' LED on your Arduino which is connected to PIN 13. So, set pin 13 to output mode. Don't remove jumpwireIoSetup();.
    void setup() {
      jumpwireIoSetup(); //always put this code in setup()
      //put your code here
      pinMode(13, OUTPUT);// initialize digital pin 13.
    }
  6. Edit Catch function like this.
    In Catch function, you can handle a message with key and value
    void Catch(char key, float value) {
      //this function is called when a message arrived.
      //put your code here
      if (key == 'A') {
        if(value == 0){           //if value of key A is 0
          digitalWrite(13, LOW);  //turn OFF LED
        }
        else if(value == 1){      //if value of key A is 1
          digitalWrite(13, HIGH); //turn ON LED
        }
      }
    }
  7. Upload the code to your Arduino and push reset button on the Arduino. It will be connected to the jumpwire.io server within 15 seconds.
    note: When uploading the code, temporarily disconnect PIN 0 (Arduino's RX pin) to avoid error.
  8. Open the web consoleagain.
    Throw value 1 to project:A, key:A. 'L' LED will turn on.
    Throw value 0 to project:A, key:A. 'L' LED will turn off.

Internet connected Button

What you need
Hardware setup

Just add tact switch on Internet connected LED.

Note: Sometimes ESP8266 eats huge current, so using external power supply is reccomended.

Software setup
  1. Open the code of Internet connected LED and add global variable status
    //put your global variables here
    boolean status = false; //memorize ON or OFF
  2. Edit setup function like this.
    void setup() {
      jumpwireIoSetup(); //always put this code in setup()
      //put your code here
      pinMode(13, OUTPUT); // initialize digital pin 13.
      pinMode(5, INPUT_PULLUP);// initialize digital pin 5 for the button.
    }
  3. Edit loop function in the code of Internet connected LED.
    void loop() {
      jumpwireIoLoop(); //always put this code in loop()
      //put your code here
      if (digitalRead(5) == 0) { //if the button is pressed
        if (status == true) {    //if current status is ON
          Throw('A',0);          //Throw OFF message
        } else {                 //if current status is OFF
          Throw('A',1);          //Throw ON message
        }
        status = 1 - status;     //toggle ON/OFF status memory
      }
    }
  4. Uplaod the code to your Arduino and push reset button on the Arduino. It will be connected to the jumpwire.io server within 15 seconds. Press the button on pin 5. LED status will toggle. Also you can see the value of key A is changing on console.

Troubleshooting tips

Google Fusion Tables connector

Google Fusion Tables is a great tool to store your data and visualize.
You can easily feed your jumpwire.io data to it. For more info, see 'Fusion Tables connector' in the console.

Email Throw API

You can control your devices through our email API. Send an email to [email protected] with a json string in the message body.

To:		[email protected]
From:		your email address
Subject:	as you like
{"token": "YourSecretToken", "project":"A", "key": "A", "value": 1 }
Usage example: Control your Arduino from IFTTT DO button

[Advanced] Make original console using HTML and JavaScript

Give us your feedback

Thanks for using jumpwire.io alpha version.

We appreciate your feedback from our contact page.

Also we welcome pull request at Github.

License

jumpwire.io client libraries

(c)2015 IPComSys Co., Ltd.

The MIT License (MIT)

This document

(c)2015 IPComSys Co., Ltd.

Creative Commons Attribution 4.0 International License