Falconの思うままに

PASCAL好きが、気ままにマニアックなネタを

OpenPLCをCloud上ARMサーバーへ入れる

OpenPLCをOCI CloudのARMサーバーへ入れます。

Dockerで入れる手もあるようですが、あまり詳しい情報がない。

 

という訳で、LXD一択です。

LXDなら環境を汚さず試せます。

OpenPLCの管理画面は8080ポートで立ち上がるので

LXDで受けておけば8080をホスト側で自由なポートへ割付できます。

これができるおかげでサービス重複がありません。

Reverse ProxyでVPN側のIPアドレスへ転送するとみごと

VPN内だけしか公開せずにサービスが立ち上がりました。

 

さすがOCIのARM 24G サーバーです。コンパイルが本当に

あっという間に終わりました。ラズパイは1時間弱でした。

サービス立ち上げが本当に10分足らずです。

インフラ屋の修行を2年やっていたおかげです(笑)

 

OpenPLC + MODBUS + Python + NodeRedで実用的な

サービスを立ち上げます!!!

 

お試しあれ。

 

WSLでLinux(ubuntu)

WSLを入れました。というかコマンド一発で入ります。

もうだいぶ触ってはいるんですがね。

 

前よりだいぶ便利になりました。(ありがとうMicrosoft)

Ubuntu 20.04LTSが入りました。

馴染みがありますね。

前の記事のPowerShellもそうですが、Windows Terminalを入れれば

快適になります。

BOW (知ってますか?)とか昔から私もWindows上のLinuxは興味があってずっと

追いかけていました。 

もう25年ぐらい経ちますかね。

 

またGUIソフトがWindows11でサポートされているらしい。

う~ん 欲しい(笑)

 

とりあえずはCLIで頑張ります。

 

だんだんWindowsLinuxによってきてくれていて、親和性が

高くなっています。うれしいことです。

外部からSSHできるのかな? まだやってないが、できるのでしょう。

楽しみが多くて、大変だ~~~

 

 

 

 

 

 

 

 

 

PowerShellを管理者で起動

さて、たわいもない話ですが備忘録です。

 

PowerShell使ってますか?

管理者として起動するときメニューから管理者用のショートカットを

探して選んで起動してましたが面倒です。(笑)

メニューが長いのと、マウス使わないといけないんで.....おい。

 

という訳でコマンドの実行は[windows]キー+Rなわけですが使ってます?

 

これでPowerShellと打って実行すると通常ユーザーのPowerShell

起動しますので、このPowerShell上で

> Start-Process PowerShell.exe -Verb runas

とすると管理者のPowerShellが起動してきます。

-Verbって何状態ですが、とにかく管理者権限で起動してきますよ。

メニューから選べばいいじゃん....っていうと話が終わるので

これも覚えておくといいですね。

これしらなくて、ちょっともどかしかったのですっきりです。

あ、何でこんなところに興味持ったかというと

WSLインストールする為です。

Windows 上でLinux環境を構築する最終回答ですな。

 

ある界隈では盛り上がっているはず....

興味もったら調べてみてくださいね。

WSLもPowerShellも奥が深いです。

 

 

 

 

 

 

TWILITEで洗濯検知(その4)

洗濯検知ですが、TWILITE CUEの送信間隔を1分にしました。

電池節約の為ですね。1年は持つかな。

電池残量も見ているので、交換警告も出せますね。

 

蓋を閉めているほうが、電波感度がいいという(笑)

アンテナの位置関係なのでしょうかね。

 

それでラズパイで監視の体制をとります。

 

結局、洗濯機の扉の内側にガムテープ止めです。(汗)

電池交換ありますからね。 

ケースの4面の蓋の部分を養生テープで貼り、防水とします。

 

蓋は洗濯物を出し入れするのに必ず動作しますので、

これで検知します。 

CUEの姿勢が開閉で変わります。

なので、蓋が開いているか、閉まっているかがわかります。

開け閉め時にMOVEイベントが通知されます。

これをNodeRedで受信して、アプリを構築します。

 

条件はいろいろ考えられますね。  

朝、洗濯があるかどうかを夜のセット状態を見て

朝、定時に取り出していなければ室内のスピーカーで

洗濯を干すようにしゃべらせます。

取り出され検知したら、アナウンスは中止です。

 

これでいけるかな。

ロジックはラダーで組みたいので、OpenPLCをいれますか。

 

MODBUS,OpenPLCあたりのキーワードになります。

 

TWILITEで洗濯検知(その3)

TWILITEとまだ格闘しています。

 

やっと見えてきて、加速度検知はあきらめようと(笑)

イベントというカテゴリーで振動したよを通知してくれるみたい。

何もないと、サイコロの目(立方体の面)を通知してきます。

 

これでいこうかと。 TWILITEはイベントの他に

自分の電池の電圧と、電波状態を送ってきてくれます。

電波状態は役に立ちまして、「やや悪い」状態で返ってきます。

壁2枚通していますからね。

受信機の位置を調整したりすればいいのかと思いますが、

とりあえず定期送信してくるので、まあいいかと。

 

データはINFLUXDBに入れておけば、あとが楽ですね。

Grafanaで可視化してみたのですが、温度センサの温度ログが

