2022年10月17日月曜日

簡易版のシャトルバス乗車数カウントデバイスを作ってみた

 別件でFeliCaを読み取ってIDを飛ばすデバイスを作っていたので、それをいじって超簡易版のシャトルバス乗車数カウントデバイスを作ってみました。


カードを読み取って、枚数をカウントするだけの簡単なデバイスです。乗車時にタッチでカウントアップ、降車時にタッチでカウントダウンします。カウントアップしたかカウントダウンしたかは音で判別できるようにしています。

電源があれば使えます。何時何分にタッチしたかがわかるようなログ機能や、誰がタッチしたのかがわかる機能など便利な機能は一切搭載されておりません。


2022年5月30日月曜日

DRAGINO の LPS8 で SIMのドングルを使う その2

 前回の記事では DRAGINO の LPS8 に AK-020 のSIMドングルをつけて動作することろまでを確認したんですが、その後問題が発生し結果として AK-020(+SORACOM) は使用できないことがわかりました。

LoRaWAN デバイスから OTAA でアクティベーションするところまでは問題無く動作します。問題はその後です。データ通信は ACK を ON にしていたので、デバイスから GW にデータ送信後、GW からの ACK を受信したいのですがこれが全く返ってきません。

SIMドングル経由ではなく、有線LANでGWを接続した場合は何も問題なくACKが返ってきます。えー、なにこれー、と思っていろいろ調べたんですが原因を特定できず、回線速度が問題じゃないのかくらいの情報を得ることしかできませんでした。ようするに ACK を返すには時間制限があるんですが、それに間に合ってないと。

回線速度かー、確かに AK-020 は 3G だしねー。諸事情により AK-020 が大量に余っていたので使える用途が見つかってやたー、と思っていたところその野望は即座に崩れてしまいました。

仕方なく他の方法を考えます。

まずは別件で使っていたSIM8070Gの開発ボードを使ってみます。しかしながらいろいろ躓いてしまったので記事は後回しにして、別のLTEのSIMドングルを使ってみました。

試したのはこちらのFS040Uです。

仕様を確認すると、Linuxでは RNDIS に対応しているようです。OpenWRTでもRNDISは使えるようです。

Use RNDIS USB Dongle for WAN connection

こちらと下記の DRAGINO Wiki の情報を参照して試していきます。

Debug Cellular connection

FS040Uはとても優秀で、設定をしてあげればその設定で勝手に接続して、あとはRNDISなど通してネットワーク・インターフェースとして使えます。なのでSORACOMの設定をWindowsなどからしてあげます。その後 FS040U を GW に差し込んで認識するかみてみます。(前回でいろいろいじったのでファクトリリセットして最初からやりました)

root@dragino-1dac90:~# lsusb
Bus 001 Device 003: ID 1c9e:f133 OMEGA TECHNOLOGY
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

何か認識してくれています。さらに dmesg で確認すると

rndis_host 1-1.2:1.0 usb0: register 'rndis_host' at usb-ehci-platform-1.2, RNDIS device, ae:08:9a:e7:0b:db

おー、RNDISとして認識している。わーい。ここで DRAGINO Wiki の方の記事にそってコマンド入力します(一部改変してます)。

uci set network.lte=interface
uci set network.lte.proto=dhcp
uci set network.lte.ifname=usb0
uci commit network
uci add_list firewall.@zone[1].network="lte"
uci commit firewall
/etc/init.d/network restart

すると、あ、繋がってるっぽい。PINGも通るぞ。ここでLoRaWANデバイスからの送信。JOINは通った。次、データ送信。あ、ACK返ってきた!とりあえずよかったー

2022/8/2 追記 通常のファームウェアではなく、こちらのファームを使用して行いました。


2022年4月19日火曜日

DRAGINO の LPS8 で SIMのドングルを使う

 前回の記事では、DRAGINO の LPS8 を Azure IoT Hub に接続するところをやったんですが、実はいろいろあって今は AWS IoT の方に接続しております。ちなみに Azure の方は前回の記事のように手こずったんですが、AWS の方は簡単に接続できましたので説明は無しです。

今回は LPS8 に SIM の USBドングルを挿して何とか通信をしたいという内容になります。使用するドングルは AK-020 で SIM は SORACOM を使います。

こちらに先人のありがたい記事が掲載されております。

Dragino社製IoTゲートウェイ LG01-JPを、SORACOM スターターキット(3G USBドングル AK-020)を使ってSORACOM Airに接続する。

