EMQX将数据发送到后端

本文主要是记录了使用免费的EMQX的数据集成功能,将数据流转到后端平台。

在实现过程中,首先是在云服务器之中下载了EMQX,之后通过EMQX的数据集成功能,创建了数据桥接以及与之对应的规则,可以实现将EMQX接收到的数据转发到服务器后端,由后端实现对数据的处理。

1 EMQX的安装与使用

  1.1 EMQX的安装

EMQX(免费版):下载 EMQX

注意选择正确的安装系统和合适的安装方式,这里以ubuntu和apt为例进行说明。 

  1.2 EMQX的使用

安装完EMQX之后,可以通过IP:18083的方式在浏览器上打开EMQX的页面,默认用户名:admin密码:public。

如果打开的EMQX是英文页面,也可以修改成中文。具体如下:

创建数据桥接 

 

 这里的请求头主要以application/json和application/x-www-form-urlencoded两种为例进行说明。

 根据桥接建立对应规则:

注意这里的可以选择所有的数据(select * ...),原因是前面在创建数据桥接时,请求体数据是${payload},会自动提取整个数据里面的payload部分。

 可以进行一定的测试(记得点击最下面的创建)

 2 宝塔的安装与使用

   2.1 具体详情见:腾讯云服务器部署node.js——入门级_腾讯云服务器安装node_B or D的博客-CSDN博客

在服务器内安装按照宝塔面板 

官网:https://www.bt.cn/btcode.html

官网建议安装前要确保是干净的操作系统,已有环境不可安装。

默认安装目录为 /www, 安装完成后终端会提示默认的访问入口和用户名、密码,打开浏览器按照访问入口输入地址栏即可打开登录界面。以下在ubuntu系统的按照命令:

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

   2.2 下载pm2

安装完宝塔后,找到宝塔的软件商城,搜索pm2并下载

   2.3 下载数据库

   2.4 创建数据库

在数据库内添加新的数据库,数据库名test0316,用户名test0316,访问权限直接设置成了所有人。

进入指定数据库

另外一种进入数据库的方式:(使用一些工具可以在本地电脑远程连接数据库,比如Navicat,SQLyog),这里以SQLyog为例。

 

 3 数据测试

    3.1 创建数据库

创建一个简单的数据库,包括id,temp,humi

     3.2 后端程序

后端采用nodejs进行编写,可以实现简单的接收:

// 导入 express
const express = require('express')
// 创建 web 服务器
const app = express()


// 解析表单中的 JSON 格式的数据
app.use(express.json())
// 解析提交过来的表单数据
app.use(express.urlencoded({ extended: false }))
// 监听客户端的 GET 和 POST 请求,并向客户端响应具体的内容
app.post('/sdata', (req, res) => {
  // 调用 express 提供的 res.send() 方法,向客户端响应一个 文本字符串
  console.log(req.body)  // 取所有值
  console.log('senddata_success!')
  res.send('senddata_success!')
})

// 启动 web 服务器(制定了端口9999)
app.listen(9999, () => {
  console.log('express server running at http://127.0.0.1')
})

    3.3 EMQX配置

使用EQMX自带的WebSocket进行测试:

     3.4 实验效果

      1. 运行后端的nodejs 

      2. 使用EMQX进行发布

这里发送的数据只是测试使用,真正的想要存储到自建的数据库,还要发送正确的数据格式,而且编写的nodejs代码也要连接对应数据库,在对接收到的数据进行处理后存储到数据库里面。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
EMQX是一个开源的分布式物联网物联网消息代理。它支持MQTT协议和HTTP协议进行数据的传输和交互。在EMQX中,我们可以通过HTTP接口发送数据。 具体而言,我们可以使用HTTP POST方法来发送数据EMQX。首先,我们需要构建一个HTTP的POST请求,并设置目标URL为EMQX的HTTP接口地址。接下来,我们需要在请求的header中设置合适的参数,例如Content-Type,Authorization等。在请求的body中,我们需要提供要发送数据,可以是JSON格式或其他合适的格式。 例如,假设我们要发送一个JSON格式的数据EMQX,可以使用类似以下代码的方式进行发送: ```python import requests import json data = { "topic": "mydata", "payload": { "temperature": 25, "humidity": 60 } } url = "http://emqx-url.com/api/v1/message/publish" headers = { "Content-Type" : "application/json", "Authorization" : "Bearer xxxxxxxxxxxxxxx" } response = requests.post(url, headers=headers, data=json.dumps(data)) print(response.status_code) ``` 在上述代码中,我们先定义了要发送数据。然后,我们设置了EMQX的HTTP接口地址和必要的header参数。最后,我们通过requests库的post方法发送请求,并打印出返回的状态码。 需要注意的是,在发送数据之前,我们需要确保EMQX的HTTP接口已经正确配置并开启。另外,如果需要进行身份验证,我们需要在header中提供正确的Authorization参数。 总而言之,通过EMQX的HTTP接口,我们可以方便地发送数据EMQX,并实现与物联网设备的数据交互。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

B or D

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值