Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 18

OVERVIEW

Thinger.io is an Open-Source Platform for the Internet of Things. This documentation helps
learning about how to use each component to create awesome projects within minutes.

What is Thinger.io?
Thinger.io is a cloud IoT Platform that provides every needed tool to prototype, scale
and manage connected products in a very simple way. Our goal is to democratize
the use of IoT making it accessible to the whole world, and streamlining the
development of big IoT projects.

 Free IoT platform: Thinger.io provides a lifetime freemium account with only
few limitations to start learning and prototyping when your product becomes
ready to scale, you can deploy a Premium Server with full capacities within
minutes.
 Simple but Powerful: Just a couple code lines to connect a device and start
retrieving data or controlling its functionalities with our web-based Console,
able to connect and manage thousands of devices in a simple way.
 Hardware agnostic: Any device from any manufacturer can be easily
integrated with Thinger.io's infrastructure.
 Extremely scalable & efficient infrastructure: thanks to our unique
communication paradigm, in which the IoT server subscribes device
resources to retrieve data only when it is necessary, a single Thinger.io
instance is able to manage thousands of IoT devices with low computational
load, bandwidth and latencies.
 Open-Source: most of the platform modules, libraries and APP source code
are available in our Github repository to be downloaded and modified with MIT
license.

Thinger.io Main Features

Thinger.io platform is formed by two main products a Backend (which is the actual
IoT server) and a web-based Frontend that simplifies working with all the features
using any computer or smartphone. The image below shows the main features
provides by this platform to create IoT projects.
 Connect devices: Fully compatible with every kind of device, no matter the
processor, the network or the manufacturer. Thinger.io allows to create
bidirectional communications with Linux, Arduino, Raspberry Pi, or MQTT
devices and even with edge technologies like Sigfox or LoRaWAN or other
internet API data resources.
 Store Device Data: Just a couple clicks to create a Data Bucket a store IoT
data in a scalable, efficient and affordable way, that also allows real-time data
aggregation.
 Display Real-time or Stored Data in multiple widgets such as time series,
donut charts, gauges, or even custom made representations to create
awesome dashboards within minutes.
 Trigger events and data values using an embedded Node-RED rule engine
 Extend with custom features with multiple plugins to integrate IoT projects
into your company's software or any other third party Internet service.
 Custom the appearance thanks to our fully rebrandeable frontend, that allows
introducing your branding colors, logotypes and web domain
Are you ready to start creating IoT projects? Create here your free account and learn
below how to use all this technology.

QUICK START
Quick Start Guide
To start working with Thinger.io just create a free account in our cloud platform and
follow the next steps to configure and connect your first IoT device
1. Create Device

Using "Devices" menu tab, just click in "New device" button, and fill the form with the
device ID, description and Credentials you prefer.

2.Connect Device

After provisioning the device at Thinger.io cloud, it is the moment to configure it in


the Hardware device. there are many different hardware supports and
communication technologies but Thinger.io allows using all of them:

Arduino/Linux Devices
HTTP Devices
Sigfox / TTN Devices
MQTT Devices
The most suitable devices to start working with Thinger.io are the ESP8266 or
ESP32, we have a library for the Arduino framework that allows programing the first
device in two minutes just following the next steps:

1. Install Thinger.io libraries into your Arduino IDE


2. Going to "File>Examples>Thinger.io", open the example code that fix better for
the PCB
3. Edit the example code to include your username, device ID and Thinger.io
credentials. If the device use secured networks, connection credentials need
to be written too as shown in the image below.
This example contains two simple resources to send and retrieve data from
Thinger.io platform, however, it can be modified with many different functionalities
that we have explained at the Firmware Coding section. After modifying the source
code, just click upload button to flash the sketch and wait for the device connection.

Find additional information about Thinger.io devices in the next sections:

1. Compatible Arduino and Linux devices


2. Zero to Hero Thinger.io Firmware Coding Guide
3. Connection Troubleshooting Guide

3.Devices & Data management

Each device can be managed through the "Device Dashboard". This interface shows
connection data and also allows checking the "device API" with raw device data
representation.

Thinger.io WiFi Button is a ready-to-go Internet of Things based dash-button that integrates
ESP8266 processor with WiFi connectivity among a simple integration with Thinger.io
platform events to provide flexible support for many different use cases.
These devices are aimed to create simple interfaces Huma-Internet, which can be used for
any kind of project in education, connected industry, or home automation. Depending on the
user requirements, the WiFi-Button can be used to execute functions through Thinger.io
Platform, such as sending notification via email, endpoints to IFTTT, messages to other
devices or even, by means of a Thinger.io Server Event, trigger the execution of a flow in
Node-RED.

