【IoT】thingsboard3.3.3测试,使用node-mqtt发送消息

  1. thingsboard.yml端口1883
    【IoT】thingsboard3.3.3测试,使用node-mqtt发送消息
  2. 服务器防火墙开启1883端口
    【IoT】thingsboard3.3.3测试,使用node-mqtt发送消息
  3. mqtt消息发送,代码来自互联网:脚本地址 https://blog.csdn.net/ieflex/article/details/97149225
//Requires node.js and mqtt library installed.

var mqtt = require('mqtt');

const thingsboardHost = "192.168.198.224";
// Reads the access token from arguments
const accessToken = process.argv[2];
const minTemperature = 17.5,
    maxTemperature = 30,
    minHumidity = 12,
    maxHumidity = 90;

// Initialization of temperature and humidity data with random values
var data = {
    temperature: minTemperature + (maxTemperature - minTemperature) * Math.random(),
    humidity: minHumidity + (maxHumidity - minHumidity) * Math.random()
};

// Initialization of mqtt client using Thingsboard host and device access token
console.log('Connecting to: %s using access token: %s', thingsboardHost, accessToken);
var client = mqtt.connect('mqtt://' + thingsboardHost, {
    username: accessToken
});

// Triggers when client is successfully connected to the Thingsboard server
client.on('connect', function() {
    console.log('Client connected!');
    // Uploads firmware version as device attribute using 'v1/devices/me/attributes' MQTT topic
    client.publish('v1/devices/me/attributes', JSON.stringify({
        "firmware_version": "1.0.1"
    }));
    // Schedules telemetry data upload once per second
    console.log('Uploading temperature and humidity data once per second...');
    setInterval(publishTelemetry, 1000);
});

// Uploads telemetry data using 'v1/devices/me/telemetry' MQTT topic
function publishTelemetry() {
    data.temperature = genNextValue(data.temperature, minTemperature, maxTemperature);
    data.humidity = genNextValue(data.humidity, minHumidity, maxHumidity);
    client.publish('v1/devices/me/telemetry', JSON.stringify(data));
}

// Generates new random value that is within 3% range from previous value
function genNextValue(prevValue, min, max) {
    var value = prevValue + ((max - min) * (Math.random() - 0.5)) * 0.03;
    value = Math.max(min, Math.min(max, value));
    return Math.round(value * 10) / 10;
}

//Catches ctrl+c event
process.on('SIGINT', function() {
    console.log();
    console.log('Disconnecting...');
    client.end();
    console.log('Exited!');
    process.exit(2);
});

//Catches uncaught exceptions
process.on('uncaughtException', function(e) {
    console.log('Uncaught Exception...');
    console.log(e.stack);
    process.exit(99);
});

  1. 使用node执行js脚本发送模拟数据,6r983jTRLUpfsmoROnPt为设备令牌

node emulator_pub.js 6r983jTRLUpfsmoROnPt

  1. 使用仪表板查看数据
    【IoT】thingsboard3.3.3测试,使用node-mqtt发送消息

博客地址:
http://www.cnblogs.com/defineconst/

博客版权: 本文以学习、研究和分享为主,欢迎转载和各类爬虫,但必须在文章页面明显位置给出原文链接。 如果文中有不妥或者错误的地方还望高手的您指出,以免误人子弟。如果您有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。

