Introduction

ThingsBoard is an open-source server-side platform that allows you to monitor and control IoT devices.
It is free for both personal and commercial usage and you can deploy it anywhere.
If this is your first experience with the platform we recommend to review
what-is-thingsboard page and getting-started guide.

This sample application performs collection of temperature and humidity values produced by DHT22 sensor and further visualization on the real-time web dashboard.
Collected data is pushed via MQTT to ThingsBoard server for storage and visualization.
The purpose of this application is to demonstrate ThingsBoard data collection API and visualization capabilities.

The DHT22 sensor is connected to Arduino UNO.
Arduino UNO connects to the WiFi network using ESP8266.
Arduino UNO pushes data to ThingsBoard server via MQTT protocol by using PubSubClient library for Arduino.
Data is visualized using built-in customizable dashboard.
The application that is running on Arduino UNO is written using Arduino SDK which is quite simple and easy to understand.

Once you complete this sample/tutorial, you will see your sensor data on the following dashboard.

List of hardware and pinouts

ESP8266 Firmware

In the current tutorial WiFiEsp Arduino library is used to connect Arduino board to the internet.
This library supports ESP SDK version 1.1.1 and above (AT version 0.25 and above).
Please make sure that your ESP8266 has compatible firmware. You can download and flash AT25-SDK112 firmware which is tested in this tutorial.

Please note that serial baud rate of ESP8266 should be set to 9600 by the following AT command:

AT+UART_DEF=9600,8,1,0,0

Wiring scheme

Arduino UNO Pin

ESP8266 Pin

Arduino UNO 3.3V

ESP8266 VCC

Arduino UNO 3.3V

ESP8266 CH_PD

Arduino UNO GND

ESP8266 GND (-)

Arduino UNO D2

ESP8266 RX

Arduino UNO D3

ESP8266 TX

Arduino UNO Pin

DHT-22 Pin

Arduino UNO 5V

DHT-22 VCC

Arduino UNO GND

DHT-22 GND (-)

Arduino UNO D4

DHT-22 Data

Finally, place a resistor (between 4.7K and 10K) between pin number 1 and 2 of the DHT sensor.

The following picture summarizes the connections for this project:

ThingsBoard configuration

Note ThingsBoard configuration steps are necessary only in case of local ThingsBoard installation.
If you are using Live Demo instance all entities are pre-configured for your demo account.
However, we recommend reviewing this steps because you will still need to get device access token to send requests to ThingsBoard.

Provision your device

This step contains instructions that are necessary to connect your device to ThingsBoard.

Open ThingsBoard Web UI (http://localhost:8080) in browser and login as tenant administrator

Data visualization

Go to “Devices” section and locate “Arduino UNO Demo Device”, open device details and switch to “Latest telemetry” tab.
If all is configured correctly you should be able to see latest values of “temperature” and “humidity” in the table.

After, open “Dashboards” section then locate and open “Arduino DHT22: Temperature & Humidity Demo Dashboard”.
As a result, you will see two time-series charts and two digital gauges displaying temperature and humidity level (similar to dashboard image in the introduction).

Next steps

Browse other samples or explore guides related to main ThingsBoard features: