在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

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

(以下來源成都縱橫智控公眾號授權(quán)更多可見-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ù)采集此處不做過多贅述,可參考其他案例介紹。下文默認(rèn)已經(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ù)庫按照默認(rèn)的配置即可無需修改

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能控制的設(shè)備

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é)點構(gòu)造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ù)封裝成對應(yīng)的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ù)添加,必須轉(zhuǎn)化成字符串
    };
    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)關(guān)SN

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

密碼:EG87654321

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

wKgZomZ-co2AC7gLAAGYf4IaLNw616.png

-總結(jié)

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

-注意

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

審核編輯 黃宇

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

    關(guān)注

    13

    文章

    4463

    瀏覽量

    86883
  • node
    +關(guān)注

    關(guān)注

    0

    文章

    24

    瀏覽量

    6069
  • ModbusTCP
    +關(guān)注

    關(guān)注

    0

    文章

    154

    瀏覽量

    4704
收藏 人收藏

    評論

    相關(guān)推薦

    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 ?3222次閱讀
    <b class='flag-5'>Node-RED</b>實現(xiàn)電表數(shù)據(jù)<b class='flag-5'>采集</b>并上云

    Node-Red是什么?如何去學(xué)習(xí)Node-Red

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

    新手求助如何去學(xué)習(xí)Node-Red

    如何去學(xué)習(xí)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 ?6864次閱讀

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

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

    Raspberry Pi利用Node-RED控制LED

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

    Node-REDARM嵌入式工控機上的應(yīng)用

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

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

    通過Node-red實現(xiàn)打開電腦自帶的攝像頭或者USB攝像頭
    的頭像 發(fā)表于 06-01 06:50 ?5805次閱讀
    <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 ?0次下載
    物聯(lián)網(wǎng)與ESP32、<b class='flag-5'>Node-RED</b>和<b class='flag-5'>InfluxDB</b>與WebSocket

    Node-RED安裝本地教程

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

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

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

    Node-RED初學(xué)者教程-三分鐘學(xué)習(xí)

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

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

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

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

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

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

    物聯(lián)網(wǎng)應(yīng)用開發(fā),LoRaWAN技術(shù)因其低功耗、遠距離傳輸?shù)忍攸c而備受關(guān)注。Chirpstack作為最流行的LoRaWAN服務(wù)器之一,與Node-RED的集成為我們提供了強大的物聯(lián)網(wǎng)應(yīng)用開發(fā)能力
    的頭像 發(fā)表于 03-27 19:33 ?360次閱讀
    【教程】<b class='flag-5'>Node-RED</b><b class='flag-5'>中</b>Chirpstack節(jié)點使用指南
    主站蜘蛛池模板: 国产三级精品在线观看 | 亚洲一区二区三区中文字幕5566 | 国产午夜精品久久久久免费视 | 免费观看午夜在线欧差毛片 | 国产va免费精品高清在线观看 | 成视频年人黄网站免费视频 | 小雪被老外黑人撑破了视频 | 三级免费黄录像 | 羞羞色院91精品网站 | 午夜视频精品 | 国产三级视频 | 在线观看亚洲一区 | 国产三及| 国产黄色网 | 午夜宅男视频 | 性xxx无遮挡 | 婷婷色在线播放 | 亚洲综合色丁香婷婷六月图片 | 国产亚洲综合精品一区二区三区 | 天堂网在线.www天堂在线 | 亚州人成网在线播放 | 天天躁夜夜躁狠狠躁2021 | 伊人久久成人爱综合网 | 国产一区二区三区在线影院 | 2021国产精品久久 | 欧洲精品不卡1卡2卡三卡四卡 | 久久香蕉国产线看观看精品yw | 日本一区二区三区不卡在线视频 | 四虎永久在线精品国产免费 | 欧美高清免费一级在线 | 色婷婷视频 | 97色资源| 男女交性动态免费视频 | 性刺激的欧美三级视频 | 五月六月激情 | 三浦理惠子中文在 | 又粗又长又爽又长黄免费视频 | 狠狠色丁香婷婷 | 一级片免费观看视频 | 在线视频人人视频www | 四虎影视4hu4虎成人 |