Make Everything Online Our mission is to give everyone
the opportunity to develop IoT.

If just a small light bulb is connected to the Internet, it can tell you tomorrow's weather or whether your loved one is healthy. The widespread adoption of IoT will benefit many people. However, IoT development requires classic firmware development, expensive components, and software development that spans multiple technology domains. "obniz" is a technology that removes the complexity of IoT development and easily connects even the smallest light bulb with abundant Internet resources.

Objectify the real world

obniz is the technology for controlling IO, ON/OFF and UART/SPI/etc, from the internet through the APIs. We has realized the "APIization of hardware". No matter how far apart we are, from any kind of program. Make it operable as an "Object".

obniz has realized the APIization of hardware

In order to make this system available to everyone in a better way, obniz designs and develops not only software such as SDKs, but also cloud systems and dedicated hardware all by itself, and provides them to the whole world. obniz provides the backbone functions necessary for IoT development and operation so that users can focus only on the necessary development.

Original Devices

A obniz original devices that connects existing hardware and equipment to the cloud. We don’t limit electrical components to be controlled. obniz let you control not only simple ON/OFF but also UART/SPI/I2C and other peripherals available.

List of obniz devices

obnizOS

obnizOS is software that runs on the device.You can use all the functions of obniz such as state monitoring and APIs.

Learn more

obniz Cloud

obniz Cloud is a cloud service designed for obniz. WebsocketAPI let you control devices through obniz Cloud by using API. All things obniz device can do can be controlled from obniz Hardware API from IO on/off to UART/SPI/BLE. In addition, many functions required for IoT from Hobby to Business, such as device management, OTA, and TLS communication, are provided as standard.

Learn more

WebApp

You can use the programs that operate the device as "App".

Learn more

Removing Complex development of the IoT

We provide a simple development environment.
Easy for anyone to start, easy for anyone to handle. We develop and provide inexpensive, high-performance products.

Buy " 1 " unit

Buy one unit

obniz devices can be purchased from a single unit. We provide easy-to-use tools for individual developers, companies, and educational institutions to get started.

All in " 1 " 

All in one

We pack circuit design, firmware design, network design, and cloud infrastructure.With them, we can support your IoT development.

only " 1 " program

only one program

There is only one program in the cloud. It simplifies the complex development process and provides an environment where anyone can develop.

Build an IoT system
with just one program

Your IoT system is built with a single program in the cloud, and you can link and control any number of devices on the network from anywhere. There is no need to develop and manage firmware for each piece of hardware. Differences depending on the hardware, such as the type of sensor connected, command and version, can be solved on the software on the cloud side.

Build an IoT system with just one program

Only a software update in the cloud will change all that.

Adding a device or changing its specifications is just a matter of modifying the program on the server. You can be handled remotely and applied immediately. No more need to go to the site for updates or remotely write the latest program.

Explore Documents

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); // => Temperature
    console.log(data.relative_humidity); // => 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); // => Temperature
    console.log(data.humidity); // => Humidity
  }
};
await obniz.ble.scan.startWait();

IoT with Web Languages

SDK available for multiple language and electrical components. Javascript/Nodejs/Python and others. With obniz, connected components or hardware can be controlled from any programming language.

Real-time and Interactive

Not only can the collected information be uploaded, but it can also be manipulated and controlled at any time from the cloud. Graphical visualization, remote control, automatic control by AI, and linkage with web services can be realized with just a few lines of programming.

Remote control

Control your device or machine from a Browser. By using server, Automation could be done. If a sensor value exceeds a threshold value, the motor is turned, or other errors, faults or abnormalities are detected. Real-time operation is possible at the time.

Automation / Remote control

<script src="https://unpkg.com/obniz@3.x/obniz.js"></script>

<button id="on">ON</button>
<button id="off">OFF</button>

<script>
  const obniz = new Obniz("OBNIZ_ID_HERE", {access_token: "YOUR_TOKEN"});

  // Output from IO0 regarding button event
  $("#on").click(() => {
    obniz.io0.output(true);
  })
  $("#off").click(() => {
    obniz.io0.output(false);
  })
</script>

Visualization of acquired values and data<

You can visualize the value and data obtained from the sensor in graphs, charts and maps. Live or Historical view can be easily created.

Visualization of acquired values and data

<script src="https://unpkg.com/obniz@3.x/obniz.js"></script>
<script src="https://cdn.jsdelivr.net/npm/apexcharts"></script>

