Upgrade to Pro — share decks privately, control downloads, hide ads and more …

製造業IoTのためのNode-REDカスタムノード開発 #noderedjp #nodered / Developing Industrial IoT Node-RED custom node

製造業IoTのためのNode-REDカスタムノード開発 #noderedjp #nodered / Developing Industrial IoT Node-RED custom node

#noderedjp #nodered
Node-RED Con Tokyo 2020 Track B 登壇資料です。
----------------------------------------
産業オートメーションフォーラムが推進する製造現場向けクラウドサービス「ia-cloud」の活動に利用される、製造業の製造現場で使用されるセンサーと計測制御機器をつなぐカスタムノードの開発をご紹介します。
中小企業の生産現場でITに詳しい人が常にいるわけではありません。このような状況の中、実際の生産現場に携わる人々がNode-REDを利用することで、コードなしで製造業のIoTアプリケーションを作れるというコンセプトのワークショップも開催しています。そこで使用されるフィールドのセンサーノードとダッシュボードノードを開発するためのいくつかのアイデアを紹介します。

Ryoichi Obara

October 10, 2020
Tweet

More Decks by Ryoichi Obara

Other Decks in Technology

Transcript

  1. 製造業IoTのための Node-REDカスタムノード開発 2020/10/10 Node-RED Con Tokyo 2020 ◆ 小原 亮一

    @ryoichi_obara ◇ 株式会社エス・ジー 成岡 雅 2020/10/10 © ia-cloudプロジェクト
  2. • Automation Junkie • 中小SIer (製造業向け) の IoT / クラウド

    • 好きなNode-REDノード: • クラフトビール消費量: 600+ [杯/年] @ryoichi_obara 2020/10/10 © ia-cloudプロジェクト 4
  3. • addWidget(option) optionの中身(JavaScriptオブジェクト) ウィジェット定義用API 2020/10/1 © ia-cloudプロジェクト 35 オプション名 説明

    node 制御ノード format ウィジェットのHTMLコード *テンプレートウィジェットと同じHTMLを受け入れる group ウィジェットが属するグループノードオブジェクト width ウィジェットの幅 heigth ウィジェットの高さ order グループのorder templateScope ウィジェットのスコープ(global/local) EmmitOnlyNewValues 変更された場合はメッセージを送信する(true/false) forwardInputMessages 入力メッセージを出力に転送する(true/false) storeFrontEndInputAsState 受信したメッセージを保存する(true/false)
  4. • addWidget(option) optionの中身(JavaScriptオブジェクト) ウィジェット定義用API 2020/10/1 © ia-cloudプロジェクト 36 オプション名 説明

    convert 値をフロントエンドに変換するためのコール バック beforeEmit メッセージを準備するためのコールバック convertBack 送信されたメッセージを変換するためのコール バック beforeSend メッセージを準備するためのコールバック initController コントローラで初期化するコールバック
  5. package.jsonを見ると・・・ 2020/10/1 © ia-cloudプロジェクト 39 "chart.js": "~2.3.0", "d3": "^3.5.17", "font-awesome":

    "^4.7.0", "jquery": "~3.5.1", : "jshint": "~2.12.0", "justgage": "~1.4.0", "less": "~3.9.0", "material-design-icons-iconfont": "~6.1.0", "moment": "~2.27.0", "sprintf-js": "^1.1.2", "streamqueue": "~1.1.2", "svg-morpheus": "^0.3.0", "tinycolor2": "^1.4.1", "weather-icons-lite": "^1.3.1“ } : : "dependencies": { "compression": "^1.7.4", "gridstack": "^0.6.4", "serve-static": "^1.14.1", "socket.io": "^2.3.0" }, "devDependencies": { "angular": "~1.8.0", "angular-animate": "~1.8.0", "angular-aria": "~1.8.0", "angular-chart.js": "^1.1.1", "angular-material": "~1.1.26", "angular-material-icons": "^0.7.1", "angular-messages": "~1.8.0", "angular-mocks": "~1.8.0", "angular-route": "~1.8.0", "angular-sanitize": "~1.8.0", "angular-touch": "~1.8.0", "angularjs-color-picker": "^3.4.8",
  6. package.jsonを見ると・・・ 2020/10/1 © ia-cloudプロジェクト 40 "chart.js": "~2.3.0", "d3": "^3.5.17", "font-awesome":

    "^4.7.0", "jquery": "~3.5.1", : "jshint": "~2.12.0", "justgage": "~1.4.0", "less": "~3.9.0", "material-design-icons-iconfont": "~6.1.0", "moment": "~2.27.0", "sprintf-js": "^1.1.2", "streamqueue": "~1.1.2", "svg-morpheus": "^0.3.0", "tinycolor2": "^1.4.1", "weather-icons-lite": "^1.3.1“ } : : "dependencies": { "compression": "^1.7.4", "gridstack": "^0.6.4", "serve-static": "^1.14.1", "socket.io": "^2.3.0" }, "devDependencies": { "angular": "~1.8.0", "angular-animate": "~1.8.0", "angular-aria": "~1.8.0", "angular-chart.js": "^1.1.1", "angular-material": "~1.1.26", "angular-material-icons": "^0.7.1", "angular-messages": "~1.8.0", "angular-mocks": "~1.8.0", "angular-route": "~1.8.0", "angular-sanitize": "~1.8.0", "angular-touch": "~1.8.0", "angularjs-color-picker": "^3.4.8", AngularJSベースで 組まれている JQueryもある
  7. package.jsonを見ると・・・ 2020/10/1 © ia-cloudプロジェクト 41 "chart.js": "~2.3.0", "d3": "^3.5.17", "font-awesome":

    "^4.7.0", "jquery": "~3.5.1", : "jshint": "~2.12.0", "justgage": "~1.4.0", "less": "~3.9.0", "material-design-icons-iconfont": "~6.1.0", "moment": "~2.27.0", "sprintf-js": "^1.1.2", "streamqueue": "~1.1.2", "svg-morpheus": "^0.3.0", "tinycolor2": "^1.4.1", "weather-icons-lite": "^1.3.1“ } : : "dependencies": { "compression": "^1.7.4", "gridstack": "^0.6.4", "serve-static": "^1.14.1", "socket.io": "^2.3.0" }, "devDependencies": { "angular": "~1.8.0", "angular-animate": "~1.8.0", "angular-aria": "~1.8.0", "angular-chart.js": "^1.1.1", "angular-material": "~1.1.26", "angular-material-icons": "^0.7.1", "angular-messages": "~1.8.0", "angular-mocks": "~1.8.0", "angular-route": "~1.8.0", "angular-sanitize": "~1.8.0", "angular-touch": "~1.8.0", "angularjs-color-picker": "^3.4.8", 有名なグラフ 描画用ライブラリ
  8. package.jsonを見ると・・・ 2020/10/1 © ia-cloudプロジェクト 42 "chart.js": "~2.3.0", "d3": "^3.5.17", "font-awesome":

    "^4.7.0", "jquery": "~3.5.1", : "jshint": "~2.12.0", "justgage": "~1.4.0", "less": "~3.9.0", "material-design-icons-iconfont": "~6.1.0", "moment": "~2.27.0", "sprintf-js": "^1.1.2", "streamqueue": "~1.1.2", "svg-morpheus": "^0.3.0", "tinycolor2": "^1.4.1", "weather-icons-lite": "^1.3.1“ } : : "dependencies": { "compression": "^1.7.4", "gridstack": "^0.6.4", "serve-static": "^1.14.1", "socket.io": "^2.3.0" }, "devDependencies": { "angular": "~1.8.0", "angular-animate": "~1.8.0", "angular-aria": "~1.8.0", "angular-chart.js": "^1.1.1", "angular-material": "~1.1.26", "angular-material-icons": "^0.7.1", "angular-messages": "~1.8.0", "angular-mocks": "~1.8.0", "angular-route": "~1.8.0", "angular-sanitize": "~1.8.0", "angular-touch": "~1.8.0", "angularjs-color-picker": "^3.4.8", その他ウィジェット作成 に使用できるモジュール