Our buttons have been provided with an example program that allows to configure a WiFi
network and some Thinger.io credentials by means of a web server inserted in the device
itself. Once the configuration is done, the device makes an instant connection with the
Thinger.io Server that was configures, allowing it to perform any function programmed in the
platform. After that, the hardware of the WiFi Button will change to an hibernation status that
allows saving battery to extend life greater than 3000 pulsations in good conditions.
The next sections explains how to work with this example program and how to configure
Thinger.io platform to explode its capacities.

Quick start guide


This section contains the deployment instruction that should be followed on device’s first
run:

1. Opening the bottom battery cap, Insert with two R03 (AAA) 1.5V alkaline batteries,
then close the cap and insert the security screw if available.
2. Put the bottom switch in “ON” position
3. Press the main button to first start the device. One “bip” sound will be emitted.
4. The device will create a WiFi hotspot that can be used to configure connection
credentials using a multimedia device.

Button Status graph


This device has been provided with a basic program that allows creating useful functionalities
using thinger.io endpoints. The next execution diagram shows how does this program and
how to use the single button to move between the different program menus, that allows
introducing or deleting WiFi credentials, changing the device program by using Arduino
OTA feature or just making a single connection to order any functionality.
Device Sound interface
This device is provided with a buzzer, that allows a simple way to know the device working
status. Next sound commands list contains a specification of the interface protocol that has
been introduced in the device.

Process status Sound specification


Wake up ·
5 seconds pressed button ·
Confirmation ··
WiFi error ___
Cleaning credentials menu ···
Cleaning credentials confirmation _
Timeout, going to sleep ___
Sound specification Sound description
"·" short sharp sound (“bip”)
"_" long grave sound (“daaa”)
"" Silent
Initial configuration process
Brand new device is not ready to use, WiFi connection credentials and user information
should be introduced. During the first run, a hotspot will be created by the device. This
hotspot allows users accessing a graphical configuration interface using common web
navigator. Follow next steps to access this interface and configure the WiFi credentials.

In order to save battery, the configuration hotspot is hold up for 180 seconds (3 minutes).
After this time the WiFi button will automatically turn its power supply off, so if the
process wasn’t completed it will be restarted by pressing the main button one time.

1) With the bottom switch in “ON” position, press the device and listen the Wake-up signal
(one “bip”).

2) Using a Smartphone or Personal computer with WiFi connectivity, open WiFi


configuration and look for the button device WiFi hotspot. Then connect to this network by
introducing the password, which will be the same as the WiFi SSID (wifi network name).

3) When the device begins connected to the access point, a Web Browser should
automatically open the configuration interface, as is shown in the image below:
WARNING! If the computer is connected to the WiFi hotspot but the web browser doesn't
show this interface, it is possible to manually access it by opening web browser and writing
192.168.4.1 address in the browser bar.

4) Select “Configure WiFi” option by pressing this button of the main menu. This option
will launch a Scan process to find the better quality WiFi signals of your home or office and
show it in the next menu.

IMPORTANT: When the desired WiFi Network SSID doesn’t appears at this list, pressing
“Scan” bottom text will launch a new scanning process. If the problem persist, the SSID can
be manually wroten the SSID text box.

5) Select the right WiFi network SSID by clicking over it, then introduce your WiFi security
password in order to provide full connectivity to the WiFi button device.

6) Continue the button filling out the form as explained in next section (Device Credentials
Configuration).

7) Finally, press “Save” button in order to store credentials and first-run the device.

If everything goes right and the device manage to connect the WiFi network properly, a
confirmation sound will be emitted. After sending the first message, the device switch to a
low power mode, however, it is possible to turn off the bottom hardware switch to avoid
accidental executions without affecting the configuration.

WARNING! If the connection wasn’t possible, the WiFi hotspot will be launched again in
order to provide the user another chance to make the configuration. If, after 3 minutes, the
device is not receiving interaction from the user, an alert signal will be emitted and the device
will power off the WiFi hotspot.

Device Credentials Configuration


In addition to the common configuration parameters, each connected device has to be
configured to send data to a specific IoT server. The next table shows all the parameters that
can be changed in this buttons in order to adapt it to different use cases:

Parameter Description
IoT server address Thinger.io Hostname, for example "acme.do.thinger.io"
Each account can be managed to a project or user, place here the name
Server account
of these account
Auto-provisioning An authorization string that provide auto-provisioning permissions to
token create the device profile.
Device ID Button identifier

