EMQX Broker writing
MQTT is a popular IoT data transfer protocol. EMQX is an open-source MQTT Broker software. You can write MQTT data directly to TDengine without any code. You only need to setup "rules" in EMQX Dashboard to create a simple configuration. EMQX supports saving data to TDengine by sending data to a web service and provides a native TDengine driver for direct saving in the Enterprise Edition. Please refer to the EMQX official documentation for details on how to use it.).
Prerequisites
The following preparations are required for EMQX to add TDengine data sources correctly.
- The TDengine cluster is deployed and working properly
- taosAdapter is installed and running properly. Please refer to the taosAdapter manual for details.
- If you use the emulated writers described later, you need to install the appropriate version of Node.js. V12 is recommended.
Install and start EMQX
Depending on the current operating system, users can download the installation package from the EMQX official website and execute the installation. After installation, use sudo emqx start
or sudo systemctl start emqx
to start the EMQX service.
Note: this chapter is based on EMQX v4.4.5. Other version of EMQX probably change its user interface, configuration methods or functions.
Create Database and Table
In this step we create the appropriate database and table schema in TDengine for receiving MQTT data. Open TDengine CLI and execute SQL bellow:
CREATE DATABASE test;
USE test;
CREATE TABLE sensor_data (ts TIMESTAMP, temperature FLOAT, humidity FLOAT, volume FLOAT, pm10 FLOAT, pm25 FLOAT, so2 FLOAT, no2 FLOAT, co FLOAT, sensor_id NCHAR(255), area TINYINT, coll_time TIMESTAMP);
Configuring EMQX Rules
Since the configuration interface of EMQX differs from version to version, here is v4.4.3 as an example. For other versions, please refer to the corresponding official documentation.
Login EMQX Dashboard
Use your browser to open the URL http://IP:18083
and log in to EMQX Dashboard. The initial installation username is admin
and the password is: public
.
Creating Rule
Select "Rule" in the "Rule Engine" on the left and click the "Create" button: !
Edit SQL fields
Copy SQL bellow and paste it to the SQL edit area:
SELECT
payload
FROM
"sensor/data"
Add "action handler"
Add "Resource"
Select "Data to Web Service" and click the "New Resource" button.