定型業務完全自動化のすゝめ

定型業務自動化のキーツール「ipaSロボ」+他ツールで、納期内成果物生成 必達を目指す!

Arduinoでソレノイドロックの施錠ON/OFF

【目的】

会社のパソコンには、セキュリティ上「持ち出し制限」の為「ケンジントンロック」が取り付けられている。

席の移動や会議室への持ち運びの度に、事前に申請書を提出し、当日は担当者が来るのを、今か今かと待ちわびる事が、いやー大変だ。

そこで、

1.担当者が現場に出向くことなく

2.申請した日時に解錠/施錠される

3.セキュリティ上、解錠されている時間は5分程度(管理者側で任意に設定可能)

といった製品を先ずは自作で作ってみる。

 

【購入機材】

1.Arduino Uno Rev3 ATmega328 マイコンボード A000066 (Amazon
2.Arduino イーサネットシールド2(Amazon
3.5V用 電気ロック 電磁ロック ソレノイドロック(Amazon

計7,810円

 

【PCに開発環境セットアップ】

1.以下のサイトを参考にセットアップ

www.kkaneko.jp

 

2.以下を参考にLEDランプをチカチカ

Arduino IDEのインストールからLED点滅まで│FABSHOP.JP -デジタルでものづくり! ファブショップ !

はじめに

現在、社内SEとして

LAMP環境を構築し、社内データを一元的に集約し(MySQL

レポート動的に提供(PHP+Highcharts.js)する事

を主たる業務としている。

 

一方で、事業化を目指し

IoTセンシングデバイスを使った「見守りサービス」を目論んできた。

 

その時々の技術を受け

どう事業(サービス)を創造・変革していくのか、いけばよかったのか

を「ふりかえる場」が当ブログだ。

 

2000年当時

ストリーミング技術を使った「ストリーミングサーバー」、あったなぁ~。

その前後、ライブカメラで観光地の生配信。したなぁ~。

後先考えず、突っ走ってた。後悔先に立たず、の心境。

 

迷惑をかけた事を無かった事にして欲しい、と厚かましい考えはない。

もう一度チャレンジとも思わない。今の会社で一旗あげたいという思いもない。

結局は、自己満足。


余生を楽しむための準備としても、今は振り返るタイミングだ!

 

 

IoTデバイスを使った自動情報収集

わたしは、株式会社ティアンドデイ (英文: T&D Corporation)の

「おんどとりシリーズ」が大好きだ。

温度、湿度、大気圧、照度/UV、二酸化炭素濃度、電圧、電流、パルス数

が測定できる。

接点出力もあり、簡易的計測制御システムも可能だからだ。

さらに

測定データは、中継器を使って、クラウド上(私的なスペースも可)にFTP転送してくれる。

 

でも、結構お高くつく印象なのだなぁ。

 

そこで マイコンボードの「Arduino(アルディーノがしっくりくるなぁ)」がある。

センサーをつなげて、一定間隔で、POSTするといったものができる。

I/O接点もあるので、「おんどとりシリーズ」のようにシステムが組める。

でも接続するセンサーの信頼性・補正がネックになる印象だ。

 

詳細は、「計測制御自動化のツボ」で広げていきたいと思う

 

 

 

アクセス先にAPIがあるんだったら...

スクレイピングによる情報収集 と
ipaSロボによる画像認識&要素取得

...画面レイアウト、デザインが変更となると、

せっかく自動化を実現していた プログラム、スクリプト

アップデートする必要がでてくる。

 

先日も、1週間に1回、デザイン、仕様が変更されるサイトの

自動化に振り回されたところだ。

「こりゃ、自動化の意味ないわぁ~」「やってられん!」

 

調べてみると、

「(アクセス先に)APIが用意されているではないか!」

となり、早速、検証用PCにPython環境のセットアップ!

 

会社の環境だと、プロキシサーバーの設定やURLフィルタリングの影響で

なかなかハードルが高いが、

自宅のネット環境で、いざやってみたところ...

 

いやー、楽チン!これでデザイン変更に振り回されなくて、済むわ^^/

 

続きは、「Python自動化のツボ」で広げていきたいと思う。

 

 

 

 

 

ipaSロボからコマンドプロンプト実行時のツボ

本題に入る前に...

例えば、 メモ帳アプリを起動するために BATファイルに以下記述する。

call notepad.exe

このままだと、コマンドプロンプトのウィンドウが残ってしまう。

f:id:kinokokko2001:20210131094556p:plain

残らないようにするには BATファイルの記述内容を

call notepad.exe & exit

のように、exit を追記。「&」は、コマンドの連結だ。

実行してみると、ウィンドウが残らないことが確認できる。

 

これを踏まえて...

 

ipaSロボから

  1. コマンドプロンプトを開く
  2. BATファイル名を、文字列入力スクリプトコマンドプロンプトに打ち込む
  3. Enterキーをコマンドプロンプトにキー送信する

といった手順を踏む場合

上記2.の手順のところを

コマンドプロンプト側が受け取らないケースが 、よくある。

 

「よくある」ではなく頻繁に発生する。

 

その回避方法として

画像認識で、↓画像赤枠内

f:id:kinokokko2001:20210131100132p:plain

が「消えるまで繰り返す」というロジックに変更することで

完全、確実に、BATファイルが実行される。

 

この部分で、エラートラップが発生する事は、なくなった。

 

 

 

 

PC環境を整える(Chrome)

RPAでブラウザUIを操作する機会は多いかな。

将来的にInternet Explorerはサポートが無くなるので

わたしは、Google Chromeスクリプトを組むことにしている。

 

しかし、Chromeは、ほぼ勝手にバージョンアップを行う。

その時、ipaSロボで使うChromeDriverも更新してくれると良いのだが

ここは、自分でアップデートする必要がある。

 

わたしは、開発用PC と 実行用PC を分けており

開発用PCで、ipaSロボの動作確認しOKだったら

実行用PCに、ipspファイル移植 と ChromeDriverのアップデート を実施

するようにしている。

 

実行用PCの方の Chromeバージョンアップが先行してしまえば

今から紹介する方法は、無為かもしれないが

ChromeDriverのバージョンアップも自動化しようという試みだ。

  1. 定期的に、https://chromedriver.chromium.org/downloads からダウンロードし、任意のフォルダに 例:chromedriver_86.0.4240.22.exe という風に名前を付けて保存。
  2. 一方で、BATファイルを用いて、Chromeバージョンをファイルに書き出す。
  3. ipaSロボの中で、2で得たバージョン情報を元に、1のフォルダ内に確保してあるchromedriverファイルを以下のフォルダにコピー。
    C:\Program Files\ipaS\ipaSIDE\lib\selenium\chrome\chromedriver.exe 
    ※元の chromedriver.exe は名前を変更しておき、いざという時の為にとっておく。

大まかな流れは、以上。

 

2.「BATファイルを用いて、Chromeバージョンをファイルに書き出す」には

dir /B /O-N "C:\Program Files\Google\Chrome\Application" > d:\chromeinfo.txt
※パスは Program Files (x86) の場合もあるかも。

とすることで、Dドライブ直下に chromeinfo.txt が作成される。

(ファイルの中身)

SetupMetrics
master_preferences
Dictionaries
chrome_proxy.exe
chrome.VisualElementsManifest.xml
chrome.exe
{バージョン情報}

(以上)

 

ipaSロボをBATで起動

ipaSロボは、コマンドプロンプトから実行可能だ。

"C:\Program Files\ipaS\ipaSIDE\ipaSCLI.exe" -e "{シナリオ名フルパス}.ipsp"

-eオプションは必須で、ほかにも色々オプションがある。

詳細は、製品のドキュメントをご覧あれ。

 

さて、BATファイルの記述が、少し手を加える必要がある。

 

例)ファイル名:sample.bat

rem D:\scenario.ipsp  を パラメータ2個付きで 実行する

call "C:\Program Files\ipaS\ipaSIDE\ipaSCLI.exe" -e "D:\scenario.ipsp" "pram1" "param2" ...

rem そして、コマンドプロンプトを抜ける

exit

 (以上)

しかし

この「sample.bat」を起動すると、ipaSスクリプト実行中に、

コマンドプロンプトのウィンドウが残ってしまう。

なので もう一つ、sample.batをcallするbatファイルを用意する。

例)ファイル名:sample_start.bat

start /MIN {パス}\sample.bat

(以上)

こっちを起動すると、コマンドプロンプトのウィンドウが最小化された上で

sample.bat が実行され、RPAの画像認識処理に影響を及ぼさない。