Dragino社製IoTゲートウェイ LG01-JPを、SORACOM スターターキット(3G USBドングル AK-020)を使ってSORACOM Airに接続する。その2

今回使用する LPS8 とは異なる機種ですし、のっけからカーネルの更新があるのでちょっと無理そうかなーと思って手を付けていなかったんですが、やってみたら意外といけたので備忘録にしたいと思います。

AK-020 は、USB に挿し込むと CD-ROM として認識され、それをイジェクトすると USBモデムになる仕様になっていますので、まずは USBモデムとして認識されるところまでをやります。

現時点でのファームの最新は lgw-5.4.1644990565 です。LPS8 に AK-020 を挿して SSH で接続し、 lsusb をやると一応デバイスとして認識しているようです。

# lsusb
Bus 001 Device 003: ID 15eb:a403
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

VendorID が 15eb で ProductID が a403 が AK-020 の CD-ROM 側の ID になります。これをイジェクトすると、ProductID がUSBモデムの側の 7d0e に変わります。

で、イジェクトをしたいんですが eject パッケージも入らないのでどうしたもんかと調べてたら usb_modeswitch というこういうときに使うであろうモード切り替え用のパッケージがあったのでこれを使ってみます。が、何とすでにインストールされていました。OpenWRT では設定ファイルは /etc/usb-mode.json だそうです。見てみると確かにあります。ここに周りを参考におもむろに追記してみます。

                "15eb:a403": {
                        "*": {
                                "t_vendor": 5611,
                                "t_product": [ 32104 ],
                                "mode": "StandardEject",
                                "msg": [  ]
                        }
                }

t_vendor と t_product は整数で指定されているので、15eb と 7d0e をそれぞれ10進数にした 5611 と 32104 を指定します。追記後、リブートして再度 lsusb してみると、

# lsusb
Bus 001 Device 003: ID 15eb:7d0e
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

おー!、変わりました。さらに、デバイスをUSBシリアルとして認識してもらうため上記1個目の記事の3番の前半部分をやります(/etc/modules.d/80-usrserial の作成)。

ここまでくれば LPS8 の設定画面でドングルの認識されてるかなと思ったんですが、残念ながら認識してもらえませんでした。


仕方がないので手動で設定します、手順は上記1個目の記事の5番以降になります(ありがたや)。そうすると

キター! (写真じゃわかりませんがドングルの緑が点滅しています。)無事にうまく動作しました。よかった。

2022年3月4日金曜日

高いところのタグを読む

 棚卸しに絶大な効果を発揮するRFIDですが、棚卸しといえばだいたい倉庫みたいなところでやりますよね。大きな倉庫になると何段にも積み上げてあって、手の届かない高いところに読み取り対象物が置かれていたりします。これをハンディリーダで読み取りできるかというのが今回のお題です。

ちょうど某倉庫で読み取り実験をしてほしいというご依頼がありましたので、実際にやってみました。実験した倉庫は天井が5mと高い倉庫で、荷物はパレットに積んでありパレットをそのまま金属フレームの棚に収めるという方式で、棚は3段になっています。

距離計で手をかざしたところから荷物の最上段部分までを測定したところ、おおよそ3mの距離がありました。荷物にタグを簡易的に取り付け、最上段に置いてもらい実際にハンディリーダで読み取りしてみたところ、80%くらいは瞬時に読み取れますが残りはぐるぐるしたりしてようやく読めるといった感じでした。読み取れなくは無いが、ちょっと時間かかるなぁという印象です。

そこで今回はハンディを取り付ける棒を2種類用意しました。

1個目はマイクスタンドの

この部分

ブラスターがすっぽりと取り付けできます(画像は一部ぼかしてあります)。


もう1個はGoPro用の棒と3Dプリンタで作成した治具
これに普通のカメラ用の 1/4UNC のネジ穴がついているUR31を取り付けます(画像は一部ぼかしてあります)。

読み取り風景はこんな感じ(画像は一部ぼかしてあります)。


これで何と、下段に置いてあるときと同じくらいのスピードで読み取ることができました!棒つけただけですけどかなり効果が出ることがわかりました。





2022年1月24日月曜日

MANICAモバイルのアプリにHIDで値を入力する

ニッチすぎる内容ですが、ある案件対応の中で思いついたアイデアを、ちょっと試してみました。


MANICAモバイルで、アプリからICタグの登録を簡単に行う機能があります。


未登録のICタグをスキャンして、カテゴリと名称を入力するだけの手軽さなのですが、ある現場で、この名称登録のところに文字じゃなくて管理番号を入力したいというご要望がありました。


