一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在Node-RED中如何用ModbusTCP采集存儲Influxdb

IOTRouter ? 來源:成都縱橫智控 ? 作者:成都縱橫智控 ? 2024-06-28 16:26 ? 次閱讀

(以下來源成都縱橫智控公眾號授權更多可見-https://www.iotrouter.com-智控

-需求概述

注:使用Influxdb數(shù)據(jù)庫節(jié)點,需要插上micro sd卡才可以

本章節(jié)主要實現(xiàn)一個流程:EG8200每10秒采集一次Modbus TCP數(shù)據(jù)存入Influxdb數(shù)據(jù)庫,并且每分鐘從Influxdb數(shù)據(jù)庫中取6條數(shù)據(jù)打包上報。

Modbus TCP數(shù)據(jù)采集此處不做過多贅述,可參考其他案例介紹。下文默認已經(jīng)采集到Modbus TCP數(shù)據(jù)。

-數(shù)據(jù)上報格式


[{
  "time": "2023-12-20 14:50:13",
  "value1": 12573,
  "value2": 12568,
  "value3": 12561,
  "value4": 12557,
  "value5": 12552,
  "value6": 12545,
  "value7": 12540,
  "value8": 12535
}, {
  "time": "2023-12-20 14:50:13",
  "value1": 12573,
  "value2": 12568,
  "value3": 12561,
  "value4": 12557,
  "value5": 12552,
  "value6": 12545,
  "value7": 12540,
  "value8": 12535
}, {
  "time": "2023-12-20 14:50:13",
  "value1": 12574,
  "value2": 12569,
  "value3": 12562,
  "value4": 12558,
  "value5": 12553,
  "value6": 12546,
  "value7": 12541,
  "value8": 12536
}, {
  "time": "2023-12-20 14:50:14",
  "value1": 12574,
  "value2": 12569,
  "value3": 12562,
  "value4": 12558,
  "value5": 12553,
  "value6": 12546,
  "value7": 12541,
  "value8": 12536
}, {
  "time": "2023-12-20 14:50:14",
  "value1": 12575,
  "value2": 12570,
  "value3": 12563,
  "value4": 12559,
  "value5": 12554,
  "value6": 12547,
  "value7": 12542,
  "value8": 12537
}, {
  "time": "2023-12-20 14:50:14",
  "value1": 12575,
  "value2": 12570,
  "value3": 12563,
  "value4": 12559,
  "value5": 12554,
  "value6": 12547,
  "value7": 12542,
  "value8": 12537
}]

-需求分析

第一步:配置并連接數(shù)據(jù)庫

第二步:創(chuàng)建一個數(shù)據(jù)庫

第三步:指定使用新創(chuàng)建的數(shù)據(jù)庫

第四步:讀取Modbus TCP數(shù)據(jù)并存入指定表中

第五步:從數(shù)據(jù)庫中讀取6個數(shù)據(jù)

第六步:將讀取出來的數(shù)據(jù)打包

第七步:將打包的數(shù)據(jù)發(fā)送到MQTT

-需求實現(xiàn)

第一步:配置并連接數(shù)據(jù)庫

首次連接EG8200的Influxdb數(shù)據(jù)庫按照默認的配置即可無需修改

wKgZomZ-cZiADoSDAAE5lU7egz0085.png

第二步:創(chuàng)建一個數(shù)據(jù)庫

創(chuàng)建一個數(shù)據(jù)庫需要使用到sql語句 CREATE DATABASE myDatabase ,這條語句的意思是創(chuàng)建一個名字叫做myDatabase的數(shù)據(jù)庫。按照下面視頻的方式創(chuàng)建,日志窗口打印[empty],說明數(shù)據(jù)庫創(chuàng)建成功

wKgaomZ-cbaAdOVQAAEI_SMs1_o583.png

第三步:指定使用新創(chuàng)建的數(shù)據(jù)庫

在第一步創(chuàng)建了一個名字叫做myDatabase的數(shù)據(jù)庫,現(xiàn)在需要使用這個數(shù)據(jù)庫,將Influxdb的一個配置名Database改成myDatabase

wKgZomZ-ce-AUa25AAEOLCE9lPY623.png

第四步;DO能控制的設備

Modbus TCP數(shù)據(jù)采集此處不做過多贅述,這里已經(jīng)配置好Modbus TCP詳細使用請參考

從節(jié)點庫里面拿出一個寫時序數(shù)據(jù)庫節(jié)點,選擇前面步驟已經(jīng)添加的配置信息,并將表名填寫在Measurement,

這里使用myTable作為表名

wKgZomZ-chyAXf-uAAFMg4pamUA342.png

第五步:從數(shù)據(jù)庫中讀取6個數(shù)據(jù)

通過函數(shù)節(jié)點構造sql讀取指令,通過時間查詢最近6條數(shù)據(jù)

wKgZomZ-cieAFKQ7AAFRrGKBIRY017.png

上面視頻中使用到的函數(shù)代碼


if (global.get("startTime") == undefined || global.get("startTime") == null) global.set("startTime", new Date().getTime())
var startTime = global.get("startTime")
var temp = new Date(startTime).toISOString()
var table = "myTable"
msg.query = "SELECT * FROM" + " "" + table + "" " + " WHERE time > '" + temp + "' LIMIT 6"
return msg;

第六步:將讀取出來的數(shù)據(jù)打包

使用函數(shù)節(jié)點將數(shù)據(jù)封裝成對應的json字符串

wKgZomZ-ckqAIAH5AAGKUggqfVg185.png

上面視頻中使用到的函數(shù)代碼


function dateFormat(fmt, timestamp) {
    let ret;
    const opt = {
        "Y+": timestamp.getFullYear().toString(), // 年
        "m+": (timestamp.getMonth() + 1).toString(),  // 月
        "d+": timestamp.getDate().toString(), // 日
        "H+": timestamp.getHours().toString(), // 時
        "M+": timestamp.getMinutes().toString(), // 分
        "S+": timestamp.getSeconds().toString() // 秒
        // 有其他格式化字符需求可以繼續(xù)添加,必須轉化成字符串
    };
    for (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt);
        if (ret) {
            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
        };
    };
    return fmt;
}
// const fmt = dateFormat("YYYY-mm-dd HH:MM:SS", new Date())
var dataList = msg.payload
if (dataList.length == 0) {
    node.error("數(shù)據(jù)庫無數(shù)據(jù)請檢查")
    return
}
dataList.forEach(item => item.time = dateFormat("YYYY-mm-dd HH:MM:SS", new Date(item.time)))
global.set("startTime", new Date(dataList[dataList.length - 1].time).getTime() + 1000)
msg.payload = JSON.stringify(dataList)
return msg

