obniz can receive and transfer data from HTTP request. Using this function you can also send data from one obniz to another.
API - obniz messaging
You can send a message to an obniz by calling the REST API.
GET https://obniz.com/obniz/{obniz_id}/message?data={what you want to send}
For example, send "move" text message to obniz 0000-0000 as below.
GET https://obniz.com/obniz/0000-0000/message?data=move
And obniz 0000-0000 will get the message as long as it is online. You can do something on that event. 404 is returned when obniz is not online.
// Javascript Example
// Example
obniz.onconnect = function() {
var motor = obniz.wired("ServoMotor", {gnd:0, vcc:1, signal:2});
motor.angle(0);
obniz.onmessage = function(message, from) {
if (message === "move") {
motor.angle(85);
}
};
}
You can do this with POST method to send to multiple destinations.
POST https://obniz.com/obniz/message
Parameters
- to: destination separated by ","
- data: message
obniz - obniz messaging
Below is an example of pressing one button to move the hands of 10 robots aroudn the world simultaneously. First, prepare an obniz with one button connected, and send a message to 10 obniz when that button is pressed.
// Javascript Full Example
var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function(){
var button = obniz.wired("Button", {signal:0, gnd:1});
button.onchange = function(){
var targets = [
"1234-1231",
"1234-1232",
"1234-1233",
"1234-1234",
"1234-1235",
"1234-1236",
"1234-1237",
"1234-1238",
"1234-1239",
"1234-1230"];
obniz.message(targets, "pressed");
};
}
obniz ids written in targets are the destinations. and "pressed" is message.
The 10 obniz will handle this message with onmessage function. With that function, servomotor attached to each obniz will be moved in response to the message.
// Javascript Full Example
var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function(){
var motor = obniz.wired("ServoMotor", {gnd:0, vcc:1, signal:2});
motor.angle(0);
obniz.onmessage = function(message, from) {
if (message === "pressed") {
motor.angle(85);
}
};
}