<script>
  const obnizdata = [], options = { chart: { type: 'line' }, series: [{ data }] }
  const obnizchart = new ApexCharts(document.querySelector("#chart"), options);
  chart.render();

  const obniz = new Obniz("OBNIZ_ID_HERE", {access_token: "YOUR_TOKEN"});
  obniz.loop = async () => {

    // get IO0 voltage
    const voltage = await obniz.ad0.getWait()

    // update chart
    data.push(voltage)
    chart.updateSeries([{ data }])
  };
</script>

Image Recognition / AI

By combining it with person detection, object recognition, and sex determination using deep learning such as Tensorflow, advanced alarm systems can be implemented in a short program.

Image Recognition / AI

const Obniz = require("obniz");
const cocoSsd = require('@tensorflow-models/coco-ssd');

const obniz = new Obniz("OBNIZ_ID_HERE", {access_token: "YOUR_TOKEN"});
obniz.onconnect = async () => {
  // Load the model.
  const model = await cocoSsd.load();

  // Take a photo
  const cam = obniz.wired("ArduCAMMini", { cs:0, mosi:1, miso:2, sclk:3, sda:6, scl:7 });
  await cam.startupWait();
  const img = await cam.takeWait('1024x768');

  // Classify the image.
  const predictions = await model.detect(img);
  if (predictions[0].class === 'person') {
    obniz.display.print("Found Person")
  }
}

Data storage

Values and data from sensors can be saved to an internal server or an external database. You can save it to MySQL, for example, or to a Google spreadsheet. You can also perform real-time analytics with AWSKinesis.

Data storage

const Obniz = require("obniz");
const Logtta_TH = Obniz.getPartsClass('Logtta_TH');
const MYSQL  = require('mysql');
const mysql = MYSQL.createConnection();

const obniz = new Obniz("OBNIZ_ID_HERE", {access_token: "YOUR_TOKEN"});
obniz.onconnect = async () => {
  await obniz.ble.initWait();

  obniz.ble.scan.onfind = async (peripheral) => {
    // Connect Logtta BLE Temperature sensor
    if (Logtta_TH.isDevice(peripheral)) {
      const device = new Logtta_TH(peripheral);
      await device.connectWait();
      const temperature = await device.getTemperatureWait();

      // save to Database
      mysql.query('INSERT INTO temps SET ?', {temp: temperature}, function (error, results, fields) {});
    }
  };
  await obniz.ble.scan.startWait();
}

Alert / Notification

We'll send SMS notifications when the sensor value exceeds the threshold, as well as daily email notifications at regular intervals. Send alerts and notifications to email and SMS, such as.

Alert / Notification

const Obniz = require("obniz");
const { WebClient } = require('@slack/client');
const web = new WebClient("YOUR_SLACK_TOKEN");

const obniz = new Obniz("OBNIZ_ID_HERE", {access_token: "YOUR_TOKEN"});
await obniz.connectWait();
const sens = obniz.wired("HC-SR505", {vcc:0, signal:1, gnd:2});

// Send Slack message when found
sens.onchange = async (val) => {
 await web.chat.postMessage({
   channel: 'general',
   text: `Human Detected at ${new Date()}`
 });
}

API integration

You can build powerful IoT systems in the shortest time possible by integrating with AWS, Microsoft Azure, Google Cloud and any web service with REST APIs.

API integration

const Obniz = require("obniz");
const Logtta_TH = Obniz.getPartsClass('Logtta_TH');
const kinesis = new require("aws-sdk").Kinesis();

const obniz = new Obniz("OBNIZ_ID_HERE", {access_token: "YOUR_TOKEN"});
obniz.onconnect = async () => {
  await obniz.ble.initWait();

  obniz.ble.scan.onfind = async (peripheral) => {
    // Connect Logtta BLE Temperature sensor
    if (Logtta_TH.isDevice(peripheral)) {
      const device = new Logtta_TH(peripheral);
      await device.connectWait();
      const temperature = await device.getTemperatureWait();

      // Send to AWS Kinesis
      const record = {
        Data: JSON.stringify({ temperature }),
        PartitionKey: "1",
        StreamName: 'your-stream',
      };
      await kinesis.putRecord(record).promise();
    }
  };
  await obniz.ble.scan.startWait();
}

Centralized management

obniz Cloud offers standard TLS communication, device management, and alive monitoring function.

You don’t need to struggle with network setting for development environment and data security.

Control devices from the cloud

Being used in various places and industries.

In addition to individual development, obniz is used in medical and nursing care facilities, construction sites, and lodging facilities, as well as in educational materials for training the next generation in programming, IoT, and DX.

Read more