第七步:將打包的數(shù)據(jù)發(fā)送到MQTT

新增MQTT發(fā)布節(jié)點

客戶端ID:網(wǎng)關SN

用戶名:網(wǎng)關SN

密碼:EG87654321

發(fā)布主題:${sn}/send

wKgZomZ-co2AC7gLAAGYf4IaLNw616.png

-總結

本章節(jié)介紹了一個相對復雜的流程,旨在表述網(wǎng)關所具備的能力,因此并未對程序的安全性、穩(wěn)定性、靈活性等方面做優(yōu)化。通過理解本流程,相信你已經(jīng)對網(wǎng)關的可視化編程有了一定的熟悉。接下來,深入學習每個節(jié)點的功能用法吧,掌握它們將會為你制作更復雜的流程提供更多的選擇和可能!

-注意

MQTT配置節(jié)點導出時,不會攜帶用戶名和密碼。因此導入時需要重新錄入用戶名和密碼

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲
    +關注

    關注

    13

    文章

    4469

    瀏覽量

    86895
  • node
    +關注

    關注

    0

    文章

    24

    瀏覽量

    6069
  • ModbusTCP
    +關注

    關注

    0

    文章

    154

    瀏覽量

    4713
收藏 人收藏

    評論

    相關推薦

    Node-RED實現(xiàn)電表數(shù)據(jù)采集并上云

    本案例將通過Docker容器安裝DLT-645協(xié)議插件采集實現(xiàn)電表數(shù)據(jù)上云,前面已經(jīng)講過ModbusRTU協(xié)議通過Node-RED上云,如果采用支持ModbusRTU電表可以參考之前的“Docker
    的頭像 發(fā)表于 06-07 08:21 ?3232次閱讀
    <b class='flag-5'>Node-RED</b>實現(xiàn)電表數(shù)據(jù)<b class='flag-5'>采集</b>并上云

    Node-Red是什么?如何去學習Node-Red?

    Node-Red是什么?如何去學習Node-Red?有哪些方法可以去學習Node-Red?
    發(fā)表于 07-02 06:11

    新手求助如何去學習Node-Red

    如何去學習Node-Red?怎樣去安裝dashboard這個UI控件庫?
    發(fā)表于 09-01 06:53

    第2部分:使用Node-RED的程序

    Understand how to use the Node-RED* interface to add sensors and send data to the AWS* cloud.
    的頭像 發(fā)表于 10-26 07:17 ?6867次閱讀

    運用 Node-RED 開發(fā) LoRa 應用

    之前的課程LoRa G-IoT模塊基礎應用,我們已經(jīng)知道如何將從LoRa得到的數(shù)值上傳服務器,本文我們將學習撰寫Node-RED,將數(shù)據(jù)傳送到自己設計的網(wǎng)頁監(jiān)測接口。
    的頭像 發(fā)表于 12-25 17:54 ?947次閱讀

    Raspberry Pi利用Node-RED控制LED

    今天的教程,我們將研究如何使用 Node-RED 樹莓派上部署簡單的項目。
    的頭像 發(fā)表于 09-01 16:00 ?6456次閱讀
    <b class='flag-5'>在</b>Raspberry Pi<b class='flag-5'>中</b>利用<b class='flag-5'>Node-RED</b>控制LED

    Node-REDARM嵌入式工控機上的應用

    BL302 ARM嵌入式工控機Node-RED使用教程
    的頭像 發(fā)表于 03-02 18:45 ?5235次閱讀
    <b class='flag-5'>Node-RED</b><b class='flag-5'>在</b>ARM嵌入式工控機上的應用

    Node-red啟動電腦攝像頭案例

    通過Node-red實現(xiàn)打開電腦自帶的攝像頭或者USB攝像頭
    的頭像 發(fā)表于 06-01 06:50 ?5822次閱讀
    <b class='flag-5'>Node-red</b>啟動電腦攝像頭案例

    物聯(lián)網(wǎng)與ESP32、Node-REDInfluxDB與WebSocket

    電子發(fā)燒友網(wǎng)站提供《物聯(lián)網(wǎng)與ESP32、Node-REDInfluxDB與WebSocket.zip》資料免費下載
    發(fā)表于 07-13 09:51 ?1次下載
    物聯(lián)網(wǎng)與ESP32、<b class='flag-5'>Node-RED</b>和<b class='flag-5'>InfluxDB</b>與WebSocket

    Node-RED安裝本地教程

    Node-RED是一個基于流的開發(fā)工具,廣泛應用于物聯(lián)網(wǎng)(IoT)、家庭自動化和其他數(shù)據(jù)驅動的應用程序。它通過圖形化的編程界面,使得非專業(yè)程序員也能輕松上手。本文將介紹如何在本地環(huán)境安裝Node-RED,幫助你快速開始項目開發(fā)
    的頭像 發(fā)表于 06-24 12:10 ?2985次閱讀
    <b class='flag-5'>Node-RED</b>安裝本地教程

    Node-RED如何制作漂亮的界面

    Node-RED深度融合(如成都的縱橫智控和蘇州穩(wěn)聯(lián)科技將Node-RED與物聯(lián)網(wǎng)網(wǎng)關深度融合,打造可視化、硬件加持的物聯(lián)網(wǎng)開發(fā)平臺,使用者無需編碼即可快速實現(xiàn)各類應用,開拓物聯(lián)網(wǎng)無限可能)。未來或許將會有越來越多的企業(yè)步入此行業(yè)
    的頭像 發(fā)表于 06-26 16:50 ?6514次閱讀
    <b class='flag-5'>Node-RED</b>如何制作漂亮的界面

    Node-RED初學者教程-三分鐘學習

    通過這短短三分鐘的教程,你已經(jīng)掌握了Node-RED的基本操作。你可以利用Node-RED的強大功能來創(chuàng)建更復雜的數(shù)據(jù)流和自動化任務,無論是物聯(lián)網(wǎng)應用、API集成還是數(shù)據(jù)處理。Node-RED簡化了編程過程,讓開發(fā)更直觀、更高效
    的頭像 發(fā)表于 06-27 17:09 ?4651次閱讀
    <b class='flag-5'>Node-RED</b>初學者教程-三分鐘學習

    使用Node-RED實現(xiàn)ModBus TCP到RTU的轉換

    ,需要將ModBusTCP數(shù)據(jù)轉換為ModBusRTU格式或者是將ModBusRTU格式轉換為ModBusTCP數(shù)據(jù)。本文將詳細介紹如何使用Node-RED來實現(xiàn)M
    的頭像 發(fā)表于 08-02 08:21 ?1393次閱讀
    使用<b class='flag-5'>Node-RED</b>實現(xiàn)ModBus TCP到RTU的轉換

    【干貨】什么是Node-RED?一文帶你了解!

    一什么是Node-RED?首先我們來認識一下什么是Node-RED。Node-RED是一個基于Node.js的開源可視化編程工具,于2013年由IBM公司推出。它可以通過瀏覽器的圖形化
    的頭像 發(fā)表于 03-13 19:32 ?464次閱讀
    【干貨】什么是<b class='flag-5'>Node-RED</b>?一文帶你了解!

    【教程】Node-REDChirpstack節(jié)點使用指南

    物聯(lián)網(wǎng)應用開發(fā),LoRaWAN技術因其低功耗、遠距離傳輸?shù)忍攸c而備受關注。Chirpstack作為最流行的LoRaWAN服務器之一,與Node-RED的集成為我們提供了強大的物聯(lián)網(wǎng)應用開發(fā)能力
    的頭像 發(fā)表于 03-27 19:33 ?368次閱讀
    【教程】<b class='flag-5'>Node-RED</b><b class='flag-5'>中</b>Chirpstack節(jié)點使用指南