管理対象のパレット(的なもの)に添付した現品票(的なもの)に印刷されている管理番号を、ICタグのユニークIDに紐付けるかたちでのICタグ登録をしたいわけですが、現品票には既に管理番号がバーコードでも印刷されていました。


であれば、管理番号を手入力するよりはバーコードを読んで自動入力したくなりますよね。


MANICAモバイルが対応しているRFIDハンディリーダーの中には、バーコード/2次元コード対応の製品がもちろん存在しています。が、SPP接続のため単純に読み取った内容をキーボード入力するようなことは逆に(?)できないんですね。


カスタマイズすれば出来るんでしょうけど、費用的にもったいないし、あまり複雑な操作フローにするのも避けたいところ。。。


お、もしかして別のスキャナーをHID接続してあげれば、そっちで読み取ったバーコードをシンプルに入力できたりしないだろうか、という案を思いつきました。


1台のAndroidスマートフォンに、RFIDハンディリーダー(SPP)とバーコードスキャナー(HID)と、2台のBluetooth接続から同時に接続を行う構成となります。


実際に使用した機器はこんな感じ。




結論から言うと、まったく問題なく動作しました。



いちおう動画でも残しておきますね。








2022年1月22日土曜日

Amazon Fire HD 10で、MANICAモバイルは動くのか。

こんにちは、久しぶりのBlog投稿です。


今回は、Amazon Fire HD 10でMANICAモバイルは動くのか、というお題となります。


Amazon Fire シリーズといえば、Amazonプライム会員だと何かと便利で、(残念ながらGooglePlayStoreは使えないけど)大変コスパに優れた端末として有名かと思います。


我が家でも昨年の子どもの誕生日にプレゼントしてたりしますが、10インチの大きさで1.5万円程度と破格なうえに、画面の質感とかパフォーマンスあどなど何ら問題なく利用できています。ちなみに、頻繁にセールが行わている機種でもあるので、急がなければ1万円程度での購入も可能ですね。


こんなオトクな機種で、はたして弊社のMANICAモバイルを使用することができるのでしょうか。


MANICAモバイルはRFIDハンディリーダーとの組み合わせで使うのが基本なので、ハンディリーダーにアタッチするニュアンスだとタブレットよりはスマートフォン向けのアプリではあるのですが、Webブラウザで管理画面を確認するという観点ではタブレットのほうが使いやすかったりしますかね。


さて、結論からいうと問題なくお使いいただけるわけですが、apkを直接インストールするため少しだけ設定変更など必要です。


Fire HDをPCとUSB接続してゴニョゴニョできるような方であれば、説明の必要もないかと思いますがもう少し手軽にMANICAモバイルのapkファイルのダウンロードリンク(URL)を、Webブラウザ(デフォルトはSilkブラウザ)からログインしたGmailのアカウントで受け取って、そこからダウンロードみたいな場合、Silkブラウザからダウンロードしたapkファイルのインストールを実行できるように権限の設定を変更します。


まずは設定メニューから、セキュリティとプライバシーを選択します。


次に、不明ソースからのアプリを選択、



ここで、このアプリ提供元を許可、にチェックを入れるだけです。



という感じで、とっても簡単です。インストールして起動すると、いつものMANICAモバイルのメニューです。探索と棚卸しのメニューが画面サイズにあってないですが、使用上の問題はなさそうです。





Silkブラウザで管理画面にアクセスすると、こんな感じで見やすいです。



素敵ですね!




2022年1月20日木曜日

塗料のシールド効果を実験してみた

Amazonなどで、容易に入手できる塗料で、電波のシールド効果を実験してみました。

使用したリーダーとタグ

・BHT-1281QULWB-CE

・ALN-9654(Gタグ)

塗装した容器内にタグを入れ、リーダーのMANICA EXCEL TOOL で電波を最小の出力にして、読み取りの実験を行いました。

ネット検索すると、電磁波シールド効果のある塗料として導電塗料が出てくるのですが、導電塗料以外で、気になる塗料があったので、まずはその塗料で試してみました。


マグネットペイント(ターナー色彩株式会社)Amazon価格:2,090円(税込)

この塗料は、塗るだけで磁石がくっつく下地用塗料です。例えば、チョークボードペイントを上塗りすると、板や室内の壁などにオリジナルの黒板を作成ることができます。

成分には「顔料」としか記載されていませんが、磁石がくっつくという事なので金属性の成分を含んでいると思われます。また、導電塗料では塗れないような材質に塗装できます。

