怎么用NodeRed实现树莓派与阿里云物联网平台通信?

Node-RED是构建物联网(IoT)应用程序的强大工具,它使用可视化的编程方法,允许开发人员将预定义的代码块(称为“节点”)连接在一起以执行任务。

当预定义的代码块连接在一起时,通常由输入节点,处理节点和输出节点组成的连接节点构成一个“流”。

RevPi Core模块已经内置Node-RED运行环境,本文将介绍基于Node-RED如何实现RevPi Core模块与阿里云物联网平台的通信。

01 启动Node-RED

RevPi Core模块已经搭建好了Node-RED运行环境,并且额外包含适用于RevPi设备的节点,无需额外安装软件,直接启动运行即可。

首先通过putty远程连接RevPi,输入以下命令以启动Node-RED:sudo node-red-start。

等待Node-RED启动后,通过在浏览器中输入 RevPi的IP:1880进入Node-RED界面。
ここに画像の説明を挿入
可以通过命令sudo systemctl enable nodered.service设置Node-RED的开机自启动。

02 配置阿里云物联网平台

在物联网平台控制台点击设备管理->产品->创建产品:
ここに画像の説明を挿入
安装下图所示配置产品:
ここに画像の説明を挿入
点击保存,并前往添加设备:
ここに画像の説明を挿入
输入设备名称,可以自行选择,这里设定的是RevPi:
ここに画像の説明を挿入
点击确认,并前往查看设备信息:
ここに画像の説明を挿入
暂时不要关闭此设备信息页面,稍后还需要此页面的相关信息。

03 创建Node-RED流

这里将采用MQTT通信方式与阿里云物联网平台进行通信。首先建立如下图所示流:
ここに画像の説明を挿入
时间戳(即inject节点)在这里仅起到触发作用,无需设置。

execノードはシステムコマンドを実行できます。この記事では、execノードを使用してRevPiのCPU温度を収集し、クラウドプラットフォームにアップロードします。以下に示すように、execノードを構成します。

コマンドボックスに、/ usr / bin / vcgencmd measure_tempと入力します。
ここに画像の説明を挿入

04 mqtt outノードのパラメーター設定

mqtt出力ノードの構成については、Alibaba Cloud Internet of Thingsプラットフォームのドキュメント「MQTT.fxを使用してInternet of Thingsプラットフォームにアクセスする」を参照してください。このドキュメントではMQTT.fxソフトウェアを使用していますが、構成パラメーターは基本的に同じです。

クリックして新しいmqtt-brokerノードを追加し、ノード名を自分で設定します。この例では、AliIOTに設定します。
ここに画像の説明を挿入
構成する必要のあるパラメーターには、接続とプロパティが含まれます。順に見ていきましょう:
ここに画像の説明を挿入
ここに画像の説明を挿入
サーバー
公式ドキュメントによると、ブローカーのアドレス形式は
$ {YourProductKey} .iot-as-mqtt。$ {YourRegionId} .aliyuncs.comです。

上記のProductKeyはデバイス情報にあり、RegionIdは次のURLを参照できます。https://help.aliyun.com/document_detail/40654.html?spm = a2c4g.11186623.2.19.3d1b5800pRBtd2#concept-h4v-j5k-xdb
完全な例:
a1A96I6bXvh.iot-as-mqtt.cn-shanghai.aliyuncs.com、
ポートとして1883を選択します。

クライアント
ID クライアント IDの形式は、
$ {clientId} | securemode = 3、signmethod = hmacsha1 |です。

  • clientIdはユーザーが設定でき、長さは64文字以内です。この例では、RevPiNodeREDに設定されています。
  • Securemodeはセキュアモードで、TCP直接接続モードはsecuremode = 3に設定され、TLS直接接続はsecuremode = 2に設定されます。この例では、セキュリティモードを3に選択します。
  • Signmethodは、hmacmd5とhmacsha1をサポートするアルゴリズムタイプです。この例では、hmacsha1が選択されています。
    完全な例:
    RevPiNodeRED | securemode = 3、signmethod = hmacsha1 |

ユーザー名とパスワードユーザー名
の形式は、
$ {YourDeviceName}&$ {YourProductKey}です。
DeviceNameとProductKeyはどちらもデバイス情報に記載されています。適宜入力してください。
完全な例:デバイス情報の暗号化操作に基づいて、
RevPi&a1A96I6bXvh
パスワードを生成する必要があります。パスワードを使用して小さなツールを生成し、アドレス

ダウンロードすることができます。
次の図に示すように、関連情報を正確に入力し、タイムスタンプを省略して、[生成]をクリックしてパスワードを生成します。
ここに画像の説明を挿入
また、手動でパスワードを生成することもできます詳細については、Alibaba Cloud IoTプラットフォームの公式ドキュメントを参照してください。

トピック
上記のブローカー関連情報を入力して、[追加]をクリックします。[
ここに画像の説明を挿入
トピック]は、[製品] -> [テスト]-> [トピッククラスリスト]-> [カスタムトピック]で選択して、公開権限を持つトピックを選択し、デバイス名に応じて変更
ここに画像の説明を挿入
できます。もちろん、公開権限でトピックをカスタマイズします。この例で使用されている件名は次のとおりです:
/ a1A96I6bXvh / RevPi / user / update
mqtt outノードのQoSおよび保持オプションの設定は自分で選択できます。構成が完了したら、[完了]をクリックします。次に、[デプロイ]ボタンをクリックして、このプロセスをデバイスにデプロイして実行します。

05コミュニケーションテスト

展開が完了すると、mqtt outノードは通常の状況では「接続済み」と表示されます。「接続されていない」または「接続中」の場合は、関連する構成が間違っていないか確認してください。
ここに画像の説明を挿入
タイムスタンプをクリックしてプロセスをトリガーし、温度情報をクラウドプラットフォームにアップロードします。
受信した温度情報は、Alibaba Cloud IoTプラットフォームコンソールの操作とメンテナンスの監視->ログサービスでテスト製品を選択することにより、クラウド操作ログで確認できます。
ここに画像の説明を挿入
ここに画像の説明を挿入
もちろん、サブスクリプション権限のあるトピックを介してクラウドプラットフォームからRevPiに情報を送信することもできます。これに興味がある場合は、公式マニュアルに従って実装方法を自分で探索できます。

おすすめ

転載: blog.csdn.net/Hongke_IIOT/article/details/108746327