MANICAモバイルはスマホ用アプリになっていてこれはこれでいいんですが、さっと入庫したいときとかいちいちスマホ開いてボタン押してとかうぜーんだよ!何とかしろよオラー! というような声が各所から聞こえている気がしました。
というわけでGWだし常時起動型の簡易ゲートを作成してみました。
コンセプトとしては、
・ラズパイで作る
・なるべく出力の高いリーダーを固定する
・読み取った数だけわかるように数字のLEDを付ける
・SIMもつけちゃう
という感じでとにかく電源入れればどこでも使える(電波法の縛りはあるけど)風で作ってみました。
材料はラズパイと、周辺機器を気軽に使える GROVE Pi+ を用意
https://www.switch-science.com/catalog/2129/
数字表示用のLEDはこちら
https://www.switch-science.com/catalog/1175/
サンプルコードもあってらくちんらくちん。
ところがリーダは Java の SDK が多いので Java でやろうかといろいろいじってたんですが数字表示用LEDの Java のサンプルコードが無い…(Pythonはあるけど) あー、面倒だけど Java に移植するか?というか誰かやってるだろとネット探してみたけど見当たらず。んー、そこはまぁ、いずれやるとしてとりあえず買っといた LCD があってこっちは Java のサンプルコードもあるからこっちでとりあえずやるか。うんそうしよう。
完成品がこちらー
リーダは NORDIC ID の STIX を使いました。250mW。
起動すると
読み取ったタグの数と最後に読み取ったタグのIDが表示されます(切れてるけど)。
近くにタグは無いはずなんだがなぜか2枚をずっと読み取っている。何だろう。まー、こんなことは日常茶飯事なんで気にしない。(ちなみに3秒読取りをしないとカウント下がります)
タグをたくさん置くと
読み取ってます。読み取られたデータはサーバに送られて、自動的に出庫/入庫処理が行われるわけです。いーね。いーね。
だけどもやっぱり 250mW じゃこの程度かー、もっとガシガシ読みたいよねー、これ以上出力高いリーダにすると免許申請必要になるしなー、んー、つづく?
2018年5月2日水曜日
2018年4月22日日曜日
2018年4月13日金曜日
Alienリーダをノンプログラミングでクラウド連携
昨今、センサーなどのIoT機器をクラウドに連携してさまざまなサービスを提供することが当たり前のように行われています。また、UHF帯のRFIDリーダであるAlienリーダにも標準で様々な機能が搭載されているのですが、いまいち使いこなせていません。そこで、Alienリーダの機能*1の調査の一環として、ノンプログラミング(Alienリーダの標準設定だけ)で、どこまでクラウド連携できるのか、そこで見えてきた課題などについてまとめてみます。
ノンプログラミングなので、さっくり行きます。AlienリーダのIPアドレスをブラウザで開きます。(今回はALR-9900+JP3を使っています。新しいALR-F800でも画面の構成は違いますが、ほぼ同様に設定可能と思います)
赤い四角で囲んだ「AutoMode」のリンクを開きます。その際、IDとPasswordを求められたら、入力します。(デフォルトはalien/password)
お使いの環境によって、設定値は異なりますが、デフォルトならこんな感じになっています。あ、あとNetworkの設定もお使いの環境に合わせて適宜行ってくださいね。
下記の項目を変更します。
設定したら、ページの上か下にある「Save Changes to Flash」にチェックを入れて、「Submit Changes」ボタンを押してください。これだけで、Alienリーダの設定完了です。クラウドに読み取ったデータをPOSTしてくれます。
では、実際にPOSTされたデータを見てみましょう。下記のページ*2を開いてください。
http://aliendump.azurewebsites.net/api/AlienRFIDTagList
こんな感じのえらく殺風景なページが表示されたと思います。Alienリーダで読み取ったタグIDと時間などを表示しています。リロードすると表示が変わるのが分かると思います。
今回はAlienリーダを使ってノンプログラミングでクラウドに連携する方法を見てきました。ブラウザから設定するだけで、簡単に連携できることがお判りいただけたかと思います。一方で課題もわかりました。一つがhttpしか使えないことです。業務で使うとしたらhttpsが欲しいところですね。Alienからのファームウェアの更新に期待です。もう一つは認証の問題です。上記のページは接続してきたAlienからのデータを無制限に受け入れています。なんらか認証の仕組みが欲しいところです。(が、今回Alienだけで実現する方法が思いつきませんでした)何か方法あれば教えてください。
*1: 設定ページのタイトルを抜き出しただけでもこれだけあります。
ノンプログラミングなので、さっくり行きます。AlienリーダのIPアドレスをブラウザで開きます。(今回はALR-9900+JP3を使っています。新しいALR-F800でも画面の構成は違いますが、ほぼ同様に設定可能と思います)
赤い四角で囲んだ「AutoMode」のリンクを開きます。その際、IDとPasswordを求められたら、入力します。(デフォルトはalien/password)
お使いの環境によって、設定値は異なりますが、デフォルトならこんな感じになっています。あ、あとNetworkの設定もお使いの環境に合わせて適宜行ってくださいね。
下記の項目を変更します。
AutoMode ⇒ ONこんな感じです。
NotifyMode ⇒ ON
NotifyAddress ⇒ http://aliendump.azurewebsites.net/api/AlienRFIDTagList
NotifyFormat ⇒ XML
NotifyHeader ⇒ OFF
NotifyTrigger ⇒ Change
設定したら、ページの上か下にある「Save Changes to Flash」にチェックを入れて、「Submit Changes」ボタンを押してください。これだけで、Alienリーダの設定完了です。クラウドに読み取ったデータをPOSTしてくれます。
では、実際にPOSTされたデータを見てみましょう。下記のページ*2を開いてください。
http://aliendump.azurewebsites.net/api/AlienRFIDTagList
こんな感じのえらく殺風景なページが表示されたと思います。Alienリーダで読み取ったタグIDと時間などを表示しています。リロードすると表示が変わるのが分かると思います。
今回はAlienリーダを使ってノンプログラミングでクラウドに連携する方法を見てきました。ブラウザから設定するだけで、簡単に連携できることがお判りいただけたかと思います。一方で課題もわかりました。一つがhttpしか使えないことです。業務で使うとしたらhttpsが欲しいところですね。Alienからのファームウェアの更新に期待です。もう一つは認証の問題です。上記のページは接続してきたAlienからのデータを無制限に受け入れています。なんらか認証の仕組みが欲しいところです。(が、今回Alienだけで実現する方法が思いつきませんでした)何か方法あれば教えてください。
*1: 設定ページのタイトルを抜き出しただけでもこれだけあります。
- General
- Network
- Time
- TagList
- Acquire
- I/O
- AutoMode
- NotifyMode
- Program
2018年4月12日木曜日
子どもの保険証にICタグ。
子どもの保険証にICタグ。
こんな大事なもの無くさない
#ICタグ #RFID #転ばぬ先のICタグ #MANICAモバイルで簡単モノ探し
2018年3月28日水曜日
冷蔵庫の充填率をICタグでチェックする
弊社では、お越しいただいたお客様にペットボトルのお茶をお出ししています。お茶は冷蔵庫で冷やしておくのですが、冷蔵庫から取り出した後に補充を忘れることが良くあり、出そうとしたら冷えてるお茶がなくて、仕方なく冷蔵庫に入れてなかった常温のお茶をお出しすることが良くあります。
冬場は常温でもいいような気もしますが、気温の上がる今後の季節は必ず冷えたお茶をお出ししたいところです。
そこで、冷蔵庫の充填率を自動的にチェックして、足りなかったら警告してくれるシステムを作ってみました。
冬場は常温でもいいような気もしますが、気温の上がる今後の季節は必ず冷えたお茶をお出ししたいところです。
そこで、冷蔵庫の充填率を自動的にチェックして、足りなかったら警告してくれるシステムを作ってみました。
冷蔵庫の中にアンテナとUHFタグ5枚を設置します。なにもない状態だとタグが5枚読めます。
アンテナの出力が強ければ冷蔵庫の外からも読めたのですが、今回常設できるのは出力の弱いものだったので、冷蔵庫の中に置くことにしました。水濡れが怖いのでアンテナはジップロックに入れておきます。
お茶を補充するときはタグの上に置くようにします。この記事の通り電波は水に吸収されますので、この状態だと右側2枚のタグは読めなくなります。
システムとしてはお茶が2本あるんだな、と判定します。
あとは警告です。お茶が少なくなったら(閾値以上にタグが読めたら)、Slackに投稿するようにしてみました。
おまけで、投稿にリンクがありますが、Google Apps Scriptを使ってスプレッドシート上に冷蔵庫の状態をグラフィカルに(?)表示するようにもしてみました。POSTでタグIDを受けるようにして、受け取らなかったタグIDに対応するセルに「=IMAGE('お茶画像のURL')」を設定して、画像を表示しています。
こんな感じです。タグが読めなかったら物がある、タグが読めたら物がない、という逆転の発想が新鮮ですね。
2018年2月14日水曜日
Android で Wifi のアクセスポイントを監視?してみる
Android端末で、付近の Wifi のアクセスポイントのスキャンをずーっとやってロケーションの管理をするというのがあったんですが意外とハマったので記録しておきます。
前提として以降に記載のコードは Visual Studio 2017 で Xamarin で書いてますので Java じゃなくて C# になります。
まー、とりあえずは定期的にスキャンすりゃいいんだろー ということで最初はこんな感じ
まずブロードキャストレシーバを作成
・StartScan() を呼ぶと、確かに SCAN_RESULTS_AVAILABLE_ACTION がブロードキャストされる。
・StartScan() を呼ばないでいると、ブロードキャストは来ない。がたまに他のアプリとかのせいで来ることがある。
・というわけで定期的に StartScan() を呼べば定期的に APのリストがゲットできる。
・しかしAPリストのタイムスタンプを見ると、前回と同じ値のときがある。(使いまわし?)
・30秒ぐらい経った後でも同じタイムスタンプのときがある。
というわけで古いタイムスタンプの扱いをどうするかというところが悩みどころになりそうですね。
前提として以降に記載のコードは Visual Studio 2017 で Xamarin で書いてますので Java じゃなくて C# になります。
まー、とりあえずは定期的にスキャンすりゃいいんだろー ということで最初はこんな感じ
WifiManager manager = (WifiManager)Application.Context.GetSystemService(WifiService);
if (manager.WifiState == Android.Net.WifiState.Enabled)
{
if (manager.StartScan())
{
IList apList = manager.ScanResults;
...
}
}
これで実装してみるとどうも古いデータを持ってきてたりしている様子。調べてみると、StartScan()は同期でなくて非同期だそうな。SCAN_RESULTS_AVAILABLE_ACTION がブロードキャストされるのでそれを待ってから ScanResults で採れとそういうことだそうです。まずブロードキャストレシーバを作成
private BroadcastReceiver mScanResultsReceiver = new WifiBroadcastReceiver();
private class WifiBroadcastReceiver : BroadcastReceiver
{
public override void OnReceive(Context context, Intent intent)
{
WifiManager manager = (WifiManager)Application.Context.GetSystemService(WifiService);
IList apList = manager.ScanResults;
...
}
}
で、それを利用するためレシーバーを登録
RegisterReceiver(mScanResultsReceiver, new IntentFilter(WifiManager.ScanResultsAvailableAction));
これで動かしてみると、次のようなことがわかりました。・StartScan() を呼ぶと、確かに SCAN_RESULTS_AVAILABLE_ACTION がブロードキャストされる。
・StartScan() を呼ばないでいると、ブロードキャストは来ない。がたまに他のアプリとかのせいで来ることがある。
・というわけで定期的に StartScan() を呼べば定期的に APのリストがゲットできる。
・しかしAPリストのタイムスタンプを見ると、前回と同じ値のときがある。(使いまわし?)
・30秒ぐらい経った後でも同じタイムスタンプのときがある。
というわけで古いタイムスタンプの扱いをどうするかというところが悩みどころになりそうですね。
2017年11月20日月曜日
久辺テクノフェスタ2017に出展しまーす。
あれ? なんかイベント出展の告知ばかりですが、まぁとりいそぎ。
11/23(木)、勤労感謝の日ですが毎年恒例の久辺テクノフェスタへ出展します!
といっても、いわゆるビジネス系の展示会ではなく、どちらかというと子ども向けのいろんな技術を体験してみよう的な(ゆるめの)イベントです。
ちなみに昨年は、自分の書いた絵を非接触給電で光らせてみよう!というお絵かき+簡単な電子工作みたいなブースでしたが、おかげさまで休憩する間もないぐらいの大人気でした。
昨年の様子(↓)
今年は、+αで新たなコンテンツを用意する予定ですので、乞うご期待ということで。
イベント詳細は、こちらから。
http://nda.city.nago.okinawa.jp/kube2017/
11/23(木)、勤労感謝の日ですが毎年恒例の久辺テクノフェスタへ出展します!
といっても、いわゆるビジネス系の展示会ではなく、どちらかというと子ども向けのいろんな技術を体験してみよう的な(ゆるめの)イベントです。
ちなみに昨年は、自分の書いた絵を非接触給電で光らせてみよう!というお絵かき+簡単な電子工作みたいなブースでしたが、おかげさまで休憩する間もないぐらいの大人気でした。
昨年の様子(↓)
今年は、+αで新たなコンテンツを用意する予定ですので、乞うご期待ということで。
イベント詳細は、こちらから。
http://nda.city.nago.okinawa.jp/kube2017/
登録:
投稿 (Atom)