8か月くらいありまして、グラフにしたら、冬、春、夏と

だいたいの傾向がはっきり記録されています。

 

ただエアコンをつけてしまうので、手が加わっているので

室外の温度変化を長期観測したいなと思っています。

TWILITEに温度センサ付きがあるので、それを買って

夢の室外稼働させたいなと。

 

TWILITEのくせがわかってきたので、見えてきました。

夢は自宅の監視システムです。

 

お金をかけずに遠隔監視をしたくて、TWILITEより長距離通信

なLoRaを物色していたのですが、送信データバイトが

本当に少ないみたい。(11Byte?) 

これだとちょっとなんでやっぱり、PovoのSIMを買って

携帯会社の力を借りようかと。

 

低速ですが、最低限の維持費で遠隔監視できそうです。

 

ではでは。

 

 

 

 

 

 

 

TWILITEで洗濯検知(その2)

さて、TWILITEからNodeRedで受信するのが一番楽なので、それで

いこうと「Serial-In」ノードを貼ったのですが、受信してこない。

なんでかなあ~~~。くやしい。

Minicomでは受信しているのでデータはきているのに。

ちなみにMinicomをさくっと持ってくるところは、年取っているせいですね。

あ、Linux上の通信ソフトですよ。

WindowsTeraterm持ってくるのと同じ感覚で持ってきてください。

便利ですよ。

今時Minicomの存在を知っている人あまりいないのでは。

Pythonで受信してみたくらいが多いのかと。

私は職業がらRS-232C通信は標準知識ですので、何の抵抗もないですが、

BaudRateって何? の方は多いかと。

というのはちょっと前に同業のエンジニアの方から、今時はSocket通信はできるが

RS232Cなんて若い子はやってくれないんですよ~~~

などという衝撃的な事実を聞いたからです。

そうなんだ~ パソコン通信でモデムからデータ受信してBBS見ていたんだよ

という話は何自慢なんだ~~~らしい。

 

話はそれましたが、Minicomで動くのにNodeRed受信しないのはおかしいので

ふとみるとMinicomはBaudRateが115200bpsだがNodeRedはそうしてない。

いや、USBのシリアルってBaudRate適当で通信するという頭があったので

そうしたのですが、違うらしい。Minicomは115200bpsを自動検出したのかな?

それともたまたまデフォルトが合っていたのか。

Monostick側にはBaudRate設定はありますので、私が悪いんでしょう。

 

という訳で、受信してきたのでしめたもの。

加速度の部分を切り出して、とりあえずグラフへ突っ込んでおきます。

洗濯機稼動でどういう波形になるのかチェックして、トリガ条件を

決めます。

 

InfluxDBへ突っ込んでおきましょう。

 

NodeRed便利だな。

 

なんでTWILITEなのかですが、洗濯機はベランダにあります。

そう有線にすると窓を通さないといけない訳です。

つまり屋外で何かをやるには面倒なことが多い訳です。

そこで電池が持って、センサがついている物

ということでTWILITEになりました。

ラズパイやArduinoでもできそうですが、電源事情と環境が

駄目なわけです。

ちなみに洗濯機のカバーの内側に無線タグを貼ってあるので

いちおう防水対策になっています。(笑)

さすがに水にぬらしてはだめですね。

 

プラスチックのタッパに入れて屋外温度を計ろうかなとも

思っています。電池は定期交換前提ですので簡単に交換できますし。

 

TWILITE,ARDUINO,RasberryPiと連携してOCI Cloudも使います。

楽しいな~

 

ではでは。

 

 

 

 

 

 

 

 

TWILITEで選択検知(その1)

さて、本日はTWILITE CUEと格闘していました。

 

ググるとわかりますが、無線タグと受信器MONOSTICKのセットで

無線タグ(四角い箱入りチップ)が定期的に状態を送信して

くれて、それを受信して文字列を解析することで

無線タグ側の変化がわかるというわけです。

 

それで振動センサがついているので、洗濯機の動作を

検知しようと思いました。

 

洗濯が朝あるかどうかを検知する為です。

(すごい現実的ですが)

 

無線タグは電池駆動でかなり持ちます。

これさえうごけばMONOSTICKというUSBタイプの受信機

をラズパイにさしてシリアル通信すれば言い訳ですが

SDKがラズパイ用があるということで、インストールしたが

動かない。 なんでだろうと思ったのですが

やっと気づいて、うちのラズパイ64bitのUbuntuだった!!!

32bitのコンパイルイメージのようです。

ということで設定はWindowsで行います。

でもMonistickは/dev/ttyUSB0 で普通に認識してくれて

いるので、シリアル通信すればいいということがわかりました。

minicomをいれて、確認したら受信しています。

 

ということでいけそうな感じですので、受信プログラムを

作ればOKです。

 

何でつくろうかなあ。

部屋を1つはさんだ壁向こうですが、電波は届いています。

ちょっと心配しましたが。

USBのスティックをを縦にしないといけなくて

直角にするL型アダプタがあったので差したら、

まさかの逆Lで下を向いてしまう.......

机に刺さる形ですな。

下に箱おいて、回避しました。(笑)

 

今日はここまで。