木に塗装できるとのことなので、以下のような、木箱の内側に塗り、タグを中に入れて実験しました。



この塗料は3回重ね塗りするのですが、1回塗る都度に読み取りしてみました。読み取り距離は以下のように変化しました。

未塗装 : 65cm

1回目 : 50cm

2回目 : 35cm

3回目 : 30cm

塗り重ねていくと、読み取りは悪くなっていくのですが、シールドとして使用するのは無理でした。

ちなみに、磁石はくっつきました。


次に、導電塗料で実験しました。

導電塗料は、電流が流れやすいカーボンや金属の粉末を溶かした塗料です。金属が含まれている事から電磁波シールドとしても使用できます。

使用した導電塗料は以下の3種類で、いずれもプラスコート株式会社の「ポリカーム(Polycalm)」という商品のスプレー缶(300ml)になります。


それぞれの塗料の導電性物質と価格は、写真右から以下のとおりです。

①カーボングラファイト Amazon価格:1,870円(税込)

②ニッケル Amazon価格:4,290円(税込)

③銀・銅 Amazon価格:4,620円(税込)

以下のような、材質がポリプロピレン(PP)の容器の外側に塗り、タグを中に入れて実験しました。(写真は銀銅の塗料で塗装)


なお、塗装に慣れてないのため、側面は塗りムラができるなど、うまく塗れなかったので、平で綺麗に塗装できたフタ側より読み取りました。


①カーボングラファイト


この塗料は、発泡スチロールの静電気対策用との事なので、発泡スチロールには直接塗れますが、実験で使用する容器はPPなので、プラスチック用のプライマーを下塗りしてから塗装しました。


読み取り距離は 0 cmでした。フタにリーダーを押し付けるようにしても読み取りませんでした。

しかし、出力を最小から1つ上げると、7 cm の距離で読み取りました。

高いシールド効果を必要としない用途であれば使用できるかもしれません。


②ニッケル


読み取り距離は 0 cmで、出力を最大にしても読み取れませんでした。

なお、抵抗値が小さいほど電磁波シールド性が高くなるとの事で、カーボンよりも効果がありました。

ただし、直接、容器に塗装したのですが、実験後にクラックが発生し、塗装が剥がれてしまいました。カーボンの実験のようにプライマーを下塗りすれば大丈夫かもしれませんが、塗装に関して不安を感じました。


③銀・銅


PPへの塗装は△ですが、直接、容器に塗装しました。


ニッケルと同様、読み取り距離は 0 cmで、出力を最大にしても読み取れませんでした。

塗装に関しては、ニッケルのように剥がれる事はありませんでした。

導電塗料が電磁波シールドの効果があるとの事ですが、実際に試してみると、導電性物質による効果の違いや、塗装の問題点も体感できました。


考察

3つの製品のシールド効果の実験結果は、

銀・銅 ≒ ニッケル > カーボングラファイト

でした。

カーボングラファイトはシールド効果が劣りますが、銀・銅とニッケルは十分な効果がりました。

また、ニッケルの抵抗値は約1Ωで、銀・銅は1Ω以下となっているので、銀・銅の方がシールド性が高いのかもしれません。

価格はカーボンが一番安く、半額以下なのですが、メーカー提示の塗布面積では他の2製品はスプレー缶1本で1㎡なのに対し、カーボンは1/4の0.25㎡(50cm×50cm)しか塗れません。

また、ニッケルより銀・銅の方が少し価格が高いですが、塗装の事を考えると、今回試した3製品の中では、銀・銅の塗料が1番お勧めです。

ちなみに、銀・銅の塗料は、1kg入りの缶も販売されており、Amazonで 20,162円(税込)です。


導電塗料の活用について

以前、周囲のタグを読み取らないよう、スチール製の郵便ポストや引出しの中にテーブルスキャナを取り付け、中に入れたタグのみを読み取るような工作物を作った事があります。電源ケーブルを通すための隙間や、その他の隙間などにアルミ箔やアルミテープを貼るなどしたのですが、耐久性の問題もあり、電波漏れを防ぐことに苦労しました。

導電塗料により、プラスチック製品なども使用できるようになるので、選択肢も広がります。また、プラスチック製品であれば、必要に応じて加工する事も可能と思います。

また、飛沫防止のアクリル製パーテーションに塗って、隣の作業机のタグ読み取りを防ぐなどの利用も考えられます。ただし、金属と同様、電波を反射するので、設置場所に注意が必要です。