As soon as a valid WiFi configuration is made, the WiFi button will create a new device
profile on this platform according to the auto-provisioning process setting its device
credentials with the data that was included during the button configuration. This profile can
be checked at Thinger.io platform workspace, by clicking on “devices” menu tab.

Clicking on the device name it is possible to access the device dashboard that contains
information related to the device connection and status, and provides a simple way to show
device parameters.

Working with the device

1. Making sure that the bottom switch in “ON” position.


2. Press the main device button for an instant. Wake-up signal will be emitted.
3. If the device is configured properly, after few seconds the device shall emit the
confirmation signal (double “beep”).

If the confirmation signal is not emitted, review your configuration or go to the


troubleshooting section of this guide (sect. 6).

Changing device configuration

After the first configuration, it is possible to change WiFi credentials and program parameters
by cleaning the memory and repeating the configuration process. To make this, the system
has been provided with a “delete credentials” process, which can be launched using the main
button as is explained in the next steps:

1. Making sure that the bottom switch in “ON” position.


2. Hold the device main button pressed (Wake-up signal will be emitted at the
beginning), then continue pressing the button during 5 to 8 seconds.
3. When a second “bip” is emitted, you can drop the button to get into “cleaning
credentials” mode.
4. If this process was carried out properly, the cleaning credentials mode will run in the
device for 10 seconds. And the “cleaning credentials” message will be emitted.
5. To confirm the deletion of the credentials press the button momentary one more time.
Then the “delete” message will be emitted and WiFi configuration hotspot will be
launched in order to provide a way to configure new credentials.
6. If you don’t want to configure new credentials, you can now turn the device bottom
switch off or wait 3 minutes to automatically power off.

once a device's credentials are deleted, it is not possible to recover them.

General Troubleshooting Guidelines


This section compiles all the possible operating problems and the recommendations to follow
in order solve them or to identify the factor that causes the system malfunction:

Problem Source Solution Observations


WiFi credentials Check WiFi SSID and It is possible that the SSID
After configure the
can’t be confirmed password to be sure and password are correct
device credentials, no
because the device that they are well but the device can't connect
confirmation signal
wasn’t able to gotten and the WiFi is because of additional
was emitted and the
connect this accessible in 2.4 Ghz protection protocols in the
hotspot stils up
network. frequency. network
1.Device battery is 1. Change device
The device is not discharged battery
Also, The device could be
emitting wake-up
working with configuration
signal when main 2. Device bottom 2. Put the bottom
hotspot opened
button is pressed. switch is in “OFF” switch in “ON”
position position

Configuring Thinger.io Platform


Configure Access Token

Using an Endpoint

Capture Connection Event

Configure Access Token

Sorry! This is work in progress


Using an Endpoint

Capture Connection Event

Development
These devices has been created as a platform to develop different IoT use cases, it is possible
to change its standard programmation to modify the behavior.

Configure Environment
This section covers how to setup your computer to start working with the ClimaStick device.

Install required components

 You may need to install the CP2102 drivers from Silicon Labs if the ClimaStick
device is not recognized from your computer. This driver is for the USB to serial
interface to communicate with the board.

Download page >

 Arduino IDE v1.6.13 or newer.

Download page >

Configure Arduino IDE

1- Open File > Preferences > Additional_Boards_URL_Manager to include the "ESP8266


boards manager link" that you can retrieve from Github community project. It is normally
http://arduino.esp8266.com/stable/package_esp8266com_index.json
2- Open Tools > Boards > Boards Manager... and search for ESP8266 package, then install
the last version.
3- Now you can program almost any ESP82XX processor directly from the Arduino IDE.
From the Tools > Boards you should see now the new ESP8266 community boards installed.

1. For program ClimaStick V1 select NODE_MCU V1.0 (ESP-12E Module).


2. For program ClimaStick V2 select WeMos D1 Mini Lite.
4- Open Sketch > Include Library > Manage Libraries, and search for Thinger.io libraries.
Then install the Thinger.io Platform and WiFi Button libraries, as shown in the following
picture.
Thinger.io provides bidirectional communication, so it is possible to retrieve data
into the server using "devices output resources" and also sending messages from
server to the "devices input resources". Both resources are represented in the
"device API" viewer.Input & Output resources in the device API inspector
4.Store, Show & Share Data

Thinger.io provides three essential tools to work with devices data that are the basis
for creating any IoT project, next tabs shows each tool introduction:

Data Buckets
Dashboards
Endpoints
Access Tokens
To store device data in a scalable way, programming different sampling intervals or
recording events raised by devices.

5.Extend Thinger.io

Thinger.io platform can be complemented with many different Internet services


using Plugins that can be found and deployed within seconds Just going to our
marketplace and selecting it.

You might also like