Technology of obniz

BLE Gateway for programming in the Cloud

obniz is the technology for controlling IO, ON/OFF and UART/SPI/etc, from the internet through the APIs. No matter what the task is, it’s all done with a single program independent of connected devices and equipment. Adding or modifying devices, or manipulating services or characteristics can be done immediately without rewriting firmware.

ドキュメントへ

Cloud-programmable BLE Gateway
Efficient Development, operation,and management with obniz

"Do not rewrite firmware"
Speed up your development and operation with a new concept

obniz’s firmware-less technology integrates firmware and program on the server. You don’t need to develop BLE gateway firmware. Any operation can be completed by a single program on the server, without depending on the connected device or devices.You can add or change devices, manipulate services and characteristics, etc. immediately without rewriting the firmware.

クラウドの潤沢なリソースを利用

No constraint on hardware and development environment

You can utilize abundant resources without worrying about memory capacity because you can develop on the server. You can also develop on your PC without any host OS for development.

ソフトウェア漏洩の可能性はゼロ

No data leakage

Only dedicated OS is inserted into the gateway. Even in the case that device is stolen, confidential information stored in programs and devices for manipulating BLE peripherals doesn’t leak out.

Easy to add and modify

You can simply modify programs on the server to add and modify BLE devices. Remote handling and instant application.No more need to go to the site for updates or remotely write the latest program.

  const LOGTTA_CO2 = Obniz.getPartsClass('Logtta_CO2');
  await obniz.ble.initWait();
  obniz.ble.scan.onfind = (peripheral) => {
	  const targets = ['a8f7c7d9'];
	  if (!targets.includes(peripheral.address))
	  return;
  
	  if (LOGTTA_CO2.isAdvDevice(peripheral) ) {
		  const data = LOGTTA_CO2.getData(peripheral);
		  console.log(data.co2); // => CO2 ppm level.
	  }
  };
  await obniz.ble.scan.startWait();
  const LOGTTA_CO2 = Obniz.getPartsClass('Logtta_CO2');
  const _2JCIE = Obniz.getPartsClass('2JCIE');
  await obniz.ble.initWait();
  obniz.ble.scan.onfind = (peripheral) => {
	  const targets = ['a8f7c7d9', '47d8f7c3'];
	  if (!targets.includes(peripheral.address))
		  return;
  
	  if (LOGTTA_CO2.isAdvDevice(peripheral)) {
		  const data = LOGTTA_CO2.getData(peripheral);
		  console.log(data.co2); // => CO2 ppm level.
  
	  } else if (_2JCIE.isDevice(peripheral)) {
		  const data = Device.getData(peripheral);
		  console.log(data.temperature); // => 温度
		  console.log(data.relative_humidity); // => 湿度
	  }
  };
  await obniz.ble.scan.startWait();
  const LOGTTA_CO2 = Obniz.getPartsClass('Logtta_CO2');
  const Logtta_TH = Obniz.getPartsClass('Logtta_TH');
  await obniz.ble.initWait();
  obniz.ble.scan.onfind = (peripheral) => {
	  const targets = ['a8f7c7d9', '47d8f7c3'];
	  if (!targets.includes(peripheral.address))
		  return;
  
	  if (LOGTTA_CO2.isAdvDevice(peripheral)) {
		  const data = LOGTTA_CO2.getData(peripheral);
		  console.log(data.co2); // => CO2 ppm level.
	  } else if (Logtta_TH.isAdvDevice(peripheral)) {
		  let data = Logtta_TH.getData(peripheral);
		  console.log(data.temperature); // => 温度
		  console.log(data.humidity); // => 湿度
	  }
  };
  await obniz.ble.scan.startWait();

BLE Scan and connect at the same time

It can both read and transmit values such as temperature information contained in advertisements as well as beacon presence and absence, and scan and connect with BLE devices.

Beacon filter is freely designed

You can specify the UUID, Major, Minor, and RSSI strength, as well as "once sent, don't send for two minutes" and other programmatic settings.

Scan

It searches for beacons and BLE devices. It is possible to specify UUIDs, design free filters with javascript programs, format data and send APIs (HTTPS, MQTT, FTP, etc.). It is also possible to specify UUIDs and use javascript to design filters, format data, and send APIs (HTTPS, MQTT, FTP, etc.).

To Reference

  var Obniz = require('obniz');
  
  var obniz = new Obniz("OBNIZ_ID_HERE");
  obniz.onconnect = async function () {
	await obniz.ble.initWait();
  
	obniz.ble.scan.onfind = async function(peripheral){
	  console.log(peripheral.localName, peripheral.address);
	  // save or send to anywhere
	};
  
	await obniz.ble.scan.startWait({
	  uuids: ["01ab"] // filter by UUID
	},{
	  duplicate: true; // allow duplicated scan
	});
  }

Connection, Pairing

It can connect to BLE devices such as healthcare devices that need to be connected, and can acquire values and remotely control them in real time via the cloud. Up to seven devices can be connected at the same time, and while connected, the system can scan and search for devices sequentially. It can be easily programmed with library compatible sensors, so you can start your service today.

To Reference

var Obniz = require('obniz');
  
  const LOGTTA_CO2 = Obniz.getPartsClass('Logtta_CO2');
  await obniz.ble.initWait();
  obniz.ble.scan.onfind = (peripheral) => {
	const targets = ['a8f7c7d9'];
	if (!targets.includes(peripheral.address))
	  return;
  
	if (LOGTTA_CO2.isAdvDevice(peripheral) ) {
	  const data = LOGTTA_CO2.getData(peripheral);
	  console.log(data.co2); // => CO2 ppm level.
	}
  };
  await obniz.ble.scan.startWait();

Sending Beacon (Advertisement)

It can send out arbitrary beacons using a binary sequence, and is ideal for acquiring information on outgoing beacons via API and dynamically changing them. It is ideal for obtaining beacon information via API and changing it dynamically.

To Reference

var Obniz = require("obniz");
  
  var obniz = new Obniz("OBNIZ_ID_HERE");
  obniz.onconnect = async function () {
	await obniz.ble.initWait();
	obniz.ble.advertisement.setAdvData({
	  flags: ["general_discoverable_mode","br_edr_not_supported"],
	  manufacturerData:{
		companyCode : 0x004C,
		data : [0x02,0x15, 0xC2, 0x8f, 0x0a, 0xd5, 0xa7, 0xfd, 0x48, 0xbe, 0x9f, 0xd0, 0xea, 0xe9, 0xff, 0xd3, 0xa8, 0xbb,0x10,0x00,0x00,0x10,0xFF],
	  },
	});
	obniz.ble.advertisement.setScanRespData({
	  localName : "obniz BLE",
	});
  
	obniz.ble.advertisement.start();
  }

Flow

Please feel free to contact us regarding products, services, and deployment/operation.

1

Gateway purchase

You can purchase a Gateway from a single unit. Please refer to the developer Documentation to check the operation and performance.

Buy now

2

Trial

Our engineers can provide you with technical support or sample code if you wish.

About Technical Support

3

Operation

Please feel free to contact us for scale-up, commissioning of intermediate application creation, and custom product fabrication and development.

About Technical Support

Ongoing Support

We offer device management, OS system maintenance and monitoring services.