Original: https://www.cnblogs.com/defineconst/p/15963608.html
Author: 咸鱼翻身
Title: 【IoT】thingsboard3.3.3测试,使用node-mqtt发送消息

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/539676/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • github打不开怎么办

    打开以下三个网址,分别取各个网址如下图所示位置的IP地址 github网址查询: github域名查询: 修改hosts文件,路径为c:\windows\system32\driv…

    Java 2023年6月5日
    072
  • java并发实战:连接池实现

    池化技术简介 在我们使用数据库的过程中,我们往往使用数据库连接池而不是直接使用数据库连接进行操作,这是因为每一个数据库连接的创建和销毁的代价是昂贵的,而池化技术则预先创建了资源,这…

    Java 2023年5月29日
    074
  • Docker中启动Tomcat外部访问报HTTP Status 404 – 未找到

    解决办法:使用命令: docker exec -it tomcat容器ID /bin/bash 进入到tomcat的目录 Original: https://www.cnblogs…

    Java 2023年6月7日
    049
  • 2022年6月2日笔记

    2022年6月2日笔记 100元的换钱方案 程序思路:for循环嵌套、穷举法列出全部方案、判断条件是否成立,成立输出. 程序源码: 0 0 10 0 2 9 0 4 8 0 6 7…

    Java 2023年6月9日
    078
  • 技术管理杂谈

    人非机器。 我们可以编写一段程序,让机器严格按照我们的预期运行,程序写得好的机器够牛逼的话,能保它跑个几十年无需干预。 但是人不行。 人有别于机器在于他的感性以及模糊的理性。 人会…

    Java 2023年5月30日
    060
  • .NET 7 性能改进 — 至今为止最快的.NET平台

    2022年8月31日 Stephen Toub 发布的关于 .NET 7 性能改进的博客, 核心主题是 .NET 7 速度很快。 这篇博客非常的长,我尝试将它拷贝到Word 里,拷…

    Java 2023年6月5日
    086
  • 获取 Spring heapdump中的密码明文

    Actuator是Spring Boot提供的应用系统监控的开源框架。在攻防场景里经常会遇到Actuator配置不当的情况,攻击者可以直接下载heapdump堆转储文件,然后通过一…

    Java 2023年5月30日
    060
  • java你可能不知道的事(2)–堆和栈

    在java语言的学习和使用当中你可能已经了解或者知道堆和栈,但是你可能没有完全的理解它们。今天我们就一起来学习堆、栈的特点以及它们的区别。认识了这个之后,你可能对java有更深的理…

    Java 2023年6月13日
    066
  • JavaWeb之Servlet、拦截器、监听器及编程思想

    本文包含的内容有: Servlet的理解 自定义Servlet、监听器和过滤器 三者的一点点编程设计思想 后续的学习 JavaWeb是Web开发的重要基础,对Servlet、监听器…

    Java 2023年6月5日
    074
  • SpringCloud基础

    SpringCloud极大的简化了分布式系统的开发,实现了微服务的快速部署和灵活应用 SpringCloud主要框架 服务发现–Netfix Eureka 服务调用&#…

    Java 2023年5月30日
    064
  • SpringBoot下的文件上传

    ; 代码很简单。已经放到码云了,码云地址:https://gitee.com/zhang-zhixi/springboot-upload.git posted @2022-04-2…

    Java 2023年6月6日
    066
  • JVM学习笔记之Java内存区域与OOM【二】

    Java 内存区域与 OOM 虚拟机基本结构图示 一、运行时数据区域 运行时数据区域 图示 标注颜色的两块区域:所有线程共享的数据区域 1.1 程序计数器(progams coun…

    Java 2023年6月5日
    098
  • Nginx虚拟目录alias和root目录

    nginx是通过alias设置虚拟目录,在nginx的配置中,alias目录和root目录是有区别的: 1.示例一 location /huan/ { alias /home/ww…

    Java 2023年5月30日
    062
  • 求和平均统计

    单因素方差分析我大白话说就是求和平均统计,样本与平均值进行各种对比得出的结论,如下: 在试验中,把考察的指标称为试验指标,影响试验指标的条件称为因素。因素可分为两类,一类是人为可控…

    Java 2023年5月29日
    069
  • 微信聊天内容可以被监听吗

    上班摸鱼与网络安全 成为了锅叔在博客园阅读数最高的一篇文章,足可见同学们上班摸鱼的热情,同时也反映了大家对网络安全的担忧…… 对于其中的一个存疑问题,&#8…

    Java 2023年6月15日
    085
  • Spring(四):HelloSpring

    上一篇学习了控制反转(IoC)的本质和具体实现方法,这次我们就学习写一个小的项目来体验这个过程。 一、项目构建 1.Maven依赖(导包) <dependencies>…

    Java 2023年6月15日
    079
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球