使用使用Arduino UNO,,ESP8266和和MQTT的温度仪表板的温度仪表板-项目项目
开发开发
Components and supplies
Arduino UNO
× 1
Espressif ESP8266 ESP-01
× 1
DHT22 Temperature Sensor
× 1
Breadboard (generic)
× 1
Male/Female Jumper Wires
× 11
Male/Male Jumper Wires
× 3
Female/Female Jumper Wires
× 2
Resistor 10k ohm
× 1
Apps and online services
Thingsboard
About this project
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.
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.
Once you complete this tutorial, you will see your sensor data on the following dashboard.
Data flow
The DHT22 sensor is connected to Arduino UNO. Arduino UNO connects to the WiFi network using ESP8266.
Arduino UNO push 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.
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
Thingsboard configuration
Step 1. Install Thingsboard
You will need to have Thingsboard server up and running. Use following guide to install Thingsboard (multiple
options supported).
Step 2. 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
login: tenant@thingsboard.org
password: tenant
Goto “Devices” section. Click “+” button and create device with name “Arduino UNO Demo Device”.
Once device created, open its details and click “Manage credentials”. Enter “ARDUINO_DEMO_TOKEN” in “Access
token” field and click “Save”.
Click “Copy Device ID” in device details to copy your device id to clipboard. Paste your device id to some place,
this value will be used in further steps.
Step 3. Provision your dashboard
Download the dashboard file using this link. Use import/export instructions to import the dashboard to your
Thingsboard instance.
Programming the Arduino UNO device
If you already familiar with basics of Arduino UNO programming using Arduino IDE you can skip the following step
and proceed with step 2.
Step 1. Arduino IDE
In order to start programming Arduino UNO device you will need Arduino IDE installed and all related software.
Download and install Arduino IDE.
To learn how to connect your Uno board to the computer and upload your first sketch please follow this guide.
Step 2. Install Arduino libraries
Open Arduino IDE and go to Sketch -> Include Library -> Manage Libraries . Find and install the following
libraries:
PubSubClient by Nick O’Leary.
WiFiEsp by bportaluri
Adafruit Unified Sensor by Adafruit
DHT sensor library by Adafruit
Note that this tutorial was tested with the following versions of the libraries:
PubSubClient 2.6
WiFiEsp 2.1.2
Adafruit Unified Sensor 1.0.2
DHT sensor library 1.3.0
Step 3. Prepare and upload sketch.
Download and open arduino-dht-esp8266-mqtt.ino sketch.
Note You need to edit following constants and variables in the sketch:
WIFI_AP - name of your access point
WIFI_PASSWORD - access point password
thingsboardServer - Thingsboard HOST/IP address that is accessable within your wifi network.
Connect your Arduino UNO device via USB cable and select “Arduino/Genuino Uno” port in Arduino IDE. Compile
and Upload your sketch to device using “Upload” button.
After application will be uploaded and started it will try to connect to Thingsboard node using mqtt client and
upload “temperature” and “humidity” timeseries data once per second.
Troubleshooting
When application is running you can select “Arduino/Genuino Uno” port in Arduino IDE and open “Serial Monitor”
in order to view debug information produced by serial output.
Data visualization
Finally, open Thingsboard Web UI. You can access this dashboard by logging in as a tenant administrator:
login: tenant@thingsboard.org
password: tenant
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 (see first picture in this tutorial).
评论0