前提・実現したいこと
オフラインのラズパイから、Microsoft Teamsやメールで通知を出したいです。
ラズパイを用いてセンシングしている値について、異常値が出た際に作業者に通知が来るようにしたいです。
ただし、社内ではルール作りが済んでいないため、ラズパイをインターネットに繋げることができません。
試したこと
ルータを設置して、オフラインのラズパイと、オンラインのPCとをWi-Fiで繋げています。
また、ラズパイにNode-Redを入れて、サーバとしています。
ここで、PowerAutomateの機能を使って、HTTP要求があった際に、teamsに連絡が来るようにしました。
この要求は、フロー内でhttp requestを用いて出しています。
ところが、ラズパイはオフラインであるためHTTP要求が失敗してしまいます。
[20210409追記]
ですので、いったんPC側でラズパイの測定結果を受け取り、条件によってPC側から通知を出す仕組みに変更しました。
そのため、PC側にはdockerを使って、node-redの環境を作りました。
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red
とすることで、ポートマッピングをしました
また、ラズパイ側では以下のようにして、圧力の測定結果を表示できるようにしました。
ブラウザの検索欄に「~/rasp」と入力することで、圧力の測定結果を表示できました。
ここで試しに、PC側のnode-red上で、ラズパイの圧力値を表示させようとすると、タイムアウトしてしまいました。
また、PCの同じフロー内でテキストを表示させるためのノードをつくって(下図の上半分)、それを要求すると表示できました。
そこで、dockerのプロキシ設定の中で、bypassさせるipアドレスにPCのIPアドレスと、ラズパイのIPアドレスを加えてイメージを作り直しましたが、それでもタイムアウトしてしまいました。
PC側からラズパイへpingは通りました。
また、docker desktopのCLIからラズパイへのpingも通りました。
noderedのフロー上でのみ、ラズパイとの通信がうまくいっていない状態です。
対処法はないでしょうか。
回答1件
あなたの回答
tips
プレビュー