tag:blogger.com,1999:blog-48028221717967453202024-03-22T00:46:18.137+09:00Enjoy RFIDNFCなどのRFIDを使って実験やら何やら遊んでみました。ssanohttp://www.blogger.com/profile/05508471105610047571noreply@blogger.comBlogger149125tag:blogger.com,1999:blog-4802822171796745320.post-18515846166774704792024-02-28T16:17:00.003+09:002024-02-28T16:20:29.050+09:00頭に近づけるとリーダーの読み取り距離は伸びるのか実験車のロックを遠隔で解除する、鍵についているリモコンキーがありますね。以前このリモコンキーについて面白い記事を見かけました。<br />どうやら<a href="https://gigazine.net/news/20240110-unlock-car-with-brain/"><span style="color: #3d85c6;">鍵を頭に近づけてボタンを押すと、車のロックをより遠くの距離から解除できる</span></a>そうです。前から裏技としてこのテクニックは知られていたようで、<a href="https://blog.altairjp.co.jp/digital-debunking-car-remote-key/"><span style="color: #3d85c6;">シミュレーションで検証する記事</span></a>もありました。<div><br /></div><div>さらに気になるのはこのリモコンキーが扱う周波数です。<br />二つの記事をざっと見た感じだとだいたい300MHzあたりのようで、超短波(VHF)寄りの極超短波(UHF)になるのでしょうか?</div><div><br /></div><div>もしかしたらこのリモコンキーのテクニックはRFIDリーダーにも応用できるかもしれません。</div><div>そういうわけで、実際にUHF帯のリーダーを頭やペットボトルに近づけたりして距離が変わるのか試してみました。</div><div><br /></div><div>広い空間で検証する必要があったので、今回はDENSOさんのハンディリーダーSP1を使用します。</div><div>SP1の周波数はだいたい916~920MHzになります。リモコンキーの周波数とは結構差があると思いますが、試してみます。</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAQ0uzXbdjx7SPBoQTpB-U1tCaw3o52qDDhdEmvTIaRdDv75na069Z90CVGK47YDNYU8rD1dDYdro6x5ZvqrKOrIHYbQSfuNHgvVTqMPIOraQaNRdh36e8Kp3f-Z11z6MiTlwxK52slcKy_vRuk_MTxk21MsujaA0ifXWkhAeIZNBqhMIsBOL9LB3nn_U/s4032/DSC_0002_BURST20240228140935234.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAQ0uzXbdjx7SPBoQTpB-U1tCaw3o52qDDhdEmvTIaRdDv75na069Z90CVGK47YDNYU8rD1dDYdro6x5ZvqrKOrIHYbQSfuNHgvVTqMPIOraQaNRdh36e8Kp3f-Z11z6MiTlwxK52slcKy_vRuk_MTxk21MsujaA0ifXWkhAeIZNBqhMIsBOL9LB3nn_U/s320/DSC_0002_BURST20240228140935234.JPG" width="240" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">屋外なのでカバンのなかにタグをいれ、これを読み取れる距離をはかります。</div><div><br /></div><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJU7PREtgtEPIOap4WfAUQzlVFNPF7Qo1fx-iMlzbbK5r0DBdYHra4ILrb1c-yoEdxM3VkTvdxVWKoDjPDR5OnJ_JAnS1NyZMRQB2Zjho5kngapmK2k1f8AQqFx6RyJg6U3UwAByKkmqZoXnK1FyVzZJv9W-2xCMq1424W6ynWd78iza0Z1l5_R_hu1M4/s4032/DSC_0000_BURST20240228144657340.JPG" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJU7PREtgtEPIOap4WfAUQzlVFNPF7Qo1fx-iMlzbbK5r0DBdYHra4ILrb1c-yoEdxM3VkTvdxVWKoDjPDR5OnJ_JAnS1NyZMRQB2Zjho5kngapmK2k1f8AQqFx6RyJg6U3UwAByKkmqZoXnK1FyVzZJv9W-2xCMq1424W6ynWd78iza0Z1l5_R_hu1M4/s320/DSC_0000_BURST20240228144657340.JPG" width="240" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">結構簡単な検証だと思っていましたが、屋外だと風があるせいか、標準になる限界の距離がどこなのかなかなかつかめませんでした。<br /><br /></td></tr></tbody></table><div>これでだいたい5mくらいでした。</div><div>ここからリモコンキーの記事にあったように、リーダーを頭やあごあたりに近づけつつ後ずさりしてみました。</div><div><br /></div><div><div>頭に近づけた結果としては、確かに距離が伸びたように感じる瞬間があった、程度でした。</div><div>リーダーを頭に近づけたり離したりを繰り返すと、読み取りもそれに応じて、頭に近づけるたびに反応があるということが起きました。しかし結構偶然に近いような感じで、あまり再現できませんでした。</div></div><div><br /></div><div>今度は天然水のペットボトルを使います。</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicthJ5w3XBfj_ghZGoTBB59CYE6Yi2Bed8woTMCcQEx69UJgds6Y-d5uTKj3t-9qXq5kAzsHX5ILwSld3YC-6wpgoy2VNS-VPt4h1h7AXEl1YePxPK1DkWYrLxWZ5jFGWyMHs0lVUsxTNicEjPzDvYSYlcxHASDK461Riqlke8P28YVGvQ0TSM9KqS30Y/s4032/DSC_0000_BURST20240228142916782_COVER.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicthJ5w3XBfj_ghZGoTBB59CYE6Yi2Bed8woTMCcQEx69UJgds6Y-d5uTKj3t-9qXq5kAzsHX5ILwSld3YC-6wpgoy2VNS-VPt4h1h7AXEl1YePxPK1DkWYrLxWZ5jFGWyMHs0lVUsxTNicEjPzDvYSYlcxHASDK461Riqlke8P28YVGvQ0TSM9KqS30Y/s320/DSC_0000_BURST20240228142916782_COVER.JPG" width="240" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div>頭に近づける必要があるのは、頭にアンテナのように電波を延長させてくれる水分があるためなので、これをリーダーに近づければもっと効果があるかもしれません。<div><br /></div><div><br /></div><div><div>結果としては、頭に近づけるときと同様にイマイチでした。</div><div><br /></div><div><br /></div><div>やはりICタグと水分の相性は悪いと考えたほうがよいのでしょうか。</div><div>もっと電波について勉強したいと思える実験でした。</div></div>kkinjohttp://www.blogger.com/profile/16256356682037656621noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-16949025914986012022024-02-27T13:48:00.000+09:002024-02-27T13:48:20.936+09:00LoRaWANの電波強度を測定してみる<p> おかげさまで最近よく沖縄のニュースなどで取り上げていただいている「<a href="https://mimamori-jihanki.jp/" target="_blank">ミマモライド</a>」ですが、こちら通信に LoRaWAN を使用しております。エンドデバイスは自動販売機などに設置していて地面に近いところにあります。なのでゲートウェイはなるべく高いところに設置をしています。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy5XL3Kc3KMM5EQFXXpt1X3PUmXX3sQoFZ1pBlteAi-Y1JSRt5hyphenhyphen-_L40cKW5VE_PxgfSrStV6nhGxMPEcxRpNjLpN2bVlTPQqh7nNEtD19co2T7jUZN4K8Y-uUe_AZLFXo6i5aji_d60gGxgJrg8vyAXmSttND9w9S5wURlfmESC-Uckct-C3AHB5GCU/s2048/419405137_697302462389012_8760772706809146805_n.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1536" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy5XL3Kc3KMM5EQFXXpt1X3PUmXX3sQoFZ1pBlteAi-Y1JSRt5hyphenhyphen-_L40cKW5VE_PxgfSrStV6nhGxMPEcxRpNjLpN2bVlTPQqh7nNEtD19co2T7jUZN4K8Y-uUe_AZLFXo6i5aji_d60gGxgJrg8vyAXmSttND9w9S5wURlfmESC-Uckct-C3AHB5GCU/s320/419405137_697302462389012_8760772706809146805_n.jpg" width="240" /></a></div><p>使用しているゲートウェイは DRAGINO の DLOS8 です。</p><p>ところが、設置後に通信のテストしていると、あれ?何か届かなくね?みたいのが発生したりします。よくよく調べると、アンテナのコネクタがきちんと刺さってなかったのか、そのあたりをイジってるときちんと電波飛ぶようになるときがあります。</p><p>設置場所は気軽に入れない場所がほとんどで、後から何か電波弱いね―みたいになると非常に面倒です。なのでアンテナが付いているときと付いてないときで電波強度にどのくらいの差が出るのかを事前に測定したいと思いました。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmhCU_33A8cMQozvun6FoUfc2f0RRfJ9SyzNg6_ClW8S90GXqVLtsz5UInWsWeyiGgeeZYqiXh0hoOTVMPQB4FtRg6iIAMd2oZXLOqUI-Ih5Hpio9S5jEuehXfvKUlFtJDQPeuRtLYneHmqCZUTOHmh9wDfI042YyzxfK3pJJXEmr6VyVeFGokeo8AsO4/s1311/IMG_0114.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1311" data-original-width="983" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmhCU_33A8cMQozvun6FoUfc2f0RRfJ9SyzNg6_ClW8S90GXqVLtsz5UInWsWeyiGgeeZYqiXh0hoOTVMPQB4FtRg6iIAMd2oZXLOqUI-Ih5Hpio9S5jEuehXfvKUlFtJDQPeuRtLYneHmqCZUTOHmh9wDfI042YyzxfK3pJJXEmr6VyVeFGokeo8AsO4/s320/IMG_0114.jpg" width="240" /></a></div><p>アンテナをきちんと接続した状態と、アンテナを外した状態でそれぞれ10m、20m、30m離れたところから2回ずつ電波を出して、ゲートウェイでどのくらいのRSSIで受信できたのかを測定しました。</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEj3ibIIzZ8XNP0glwadwnm-I-ifpvHV0hhI7JJ8iwugl3BZDJRHCkGKlfmVwa4-5tU4EnXoJFvZy7ZT6qte59eelpTjZDYGcbWJCqNZA73QIRM6F8pp8RXFeYy5tETcoJbcouHDkgeL6wbY-ljVIj1gLAd7VglnnAXwNu63wYyxHM5rkFo4unOILl617IM" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="76" data-original-width="555" height="44" src="https://blogger.googleusercontent.com/img/a/AVvXsEj3ibIIzZ8XNP0glwadwnm-I-ifpvHV0hhI7JJ8iwugl3BZDJRHCkGKlfmVwa4-5tU4EnXoJFvZy7ZT6qte59eelpTjZDYGcbWJCqNZA73QIRM6F8pp8RXFeYy5tETcoJbcouHDkgeL6wbY-ljVIj1gLAd7VglnnAXwNu63wYyxHM5rkFo4unOILl617IM" width="320" /></a></div><p><br /></p>結果がこちら。SFはすべて10でした。いちおう各測定ごとにJOINから開始しています。これを見るとやはり結構な差が出ています。これをもとにゲートウェイ設置後、近くで送信してみてRSSIが-50くらいであれば大丈夫というような認識でOKのようです。<br /><br /><p></p>ssanohttp://www.blogger.com/profile/05508471105610047571noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-88764641638455863392023-10-02T15:10:00.000+09:002023-10-02T15:10:12.036+09:00GAE/J で排他制御したい<p> GAEとっても便利なんですが、どうしても排他制御したい処理が出てきてしまいました。特定のファイルの更新とかそんな感じの処理です。syncronized で同じインスタンスなら排他制御できるので大丈夫なんですが、GAEの場合オートスケールするので同じインスタンスからのアクセスとは限らずその技は通用しません。</p><p>ググるとこういうときは Memcache を使って実現するようなのが多いようです。</p><p><a href="https://cloud.google.com/appengine/docs/standard/java/memcache/using?hl=ja" target="_blank">Memcache の使用方法</a><br /></p><p>これの、「同時書き込みの処理」のところを使って、ロックフラグみたいのをいじるようにすると実現できそうです。</p><p>というわけで実装してみたわけですが、、、ちゃんと動作しません。なんだろう、ソースそのまま使ってるしなーと思って上記のソースを眺めていると、、、あれ?これってキーがまだ無いときに複数同時に処理されると皆んな0で作っちゃうんじゃね?ということに気づきました。</p><p>ここの処理の肝は putIfUntouched を使って、特定の1スレッドだけが処理を完了できるところにあります。が、キーが無いときはただ 0 を put してるだけなのでここが被ると排他にならないわけです。</p><p>putIfUntouched で 0→1 は特定の1スレッド限定にできるんですが、 null→0 をやりたいときは putIfUntouched は IllegalArgumentException を投げてくるので使えません。</p><p>キーがない → 0でput → putIfUntouched で1にできた人勝ち</p><p>とやりたいところなんですが、勝ちが決まった瞬間に0でputの人が出てくると上書きされてしまうのです。</p><p>こまった。どうしたらいいんだ。ということで思いついた苦肉の策が、「putした人はしばらくロックバトルに参加できなくする」という作戦です。putした人の動きをしばらく止めておけば、後から来た人はキーが存在する状態なので putIfUntouched で勝者を決めることができます。</p><pre class="prettyprint"> public void LockFile(String filePath) {
Random rand = new Random();
MemcacheService syncCache = MemcacheServiceFactory.getMemcacheService();
while (true) {
byte[] oneValue = BigInteger.valueOf(1).toByteArray();
byte[] zeroValue = BigInteger.valueOf(0).toByteArray();
IdentifiableValue lockValue = syncCache.getIdentifiable(filePath);
if (lockValue == null) {
syncCache.put(filePath, zeroValue, Expiration.byDeltaSeconds(30));
try {
Thread.sleep(1000); // ロック情報を作成したスレッドは1秒間ロック取得競争に参加できないようにする
} catch (InterruptedException e) {
e.printStackTrace();
}
} else {
if (new BigInteger((byte[])lockValue.getValue()).intValue() == 0 && syncCache.putIfUntouched(filePath, lockValue, oneValue, Expiration.byDeltaSeconds(30))) {
// ここに来れるのは1スレッドのみ
logger.info("Lock File : " + filePath);
break;
}
}
try {
Thread.sleep(rand.nextInt(100));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void UnlockFile(String filePath) throws Exception {
MemcacheService syncCache = MemcacheServiceFactory.getMemcacheService();
syncCache.put(filePath, BigInteger.valueOf(0).toByteArray(), Expiration.byDeltaSeconds(30));
logger.info("Unlock File : " + filePath);
}</pre>
<p>いちおうこれで考えてたような処理が無事できました。</p><p>競合が居ない(かつキーが無い)場合は最低1秒待たされることになりますがまぁ仕方ないかな。</p>ssanohttp://www.blogger.com/profile/05508471105610047571noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-17279191102975158372023-07-19T10:38:00.003+09:002023-07-20T10:29:33.580+09:00AGCさんの電波吸収遮へいガラスを試してみた<p> 従来の電波吸収体といえばパネルやカーテンみたいなもので遮蔽すると向こうが見えないのが普通でした。これをシースルーで実現させたのが、先日のリテールテックでも展示してありましたAGCさんの電波吸収遮へいガラスです。</p><p><a href="https://monoist.itmedia.co.jp/mn/articles/2303/13/news066.html" target="_blank">東芝テックのRFIDウォークスルーゲート、AGCの電磁波吸収/遮蔽ガラスを採用</a><br /></p><p>この製品のサンプルをAGCさんのご厚意によりお借りすることができましたので実際に試してみました。</p><p>試すにあたっていろいろ設置してやってみたのですが、電波の反射や回り込みの影響があるのでなかなか効果を測定することが難しかったので最終的にこんな感じで測定をすることにしました。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJeqXXZqaqclm54Z-EyHzuVRR716iSASAbLOCMODL9YMdi29xurip_PU3eWhW8xYJGSHZ31n2zEDLEkfTDScbW50QgNK6E_mZQnOTFTfhg3FBvcuaQgrJ_RKdqF2XAD7IRWNRbjlE4cvct5PSuiPQAk7klEYS1oOffvTPBSSd3x43GzX86Zf7NTQZftAQ/s1312/IMG_9746.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1312" data-original-width="984" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJeqXXZqaqclm54Z-EyHzuVRR716iSASAbLOCMODL9YMdi29xurip_PU3eWhW8xYJGSHZ31n2zEDLEkfTDScbW50QgNK6E_mZQnOTFTfhg3FBvcuaQgrJ_RKdqF2XAD7IRWNRbjlE4cvct5PSuiPQAk7klEYS1oOffvTPBSSd3x43GzX86Zf7NTQZftAQ/s320/IMG_9746.jpg" width="240" /></a></div><div style="text-align: center;">簡易測定装置</div><p>床にアンテナを置いて、そのすぐ上に電波吸収ガラスを設置します。これだと反射や回り込みもあまり影響しないのでうまく測定できるかなと。上に付いてるのは簡易的なスペアナのアンテナです。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdVpPrlEkENZlBiPdsIdo0UEJvKr0vUEQ4Q_3q_gVHsJULJFCakYCEMn5P22tCIfGafVr9wyNexr8MwHRvy_jBfmSowvDdYi9snPxlnTP_2ote0fklMfxD6HYwtQ1txMQyyLWH8S5dbwt7U1F3rikh62AyDUNKZFwp50M_71qfij9o7-7-fSboa58LQDY/s1255/IMG_9748.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1255" data-original-width="941" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdVpPrlEkENZlBiPdsIdo0UEJvKr0vUEQ4Q_3q_gVHsJULJFCakYCEMn5P22tCIfGafVr9wyNexr8MwHRvy_jBfmSowvDdYi9snPxlnTP_2ote0fklMfxD6HYwtQ1txMQyyLWH8S5dbwt7U1F3rikh62AyDUNKZFwp50M_71qfij9o7-7-fSboa58LQDY/s320/IMG_9748.jpg" width="240" /></a></div><div style="text-align: center;">実際にガラスを置いたところ</div><p>リーダはマスプロさんの1W機を使いました。アンテナが大きいのが無かったのでシートアンテナを使いました。このアンテナは利得が3dBiなのでフルパワーとはいきませんがまぁ、これしか無かったのですいません。</p><p>電波を出してみて、スペアナで見てみます。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF43PhbQ5EDHcPldovqJ2rRkLeVaOWkIQWn4TqpIAhQSEzSFMZhvmGZq-3ms_vkzNqIBO-dxH_nyb_Lt87sQqmc04Mi9_9vOrZUQd5mtOu_SY38oYle4V8KtARK-NhYw03VsyCtSUP2uq-fZqHUurNReGDHuirni9r_yaeHXcLO4RG8cYq5FS6er_HMc0/s1920/%E3%82%AC%E3%83%A9%E3%82%B9%E3%81%AA%E3%81%97.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF43PhbQ5EDHcPldovqJ2rRkLeVaOWkIQWn4TqpIAhQSEzSFMZhvmGZq-3ms_vkzNqIBO-dxH_nyb_Lt87sQqmc04Mi9_9vOrZUQd5mtOu_SY38oYle4V8KtARK-NhYw03VsyCtSUP2uq-fZqHUurNReGDHuirni9r_yaeHXcLO4RG8cYq5FS6er_HMc0/s320/%E3%82%AC%E3%83%A9%E3%82%B9%E3%81%AA%E3%81%97.png" width="320" /></a></div><div style="text-align: center;">ガラス無しの状態</div><div style="text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU9Cy11GJVW3ZuGtPjWXwmo3Dr-Wq2kKJjJrgR7087RHM-EDUaCRj_ow7Ak_ZsjggXdF0UjmPbK1bZwHDJUj3a-sQa-v1uf-N2ogyrxpGyqNZl7EaxDG6YA54WCH9_VIUmr0B59WYSDiiWEyXku2wVW_dkEnzH8LhQNMwnyYoYigFxzJkRK4mDt4iW9KE/s1920/%E3%82%AC%E3%83%A9%E3%82%B9%E3%81%82%E3%82%8A.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU9Cy11GJVW3ZuGtPjWXwmo3Dr-Wq2kKJjJrgR7087RHM-EDUaCRj_ow7Ak_ZsjggXdF0UjmPbK1bZwHDJUj3a-sQa-v1uf-N2ogyrxpGyqNZl7EaxDG6YA54WCH9_VIUmr0B59WYSDiiWEyXku2wVW_dkEnzH8LhQNMwnyYoYigFxzJkRK4mDt4iW9KE/s320/%E3%82%AC%E3%83%A9%E3%82%B9%E3%81%82%E3%82%8A.png" width="320" /></a></div><div style="text-align: center;">ガラスありの状態</div><p>明らかに山の形が小さくなっているのがわかります。ピークっぽいところを比較すると、ガラス無しで 20dB がガラスありで 35dB くらいになってるので電力で換算すると30分の1くらいになってます。これはスゴいですね!</p><p>実際にタグを置いて読ませると、</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfjg1kbcgsNHph74FL3h8ygigjm2a2Wb92PPqUgj4M9ZGW85IPsqf4AI4YU4BIvuCEPCsE664nvd_8ABcTBNA9OGIQMvypr7-KraBO5RlVZJfNWPfsGwJzbJzBwX5e10ABz22OsOJdWby-Bb3b1Q7862aFxgtRDScZjpoQBxuxJMinLUHt_OSGAMv3QYo/s1255/IMG_9750.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1255" data-original-width="941" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfjg1kbcgsNHph74FL3h8ygigjm2a2Wb92PPqUgj4M9ZGW85IPsqf4AI4YU4BIvuCEPCsE664nvd_8ABcTBNA9OGIQMvypr7-KraBO5RlVZJfNWPfsGwJzbJzBwX5e10ABz22OsOJdWby-Bb3b1Q7862aFxgtRDScZjpoQBxuxJMinLUHt_OSGAMv3QYo/s320/IMG_9750.jpg" width="240" /></a></div><div><br /></div>4枚置いてますが2枚しか読めませんでした。読めた2枚もRSSIで見ると-80くらいだったのでかろうじて読めてるという印象です。シースルーでここまで出来るとは驚きでした。ssanohttp://www.blogger.com/profile/05508471105610047571noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-63327471876484368642023-07-12T10:51:00.005+09:002023-07-13T11:26:22.735+09:00MANICAモバイル用のゲートを作る その3<p> 前回は1WリーダのSR7と人感センサーを組み合わせて作りましたが、やっぱりハンディも欲しいよねーということでこちらのリーダで実装してみました。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhasIbIUd-vRhr3jzddTv99qerzw_iOjyZ7fKc9DZ0cLdQBkXRYjHkDXHSYPKd0wNoHpNgCX-7ZbY2L6c4UyPMf7vbo3Io32Q4PiVEOx5ujFNu96WDc0cgbDzKHOqTsRW14WqmteyC9sKVPCu_C4rUlvoh4g4ml8YF977DbYeoF_ibODX2U8y_qxJ9X-G8/s1319/IMG_9792.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1319" data-original-width="989" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhasIbIUd-vRhr3jzddTv99qerzw_iOjyZ7fKc9DZ0cLdQBkXRYjHkDXHSYPKd0wNoHpNgCX-7ZbY2L6c4UyPMf7vbo3Io32Q4PiVEOx5ujFNu96WDc0cgbDzKHOqTsRW14WqmteyC9sKVPCu_C4rUlvoh4g4ml8YF977DbYeoF_ibODX2U8y_qxJ9X-G8/s320/IMG_9792.jpg" width="240" /></a></div><p>国産で信頼性バッチリのタカヤさんのハンディリーダーです。形はシンプルですが、手元で出力調整も出来て使いやすい仕上がりになっております。</p><p>完成したのがこちら</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfzxSOZFPnNgvDuFjYdVVfLXEpHwxClcKY4YhVhWjaqmMJBaScIHj-gaPFZLKcLb6bARgfrWBgBxAOrAksmQJ3wNkt3RG1eLrXK-UjizXu1qI8vpwR_e137HCKdppKo31XPCTcxoUECIXttcrmJhDaA4hoscQlcf6pxJbSWuxdhrxgs7RDoASX54T2yLA/s1278/IMG_9793.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="959" data-original-width="1278" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfzxSOZFPnNgvDuFjYdVVfLXEpHwxClcKY4YhVhWjaqmMJBaScIHj-gaPFZLKcLb6bARgfrWBgBxAOrAksmQJ3wNkt3RG1eLrXK-UjizXu1qI8vpwR_e137HCKdppKo31XPCTcxoUECIXttcrmJhDaA4hoscQlcf6pxJbSWuxdhrxgs7RDoASX54T2yLA/s320/IMG_9793.jpg" width="320" /></a></div><p>ハンディにトリガボタンがあるのでそれを使うことにして、前回使った人感センサーは使用しませんが、それだとつまらないので温湿度センサーと気圧センサーをつけました。リーダで読み取った環境データも同時に取得できるという無理やりくっつけた感満載の機能です。</p><p>実際に動作させてみたのがこちらです。</p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dx00ah8_e0xBx93idDhC8GKktvb9nhCwFB6-0Ud_JLGWcyLIgS5Y-rI06WTgu0T0cDdvKzK6Q9VbRB4QrGf8A' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div><div class="separator" style="clear: both; text-align: center;"><br /></div>このセットだけでMANICAモバイルのゲートとして使えます。<br /><p><br /></p>ssanohttp://www.blogger.com/profile/05508471105610047571noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-5441683811508291632023-05-10T15:42:00.005+09:002023-05-10T15:42:54.984+09:00導入事例:松竹衣装様<p>松竹衣装様の導入事例を公開しました!</p><p><a href="https://www.hayato.info/home/jirei_shochiku.htm">https://www.hayato.info/home/jirei_shochiku.htm</a></p><p><br /></p><p>MANICA Excel Toolをご利用いただき、膨大な衣装類の持出/返却/探索/棚卸業務の効率化を実現いただいています。</p><p><br /></p><p>従来よりExcelベースでの在庫管理を運用されていたとのことで、Excel資産を活用してそのまま業務をRFID対応できる棚卸パッケージを、VBAカスタマイズも含めて存分にご活用いただいています。</p><div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrmb1N24Vnocqz-__MULQN-VLq2iui5Z3ZeJTGpnFbYBhy1lk2xOWwZmXo2Z8XJb_DwzS38BKCFFIFZgGgBhfLNBYCN6X-MZMxK-lkIBkB-kgw0ju3KDeS15mvMajdY6RY1BANsjTik4fYESFh5o9LB4Dqx7bBxqvH7xOd3jl95MnmZbhBduHbmBIeWQ/s1016/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202023-05-10%2015.37.23.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="578" data-original-width="1016" height="296" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrmb1N24Vnocqz-__MULQN-VLq2iui5Z3ZeJTGpnFbYBhy1lk2xOWwZmXo2Z8XJb_DwzS38BKCFFIFZgGgBhfLNBYCN6X-MZMxK-lkIBkB-kgw0ju3KDeS15mvMajdY6RY1BANsjTik4fYESFh5o9LB4Dqx7bBxqvH7xOd3jl95MnmZbhBduHbmBIeWQ/w521-h296/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202023-05-10%2015.37.23.png" width="521" /></a></div><div><br /></div><div><br /></div><div><br /></div><div>また、定置式リーダーを使用する際には、周囲の不要なICタグを読み込んでしまう課題に直面しましたが、お手製の専用遮蔽ボックスを作成することで、見事に安定的な運用を実現されています。</div><br /><div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK7GWWhAf1zCXBFDqFT7dI4d6j45mkA73ALHS_IjnodS11wtaiCQePRBbDnzZiCWBGDYB-3sYRi6oy7nvuAi-ZIhHBqW7JnkhlK77z9lix-HHc9xZcj3Ej9Qu1jaCQiSmte_w-EDHvucZFHhfP8CuACvrwNwjFBA1lIqsS-0t7UkpZVFEUOJVsHl6_2w/s492/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202023-05-10%2015.37.39.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="432" data-original-width="492" height="281" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK7GWWhAf1zCXBFDqFT7dI4d6j45mkA73ALHS_IjnodS11wtaiCQePRBbDnzZiCWBGDYB-3sYRi6oy7nvuAi-ZIhHBqW7JnkhlK77z9lix-HHc9xZcj3Ej9Qu1jaCQiSmte_w-EDHvucZFHhfP8CuACvrwNwjFBA1lIqsS-0t7UkpZVFEUOJVsHl6_2w/s320/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202023-05-10%2015.37.39.png" width="320" /></a></div><div><br /></div>詳細は下記リンクより、是非ご確認ください。<br /><p><a href="https://www.hayato.info/home/jirei_shochiku.htm">https://www.hayato.info/home/jirei_shochiku.htm</a></p><p><br /></p><p><br /></p><p><br /></p>Yasuhiro Ohsakahttp://www.blogger.com/profile/01257715388027505373noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-79559689601362886112023-05-04T10:50:00.000+09:002023-05-04T10:50:05.248+09:00MANICAモバイル用のゲートを作る その2<p> みなさまGWはどうお過ごしでしょうか。今回はGW恒例の?MANICAモバイル用のゲート作りをやってみました。前回の記事は何と5年前!5年も経ってるんだから相当進化してないとまずいよね?というチャレンジです。</p><p>MANICAモバイル用のゲートの要件としては、ゲートで読み取って、読み取った数をモニタに表示、そのデータをMANICAモバイルのサーバに送ることでスマホを使わずに入出庫ができるというものです。</p><p>数の表示というのが毎度困ってて、AndroidタブレットとかでもいいんですがACアダプタで常時利用となるとバッテリーの問題とかもあって丁度いいのがなかなかありません。何かないかと思ったらこれが机の上にあったので利用したいと思います。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2-itUNPm-rfQcj91xpM45663EnmWd0SGywslIgy_oglngTma-FFWn-z9fKX-T4ElsjZszymIbcOLmqbQKk28UAS3D1-KQbDLfJXHCbpar8mKW0iXVibf7pE2w-jgduhSVM18FaMpqoYi_RkgUNepSXknGm8PX8a9DgvjJmzXsvpZSPPAbyZNTrovH/s908/IMG_9694.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="755" data-original-width="908" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2-itUNPm-rfQcj91xpM45663EnmWd0SGywslIgy_oglngTma-FFWn-z9fKX-T4ElsjZszymIbcOLmqbQKk28UAS3D1-KQbDLfJXHCbpar8mKW0iXVibf7pE2w-jgduhSVM18FaMpqoYi_RkgUNepSXknGm8PX8a9DgvjJmzXsvpZSPPAbyZNTrovH/s320/IMG_9694.jpg" width="320" /></a></div><p>M5Stackちゃんです。中身はいつものESP32なんですが、モニタも付いてるしボタンも付いてるしセンサも拡張できるので便利です。</p><p>肝心のリーダですが、前回はSTIXを使ってて250mWしか出なかったので、今回は1Wが出せるこちらを使ってみました。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgABfpSaQVaiOZQre4amjGEd1U0utMQI_Q2r4TY6dwqxDOOX4i0yi9_uvm294vYXZGU84SB7_HJf65JWDOBjyNHRRky_jA4uIhlEt8-J3HCO2LWetC_Nec_kjezzqBjFdJdPoOHkKR6EZiQQbHsHAT6rpPMxqsT3KYIvb3p5foEzPcveybT5HV6dsnX/s948/IMG_9695.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="775" data-original-width="948" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgABfpSaQVaiOZQre4amjGEd1U0utMQI_Q2r4TY6dwqxDOOX4i0yi9_uvm294vYXZGU84SB7_HJf65JWDOBjyNHRRky_jA4uIhlEt8-J3HCO2LWetC_Nec_kjezzqBjFdJdPoOHkKR6EZiQQbHsHAT6rpPMxqsT3KYIvb3p5foEzPcveybT5HV6dsnX/s320/IMG_9695.jpg" width="320" /></a></div><p>SR7はBLEで接続しますが、ESP32はBLEが使用できるのでM5Stackそのままで利用できます。筐体はスリムなのに1Wが出せるということでとても進化を感じる端末ですね。</p><p>ゲートとはいえ電波出しっぱなしだと何なので、M5Stackに人感センサーをつけてこれが反応している間だけ電波を出すようにしました。</p><p>完成品がこちら。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigGThCMtr01cJhpf-1cA5EiTvXQk0227B-M-ppd1YLoFMK9bWUHpigzp8mKNe9b_erBvbOHTd8DcIw6MspLV2t3ZPMBlVS83nBIwxSYjLZ6hpZbu_krQxVs197woofFVzGU3-UkzXSRb4NOOYNwZDvFCaDzUIvZ0jLq6B9-Pb5sCHKMK66g4RpJGnR/s1278/IMG_9696.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="959" data-original-width="1278" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigGThCMtr01cJhpf-1cA5EiTvXQk0227B-M-ppd1YLoFMK9bWUHpigzp8mKNe9b_erBvbOHTd8DcIw6MspLV2t3ZPMBlVS83nBIwxSYjLZ6hpZbu_krQxVs197woofFVzGU3-UkzXSRb4NOOYNwZDvFCaDzUIvZ0jLq6B9-Pb5sCHKMK66g4RpJGnR/s320/IMG_9696.jpg" width="320" /></a></div><p>数字だけなので寂しいですが後でいろいろ表示するようにしたいと思います。早速タグを持ってセンサの前に立ちます。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFY34rOEIjWM2sGZYjTXaUT64BL9IC5tD8kMR9EJb1kAzHqiDhBeJk3wO1CtVSqrDh8nuKEMgCp5Sb-97AXB0VEdgaXBwPytkXxigZJTs8tuKKUc9bE1y20I-OfCe-O3YpoxieKfrFAWu0RfKNW_y5_y2dlN_YXjYjzfj21m7J6pXSTxKqaQNE9o36/s1278/IMG_9698.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="959" data-original-width="1278" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFY34rOEIjWM2sGZYjTXaUT64BL9IC5tD8kMR9EJb1kAzHqiDhBeJk3wO1CtVSqrDh8nuKEMgCp5Sb-97AXB0VEdgaXBwPytkXxigZJTs8tuKKUc9bE1y20I-OfCe-O3YpoxieKfrFAWu0RfKNW_y5_y2dlN_YXjYjzfj21m7J6pXSTxKqaQNE9o36/s320/IMG_9698.jpg" width="320" /></a></div><p>するとほら!読み取ってますねー。ESP32はWiFiも付いているのでWiFiを繋げばこのままクラウドへデータ送信可能です。便利。</p><p><br /></p>ssanohttp://www.blogger.com/profile/05508471105610047571noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-32251781782464162722023-04-19T13:36:00.000+09:002023-04-19T13:36:51.071+09:00機械学習でRFIDの向きを予測過去に<a href="https://www.itmedia.co.jp/news/articles/2008/07/news071.html">RFIDシールを指に貼りつけてデバイスを操作する</a>という研究がありました。<div><div><br /></div><div>半分に分けてつがいになったタグを指のうえで重ねて、出来上がったタグで複数のパターンを表現しています。</div><div><br /></div><div>あとは完成したタグを読み取るだけでよいので確度の高い操作ができますが、機械学習でRSSIを学習させれば、特殊なタグを用いずともタグの状態を判別させていくつかのパターンを作れるのではないかと思いました。</div></div><div><br /></div><div>そしてこんなものを用意してみました。</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjES-bVayNMIsBDx9ZnKS7NgJe6GrTwBU6v8SSTqv6xNI_YS4d61kB-L0aPDQ4qmUjjVpqeFjeseEyPS7vjE2C5ZL_9B8tmx-klEKtEAgUZUsgrbQdqiuVz-ClxeptQJ3NBxY5PrFDd6RmNgqlXDQkOwFJL9d1F_8yOgDnzb_lslfipvssoi4DX0pQh/s4000/IMG_20230417_144618.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4000" data-original-width="3000" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjES-bVayNMIsBDx9ZnKS7NgJe6GrTwBU6v8SSTqv6xNI_YS4d61kB-L0aPDQ4qmUjjVpqeFjeseEyPS7vjE2C5ZL_9B8tmx-klEKtEAgUZUsgrbQdqiuVz-ClxeptQJ3NBxY5PrFDd6RmNgqlXDQkOwFJL9d1F_8yOgDnzb_lslfipvssoi4DX0pQh/s320/IMG_20230417_144618.jpg" width="240" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_uLf55m1jOCz-_bgBZPowTeNUTxw2p-RWHF4DC5UBbaXX63ISpqvJM-c6NYAtBb2LOou_l7X1AAupnrelOgDuZh4dWyljp27b20g_ouZhkzMQOnHceCyBDln-uJ-7poUWdbgd3GxTn3D9tsmb_uQSDAP-WPh5NHUS5IjLdJ9UzgkyOccw2OUiHcZO/s4000/IMG_20230417_144621.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4000" data-original-width="3000" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_uLf55m1jOCz-_bgBZPowTeNUTxw2p-RWHF4DC5UBbaXX63ISpqvJM-c6NYAtBb2LOou_l7X1AAupnrelOgDuZh4dWyljp27b20g_ouZhkzMQOnHceCyBDln-uJ-7poUWdbgd3GxTn3D9tsmb_uQSDAP-WPh5NHUS5IjLdJ9UzgkyOccw2OUiHcZO/s320/IMG_20230417_144621.jpg" width="240" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">段ボール片の裏表に3枚ずつ、計6枚のタグを貼りつけました。</div><div class="separator" style="clear: both; text-align: left;">読み取らせるタグの数は多いほうが機械学習的によいかなと思いました。ただ、手持ちのリーダーの電波出力の制約上、6枚が限界みたいです。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">今回は、とりあえずこれをリーダーに対して垂直、水平にかざして、それを分類するのを目標にしました。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDz1cFL8YLbx0BqJZApBWFGM7KXQGPr9C7QvXclbm83dbnKrws20ptNitIfzjnA0edULBNCUvlfl5voIuJVRCvMaMtLHhygQgS9YFAd3ZeT7aGlBLOquVGzzbzQJ_A7M1bVuC0EaK5Jafl0kK132RNMP205b0OkNrl3CAso8zwCnc0xib-LDVed6TX/s4000/IMG_20230417_114752.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3000" data-original-width="4000" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDz1cFL8YLbx0BqJZApBWFGM7KXQGPr9C7QvXclbm83dbnKrws20ptNitIfzjnA0edULBNCUvlfl5voIuJVRCvMaMtLHhygQgS9YFAd3ZeT7aGlBLOquVGzzbzQJ_A7M1bVuC0EaK5Jafl0kK132RNMP205b0OkNrl3CAso8zwCnc0xib-LDVed6TX/s320/IMG_20230417_114752.jpg" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg808W6-ODezZfcMcZkoab0BCylOZoR1N7TU9YXY-mCdhFkdqt_9a4g0OS6TTRTRU-Pk3AsJDECSf22S2zuAB8EovbcX4rV4hkRt76WguzgZVfZLxzob1UKEWTXstArfMYaUNlAbepVY93rEFQqwCYQq1MdS0-hNmkuURB3Za4NJJzvkj9ZJk8oJM3h/s3319/IMG_20230417_135923.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3319" data-original-width="2998" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg808W6-ODezZfcMcZkoab0BCylOZoR1N7TU9YXY-mCdhFkdqt_9a4g0OS6TTRTRU-Pk3AsJDECSf22S2zuAB8EovbcX4rV4hkRt76WguzgZVfZLxzob1UKEWTXstArfMYaUNlAbepVY93rEFQqwCYQq1MdS0-hNmkuURB3Za4NJJzvkj9ZJk8oJM3h/s320/IMG_20230417_135923.jpg" width="289" /></a></div><br /><div class="separator" style="clear: both; text-align: left;">はじめに、こんな感じで2,30分くらい読み取らせてデータセットを作ります。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">このデータセットをTensorFlowで学習させます。</div><div class="separator" style="clear: both; text-align: left;">以下がコードです。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div><span style="color: #c586c0;">import</span> tensorflow <span style="color: #c586c0;">as</span> tf</div><div><span style="color: #c586c0;">from</span> tensorflow.keras.models <span style="color: #c586c0;">import</span> Sequential</div><div><span style="color: #c586c0;">from</span> tensorflow.keras.layers <span style="color: #c586c0;">import</span> Dense</div><div><span style="color: #c586c0;">from</span> tensorflow.keras.optimizers <span style="color: #c586c0;">import</span> Adam</div><div><span style="color: #c586c0;">import</span> numpy <span style="color: #c586c0;">as</span> np</div><div><span style="color: #c586c0;">import</span> pandas <span style="color: #c586c0;">as</span> pd</div><div><span style="color: #c586c0;">from</span> sklearn.model_selection <span style="color: #c586c0;">import</span> train_test_split</div><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><br /></div>#データセットの読み込み・numpy配列に変換<br /><div>h = (np.genfromtxt(<span style="color: #ce9178;">'data/h.csv'</span>, <span style="color: #9cdcfe;">delimiter</span>=<span style="color: #ce9178;">','</span>)).reshape(<span style="color: #b5cea8;">10000</span>, <span style="color: #b5cea8;">6</span>, <span style="color: #b5cea8;">2</span>)</div><div>v = (np.genfromtxt(<span style="color: #ce9178;">'data/v.csv'</span>, <span style="color: #9cdcfe;">delimiter</span>=<span style="color: #ce9178;">','</span>)).reshape(<span style="color: #b5cea8;">10000</span>, <span style="color: #b5cea8;">6</span>, <span style="color: #b5cea8;">2</span>)</div><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><br /></div>#ラベルの作成・結合<br /><div>h_labels = np.ones((<span style="color: #b5cea8;">10000</span>, <span style="color: #b5cea8;">1</span>, <span style="color: #b5cea8;">2</span>))</div><div>v_labels = np.zeros((<span style="color: #b5cea8;">10000</span>, <span style="color: #b5cea8;">1</span>, <span style="color: #b5cea8;">2</span>))</div><div>h = np.concatenate([h, h_labels], <span style="color: #9cdcfe;">axis</span>=<span style="color: #b5cea8;">1</span>)</div><div>v = np.concatenate([v, v_labels], <span style="color: #9cdcfe;">axis</span>=<span style="color: #b5cea8;">1</span>)</div><div>data = np.vstack((h, v))</div><div><br /></div><div>#一応シャッフル</div><div>np.random.shuffle(data)</div><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><br /></div>#訓練用とテスト用に分割<br /><div>train, test = train_test_split(data, <span style="color: #9cdcfe;">test_size</span>=<span style="color: #b5cea8;">0.2</span>)</div><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><br /></div>#ターゲットデータとラベルの指定<br /><div>train_x = train[:, :<span style="color: #b5cea8;">6</span>, :]</div><div>train_y = train[:, -<span style="color: #b5cea8;">1</span>, <span style="color: #b5cea8;">1</span>]</div><div>train_y = train_y.reshape(train_y.shape[<span style="color: #b5cea8;">0</span>], <span style="color: #b5cea8;">1</span>)</div><br /><div>test_x = test[:, :<span style="color: #b5cea8;">6</span>, :]</div><div>test_y = test[:, -<span style="color: #b5cea8;">1</span>, <span style="color: #b5cea8;">1</span>]</div><div>test_y = test_y.reshape(test_y.shape[<span style="color: #b5cea8;">0</span>], <span style="color: #b5cea8;">1</span>)</div><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><br /></div>#モデルの作成<br /><div>model = tf.keras.Sequential([</div><div> tf.keras.layers.Dense(<span style="color: #b5cea8;">32</span>, <span style="color: #9cdcfe;">activation</span>=<span style="color: #ce9178;">'relu'</span>,</div><div><span style="color: #9cdcfe;"><span> </span>kernel_initializer</span>=tf.keras.initializers.HeNormal(),</div><div><span> </span><span style="color: #9cdcfe;">input_shape</span>=(<span style="color: #b5cea8;">6</span>, <span style="color: #b5cea8;">2</span>)),</div><div> tf.keras.layers.Dense(<span style="color: #b5cea8;">64</span>, <span style="color: #9cdcfe;">activation</span>=<span style="color: #ce9178;">'relu'</span>),</div><div> tf.keras.layers.Dense(<span style="color: #b5cea8;">1</span>, <span style="color: #9cdcfe;">activation</span>=<span style="color: #ce9178;">'sigmoid'</span>)</div><div>])</div><br /><div>model.compile(<span style="color: #9cdcfe;">optimizer</span>=Adam(<span style="color: #9cdcfe;">learning_rate</span>=<span style="color: #b5cea8;">0.001</span>),</div><div> <span style="color: #9cdcfe;">loss</span>=<span style="color: #ce9178;">'binary_crossentropy'</span>,</div><div> <span style="color: #9cdcfe;">metrics</span>=[<span style="color: #ce9178;">'accuracy'</span>])</div><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><br /></div><div>model.fit(train_x, train_y, <span style="color: #9cdcfe;">epochs</span>=<span style="color: #b5cea8;">10</span>, <span style="color: #9cdcfe;">batch_size</span>=<span style="color: #b5cea8;">32</span>)</div><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><br /></div>#モデルの評価<br /><div>loss, accuracy = model.evaluate(test_x, test_y, <span style="color: #9cdcfe;">verbose</span>=<span style="color: #b5cea8;">0</span>)</div><br /><div><span style="color: #dcdcaa;">print</span>(<span style="color: #ce9178;">'loss:'</span>, loss, <span style="color: #ce9178;">'accuracy:'</span>, accuracy)</div><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><br /></div>#実際に水平・垂直のデータを予測できているかテスト<br /><div>input1 = (np.genfromtxt(<span style="color: #ce9178;">'data/hpredict.csv'</span>, <span style="color: #9cdcfe;">delimiter</span>=<span style="color: #ce9178;">','</span>)).reshape(<span style="color: #b5cea8;">16</span>, <span style="color: #b5cea8;">6</span>, <span style="color: #b5cea8;">2</span>)</div><div>input2 = (np.genfromtxt(<span style="color: #ce9178;">'data/vpredict.csv'</span>, <span style="color: #9cdcfe;">delimiter</span>=<span style="color: #ce9178;">','</span>)).reshape(<span style="color: #b5cea8;">16</span>, <span style="color: #b5cea8;">6</span>, <span style="color: #b5cea8;">2</span>)</div><br /><div>prediction1 = model.predict(input1)</div><div>prediction2 = model.predict(input2)</div><br /><div><span style="color: #dcdcaa;">print</span>(prediction1)</div><div><span style="color: #dcdcaa;">print</span>(prediction2)</div></div></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">評価は以下のようになりました。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">Epoch 1/10</div><div class="separator" style="clear: both;">500/500 [==============================] - 2s 2ms/step - loss: 0.6687 - accuracy: 0.5763</div><div class="separator" style="clear: both;">(省略)</div><div class="separator" style="clear: both;">Epoch 10/10</div><div class="separator" style="clear: both;">500/500 [==============================] - 1s 2ms/step - loss: 0.3698 - accuracy: 0.8954</div><div class="separator" style="clear: both;">loss: 0.3550117611885071 accuracy: 0.8889164924621582</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">ニューロンの数やoptimizerをいろいろ変えたりして、正確性が89%まで出るようになりました。</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">実際にいくつかのデータを予測させると以下のようになりました。</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">水平のデータ</div><div class="separator" style="clear: both;"><div class="separator" style="clear: both;">[[0.9883703 ]</div><div class="separator" style="clear: both;"> [0.9930196 ]</div><div class="separator" style="clear: both;"> [0.69164467]</div><div class="separator" style="clear: both;"> [0.8856425 ]</div><div class="separator" style="clear: both;"> [0.869069 ]</div><div class="separator" style="clear: both;"> [0.95285755]]</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> [[0.6108472 ]</div><div class="separator" style="clear: both;"> [0.9883703 ]</div><div class="separator" style="clear: both;"> [0.83953756]</div><div class="separator" style="clear: both;"> [0.9930196 ]</div><div class="separator" style="clear: both;"> [0.8858758 ]</div><div class="separator" style="clear: both;"> [0.95285755]]</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> [[0.83953756]</div><div class="separator" style="clear: both;"> [0.9883703 ]</div><div class="separator" style="clear: both;"> [0.9970184 ]</div><div class="separator" style="clear: both;"> [0.69164467]</div><div class="separator" style="clear: both;"> [0.8858758 ]</div><div class="separator" style="clear: both;"> [0.9757535 ]]</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">垂直のデータ</div><div class="separator" style="clear: both;"><div class="separator" style="clear: both;">[[6.9464278e-01]</div><div class="separator" style="clear: both;"> [4.5149717e-03]</div><div class="separator" style="clear: both;"> [2.5530994e-01]</div><div class="separator" style="clear: both;"> [1.7064719e-02]</div><div class="separator" style="clear: both;"> [4.1041663e-01]</div><div class="separator" style="clear: both;"> [5.3049397e-01]]</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> [[1.3248680e-02]</div><div class="separator" style="clear: both;"> [6.1752790e-01]</div><div class="separator" style="clear: both;"> [2.3598520e-01]</div><div class="separator" style="clear: both;"> [6.9464278e-01]</div><div class="separator" style="clear: both;"> [3.9535922e-01]</div><div class="separator" style="clear: both;"> [1.7615510e-02]]</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"> [[2.5456597e-03]</div><div class="separator" style="clear: both;"> [3.9535922e-01]</div><div class="separator" style="clear: both;"> [1.7038897e-02]</div><div class="separator" style="clear: both;"> [6.9464278e-01]</div><div class="separator" style="clear: both;"> [4.3180758e-01]</div><div class="separator" style="clear: both;"> [2.5530994e-01]]</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">水平データに0、垂直データに1のラベリングをしました。</div><div class="separator" style="clear: both;">正規化ができていないのでわかりづらいですが、水平と垂直で明らかに値が異なっているように見えます。成功でしょうか。そうであってほしいです・・・</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">ターゲットデータの形が6x2で、ラベルの形もそれに合わせたのでひとつのデータに対してひとつの予測が出てほしかったのですが、なぜか6個出てしまっています。まだまだ改善の余地があるので今後も勉強していきたいです。</div></div></div></div><div class="separator" style="clear: both; text-align: left;"><br /></div>kkinjohttp://www.blogger.com/profile/16256356682037656621noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-11996134380543634682023-03-29T08:43:00.000+09:002023-03-29T08:43:20.302+09:00フラッグタグで、読み取り距離10m以上を実現してみた<p>フラッグタグは、金属製品に貼り付け、金属自体で電波を受けることが可能なため、小さなサイズでも長い読み取り距離を実現しました。</p><p><span face="M_PLUS_1p, sans-serif" style="background-color: white;">フラッグタグを紹介する一部のサイトでは、金属部分の形状や大きさによっては、10m以上の読み取り距離を実現するとの記載もあるのですが、</span><span style="background-color: white;">どのような条件で</span><span face="M_PLUS_1p, sans-serif" style="background-color: white;">、</span><span style="background-color: white;">10m以上の読み取り距離が実現できるのか、試してみました。</span></p><p><span style="background-color: white;">タグ : Smartrac Midas Flag Tag</span></p><p><span style="background-color: white;">リーダー : </span>デンソー BHT-1281</p><p><span style="background-color: white;">距離の測定には、</span>レーザー距離計を使用しました。</p><p>レーザー距離計はm(メートル)単位で、小数点3桁まで測定できるのですが、今回の実験では、4回以上読み取った距離を計測して、平均値の小数点3桁目を四捨五入しました。本文の距離の単位はメートルとなります。</p><p><br /></p><p>(1)材質による読み取り距離の比較</p><p> 銅、鉄、アルミニウムの3種類の材質で読み取り距離を比較してみました。</p><p> ※サイズは0.5×100×200(厚さ×縦×横)単位はmm</p><p> ※銅、アルミニウムは純度99%以上(鉄には純度の表記なし)</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVyXQlDTnaHO_U9K1R7V3gsmPML2Djo-4Ce64zwoHOiu6tQt_6YIRMpBapFWGLXMynm3EIh7sKMNRqGetrp_-gW-DytUbeRnoE5En_Z-PGb62oF08Yyxe1ZPNLDEpzPzGa763dlfqc26Jn9LA4RFM-2hJMsueijIHV8QVajB2qZkyAPqsORbcomA8k/s3840/DSC_1869.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2160" data-original-width="3840" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVyXQlDTnaHO_U9K1R7V3gsmPML2Djo-4Ce64zwoHOiu6tQt_6YIRMpBapFWGLXMynm3EIh7sKMNRqGetrp_-gW-DytUbeRnoE5En_Z-PGb62oF08Yyxe1ZPNLDEpzPzGa763dlfqc26Jn9LA4RFM-2hJMsueijIHV8QVajB2qZkyAPqsORbcomA8k/w409-h230/DSC_1869.JPG" width="409" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"> 以下の写真のように、はみ出すようにフラッグタグを貼った金属板を、プラスチック製のタブレットスタンドに立てかけました。</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqBDsylSRHv9Qtam-ceLlngiaXGW7gEOLfkbzAKUxqBXvz4hiuBXOy2jdBcnhi4QBRmSDxsFFC8t49Q79zWk8JeFp88ecc61eH_21kU9nvYH8WHnI4cySitz4Cg7eIPmI5RGmHAZCD2OwXM-JS3Wy1_yLIv8XB2SQnSBgy5RQi_yGt4dmrO9F7S8O0/s3840/DSC_1866.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3840" data-original-width="2160" height="347" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqBDsylSRHv9Qtam-ceLlngiaXGW7gEOLfkbzAKUxqBXvz4hiuBXOy2jdBcnhi4QBRmSDxsFFC8t49Q79zWk8JeFp88ecc61eH_21kU9nvYH8WHnI4cySitz4Cg7eIPmI5RGmHAZCD2OwXM-JS3Wy1_yLIv8XB2SQnSBgy5RQi_yGt4dmrO9F7S8O0/w195-h347/DSC_1866.JPG" width="195" /></a></div><p> リーダーのMANICA EXCEL TOOL で電波を4番目にして、立てかけた金属板を正面から読み取りました。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht2FVbwgMjkO5HtJrl5uzHQOCaNmPdh3IIm2bLxdj8tl0vMNyAXur8402vNA7J_D0zPF68ujqMkCHSD5Mals3wsRQ2E6wzJMuO7SAHCW-diCT3Hj_rqliRViGHZ5eI0wn3AcjdkuHn0jOVWwcWhKorkM6_wYwD8TndaH-LKad4VpRpw7xJvBWe2sRK/s3840/DSC_1867.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3840" data-original-width="2160" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht2FVbwgMjkO5HtJrl5uzHQOCaNmPdh3IIm2bLxdj8tl0vMNyAXur8402vNA7J_D0zPF68ujqMkCHSD5Mals3wsRQ2E6wzJMuO7SAHCW-diCT3Hj_rqliRViGHZ5eI0wn3AcjdkuHn0jOVWwcWhKorkM6_wYwD8TndaH-LKad4VpRpw7xJvBWe2sRK/s320/DSC_1867.JPG" width="180" /></a></div><div><br /></div> なお、レーザー距離計のレーザーを金属板に当てるのが難しかったので、10cm後方の壁に当てて距離を測定しました。<br /><p> 以下の順位と読み取り距離になりました。</p><p> 1位 銅 : 5.55</p><p> 2位 アルミニウム: 5.48</p><p> 3位 鉄 : 5.36</p><p> 今回3種類の金属だけで実験しましたが、電気伝導率の順位と一致するようなので、伝導率が高い金属ほど読み取りが良くなると思われます。</p><p> 銅が1位でしたが、価格や入手の都合で、2位のアルミニウムで、次の実験を行いました。</p><p><br /></p><p>(2)厚さによる読み取り距離の比較</p><p> 厚さが 0.3mm、1mm、2mm のアルミニウムで読み取り距離を比較してみました。</p><p> ※縦横は100×200で純度99%以上</p><p> (1)と同じ方法で実験し、以下の順位と読み取り距離になりました。</p><p> 1位 0.3mm : 5.53</p><p> 2位 0.5mm : 5.48 ※(1)で計測した値(異なる日に測定)</p><p> 3位 1mm : 5.45</p><p> 4位 2mm : 5.33</p><p> それぞれの差は小さいのですが、1位の0.3mmと最下位の2mmは20cmの差があり、薄い方が読み取り距離が長くなりました。</p><p> 薄いアルミニウムという事で、安価で加工しやすいアルミ箔を使って、次の実験を行いました。</p><p><br /></p><p>(3)読み取り距離10m以上に挑戦</p><p> リーダーの出力を最大にし、アルミ箔を小さいサイズから順に読み取り距離を測定しました。</p><p> ※100均で買った幅25cmのアルミ箔を使用</p><p> ※アルミ箔の材質に「アルミニウムはく」とのみ記載されていて純度は不明</p><p> ※(1)、(2)と同様、アルミ箔のサイズの単位はmmとする</p><p> なお、風の影響でアルミ箔が動いてしまうので、プラスチックの下敷きで押さえました。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghAWObcFWHQ0QXesxjFlsaajBMtZAC0VtCRejG9FqM8aRJVhi7oiITfIf24Yi1sbGawtl5Lii5XnE8e9wIzWMncAxXp1l5Oz1XvxkIGuqAkxfq1sgLpc-j8LdhCJEJv8rxyhfc2I1IEYGvPrytqkUVxAHL63jP-dEJd61pD4BHzw78ZU3dpekyRQAC/s3840/DSC_1882.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2160" data-original-width="3840" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghAWObcFWHQ0QXesxjFlsaajBMtZAC0VtCRejG9FqM8aRJVhi7oiITfIf24Yi1sbGawtl5Lii5XnE8e9wIzWMncAxXp1l5Oz1XvxkIGuqAkxfq1sgLpc-j8LdhCJEJv8rxyhfc2I1IEYGvPrytqkUVxAHL63jP-dEJd61pD4BHzw78ZU3dpekyRQAC/s320/DSC_1882.JPG" width="320" /></a></div><p><br /></p><p> ① サイズ250×200 : 5.87</p><p> (2)のアルミニウム板の2倍以上の面積があったたのですが、思っていたほど距離が出ませんでした。(アルミニウムの純度が低い?)</p><p><br /></p><p> ② サイズ250×300 : 6.94</p><p><br /></p><p> ③ サイズ250×400 : 9.40</p><p> 最大で9.856mを測定したのですが、1度も10mを超える事はありませんでした。</p><p><br /></p><p> ④ サイズ250×500 : 10.40</p><p> 安定して10m以上を測定できました。</p><p> ただし、10mを超えると、度々レーザー距離計が測定不可能となってしまいました。それらも考慮すると、平均距離は、10.4mより長かったと思います。</p><p><br /></p><p>以上の実験から、サイズが250mm ×500mm以上のアルミ箔であれば、10m以上の読み取り距離を実現できる事が分かりました。</p><p><br /></p><p>【おまけ】</p><p>金属製品で測定してみました。</p><p><br /></p><p>物置 : 4.08</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIMLUBhgpvrKqLFokE7Vmduew_WBCNkKVC1LVZs7tu3fnvvcpBXFg_OBP6UhO02yCRHlSTdhrX1db4hxfvgXqBW0THgsbH-fIChxr5p1aPFHqORBJZQcNf_Dkz3xw6Xt8BtU_vFezq8VhcZxC5f8D6iiDJdGR0VVZApb-cViNdGz5rtBTtEKf3kd2B/s3840/DSC_1873.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2160" data-original-width="3840" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIMLUBhgpvrKqLFokE7Vmduew_WBCNkKVC1LVZs7tu3fnvvcpBXFg_OBP6UhO02yCRHlSTdhrX1db4hxfvgXqBW0THgsbH-fIChxr5p1aPFHqORBJZQcNf_Dkz3xw6Xt8BtU_vFezq8VhcZxC5f8D6iiDJdGR0VVZApb-cViNdGz5rtBTtEKf3kd2B/s320/DSC_1873.JPG" width="320" /></a></div><br /><p>自動車 : 5.25</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH15UJHPpYiyxiQJehrfugekVNKdTlNMXTBzhaORqn-ZHGf8QzblexC5c4CFOGR8k9vda_OiPvgXnDt6UKX5WY55nZB6XHDLcdCFBgUaalm_JZRikel_Er7aXAcmsXApMcM0ubEzZGI092sTvkl2TbPc9bYe31_VovjH6hIKYjWmIskeEXjtwKcJQ4/s3840/DSC_1879.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3840" data-original-width="2160" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH15UJHPpYiyxiQJehrfugekVNKdTlNMXTBzhaORqn-ZHGf8QzblexC5c4CFOGR8k9vda_OiPvgXnDt6UKX5WY55nZB6XHDLcdCFBgUaalm_JZRikel_Er7aXAcmsXApMcM0ubEzZGI092sTvkl2TbPc9bYe31_VovjH6hIKYjWmIskeEXjtwKcJQ4/s320/DSC_1879.JPG" width="180" /></a></div><br /><p>アルミ缶 : 5.16</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigF9Ef2udC9hyAC5t0m9JjeJ-BQO8pEWe07hRZ5l6h-QpGuJuEr_HHeO8BV2usLD3Tu5E8cLR-li9i3AfuVg-9tiXql1eXm9qwZCDTNWDGrejQc-pVrTAxzRMaHAcTuciseszOPwL6nL-mGCwgaNx4dZ-fP3z8m2hfA6iwB-BkIpdWUItf677d9-iw/s3840/DSC_1880.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3840" data-original-width="2160" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigF9Ef2udC9hyAC5t0m9JjeJ-BQO8pEWe07hRZ5l6h-QpGuJuEr_HHeO8BV2usLD3Tu5E8cLR-li9i3AfuVg-9tiXql1eXm9qwZCDTNWDGrejQc-pVrTAxzRMaHAcTuciseszOPwL6nL-mGCwgaNx4dZ-fP3z8m2hfA6iwB-BkIpdWUItf677d9-iw/s320/DSC_1880.JPG" width="180" /></a></div><br /><p>アルミ蒸着PETフィルムの袋 : 8.08</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkoxHfNah4CaTMyZN0uRO0dShOidEvRNMbJT0xcY9KQB88PWQt_6qDOJ_jMYr5jKknELWL8iHwAFNboUx0pXWy3jaz4_Y1xRVOwx4rk9G_aV15e2N4oXRVSUHa8h3LaDUKmYwWgnp2sNa8WU4mRwc1CKvuzZuaU0CdNCxYmpxp1fxpqhvdL8d1XjH5/s3840/DSC_1881.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3840" data-original-width="2160" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkoxHfNah4CaTMyZN0uRO0dShOidEvRNMbJT0xcY9KQB88PWQt_6qDOJ_jMYr5jKknELWL8iHwAFNboUx0pXWy3jaz4_Y1xRVOwx4rk9G_aV15e2N4oXRVSUHa8h3LaDUKmYwWgnp2sNa8WU4mRwc1CKvuzZuaU0CdNCxYmpxp1fxpqhvdL8d1XjH5/s320/DSC_1881.JPG" width="180" /></a></div><br /><p><br /></p><p><br /></p><p><br /></p><br />ykobayashihttp://www.blogger.com/profile/14387890498327632847noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-82572258135945968912022-10-17T16:17:00.000+09:002022-10-17T16:17:56.374+09:00簡易版のシャトルバス乗車数カウントデバイスを作ってみた<p> 別件でFeliCaを読み取ってIDを飛ばすデバイスを作っていたので、それをいじって超簡易版のシャトルバス乗車数カウントデバイスを作ってみました。</p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/fpMtIHdnwcQ" width="320" youtube-src-id="fpMtIHdnwcQ"></iframe></div><br /><p>カードを読み取って、枚数をカウントするだけの簡単なデバイスです。乗車時にタッチでカウントアップ、降車時にタッチでカウントダウンします。カウントアップしたかカウントダウンしたかは音で判別できるようにしています。</p><p>電源があれば使えます。何時何分にタッチしたかがわかるようなログ機能や、誰がタッチしたのかがわかる機能など便利な機能は一切搭載されておりません。</p><p><br /></p>ssanohttp://www.blogger.com/profile/05508471105610047571noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-51718692066777663682022-05-30T17:22:00.005+09:002022-09-02T09:22:49.008+09:00DRAGINO の LPS8 で SIMのドングルを使う その2<p> 前回の記事では DRAGINO の LPS8 に AK-020 のSIMドングルをつけて動作することろまでを確認したんですが、その後問題が発生し結果として AK-020(+SORACOM) は使用できないことがわかりました。</p><p>LoRaWAN デバイスから OTAA でアクティベーションするところまでは問題無く動作します。問題はその後です。データ通信は ACK を ON にしていたので、デバイスから GW にデータ送信後、GW からの ACK を受信したいのですがこれが全く返ってきません。</p><p>SIMドングル経由ではなく、有線LANでGWを接続した場合は何も問題なくACKが返ってきます。えー、なにこれー、と思っていろいろ調べたんですが原因を特定できず、回線速度が問題じゃないのかくらいの情報を得ることしかできませんでした。ようするに ACK を返すには時間制限があるんですが、それに間に合ってないと。</p><p>回線速度かー、確かに AK-020 は 3G だしねー。諸事情により AK-020 が大量に余っていたので使える用途が見つかってやたー、と思っていたところその野望は即座に崩れてしまいました。</p><p>仕方なく他の方法を考えます。</p><p>まずは別件で使っていた<a href="https://ja.aliexpress.com/item/1005002345858173.html?spm=a2g0s.9042311.0.0.56844c4dhiQdAH" target="_blank">SIM8070Gの開発ボード</a>を使ってみます。しかしながらいろいろ躓いてしまったので記事は後回しにして、別のLTEのSIMドングルを使ってみました。</p><p>試したのは<a href="https://www.fsi.co.jp/mobile/plusF/products/FS040U/index.html" target="_blank">こちらのFS040U</a>です。</p><p>仕様を確認すると、Linuxでは RNDIS に対応しているようです。OpenWRTでもRNDISは使えるようです。</p><p><a href="https://openwrt.org/docs/guide-user/network/wan/wwan/ethernetoverusb_rndis" target="_blank">Use RNDIS USB Dongle for WAN connection</a><br /></p><p>こちらと下記の DRAGINO Wiki の情報を参照して試していきます。</p><p><a href="https://wiki.dragino.com/index.php/Debug_Cellular_connection" target="_blank">Debug Cellular connection</a><br /></p><p>FS040Uはとても優秀で、設定をしてあげればその設定で勝手に接続して、あとはRNDISなど通してネットワーク・インターフェースとして使えます。なのでSORACOMの設定をWindowsなどからしてあげます。その後 FS040U を GW に差し込んで認識するかみてみます。(前回でいろいろいじったのでファクトリリセットして最初からやりました)</p>
<pre class="prettyprint">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</pre>
<p>何か認識してくれています。さらに dmesg で確認すると</p>
<pre class="prettyprint">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</pre>
<p>おー、RNDISとして認識している。わーい。ここで DRAGINO Wiki の方の記事にそってコマンド入力します(一部改変してます)。</p>
<pre class="prettyprint">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
</pre>
<p>すると、あ、繋がってるっぽい。PINGも通るぞ。ここでLoRaWANデバイスからの送信。JOINは通った。次、データ送信。あ、ACK返ってきた!とりあえずよかったー<br /></p><p>2022/8/2 追記 通常のファームウェアではなく、<a href="https://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/USB-Dongle_firmware/" target="_blank">こちら</a>のファームを使用して行いました。</p><p><br /></p>
ssanohttp://www.blogger.com/profile/05508471105610047571noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-57733547270886043922022-04-19T10:20:00.001+09:002022-04-19T10:20:50.744+09:00DRAGINO の LPS8 で SIMのドングルを使う<p> <a href="https://enjoy-rfid.blogspot.com/2021/08/dragino-lorawan-azure-iot-hub.html" target="_blank">前回の記事</a>では、DRAGINO の LPS8 を Azure IoT Hub に接続するところをやったんですが、実はいろいろあって今は AWS IoT の方に接続しております。ちなみに Azure の方は前回の記事のように手こずったんですが、AWS の方は簡単に接続できましたので説明は無しです。</p><p>今回は LPS8 に SIM の USBドングルを挿して何とか通信をしたいという内容になります。使用するドングルは AK-020 で SIM は SORACOM を使います。</p><p>こちらに先人のありがたい記事が掲載されております。</p><p><a href="https://jpdebug.com/p/1599146" target="_blank">Dragino社製IoTゲートウェイ LG01-JPを、SORACOM スターターキット(3G USBドングル AK-020)を使ってSORACOM Airに接続する。</a><br /></p><p><a href="https://qiita.com/openwave-co-jp/items/2a1cc16992d06abe1fec">Dragino社製IoTゲートウェイ LG01-JPを、SORACOM スターターキット(3G USBドングル AK-020)を使ってSORACOM Airに接続する。その2</a><br /></p><p>今回使用する LPS8 とは異なる機種ですし、のっけからカーネルの更新があるのでちょっと無理そうかなーと思って手を付けていなかったんですが、やってみたら意外といけたので備忘録にしたいと思います。</p><p>AK-020 は、USB に挿し込むと CD-ROM として認識され、それをイジェクトすると USBモデムになる仕様になっていますので、まずは USBモデムとして認識されるところまでをやります。</p><p>現時点でのファームの最新は lgw-5.4.1644990565 です。LPS8 に AK-020 を挿して SSH で接続し、 lsusb をやると一応デバイスとして認識しているようです。</p>
<pre class="prettyprint"># 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
</pre>
<p>VendorID が 15eb で ProductID が a403 が AK-020 の CD-ROM 側の ID になります。これをイジェクトすると、ProductID がUSBモデムの側の 7d0e に変わります。</p><p>で、イジェクトをしたいんですが eject パッケージも入らないのでどうしたもんかと調べてたら usb_modeswitch というこういうときに使うであろうモード切り替え用のパッケージがあったのでこれを使ってみます。が、何とすでにインストールされていました。OpenWRT では設定ファイルは /etc/usb-mode.json だそうです。見てみると確かにあります。ここに周りを参考におもむろに追記してみます。</p><p></p>
<pre class="prettyprint"> "15eb:a403": {
"*": {
"t_vendor": 5611,
"t_product": [ 32104 ],
"mode": "StandardEject",
"msg": [ ]
}
}
</pre>
<p>t_vendor と t_product は整数で指定されているので、15eb と 7d0e をそれぞれ10進数にした 5611 と 32104 を指定します。追記後、リブートして再度 lsusb してみると、</p>
<pre class="prettyprint"># 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
</pre>
<p>おー!、変わりました。さらに、デバイスをUSBシリアルとして認識してもらうため上記1個目の記事の3番の前半部分をやります(/etc/modules.d/80-usrserial の作成)。</p><p>ここまでくれば LPS8 の設定画面でドングルの認識されてるかなと思ったんですが、残念ながら認識してもらえませんでした。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC3G5aEctHdRxteAQ4LTm0ocsxQ3FkRNttDagGYfi4-SmmQDSpGmPYYsSiq-2LVEoArSVeVOdsKFwkG5n4qJIFX8ZF8cuDvfw22emnI1-FVl6r66Ai9Wh-cHDvnE9DqlCg1_jLezrVdJ5v-_PFRvX2c6KAyWjfAjsu3_hUmownRdMWe0RwIwLT1Pc6/s815/20220419-1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="482" data-original-width="815" height="189" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC3G5aEctHdRxteAQ4LTm0ocsxQ3FkRNttDagGYfi4-SmmQDSpGmPYYsSiq-2LVEoArSVeVOdsKFwkG5n4qJIFX8ZF8cuDvfw22emnI1-FVl6r66Ai9Wh-cHDvnE9DqlCg1_jLezrVdJ5v-_PFRvX2c6KAyWjfAjsu3_hUmownRdMWe0RwIwLT1Pc6/s320/20220419-1.PNG" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div>仕方がないので手動で設定します、手順は上記1個目の記事の5番以降になります(ありがたや)。そうすると<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQS_hbqL-2tWhp9VWxD6ZHpBa2fSEMb6sHUwNbSC6lJiJL2TbqhbWKaHk_dLOkhRrh2wjP-IXAwN2w7J79qza7LuGFefc1VZ7UdAaa-3xEsRq1oM15XhQk2dx_qMroavtNaUyA9WxSiT9VGIwUmluMs0q3vtPn36fZhZ4lFnKdp6mqzw6PjFECOyRg/s1224/IMG_9289.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1224" data-original-width="918" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQS_hbqL-2tWhp9VWxD6ZHpBa2fSEMb6sHUwNbSC6lJiJL2TbqhbWKaHk_dLOkhRrh2wjP-IXAwN2w7J79qza7LuGFefc1VZ7UdAaa-3xEsRq1oM15XhQk2dx_qMroavtNaUyA9WxSiT9VGIwUmluMs0q3vtPn36fZhZ4lFnKdp6mqzw6PjFECOyRg/s320/IMG_9289.jpg" width="240" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div>キター! (写真じゃわかりませんがドングルの緑が点滅しています。)無事にうまく動作しました。よかった。ssanohttp://www.blogger.com/profile/05508471105610047571noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-15579267149742177312022-03-04T11:54:00.001+09:002022-03-04T12:02:11.195+09:00高いところのタグを読む<p> 棚卸しに絶大な効果を発揮するRFIDですが、棚卸しといえばだいたい倉庫みたいなところでやりますよね。大きな倉庫になると何段にも積み上げてあって、手の届かない高いところに読み取り対象物が置かれていたりします。これをハンディリーダで読み取りできるかというのが今回のお題です。</p><p>ちょうど某倉庫で読み取り実験をしてほしいというご依頼がありましたので、実際にやってみました。実験した倉庫は天井が5mと高い倉庫で、荷物はパレットに積んでありパレットをそのまま金属フレームの棚に収めるという方式で、棚は3段になっています。</p><p>距離計で手をかざしたところから荷物の最上段部分までを測定したところ、おおよそ3mの距離がありました。荷物にタグを簡易的に取り付け、最上段に置いてもらい実際にハンディリーダで読み取りしてみたところ、80%くらいは瞬時に読み取れますが残りはぐるぐるしたりしてようやく読めるといった感じでした。読み取れなくは無いが、ちょっと時間かかるなぁという印象です。</p><p>そこで今回はハンディを取り付ける棒を2種類用意しました。</p><p>1個目はマイクスタンドの</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgGqVAjPeFwEHOe2QB1PFyjmxIsLfAxLN0LruM1J-Pklju4LbSXMaY16MNMnqRaKCvGhlbtfQuPMDbD3I4Kiby3SAhRW3rJC7njCQMsyLdxw2Mj_FtPmpgSBy8H3YZFwZZ80-gZJD_v1ZCp8OcFHD9z6-lijbJMp0I9mfOnfpjtazFQ14uxAxBQVS_5=s1241" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1241" data-original-width="931" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEgGqVAjPeFwEHOe2QB1PFyjmxIsLfAxLN0LruM1J-Pklju4LbSXMaY16MNMnqRaKCvGhlbtfQuPMDbD3I4Kiby3SAhRW3rJC7njCQMsyLdxw2Mj_FtPmpgSBy8H3YZFwZZ80-gZJD_v1ZCp8OcFHD9z6-lijbJMp0I9mfOnfpjtazFQ14uxAxBQVS_5=s320" width="240" /></a></div><p>この部分</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEggz7xWtsoObQRFW8jrfdBWJE2UXKWqOkZqpl8QoxKNSDiN4h-uaId2SpJjZ1NmRt3MDwGhkgGuugTei-DkHdOJ6yuJFDsZP6K2MxHM4mItIpqHnG0tiTp1no8wMlCsiWs7znYVhI-pEWeY9tzublzBPWb9ZPQ42vSoRmJjewyYvZEuxhcpOA0Pe2o7=s1242" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1242" data-original-width="931" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEggz7xWtsoObQRFW8jrfdBWJE2UXKWqOkZqpl8QoxKNSDiN4h-uaId2SpJjZ1NmRt3MDwGhkgGuugTei-DkHdOJ6yuJFDsZP6K2MxHM4mItIpqHnG0tiTp1no8wMlCsiWs7znYVhI-pEWeY9tzublzBPWb9ZPQ42vSoRmJjewyYvZEuxhcpOA0Pe2o7=s320" width="240" /></a></div><p></p><p>ブラスターがすっぽりと取り付けできます(画像は一部ぼかしてあります)。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhWiMhoOKaSObsSS5leslXB8ZF0ABzXFk-w7IQIzPPRqSeuu8hpri1SSi_1ZAdUaG43txGmZ4HDgJlaHum4HdOb8xHYwU_hWDwjskxPE02Donz38j0BKLHWC53UkMEXdDPAbAao8VNGVtUSpc0UBrPuC8teD4kNOIsWM7irRam7COUBc_Sl-mR3moL5=s2620" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2041" data-original-width="2620" height="249" src="https://blogger.googleusercontent.com/img/a/AVvXsEhWiMhoOKaSObsSS5leslXB8ZF0ABzXFk-w7IQIzPPRqSeuu8hpri1SSi_1ZAdUaG43txGmZ4HDgJlaHum4HdOb8xHYwU_hWDwjskxPE02Donz38j0BKLHWC53UkMEXdDPAbAao8VNGVtUSpc0UBrPuC8teD4kNOIsWM7irRam7COUBc_Sl-mR3moL5=s320" width="320" /></a></div><p><br /></p>もう1個はGoPro用の棒と3Dプリンタで作成した治具<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgy4Svz8L9DQa25njObdS0vLpfXDnJmoaM0qiH3M_s0edQxC_QUJjY95v9bf22i4ytrgxVkvXYw1KKz84A27m1nFzbUnK6wi5a--GIuQle-1TqTY6pHptI3S6sJAfnsKpvOw5HYWvyU2tMBLGFrNbisF5atehwIABzA1LAULMEOXioyLX__OWS_ceLg=s1242" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1242" data-original-width="931" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEgy4Svz8L9DQa25njObdS0vLpfXDnJmoaM0qiH3M_s0edQxC_QUJjY95v9bf22i4ytrgxVkvXYw1KKz84A27m1nFzbUnK6wi5a--GIuQle-1TqTY6pHptI3S6sJAfnsKpvOw5HYWvyU2tMBLGFrNbisF5atehwIABzA1LAULMEOXioyLX__OWS_ceLg=s320" width="240" /></a></div>これに普通のカメラ用の 1/4UNC のネジ穴がついているUR31を取り付けます(画像は一部ぼかしてあります)。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiyfWcNqXcQjklDn1ppXak_oPFNBgxwcspCw9XG1wUkzt38aioA3oeXyfMYPXXjabesA-Anuv0p4bW8zFiVE3IPID_UL6W8XPHl_2F1khREQ5Fcxfj4xBylljIosPeZIY5RCBa_RZxBJotMvb6_3Ille9CwcfSCby4rBvkX-x5xsflq_-mhQGbj44dw=s4032" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEiyfWcNqXcQjklDn1ppXak_oPFNBgxwcspCw9XG1wUkzt38aioA3oeXyfMYPXXjabesA-Anuv0p4bW8zFiVE3IPID_UL6W8XPHl_2F1khREQ5Fcxfj4xBylljIosPeZIY5RCBa_RZxBJotMvb6_3Ille9CwcfSCby4rBvkX-x5xsflq_-mhQGbj44dw=s320" width="240" /></a></div><br /><p></p><p>読み取り風景はこんな感じ(画像は一部ぼかしてあります)。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgBtPv5VmkuHGScma08ZczDLVdrADXKuJ24wP-zRyccORaKsMRCaSqdVJ-JQ-X147g0PprrDxJ5ddQP9rlFVQpRZRWngA83wAlI6mbRclGCfUTrTuPfsYQJLhRJdwW7yfaWE7pmhGHkLz_P2fh3xLwmFzOU-NQS0x4pjefekt6pMeFTulUU3TLhoe64=s3489" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3489" data-original-width="2148" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEgBtPv5VmkuHGScma08ZczDLVdrADXKuJ24wP-zRyccORaKsMRCaSqdVJ-JQ-X147g0PprrDxJ5ddQP9rlFVQpRZRWngA83wAlI6mbRclGCfUTrTuPfsYQJLhRJdwW7yfaWE7pmhGHkLz_P2fh3xLwmFzOU-NQS0x4pjefekt6pMeFTulUU3TLhoe64=s320" width="197" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><p>これで何と、下段に置いてあるときと同じくらいのスピードで読み取ることができました!棒つけただけですけどかなり効果が出ることがわかりました。</p><p></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p>ssanohttp://www.blogger.com/profile/05508471105610047571noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-31559752992145768852022-01-24T18:44:00.006+09:002022-01-24T18:47:17.161+09:00MANICAモバイルのアプリにHIDで値を入力する<p><span style="font-family: Kosugi Maru; font-size: large;">ニッチすぎる内容ですが、ある案件対応の中で思いついたアイデアを、ちょっと試してみました。</span></p><p><span style="font-family: Kosugi Maru; font-size: large;"><br /></span></p><p><span style="font-family: Kosugi Maru; font-size: large;">MANICAモバイルで、アプリからICタグの登録を簡単に行う機能があります。</span></p><p><span style="font-family: Kosugi Maru; font-size: large;"><br /></span></p><p><span style="font-family: Kosugi Maru; font-size: large;">未登録のICタグをスキャンして、カテゴリと名称を入力するだけの手軽さなのですが、ある現場で、この名称登録のところに文字じゃなくて管理番号を入力したいというご要望がありました。</span></p><p><span style="font-family: Kosugi Maru; font-size: large;"><br /></span></p><p><span style="font-family: Kosugi Maru; font-size: large;">管理対象のパレット(的なもの)に添付した現品票(的なもの)に印刷されている管理番号を、ICタグのユニークIDに紐付けるかたちでのICタグ登録をしたいわけですが、現品票には既に管理番号がバーコードでも印刷されていました。</span></p><p><span style="font-family: Kosugi Maru; font-size: large;"><br /></span></p><p><span style="font-family: Kosugi Maru; font-size: large;">であれば、管理番号を手入力するよりはバーコードを読んで自動入力したくなりますよね。</span></p><p><span style="font-family: Kosugi Maru; font-size: large;"><br /></span></p><p><span style="font-family: Kosugi Maru; font-size: large;">MANICAモバイルが対応しているRFIDハンディリーダーの中には、バーコード/2次元コード対応の製品がもちろん存在しています。が、SPP接続のため単純に読み取った内容をキーボード入力するようなことは逆に(?)できないんですね。</span></p><p><span style="font-family: Kosugi Maru; font-size: large;"><br /></span></p><p><span style="font-family: Kosugi Maru; font-size: large;">カスタマイズすれば出来るんでしょうけど、費用的にもったいないし、あまり複雑な操作フローにするのも避けたいところ。。。</span></p><p><span style="font-family: Kosugi Maru; font-size: large;"><br /></span></p><p><span style="font-family: Kosugi Maru; font-size: large;">お、もしかして別のスキャナーをHID接続してあげれば、そっちで読み取ったバーコードをシンプルに入力できたりしないだろうか、という案を思いつきました。</span></p><p><span style="font-family: Kosugi Maru; font-size: large;"><br /></span></p><p><span style="font-family: Kosugi Maru; font-size: large;">1台のAndroidスマートフォンに、RFIDハンディリーダー(SPP)とバーコードスキャナー(HID)と、2台のBluetooth接続から同時に接続を行う構成となります。</span></p><p><span style="font-family: Kosugi Maru; font-size: large;"><br /></span></p><p><span style="font-family: Kosugi Maru; font-size: large;">実際に使用した機器はこんな感じ。</span></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhJuQUl0PNjPgKy5_rwn--VnqfaLHACFdq0oCncsCtvYGM_WIhGNgDMHvCsldFVpUvcvyUMnJGyn8yH8OnEByGui4oD-31LpqLxlR6V9omXP7jmUlPbAD3c0gugw8r0AuCR_AU4ZcEtmAnGF7pTcE7euizHJbaLUqmwc5TuZoCJCdL7_IE8ru4yKYP3MA=s1440" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1440" height="300" src="https://blogger.googleusercontent.com/img/a/AVvXsEhJuQUl0PNjPgKy5_rwn--VnqfaLHACFdq0oCncsCtvYGM_WIhGNgDMHvCsldFVpUvcvyUMnJGyn8yH8OnEByGui4oD-31LpqLxlR6V9omXP7jmUlPbAD3c0gugw8r0AuCR_AU4ZcEtmAnGF7pTcE7euizHJbaLUqmwc5TuZoCJCdL7_IE8ru4yKYP3MA=w400-h300" width="400" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br class="Apple-interchange-newline" /><span style="font-family: "Kosugi Maru"; font-size: x-large;">結論から言うと、まったく問題なく動作しました。</span><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhA9iawDweCNVKAxXHxtK37-EPGr3gIfX-i7keUbZzTqH2fiUNDGyPQhcsOMNoC8veCl8AMU94uL_GK8I526q6rsya9dCrjhjlMsLDzEEB194eBfarWfu2rDSnZYVjFuK4fuBzAluwUdBd7C2jTanf_SC2qjMCLWzSKJ78WlAFfSOqz7RnWgEX5ZS8WIQ=s1440" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="812" data-original-width="1440" height="225" src="https://blogger.googleusercontent.com/img/a/AVvXsEhA9iawDweCNVKAxXHxtK37-EPGr3gIfX-i7keUbZzTqH2fiUNDGyPQhcsOMNoC8veCl8AMU94uL_GK8I526q6rsya9dCrjhjlMsLDzEEB194eBfarWfu2rDSnZYVjFuK4fuBzAluwUdBd7C2jTanf_SC2qjMCLWzSKJ78WlAFfSOqz7RnWgEX5ZS8WIQ=w400-h225" width="400" /></a></div><br /><span style="font-family: Kosugi Maru; font-size: large;"><br /></span><p></p><p><span style="font-family: Kosugi Maru; font-size: large;">いちおう動画でも残しておきますね。</span></p><p></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="467" src="https://www.youtube.com/embed/swCbS5-GVU0" width="562" youtube-src-id="swCbS5-GVU0"></iframe></div><br /><span style="font-family: Kosugi Maru; font-size: large;"><br /></span><p></p><p><span style="font-family: Kosugi Maru; font-size: large;"><br /></span></p><p><span style="font-family: Kosugi Maru; font-size: large;"><br /><br /></span></p><p><br /></p><p><br /></p>Yasuhiro Ohsakahttp://www.blogger.com/profile/01257715388027505373noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-22219673075060603112022-01-22T17:07:00.004+09:002022-01-22T17:07:36.525+09:00Amazon Fire HD 10で、MANICAモバイルは動くのか。<p><span style="font-family: verdana;">こんにちは、久しぶりのBlog投稿です。</span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;">今回は、Amazon Fire HD 10でMANICAモバイルは動くのか、というお題となります。</span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;">Amazon Fire シリーズといえば、Amazonプライム会員だと何かと便利で、(残念ながらGooglePlayStoreは使えないけど)大変コスパに優れた端末として有名かと思います。</span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;">我が家でも昨年の子どもの誕生日にプレゼントしてたりしますが、10インチの大きさで1.5万円程度と破格なうえに、画面の質感とかパフォーマンスあどなど何ら問題なく利用できています。ちなみに、頻繁にセールが行わている機種でもあるので、急がなければ1万円程度での購入も可能ですね。</span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;">こんなオトクな機種で、はたして弊社のMANICAモバイルを使用することができるのでしょうか。</span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;">MANICAモバイルはRFIDハンディリーダーとの組み合わせで使うのが基本なので、ハンディリーダーにアタッチするニュアンスだとタブレットよりはスマートフォン向けのアプリではあるのですが、Webブラウザで管理画面を確認するという観点ではタブレットのほうが使いやすかったりしますかね。</span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;">さて、結論からいうと問題なくお使いいただけるわけですが、apkを直接インストールするため少しだけ設定変更など必要です。</span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;">Fire HDをPCとUSB接続してゴニョゴニョできるような方であれば、説明の必要もないかと思いますがもう少し手軽にMANICAモバイルのapkファイルのダウンロードリンク(URL)を、Webブラウザ(デフォルトはSilkブラウザ)からログインしたGmailのアカウントで受け取って、そこからダウンロードみたいな場合、Silkブラウザからダウンロードしたapkファイルのインストールを実行できるように権限の設定を変更します。</span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;">まずは設定メニューから、セキュリティとプライバシーを選択します。</span></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgRdNJAwouZN7ewZdLhRSmFK5xGgPDc57vuZHceEVDJMxlxl6Wy7kzdZQkb4R_RmvYLSckw2dotkuOL4XsqnCuF84kaqXVCOBohq2eGxDfEc9YK3E0D17F_86WZRMqVoXkOa7n66Pmlvp7wJ64dzbxsY0-y1ZMDsKCyLUYTdgpf9QSdmL5jNVr4odXL-A=s1080" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="676" height="640" src="https://blogger.googleusercontent.com/img/a/AVvXsEgRdNJAwouZN7ewZdLhRSmFK5xGgPDc57vuZHceEVDJMxlxl6Wy7kzdZQkb4R_RmvYLSckw2dotkuOL4XsqnCuF84kaqXVCOBohq2eGxDfEc9YK3E0D17F_86WZRMqVoXkOa7n66Pmlvp7wJ64dzbxsY0-y1ZMDsKCyLUYTdgpf9QSdmL5jNVr4odXL-A=w400-h640" width="400" /></a></div><p><br /></p><p>次に、不明ソースからのアプリを選択、</p><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEi1e2nNCW2HLEXTs3HNj-6ap5qNIS06FUAmVIyu_SEyrKhG_bDZCK3428HJGfYYiJ0hqMsiX1MKR2Bx0KKhACVKiGvNWLL9ss0l9cB9GuNSv5HhWf_ZBYVV096kfDReMzKwgxGdxHqZaE1iu5ALdjDDuWI5ADpsw9Wmc64koRWyOk7yVbh6n_7zlKYT3w=s1080" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="676" height="640" src="https://blogger.googleusercontent.com/img/a/AVvXsEi1e2nNCW2HLEXTs3HNj-6ap5qNIS06FUAmVIyu_SEyrKhG_bDZCK3428HJGfYYiJ0hqMsiX1MKR2Bx0KKhACVKiGvNWLL9ss0l9cB9GuNSv5HhWf_ZBYVV096kfDReMzKwgxGdxHqZaE1iu5ALdjDDuWI5ADpsw9Wmc64koRWyOk7yVbh6n_7zlKYT3w=w400-h640" width="400" /></a></div><p><br /></p><p>ここで、このアプリ提供元を許可、にチェックを入れるだけです。</p><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEi3Zu9_TKIU55nZQiqMRdSLFlahMFiNWsYxprk7D3xi5hnN_OIciUK0XQgwmSRswD5n67AW9H43m2_MAvZ4Tf51sUxg-b6btNkitL6dwJ2YmNrP1hy3I92dZyt-egff6uwr3U96dnfltpjWPosep3mbDUmmgLtKk2DIbqiZrN3ERosEG_eyzRmRzxMYKg=s1080" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="676" height="640" src="https://blogger.googleusercontent.com/img/a/AVvXsEi3Zu9_TKIU55nZQiqMRdSLFlahMFiNWsYxprk7D3xi5hnN_OIciUK0XQgwmSRswD5n67AW9H43m2_MAvZ4Tf51sUxg-b6btNkitL6dwJ2YmNrP1hy3I92dZyt-egff6uwr3U96dnfltpjWPosep3mbDUmmgLtKk2DIbqiZrN3ERosEG_eyzRmRzxMYKg=w400-h640" width="400" /></a></div><p><br /></p><p>という感じで、とっても簡単です。インストールして起動すると、いつものMANICAモバイルのメニューです。探索と棚卸しのメニューが画面サイズにあってないですが、使用上の問題はなさそうです。</p><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgtes_2NHJ-pBQ2sU7c9cCOn_CVF9tGI40o-GVIznWJieZBWue3p5FJ8PdwW7Fs2os0LqUgVQV32kC2LR95gQrFG-xLMc_kUqK-mbnExtemGaGpViwZQcZObb7uhCxmwtIen8IRH4bcYuGDP_UK0Ckqdg57SnmtjbgyOe_UsYN0X4MiAqu2VPcgn7ykcA=s1920" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1920" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/a/AVvXsEgtes_2NHJ-pBQ2sU7c9cCOn_CVF9tGI40o-GVIznWJieZBWue3p5FJ8PdwW7Fs2os0LqUgVQV32kC2LR95gQrFG-xLMc_kUqK-mbnExtemGaGpViwZQcZObb7uhCxmwtIen8IRH4bcYuGDP_UK0Ckqdg57SnmtjbgyOe_UsYN0X4MiAqu2VPcgn7ykcA=w400-h640" width="400" /></a></div><br /><span style="font-family: verdana;"><br /></span><p></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;">Silkブラウザで管理画面にアクセスすると、こんな感じで見やすいです。</span></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgfxvuB50rZtUQXSuz7f4cSITaIAAh0SUG7XUZMPoyMeLwiTeuDlefF5N_GI_lwYXaP1ti85palbttfB90VGArZ9Pr2cBuuVXxEu8QZRWmbY7Ui0SCPp4SJgsGnVq_sWl-m-Ron4cSx7DWJw26esR91Pld5CXu-xqGUIfqg0UiqsNo5Mk7D5upksskOiA=s1920" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1920" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEgfxvuB50rZtUQXSuz7f4cSITaIAAh0SUG7XUZMPoyMeLwiTeuDlefF5N_GI_lwYXaP1ti85palbttfB90VGArZ9Pr2cBuuVXxEu8QZRWmbY7Ui0SCPp4SJgsGnVq_sWl-m-Ron4cSx7DWJw26esR91Pld5CXu-xqGUIfqg0UiqsNo5Mk7D5upksskOiA=w640-h400" width="640" /></a></div><br /><span style="font-family: verdana;"><br /></span><p></p><p><span style="font-family: verdana;">素敵ですね!</span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: Kosugi Maru;"><br /></span></p>Yasuhiro Ohsakahttp://www.blogger.com/profile/01257715388027505373noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-40040152718690640062022-01-20T11:40:00.000+09:002022-01-20T11:40:10.052+09:00塗料のシールド効果を実験してみた<p>Amazonなどで、容易に入手できる塗料で、電波のシールド効果を実験してみました。</p><p>使用したリーダーとタグ</p><p>・BHT-1281QULWB-CE</p><p>・ALN-9654(Gタグ)</p><p>塗装した容器内にタグを入れ、リーダーのMANICA EXCEL TOOL で電波を最小の出力にして、読み取りの実験を行いました。</p><p>ネット検索すると、電磁波シールド効果のある塗料として導電塗料が出てくるのですが、導電塗料以外で、気になる塗料があったので、まずはその塗料で試してみました。</p><p><br /></p><p><b>マグネットペイント</b>(ターナー色彩株式会社)Amazon価格:2,090円(税込)</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgVv8MUfHy66if3ZGI_UX8xyE8rde_lBtFDqH6k7h6e5fQK59dK6guDv4vFu108y5bBHHNXOFXG0qL4iHWfE3VV1FpLjFh3_fVnBaWS0ZgyWrVHM9q9U82O9HVz2d5c15G1mnqXH0Nj-OW2TP3jVPOcaBO4bnvVl8eZtGxOxHT2u1xx2EaPdxV6UGkk=s1796" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1796" data-original-width="1718" height="242" src="https://blogger.googleusercontent.com/img/a/AVvXsEgVv8MUfHy66if3ZGI_UX8xyE8rde_lBtFDqH6k7h6e5fQK59dK6guDv4vFu108y5bBHHNXOFXG0qL4iHWfE3VV1FpLjFh3_fVnBaWS0ZgyWrVHM9q9U82O9HVz2d5c15G1mnqXH0Nj-OW2TP3jVPOcaBO4bnvVl8eZtGxOxHT2u1xx2EaPdxV6UGkk=w231-h242" width="231" /></a></div><p>この塗料は、塗るだけで磁石がくっつく下地用塗料です。例えば、チョークボードペイントを上塗りすると、板や室内の壁などにオリジナルの黒板を作成ることができます。</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgf506PgiSTNH593abHTOeB7mNlpoHxvOz2Wni76HK1fDVrD3AhUfFdYD3X3FI-p5qVicApIzHasu6y8xI3ozHXo268VsZAphWO2acnD-LGtJ2GFuZZWTDka0qe30pOM5a6kpLFmY7FYMFUBpKqO_Cz679aky6o1CoWvguI-JXZJFZl3cDnnMUqIaWC=s886" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="886" data-original-width="790" height="244" src="https://blogger.googleusercontent.com/img/a/AVvXsEgf506PgiSTNH593abHTOeB7mNlpoHxvOz2Wni76HK1fDVrD3AhUfFdYD3X3FI-p5qVicApIzHasu6y8xI3ozHXo268VsZAphWO2acnD-LGtJ2GFuZZWTDka0qe30pOM5a6kpLFmY7FYMFUBpKqO_Cz679aky6o1CoWvguI-JXZJFZl3cDnnMUqIaWC=w217-h244" width="217" /></a></div><p></p><p></p><p>成分には「顔料」としか記載されていませんが、磁石がくっつくという事なので金属性の成分を含んでいると思われます。また、導電塗料では塗れないような材質に塗装できます。</p><p>木に塗装できるとのことなので、以下のような、木箱の内側に塗り、タグを中に入れて実験しました。</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjG_iB-Z4NtfHZWyc9lCP2LvKsavty_hT30UZtjylPmbQHro5ZjDt4m9elOhYCojdEQTE540_6BSWz1ror0b3jRgxE0CNEkqdzzMyuf1bRTGVactIk2ZZpfGgsnh22Sine4zd1UFRZAI89aPfArkFfd6xCJywaIO3cMRMocVu8gnBjr8DPxj7Zlh8Ey=s3268" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1862" data-original-width="3268" height="150" src="https://blogger.googleusercontent.com/img/a/AVvXsEjG_iB-Z4NtfHZWyc9lCP2LvKsavty_hT30UZtjylPmbQHro5ZjDt4m9elOhYCojdEQTE540_6BSWz1ror0b3jRgxE0CNEkqdzzMyuf1bRTGVactIk2ZZpfGgsnh22Sine4zd1UFRZAI89aPfArkFfd6xCJywaIO3cMRMocVu8gnBjr8DPxj7Zlh8Ey=w263-h150" width="263" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhIguvtKZcU-3fbEEVIJ3hgAi1zC_CBMdmjoSIBMiBzfVmPNa7A0LpEgQlw8dDS10u0_EV0-KwmvHGXSpmqYfwL82jZyC7dKelEOqkJDZ2o_n9-B4x6Y-ClVQJjy4x0ydyzthZ6khg0qajzo3umI9YWPB8Rw8A62y64jS0heD6ztdtzwMUNiqPgDv9E=s2799" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1817" data-original-width="2799" height="171" src="https://blogger.googleusercontent.com/img/a/AVvXsEhIguvtKZcU-3fbEEVIJ3hgAi1zC_CBMdmjoSIBMiBzfVmPNa7A0LpEgQlw8dDS10u0_EV0-KwmvHGXSpmqYfwL82jZyC7dKelEOqkJDZ2o_n9-B4x6Y-ClVQJjy4x0ydyzthZ6khg0qajzo3umI9YWPB8Rw8A62y64jS0heD6ztdtzwMUNiqPgDv9E=w265-h171" width="265" /></a></div><br /><p>この塗料は3回重ね塗りするのですが、1回塗る都度に読み取りしてみました。読み取り距離は以下のように変化しました。</p><p>未塗装 : 65cm</p><p>1回目 : 50cm</p><p>2回目 : 35cm</p><p>3回目 : 30cm</p><p>塗り重ねていくと、読み取りは悪くなっていくのですが、シールドとして使用するのは無理でした。</p><p>ちなみに、磁石はくっつきました。</p><p><br /></p><p>次に、導電塗料で実験しました。</p><p>導電塗料は、電流が流れやすいカーボンや金属の粉末を溶かした塗料です。金属が含まれている事から電磁波シールドとしても使用できます。</p><p>使用した導電塗料は以下の3種類で、いずれもプラスコート株式会社の「ポリカーム(Polycalm)」という商品のスプレー缶(300ml)になります。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjFLgVF4hDCQ4Q8MAUqzFEG2VFNwM64wY5ByD0YEqYIWb9C0UDLFQTD-KvWMbmZHKUXKk0Ea-0qOMzD32Uk4Hmv7FYrXCsOvKXImC9tk9FfXpemdwjrofL7Q6LsSUGGuh6dFR0pqSEvT6WwA63G5VLb6yx_tpvtRvK1x82uSh5kEh93fakCNBDSYiSc=s2895" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2104" data-original-width="2895" height="233" src="https://blogger.googleusercontent.com/img/a/AVvXsEjFLgVF4hDCQ4Q8MAUqzFEG2VFNwM64wY5ByD0YEqYIWb9C0UDLFQTD-KvWMbmZHKUXKk0Ea-0qOMzD32Uk4Hmv7FYrXCsOvKXImC9tk9FfXpemdwjrofL7Q6LsSUGGuh6dFR0pqSEvT6WwA63G5VLb6yx_tpvtRvK1x82uSh5kEh93fakCNBDSYiSc=s320" width="320" /></a></div><br /><p>それぞれの塗料の導電性物質と価格は、写真右から以下のとおりです。</p><p>①カーボングラファイト Amazon価格:1,870円(税込)</p><p>②ニッケル Amazon価格:4,290円(税込)</p><p>③銀・銅 Amazon価格:4,620円(税込)</p><p>以下のような、材質がポリプロピレン(PP)の容器の外側に塗り、タグを中に入れて実験しました。(写真は銀銅の塗料で塗装)</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEj-I61EXUiKxdeYsgxpDkIcMwSefP2privV1mxN97jz_zHNkQNA_VHhQHXDdozFbo2SDtNCWdFCZIsZ-gfReO8Cbbx-MyPnyTLfeKsdS2gW0J5QCE0nC3LbuzT3tIgPUatsaTeNCz1YFswWR3jIG1yctW6YkQ1x9PcVli8ID8e_LVPsVghsiK96e2u-=s3114" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1528" data-original-width="3114" height="157" src="https://blogger.googleusercontent.com/img/a/AVvXsEj-I61EXUiKxdeYsgxpDkIcMwSefP2privV1mxN97jz_zHNkQNA_VHhQHXDdozFbo2SDtNCWdFCZIsZ-gfReO8Cbbx-MyPnyTLfeKsdS2gW0J5QCE0nC3LbuzT3tIgPUatsaTeNCz1YFswWR3jIG1yctW6YkQ1x9PcVli8ID8e_LVPsVghsiK96e2u-=s320" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhJj-Ml6lIxavKaEvYIIRtUwb1EL5y4At83C_Gw8v8hD2AG1AXVtE4LWJyjGEaxuVu_GWMj6XE2YOJVcdx4cElJ9IO-bAGxDByavm2XfFRwZmUtzLOmSHvO9BxFZjTStQg-FIeaNQTvXQaTdHTbh0O2fj0cYSCXMHvs6q1xzVx8fAasOZ9SgFdlZSrU=s2495" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1725" data-original-width="2495" height="221" src="https://blogger.googleusercontent.com/img/a/AVvXsEhJj-Ml6lIxavKaEvYIIRtUwb1EL5y4At83C_Gw8v8hD2AG1AXVtE4LWJyjGEaxuVu_GWMj6XE2YOJVcdx4cElJ9IO-bAGxDByavm2XfFRwZmUtzLOmSHvO9BxFZjTStQg-FIeaNQTvXQaTdHTbh0O2fj0cYSCXMHvs6q1xzVx8fAasOZ9SgFdlZSrU=s320" width="320" /></a></div><p>なお、塗装に慣れてないのため、側面は塗りムラができるなど、うまく塗れなかったので、平で綺麗に塗装できたフタ側より読み取りました。</p><p><br /></p><p><b>①カーボングラファイト</b></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgfnSYDPXt8ip3OAwRvRqGhLlG5N2vLFcJkvsPYlNxOynXcQTznB9MCzzfptPJZcA9O4kUSlyVdZyFA7dB60GTly0XfmvP9r0jPGOzHASt1SbsqKTVsBLNRNT_BBZaKpSqNadhuH97Z1nijgLP9N36tu8PRJVFuiZtgqlt_-d-lKGosDIEnQKeJ_7t6=s539" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="383" data-original-width="539" height="215" src="https://blogger.googleusercontent.com/img/a/AVvXsEgfnSYDPXt8ip3OAwRvRqGhLlG5N2vLFcJkvsPYlNxOynXcQTznB9MCzzfptPJZcA9O4kUSlyVdZyFA7dB60GTly0XfmvP9r0jPGOzHASt1SbsqKTVsBLNRNT_BBZaKpSqNadhuH97Z1nijgLP9N36tu8PRJVFuiZtgqlt_-d-lKGosDIEnQKeJ_7t6=w303-h215" width="303" /></a></div><div><br /></div><div>この塗料は、発泡スチロールの静電気対策用との事なので、発泡スチロールには直接塗れますが、実験で使用する容器はPPなので、プラスチック用のプライマーを下塗りしてから塗装しました。</div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;"><br /></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiLoANGZ2AnB6Ro2QXlhCRhGPyzI4j_ySydEPXiOBEDP9Ulm8C6bATmyrXCaR98kUI2Dz7l9OU5mAs3CfqUp7-85Gly34hoJPuyzvREsgy7xoBLXZ8tGaJa7xhM7RrJOWy7FXre6igvi1kLwlD3fI0cew456vRfERknl4t721OMpq882H-Gq3uD4G4u=s2625" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2625" data-original-width="1812" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEiLoANGZ2AnB6Ro2QXlhCRhGPyzI4j_ySydEPXiOBEDP9Ulm8C6bATmyrXCaR98kUI2Dz7l9OU5mAs3CfqUp7-85Gly34hoJPuyzvREsgy7xoBLXZ8tGaJa7xhM7RrJOWy7FXre6igvi1kLwlD3fI0cew456vRfERknl4t721OMpq882H-Gq3uD4G4u=s320" width="221" /></a></div><p>読み取り距離は 0 cmでした。フタにリーダーを押し付けるようにしても読み取りませんでした。</p><p>しかし、出力を最小から1つ上げると、7 cm の距離で読み取りました。</p><p>高いシールド効果を必要としない用途であれば使用できるかもしれません。</p><p><br /></p><p><b>②ニッケル</b></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh6Gc7g1p5tB68QYfmr1-LE3-LcDwZyZ-aoCteb2GLJXsgapWHgh8FVUmTDBdPTyc84F4uc87LBr_4KRsy5I-6KxeYMhY2HlQDmbboi1wm2j0_HTtjCHEEUPCsAIqSLBftVcmsuO83Gv578D7rUUI8hNCSw6E8kMOZ_85PxFfI7IkilzlOxP-YaKBvr=s544" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="374" data-original-width="544" height="220" src="https://blogger.googleusercontent.com/img/a/AVvXsEh6Gc7g1p5tB68QYfmr1-LE3-LcDwZyZ-aoCteb2GLJXsgapWHgh8FVUmTDBdPTyc84F4uc87LBr_4KRsy5I-6KxeYMhY2HlQDmbboi1wm2j0_HTtjCHEEUPCsAIqSLBftVcmsuO83Gv578D7rUUI8hNCSw6E8kMOZ_85PxFfI7IkilzlOxP-YaKBvr=s320" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><p>読み取り距離は 0 cmで、出力を最大にしても読み取れませんでした。</p><p>なお、抵抗値が小さいほど電磁波シールド性が高くなるとの事で、カーボンよりも効果がありました。</p><p>ただし、直接、容器に塗装したのですが、実験後にクラックが発生し、塗装が剥がれてしまいました。カーボンの実験のようにプライマーを下塗りすれば大丈夫かもしれませんが、塗装に関して不安を感じました。</p><p><br /></p><p><b>③銀・銅</b></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjxFk1-dZtEJWjYVO0lzeDIJwAEOHCp5rbmFdvXg0K4D555PDHM44nl06gEao0qeGEdVp4POTCjMVYgN3XIW8cwjs5faAbQHiXFG7IzaCKxgIioCQWq18co2d5e1ITf0qIHBRwNqfN99QuOsWxumbv2eyR-MZqzhxeadq7J4G1NkSFHvzh2exBJ80jG=s537" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="426" data-original-width="537" height="244" src="https://blogger.googleusercontent.com/img/a/AVvXsEjxFk1-dZtEJWjYVO0lzeDIJwAEOHCp5rbmFdvXg0K4D555PDHM44nl06gEao0qeGEdVp4POTCjMVYgN3XIW8cwjs5faAbQHiXFG7IzaCKxgIioCQWq18co2d5e1ITf0qIHBRwNqfN99QuOsWxumbv2eyR-MZqzhxeadq7J4G1NkSFHvzh2exBJ80jG=w307-h244" width="307" /></a></div><br /><p>PPへの塗装は△ですが、直接、容器に塗装しました。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiegtUst44UPTxTtRUazhk5RSYlgMePxMvfQU4eknsv_jPqzev9WYKfs5Ejunm3WcdFwQjV97gLjLm8LaJ1WTBKVN-Ig9NxyPA3GkRCxNCsures-gOsPp_4FBmQtDDUsp6RsHtzbS5cbMBFpH99m78YlzxFJzeYmJYyD8deAnq9vd_zxln-ZyYwsP_8=s2023" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2023" data-original-width="1669" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEiegtUst44UPTxTtRUazhk5RSYlgMePxMvfQU4eknsv_jPqzev9WYKfs5Ejunm3WcdFwQjV97gLjLm8LaJ1WTBKVN-Ig9NxyPA3GkRCxNCsures-gOsPp_4FBmQtDDUsp6RsHtzbS5cbMBFpH99m78YlzxFJzeYmJYyD8deAnq9vd_zxln-ZyYwsP_8=s320" width="264" /></a></div><br /><p>ニッケルと同様、読み取り距離は 0 cmで、出力を最大にしても読み取れませんでした。</p><p>塗装に関しては、ニッケルのように剥がれる事はありませんでした。</p><p>導電塗料が電磁波シールドの効果があるとの事ですが、実際に試してみると、導電性物質による効果の違いや、塗装の問題点も体感できました。</p><p><b><br /></b></p><p><b>考察</b></p><p>3つの製品のシールド効果の実験結果は、</p><p>銀・銅 ≒ ニッケル > カーボングラファイト</p><p>でした。</p><p>カーボングラファイトはシールド効果が劣りますが、銀・銅とニッケルは十分な効果がりました。</p><p>また、ニッケルの抵抗値は約1Ωで、銀・銅は1Ω以下となっているので、銀・銅の方がシールド性が高いのかもしれません。</p><p>価格はカーボンが一番安く、半額以下なのですが、メーカー提示の塗布面積では他の2製品はスプレー缶1本で1㎡なのに対し、カーボンは1/4の0.25㎡(50cm×50cm)しか塗れません。</p><p>また、ニッケルより銀・銅の方が少し価格が高いですが、塗装の事を考えると、今回試した3製品の中では、銀・銅の塗料が1番お勧めです。</p><p>ちなみに、銀・銅の塗料は、1kg入りの缶も販売されており、Amazonで 20,162円(税込)です。</p><p><br /></p><p><b>導電塗料の活用について</b></p><p>以前、周囲のタグを読み取らないよう、スチール製の郵便ポストや引出しの中にテーブルスキャナを取り付け、中に入れたタグのみを読み取るような工作物を作った事があります。電源ケーブルを通すための隙間や、その他の隙間などにアルミ箔やアルミテープを貼るなどしたのですが、耐久性の問題もあり、電波漏れを防ぐことに苦労しました。</p><p>導電塗料により、プラスチック製品なども使用できるようになるので、選択肢も広がります。また、プラスチック製品であれば、必要に応じて加工する事も可能と思います。</p><p>また、飛沫防止のアクリル製パーテーションに塗って、隣の作業机のタグ読み取りを防ぐなどの利用も考えられます。ただし、金属と同様、電波を反射するので、設置場所に注意が必要です。</p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><br /></div><br />ykobayashihttp://www.blogger.com/profile/14387890498327632847noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-42176849636626876452021-10-04T17:03:00.003+09:002021-10-04T17:05:56.623+09:00第23回 自動認識総合展に出展します。<p>昨年はコロナの影響で残念ながら中止となってしまった自動認識展ですが、<br />今年は無事に開催とのことで弊社も2年ぶりの出展となります。</p><p>例年通り、こじんまりとしたブースにゴチャゴチャ、っと色々ならべる感じになるかと思います。<br /></p><p>そういえば前回は、何故かプレミアムのついたスニーカーを展示して、<br />いろいろあってテレビの取材でも取り上げていただいたのでした。</p><p><br /></p><div class="separator" style="clear: both; text-align: left;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/35llff7Xogc" width="320" youtube-src-id="35llff7Xogc"></iframe></div><p></p><p style="text-align: left;">https://youtu.be/35llff7Xogc?t=246</p><p><br /></p><p>今回は謎のブロックが並ぶ予定です、果たしてどんな仕掛けなのか。</p><p>ぜひ現地でご体感ください。</p><div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzc2giBO6Ga1E2WVfF86iEo5umyqJMss6FRi_A4cTGG89K6CIYjnQlLAEZ2Iweyo6qutLArFEcvrxdZzKPWxE51mYJaygJJPJl6MEDuwAkDzw-osk-Jp5sp-RXtjY1Ui58xXgsQwYuFfyi/s2048/DSC_0638+%25281%2529_2.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1794" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzc2giBO6Ga1E2WVfF86iEo5umyqJMss6FRi_A4cTGG89K6CIYjnQlLAEZ2Iweyo6qutLArFEcvrxdZzKPWxE51mYJaygJJPJl6MEDuwAkDzw-osk-Jp5sp-RXtjY1Ui58xXgsQwYuFfyi/s320/DSC_0638+%25281%2529_2.jpg" width="280" /></a></div><div><br /></div><p><br /></p><p>自動認識総合展は、10月の6〜8日まで東京ビッグサイトの南館で開催されます。<br /><a href="https://www.autoid-expo.com/tokyo/">https://www.autoid-expo.com/tokyo/</a></p><p><br /></p>Yasuhiro Ohsakahttp://www.blogger.com/profile/01257715388027505373noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-48784148189715226332021-09-15T13:37:00.000+09:002021-09-15T13:37:57.115+09:00気を測る<p> センサーを搭載した RFID タグはそれなりに登場してきているんですが、その中の一つに farsens のタグがあります。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7ny_9y1s0AHDASQYVIdE6dgqZ_XMtRKbIj7CLkGj5DcCuJ89U2CfyI3CwxBA-JFzoHG_cHWuOvIZk3zPUfS9222zH6oUlxOZVParApUG9e6UJdOYdSIU8XVghxkAZllzRPdrCCnCOhkw/s1278/IMG_9031.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="958" data-original-width="1278" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7ny_9y1s0AHDASQYVIdE6dgqZ_XMtRKbIj7CLkGj5DcCuJ89U2CfyI3CwxBA-JFzoHG_cHWuOvIZk3zPUfS9222zH6oUlxOZVParApUG9e6UJdOYdSIU8XVghxkAZllzRPdrCCnCOhkw/s320/IMG_9031.jpg" width="320" /></a></div><p>このタグはIOが付いていて、そこに別途センサーを接続することで測定ができるという面白い使い方ができます。仕様を見るとここに繋いだセンサーの抵抗値を値として取得できるようです。</p><p>タグのユーザ領域にデータが保存されますので、専用のリーダは必要なくどんなUHFのリーダでも読み取ることができるのもこのタグの特長になってます。</p><p>最近エクセルツールに対応した Apulsetech のリーダで試してみます。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp2fy8FX9_6Kck526VyIlC9EwM9C_Bb61x6YeuWJvdeBMr8tOPgQtNvyTDsCAYHJ00C2UIaydmg5H0llkHbL_X5i2Gufx0KHAaAUq950UBvRXgGQhQpRN3gE0o-UBG3zPL0E7bnEQ-fcs/s1262/IMG_9041.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1262" data-original-width="946" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp2fy8FX9_6Kck526VyIlC9EwM9C_Bb61x6YeuWJvdeBMr8tOPgQtNvyTDsCAYHJ00C2UIaydmg5H0llkHbL_X5i2Gufx0KHAaAUq950UBvRXgGQhQpRN3gE0o-UBG3zPL0E7bnEQ-fcs/s320/IMG_9041.jpg" width="240" /></a></div><p>エクセルツールをちょっと改良して、タグの値を取得できるようにしてみました。</p><p>まずは何も繋げずに測定してみます。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_L3rR1mRJOA-FqXHdez-r8TqiPz05plP-yPQwc-7RaO5eFYjnSIMvvAx4-Itk77bCNBHPhUOmbaXQOs_tbxpwVPo9l8O8sjAb87yYGH0oskbKZRiNdRl98_ZXkT0uC4KB_X99nGSeZaA/s851/20210915-none.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="350" data-original-width="851" height="132" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_L3rR1mRJOA-FqXHdez-r8TqiPz05plP-yPQwc-7RaO5eFYjnSIMvvAx4-Itk77bCNBHPhUOmbaXQOs_tbxpwVPo9l8O8sjAb87yYGH0oskbKZRiNdRl98_ZXkT0uC4KB_X99nGSeZaA/s320/20210915-none.PNG" width="320" /></a></div><div><br /></div>1億7千万くらいの値になりました。単位はオームだそうです。<div><p>次にショートさせてみます。</p><div><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4OU2zU42Ocj4_8aMqkzV8mx3KyKtf6sXVE3EZCS7X4puOMCzDChh4T_bLQr1161kkotLguSKRSV7FQrIJksSXAJZa_5QwgcGoBtyzKvIeA7tA4I1f3-ZCUDMSOAZCMfe6mxa2lm6fp1Q/s1262/IMG_9040.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1262" data-original-width="946" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4OU2zU42Ocj4_8aMqkzV8mx3KyKtf6sXVE3EZCS7X4puOMCzDChh4T_bLQr1161kkotLguSKRSV7FQrIJksSXAJZa_5QwgcGoBtyzKvIeA7tA4I1f3-ZCUDMSOAZCMfe6mxa2lm6fp1Q/s320/IMG_9040.jpg" width="240" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsCVq2ZKeVmj_rJ3UNPk_Je5WKnQNBRtHfWFJQUGObzphGkkIFsI8ulQLL9gDAYgbaF8DTONP95Sc2M7ri4mgaykc8zftv5c0eiu1A6Bk2cLsZ6BdUb_Il4HW3rwEGY9PfnFZf4bWYz6Q/s854/20210915-short.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="403" data-original-width="854" height="151" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsCVq2ZKeVmj_rJ3UNPk_Je5WKnQNBRtHfWFJQUGObzphGkkIFsI8ulQLL9gDAYgbaF8DTONP95Sc2M7ri4mgaykc8zftv5c0eiu1A6Bk2cLsZ6BdUb_Il4HW3rwEGY9PfnFZf4bWYz6Q/s320/20210915-short.PNG" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div>30オームくらいになりました。<p></p><p>次は両端を手で握って図ってみます。</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOitSKU5DPlhHPwXhhOzE2iP0E7lAUeO-CFl7_P04AuTy8FRkNMhtZZgtX6qxhDzfCUPEQ2Qxh6oUpa1TX_eaMO4SuE-Uh7J-nawJVZWgDTdyTc6qXmtiE_SN4ogMHjDN8bthv1CVQEiU/s851/20210915-body.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="294" data-original-width="851" height="111" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOitSKU5DPlhHPwXhhOzE2iP0E7lAUeO-CFl7_P04AuTy8FRkNMhtZZgtX6qxhDzfCUPEQ2Qxh6oUpa1TX_eaMO4SuE-Uh7J-nawJVZWgDTdyTc6qXmtiE_SN4ogMHjDN8bthv1CVQEiU/s320/20210915-body.PNG" width="320" /></a></div><br />私の抵抗は40万オームくらいらしいです(笑<p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhM9ZJ10pn0P2enqWgyuXm_GV5w7FitfRA179l_YaEwROXglUUmITniQiwn9h-Oc9GO3xLy05Dgrm7-6cIX-nK8Ugo3f6bndSjJy46BBYjp2EWZYTXR4cl5kfdTfSxgyUSw0GhbJRFtZ4M/s1262/IMG_9043.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1262" data-original-width="946" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhM9ZJ10pn0P2enqWgyuXm_GV5w7FitfRA179l_YaEwROXglUUmITniQiwn9h-Oc9GO3xLy05Dgrm7-6cIX-nK8Ugo3f6bndSjJy46BBYjp2EWZYTXR4cl5kfdTfSxgyUSw0GhbJRFtZ4M/s320/IMG_9043.jpg" width="240" /></a></div><br />さらにこんなの用意しました。板にアルミホイルを巻いただけのプレートです。昔なんかの付録だったかでこういう板と紙コップみたいなのと何か銅線を繋いで気を測るみたいなのがあったと思うんですがありませんでした?そういうの?そうですか。<p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFaISvcOP5N0RoW5zcerwgi7xIrCuMhUDSvjtQSbnFn7N_OWPVlSdAyyg-ZcsNaW8qKKZxAl9itFork7UbM5LN7hOFBOgj8Ohv3__14RX0lBl3YDbb-gGRl9nPu-3u5PMy1Z7oMaQMEKQ/s856/20210915-panel.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="357" data-original-width="856" height="133" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFaISvcOP5N0RoW5zcerwgi7xIrCuMhUDSvjtQSbnFn7N_OWPVlSdAyyg-ZcsNaW8qKKZxAl9itFork7UbM5LN7hOFBOgj8Ohv3__14RX0lBl3YDbb-gGRl9nPu-3u5PMy1Z7oMaQMEKQ/s320/20210915-panel.PNG" width="320" /></a></div><br />このまま測ると13と低い値が出ています。<p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7vWLUDeQU3J5ZonwkcWc3l9oWG2iyWgpyTtZIZrcjpQvtc1kJxdSBiWyggXwlTAAoD35ST0RQRIaxIQTSYR2XVUqVzwf4L2XnIq6qV0x_CRMQibfYcuh1ZYkX73Ue4jVfO8TRYolEpZQ/s1262/IMG_9044.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1262" data-original-width="946" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7vWLUDeQU3J5ZonwkcWc3l9oWG2iyWgpyTtZIZrcjpQvtc1kJxdSBiWyggXwlTAAoD35ST0RQRIaxIQTSYR2XVUqVzwf4L2XnIq6qV0x_CRMQibfYcuh1ZYkX73Ue4jVfO8TRYolEpZQ/s320/IMG_9044.jpg" width="240" /></a></div><br />ここで気を送ってみます。はぁぁー っと。さぁ値は変わるのか?<p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyoA3IfHWJ9G8APfulWe9WbsWJJfdZk-i3XPN4jGvO9MpZGOEqUEstcHPFNYvSO1k0DpX30xM34nWDAbVF-_qKyupiGfZ0MgoJtpJ9Oq2SJ24Pz7a2pcQnhQFSzlP3EOdrTOCfVpXFLjo/s854/20210915-06.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="321" data-original-width="854" height="120" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyoA3IfHWJ9G8APfulWe9WbsWJJfdZk-i3XPN4jGvO9MpZGOEqUEstcHPFNYvSO1k0DpX30xM34nWDAbVF-_qKyupiGfZ0MgoJtpJ9Oq2SJ24Pz7a2pcQnhQFSzlP3EOdrTOCfVpXFLjo/s320/20210915-06.PNG" width="320" /></a></div><br />気のせいだな。きっと。<p></p></div></div>ssanohttp://www.blogger.com/profile/05508471105610047571noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-46181084014221889532021-09-08T14:10:00.000+09:002021-09-08T14:10:45.644+09:00RTKを使った位置測定を試す<p> とある案件で RTK を使った位置測定のデバイスを作成したんですが、これがいろいろ使えるということで今回は納品した器材をお借りして実際に測定をやってみました。</p><p>ちなみに RTK は GPS のごっついみたいな感じで、cm単位で位置の測定ができるというスグレモノです。ドローンの位置制御みたいなのに使われてます。</p><p>こちらがデバイスになります。</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzzG3ntwu4-q725n9Yx-yWUwRENpgjXht7nP9plwwilsEnAr06S1KJr-HroDb0eRY7T1Hlykx-DqHocrWoqCAOGIvHMBfi4AHwcnRE_Ax7L32IjogsJnXSneXUzcFDxJOiWF4wAWa_nSQ/s1278/IMG_9037.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="958" data-original-width="1278" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzzG3ntwu4-q725n9Yx-yWUwRENpgjXht7nP9plwwilsEnAr06S1KJr-HroDb0eRY7T1Hlykx-DqHocrWoqCAOGIvHMBfi4AHwcnRE_Ax7L32IjogsJnXSneXUzcFDxJOiWF4wAWa_nSQ/s320/IMG_9037.jpg" width="320" /></a></div><br />右から通信用親機、基準局、移動局にあたる子機の3種類です。親機は AC電源+Wifi が必要ですがその他の機器はバッテリーで動作します。<p></p><p>こちらのデバイスは各デバイスの通信として LoRa を使用している所が大きな特長になります。通常の RTK では、基準局のデータをリアルタイムに移動局に渡して移動局が位置の計算を行います。この方法では基準局のデータを移動局に渡すため、基準局と移動局が通信できる必要があります。この通信はWifiを利用していることが多く、測定位置がWifiの通信範囲に縛られます。</p><p>今回のデバイスは基準局のデータを移動局に渡さず、すべてのデータをクラウドに集めて計算するようになっていますので、各機器は通信用の親機にデータを投げればよく、この通信に LoRa を使用しているため、数キロ離れた場所でも測定が可能になります。</p><p>数キロ離れた測定は検証が大変なので近い距離で試してみます。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihBx0GOmXYmTPvvpxb3S3j2iEeK874idb7-LGkFFyWDZtZgZpPQxxUVc80f-fFlFHewJLRfddKugOU2ThqksAlUV2iKk0W5ntAKQjkcH1zCiuSx8D5DFh3U5zROUEiusxerO7SmzuvBWM/s1278/IMG_9034.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="959" data-original-width="1278" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihBx0GOmXYmTPvvpxb3S3j2iEeK874idb7-LGkFFyWDZtZgZpPQxxUVc80f-fFlFHewJLRfddKugOU2ThqksAlUV2iKk0W5ntAKQjkcH1zCiuSx8D5DFh3U5zROUEiusxerO7SmzuvBWM/s320/IMG_9034.jpg" width="320" /></a></div><p>駐車場に設置。親機は Wifi でインターネットに接続する必要があるので向こうにある建物に設置してあります。</p><p>結構なデータ量を LoRa で送らないといけないんですが LoRa は通信に時間がかかる上、複数の機器が(チャンネルが同じ場合)同時に通信できないので、PPS を使って正確な時刻計測を行い、送信時間を各機器が分割することで各機器の送信が被らないように各機器が制御を行っています。</p><p>電源をONして5分程度すると、だいたい位置がFIXしてきます。</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWh8RkFB5j0rKoXqC6JZlA6RBdGg2KNemEuPZj8TQY9xPCqT3kp6kTT4kV-c4EzFTnFSWfGXJbE-cU9NWLe9REdfJtNg4s0qteGHHRBqmlEW7o1KCM7QG4cSO53TySNy19GboFyvdZ-4w/s1093/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2021-09-07+16.17.54.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="536" data-original-width="1093" height="157" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWh8RkFB5j0rKoXqC6JZlA6RBdGg2KNemEuPZj8TQY9xPCqT3kp6kTT4kV-c4EzFTnFSWfGXJbE-cU9NWLe9REdfJtNg4s0qteGHHRBqmlEW7o1KCM7QG4cSO53TySNy19GboFyvdZ-4w/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2021-09-07+16.17.54.png" width="320" /></a></div><br />こちらがクラウド側の結果表示画面です。写真の奥側からこっちを見てる感じなのでちょっとわかりづらくて申し訳ありません。が、だいたい位置関係は合ってるようです。右側に X,Y,Z の値が出てますが、単位は m です。X が東西方向、Y が南北方向、Z が高さ方向です。<p></p><p>これから計算すると、子機1と子機2の距離は5.46mだそうですので検証してみましょう。</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCp5V0B72sN926KMPW6U1OdHbtfpjWkUeKhOfPej45yIq-l7IQzkitvf6lgZVe5Pxkr5ln9-wCbQFqkSy80kKQksa6AIfjCCpLaXm0z20ETDMMrNotA4CqfHBB0lj0lV5okivagG0eq3s/s1262/IMG_9035.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1262" data-original-width="946" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCp5V0B72sN926KMPW6U1OdHbtfpjWkUeKhOfPej45yIq-l7IQzkitvf6lgZVe5Pxkr5ln9-wCbQFqkSy80kKQksa6AIfjCCpLaXm0z20ETDMMrNotA4CqfHBB0lj0lV5okivagG0eq3s/s320/IMG_9035.jpg" width="240" /></a></div><br />子機1にメジャーを合わせて<p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJSsnjVY0WhJ7wBUEAGk5uZeNG2VpghYJ6SccRmxjzzAN7m6sH6yE2LlTdAAzz97zfdEandeLcPlDaqyXo7FM5EME3f60kHlUZ-8H4HX7OXSMFi6vXMTtEy2xQQ-wTyuleifEDr4kPoMg/s1262/IMG_9036.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1262" data-original-width="946" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJSsnjVY0WhJ7wBUEAGk5uZeNG2VpghYJ6SccRmxjzzAN7m6sH6yE2LlTdAAzz97zfdEandeLcPlDaqyXo7FM5EME3f60kHlUZ-8H4HX7OXSMFi6vXMTtEy2xQQ-wTyuleifEDr4kPoMg/s320/IMG_9036.jpg" width="240" /></a></div><br />子機2までの距離を測ってみるとほら!5.46mに近い!すげーぜ RTK<p></p><p><br /></p>ssanohttp://www.blogger.com/profile/05508471105610047571noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-40832547879736260252021-08-19T11:33:00.000+09:002021-08-19T11:33:20.552+09:00RFID的商品マスタの持ち方を考えてみた<p>RFIDを使って在庫管理をしようと思ったとき、在庫データの持たせ方は大きく2つに分類されると考えています。すなわち、</p><p></p><ul style="text-align: left;"><li>ユニークなタグIDに品番や品名などの商品の情報を紐づけて管理する方法</li><li>システムに商品マスタを持ち、タグIDの一部を使って商品マスタとマッチングして管理する方法</li></ul><div>前者は、たとえば<a href="https://mobile.manica.jp/">MANICAモバイル</a>や<a href="https://excel.manica.jp/">棚卸パッケージ</a>で採用している方法です。今回は後者の方法について考えてみたいと思います。</div><div><br /></div><h2 style="text-align: left;">標準的な方法(SGTIN-96)</h2><div>RFIDを使って商品の在庫管理を行う場合、JANコードベースのSGTIN-96を使った方法が一つ考えられます。このとき商品マスタはこんな感じになっていると思います。</div><div><br /></div><div>商品マスタ(<u>商品コード</u>, 商品名, JANコード, 仕様, ...)</div><div><br /></div><div>ICタグを読んで商品コード、商品名やそのほか仕様等を取得する場合は、下記のような変換を行う感じになると思います。</div><div><br /></div><div>SGTIN-96 → JANコード → JANコードで商品マスタを検索 → 商品コードなどを取得</div><div><br /></div><h2 style="text-align: left;">標準的でない方法(独自コード)</h2><div>さまざまな理由で独自コードを採用するケースも考えられます。このとき商品マスタはこんな感じになっていると思います。</div><div><br /></div><div>商品マスタ(<u>商品コード</u>, 商品名, バーコード, 仕様, ...)</div><div><br /></div><div>標準的な方法のJANコードがバーコードに変わっただけですね。もしかすると、商品コードとバーコードが一致しているかもしれません。標準的な方法と同じように商品コード、商品名やそのほか仕様等を取得する場合を考えてみます。ICタグのEPCのなかに商品コードが含まれているとします。</div><div><br /></div><div>EPC → 商品コード → 商品コードで商品マスタを検索 → 商品コードなどを取得</div><div><br /></div><div>標準的な方法とほとんど変わらないですね。ただ、独自コードですので、EPCから商品コードへの変換は独自コードごとに対応(=カスタマイズ)が必要となります。</div><div><br /></div><h2 style="text-align: left;">統一した方法(SGTIN-96、独自コード)</h2><div>SGTIN-96も独自コードも統一して管理できる方法を考えてみます。まず、商品マスタはこんな形で持たせてみます。</div><div><br /></div><div>商品マスタ(<u>商品コード</u>, 商品名, バーコード, 検索キー, 仕様, ...)</div><div><br /></div><div>ここで新たに追加した検索キーには、シリアルを0として当該商品コードをEPCにエンコードした場合の値を保持しておきます。他にMaskをシステムで一つ保持しておきます。Maskはシステムで採用したタグID長のByte配列とし、EPCのうち商品コードを特定するための部分に1を立てておきます。EPCから商品コードを取得するにはこんな感じになると思います。</div><div><br /></div><div>EPC → 検索キー(EPCとMaskをAnd) → 検索キーで商品マスタを検索 → 商品コードなどを取得</div><div><br /></div><div>SGTIN-96、JANコードが4573228900149の場合はこんな感じになると思います。</div><div><br /></div><div>Mask: FFFF FFFF FFFF FFC0 0000 0000</div><div>商品マスタ(<u>商品コード1</u>, 商品名1, 4573228900149, 302DB42318A0038000000000, 仕様1, ...)</div><div><br /></div><div>たとえば、EPC: 302DB42318A0038000001231 を読み取ったら、Maskして、302DB42318A0038000000000 となるので、商品マスタを検索して、商品コード1などが取得できます。</div><div><br /></div><div>一方で、独自コードの場合はこんな感じになると思います。タグIDの0~15 bit目と32~47 bit目に分かれて、商品コード相当の値が入っていたとします。</div><div><br /></div><div>Mask: FFFF 0000 FFFF 0000 0000 0000</div><div>商品マスタ(<u>商品コード2</u>, 商品名2, A123B456, A1230000B456000000000000, 仕様2, ...)</div><div><br /></div><div>たとえば、EPC: A1230000B456000000004567 を読み取ったら、MaskしてA1230000B456000000000000 となるので、商品コード2などが取得できます。</div><div><br /></div><div>あと考える必要があるのは商品マスタの連携方法だと思います。当然検索キーに相当する列は存在しないので、連携の際にエンコードルールに基づいて変換して登録することになると思います。</div><div><br /></div><div>商品マスタ連携部分は都度対応が求められる箇所かと思いますので、そこに修正を押し込められるのはこの持ち方のメリットかなと思います。こんなケースはどうするのか、など考慮不足などあれば、コメントでお知らせください。</div><p></p>hnakanohttp://www.blogger.com/profile/11112416181028786776noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-28895819576744516362021-08-11T15:45:00.000+09:002021-08-11T15:45:57.997+09:00DRAGINO の LoRaWAN ゲートウェイと Azure IoT Hub を接続する<p> 最近 LoRaWAN を触ることになったんですが、通常は The Things Network を LoRaWANサーバとして利用しますが今回は The Things Network を経由せずに Microsoft Azure IoT Hub に接続したいという特殊な状況になってしまったためいろいろやってたんですが、これがえらいハマってしまったので記録として残しておこうと思いました。</p><p>使用する LoRaWANゲートウェイは DRAGINO の LPS8 です。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0eoha1V4o7Ijyf-7YhYOX_m8iSliUcKJEGZgJbgK5Y5ay-fgOpgv6lF9ZYjcMaa-Z9xN5YP-henMv3GAmjTqY5jpPdm5jCttcADv9XqjuLUCKHeI36LlK1659YqkXoZ5aaTyGondIBr0/s460/52a7e8de442be81375ee69cf8eb9aaeb.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="370" data-original-width="460" height="257" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0eoha1V4o7Ijyf-7YhYOX_m8iSliUcKJEGZgJbgK5Y5ay-fgOpgv6lF9ZYjcMaa-Z9xN5YP-henMv3GAmjTqY5jpPdm5jCttcADv9XqjuLUCKHeI36LlK1659YqkXoZ5aaTyGondIBr0/s320/52a7e8de442be81375ee69cf8eb9aaeb.png" width="320" /></a></div><p>設定画面をいろいろ見ていると、Azureとかの設定もあるしこれは簡単にできそうだなーと思ったら全く違っていろいろ大変でした。</p><p>まずは端末の認証ですが、ゲートウェイ単体では OTAA(Over-the-Air Activation)はできませんので、ABP(Activation by Personalization)を使うことにします。ABPの設定は端末ごとに DevADDR、APP Session Key、Network Session Key の3つを設定画面で設定して、同じ値を端末に設定すればOKです。</p><p>以降、設定画面のキャプチャ掲載しますがファームの更新が結構頻繁にあるようなので実際とは異なる可能性あります。掲載時点でのファームのバージョンは lgw-5.4.1628078462 です。</p><p>ABPの設定をしたら、LoRaWAN Configuration の画面に移ります。Service Provider のところに、Built-in for ABP Decode to MQTT というまさしくそれな的なのがあるので選んで保存します。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp9YEj1VR__kaBLB67qjl6B_Kk52NbLKd8sCoUicgNs6kUfhTXomlfDLAcLBetDPnl6vH6NG55exu5CWwdjjD4vNaZIMHwSnCouVyl1gn8p99l7bJo3gSPTVRiF7puP3kINb9qGIpzBcI/s1065/20210811-01.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="518" data-original-width="1065" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp9YEj1VR__kaBLB67qjl6B_Kk52NbLKd8sCoUicgNs6kUfhTXomlfDLAcLBetDPnl6vH6NG55exu5CWwdjjD4vNaZIMHwSnCouVyl1gn8p99l7bJo3gSPTVRiF7puP3kINb9qGIpzBcI/s320/20210811-01.PNG" width="320" /></a></div><div><br /></div>次にMQTTの設定です。Azure IoT Hub にMQTTで接続するには、SASと呼ばれるセキュリティトークンを使用する方法と、X.509証明書を利用する方法があるようです。<div><br /><div><a href="https://www.dragino.com/downloads/downloads/LoRa_Gateway/LPS8/Firmware/Application_Note/MQTT_WebUserInterface-v0.3.pdf" target="_blank">https://www.dragino.com/downloads/downloads/LoRa_Gateway/LPS8/Firmware/Application_Note/MQTT_WebUserInterface-v0.3.pdf</a><div><p>この辺のマニュアルを読んでみると、Azureへの接続にはSASを利用しているように見えます。ただSASには有効期限があって、できるだけ短く(1時間とか)にするのがお作法のようで、設定しても1時間で繋がらなくなるなどになってしまうのでそれでは困るなーというわけでX.509証明書の方でやってみることにします(証明書も有効期限ありますがこちらは長く設定できるので)。</p><p>X.509証明書で接続するためにいろいろやんないといけないんですが、こちらのチュートリアルが比較的簡単に実行できました。</p><p><a href="https://docs.microsoft.com/ja-jp/azure/iot-hub/tutorial-x509-scripts" target="_blank">https://docs.microsoft.com/ja-jp/azure/iot-hub/tutorial-x509-scripts</a><br /></p><p>上記チュートリアルを実行した前提で話を進めます。</p><p>接続には3つのファイルが必要になります。Azure の CA認証ファイル(ゲートウェイにデフォルトでインストールされている Azure.cer です)と、上記のチュートリアルで作成したデバイスの認証ファイル2つ(cert/new-device.cert.pem と private/new-device.key.pem)です。デバイスの認証ファイルはあらかじめゲートウェイにアップロードしておきます。</p><p>Azure設定画面を見てみると、CA認証ファイルの設定しかありません。やはりSASを利用する前提のようです。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjugFoiOt1vICz8n4nUGtiutmEe2voUg8nz3oF9idqTfUdmCZA3VMIpFDNVpxKHMFoZNBIwcIkSAemxIhh8ACIp3JpGnUfveTjd3j3UqP7KB_yF7Cl61z_UxWDG4RQW7CDFAML_uCLZjO4/s1060/20210811-02.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="636" data-original-width="1060" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjugFoiOt1vICz8n4nUGtiutmEe2voUg8nz3oF9idqTfUdmCZA3VMIpFDNVpxKHMFoZNBIwcIkSAemxIhh8ACIp3JpGnUfveTjd3j3UqP7KB_yF7Cl61z_UxWDG4RQW7CDFAML_uCLZjO4/s320/20210811-02.PNG" width="320" /></a></div><div><br /></div>ということで MQTT Server Profile を General に変更します。</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPlsVRyl52UZqGUiF1Lpa2A1z4pgLmLKPfFCFcdhAa2wyepOTr10XfeoeJNRrSSDzBdfQxef0JRdURQ22LbEQb_e4cHh9nkznnylZ1FcIMy3l8AsolDHl6k-KMngsPkmc_0_jJf9_TkUE/s1067/20210811-03.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="669" data-original-width="1067" height="201" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPlsVRyl52UZqGUiF1Lpa2A1z4pgLmLKPfFCFcdhAa2wyepOTr10XfeoeJNRrSSDzBdfQxef0JRdURQ22LbEQb_e4cHh9nkznnylZ1FcIMy3l8AsolDHl6k-KMngsPkmc_0_jJf9_TkUE/s320/20210811-03.PNG" width="320" /></a></div><div><br /></div>ファイルは画面の設定のように選択しますが、User IDのところは {IoT hub name}.azure-devices.net/{device id} を設定します。</div><div><br /></div><div>ここまでで設定は完璧です。完璧なんですが…</div><div><br /></div><div>飛ばない… データ… いくら送っても… Azureまで飛んでこない… あう・・・</div><div><br /></div><div>何で?特にエラー出るわけでもなく Azure のログにも大した情報は出ていない。ダメか、詰んだか。そういえば上のマニュアルで mqtt のサンプルコマンドが載ってたな。そうか、それを試すのだ。</div><div><br /></div><div>ゲートウェイに SSH で接続して、コマンドで MQTT 送信してみます。</div><div><br /></div><div><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div>mosquitto_pub -d -h XXXX.azure-devices.net </div><div> -p 8883 -u XXXX.azure-devices.net/H0001 </div><div> --cafile /etc/iot/cert/Azure.cer </div><div> --cert /etc/iot/cert/new-device.cert.pem </div><div> --key /etc/iot/cert/new-device.key.pem </div><div> -i H0001 </div><div> -t devices/H0001/messages/events/ </div><div> -m <span style="color: #ce9178;">"{ Hello }"</span></div></div></div><div><br /></div><div>するとあれ?飛ぶぞ?えっ?えっ?</div><div>何が起きてるんだろう(まぁ、こんなことはよくあるけど)。マニュアルでは MQTT の処理は mqtt_process.sh がやってるとか書いてあった。じゃ何やってるかちょっと覗いてみるか。送信部分を抜粋。</div><div><br />
<pre class="prettyprint"># ------------------------------------------
# Call MQTT Publish command
# 1. Case with User, Password and Client ID present (e.g. Azure)
if [ ! -z "$pass" ] && [ ! -z "$user" ] && [ ! -z "$clientID" ]; then
case="1"
mosquitto_pub $D -h $server -p $port -q $pub_qos -i $clientID -t $pub_topic -u $user -P "$pass" $C $cafile $PUB_FLAG "$mqtt_data"
# 2. Case with Certificate, Key and ClientID present (e.g. AWS)
elif [ ! -z "$certfile" ] && [ ! -z "$key" ] && [ ! -z "$clientID" ]; then
case="2"
mosquitto_pub $D -h $server -p $port -q $pub_qos -i $clientID -t $pub_topic --cert $cert --key $key $C $cafile $PUB_FLAG "$mqtt_data"
# 3. Case with no User, Certificate or ClientID present
elif [ -z "$user" ] && [ -z "$certfile" ] && [ -z "$clientID" ]; then
case="3"
mosquitto_pub $D -h $server -p $port -q $pub_qos -t $pub_topic $PUB_FLAG "$mqtt_data"
# 4. Case with no User, Certificate, but with ClientID present
elif [ -z "$user" ] && [ -z "$certfile" ] && [ ! -z "$clientID" ]; then
case="4"
mosquitto_pub $D -h $server -p $port -q $pub_qos -i $clientID -t $pub_topic $PUB_FLAG "$mqtt_data"
# 5. Case with User and ClientID present, but no Password and no Certificate present
elif [ -z "$pass" ] && [ -z "$certfile" ] && [ ! -z "$user" ] && [ ! -z "$clientID" ]; then
case="5"
mosquitto_pub $D -h $server -p $port -q $pub_qos -i $clientID -t $pub_topic -u $user $PUB_FLAG "$mqtt_data"
# 6. Case with User and Password present, but no ClientID and no Certificate present
elif [ ! -z "$user" ] && [ ! -z "$pass" ] && [ -z "$clientID" ] && [ -z "$certfile" ]; then
case="6"
mosquitto_pub $D -h $server -p $port -q $pub_qos -t $pub_topic -u $user -P "$pass" $PUB_FLAG "$mqtt_data"
# 0. Else - invalid parameters, just log
else
case="Invalid parameters"
logger "[IoT.MQTT]:Invalid Parameters - mosquitto_pub not called."
fi
</pre>
<div>設定で処理が別れている様子。ログを見ると General の設定は case 2 にあたるようだ。よくみるとあれ? User IDの設定(-u)が無い! あー、それでかー、そんなことかー、ようやく原因がわかったー。おもむろに -u の設定を追加して保存。</div><div><br /></div><div>これでようやく無事に送信はできるようになりました。</div><div><br /></div><div>※注意 今回はアップリンクの話だけで、ダウンリンクはまだこれから試します。</div><div><br /></div><div><p><br /></p><p><br /></p></div></div></div>ssanohttp://www.blogger.com/profile/05508471105610047571noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-72864894415986454512021-07-16T15:53:00.000+09:002021-07-16T15:53:20.345+09:00Type2 と Type5 で Capability Container の仕様が異なっていた<p> 今回は NDEF に関する内容です。NDEF というとスマホで URL を書き込んだりして利用しますが使用しているタグは NTAG213 だったりが多いと思います。</p><p>NTAGシリーズは Mifare の後継で NFC Forumでは Type2 のタグになります。そんなわけで NDEF は Type2 のタグだけしか使えないのかというとそういうわけでもなく、ISO15693 のような Type5 のタグでも使うことができます。</p><p>最近 NDEF のロックを使う機会があったのでロックってどうやるんだったっけかなー、確か Capability Container に設定するのが簡単だったよなー、でも実際どうやるんだったっけーといろいろ調べてたら Type2 と Type5 でロックの仕方が異なるということに気づきました。</p><p>ちなみに Capability Container ですが、</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAJjO8oUjgepw9hKiN01PrYmP1aAJ0svDeHPD5QgewgeGFSbODyPOa-leEXz3K-grCLTZ3Z1Octy69dO8t5y8HLybNQL63OpHbLWhQcJWbS1fxhUFasJC622JDyCGCJXHXJRVIJEKtQRY/s497/20210716.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="314" data-original-width="497" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAJjO8oUjgepw9hKiN01PrYmP1aAJ0svDeHPD5QgewgeGFSbODyPOa-leEXz3K-grCLTZ3Z1Octy69dO8t5y8HLybNQL63OpHbLWhQcJWbS1fxhUFasJC622JDyCGCJXHXJRVIJEKtQRY/s320/20210716.PNG" width="320" /></a></div>こちらがとある NTAG203 の中身で、Page3 の E1 10 12 00 のところが Capability Container になります。実際の NDEF のデータは Page4 以降に書込みされます。<div><br /></div><div>ここのどっかがロックだったよなーと思いつつ仕様をみたところ、Type2 では</div><div><br /></div><div>1バイト目 E1 マジックナンバー(固定)</div><div>2バイト目 バージョンナンバー</div><div>3バイト目 メモリサイズ</div><div>4バイト目 上位4ビットがリードコントロール 下位4ビットがライトコントロール(00 はリードもライトもOK、0F にするとライトできなくなる)</div><div><br /></div><div>となっています。あれー、こんなんだったっけー、何か違う気がすんなー、まー、もー、歳だしなー、とブツブツ言いながら 0F を書いてみます。が… あれ?書き換えできるぞ?何だ?というところから今回の旅が始まりました。</div><div><br /></div><div>結局いろいろ調べて、Type2 と Type5 で Capability Container の仕様が異なるということがわかりました。そうです。私が苦戦していたのはまさしく Type5 のタグだったのです。くそー。</div><div><br /></div><div>Type5 の Capability Container の仕様は以下の通り。</div><div><br /></div><div>1バイト目 E1 マジックナンバー これは一緒</div><div>2バイト目 上から 2bit メジャーバージョンナンバー 次 2bit マイナーバージョンナンバー 次 2bit リードコントロール 最後 2bit ライトコントロール(11 で書込み不可)</div><div>3バイト目 メモリサイズ</div><div>4バイト目 追加情報</div><div><br /></div><div>ライトコントロールは2バイト目になっています。これだと4バイト目をいくらいじっても何の効果も無かったわけですねー。ていうかこの部分って仕様違ったんだー。</div>ssanohttp://www.blogger.com/profile/05508471105610047571noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-23163869092516831822021-06-07T16:46:00.000+09:002021-06-07T16:46:15.501+09:00ESP32マイコンで USB接続の RFIDリーダを動かす<p> 前回のアレクサガジェットのときは、ESP32 マイコンと RFID リーダは Bluetooth の SPP で接続していました。ESP32 は Bluetooth も内蔵しているので、そのままで SPP や BLE のリーダを使うことが出来ます(通信仕様は調べる必要がありますが)。</p><p>その後いろいろありまして、今度は USB 接続のリーダを利用する必要が出てきました。もちろん ESP32 マイコンには USB ホストコネクタありませんので、USB ホストのモジュールを使う必要があります。</p><p>モジュールはいくつかあるようなんですが、スイッチサイエンスさんにM5Stack用のシールドがありましたのでこれなら情報もそれなりにありますし何とかなるだろうと思って使ってみることにしました。</p><p><a href="https://www.switch-science.com/catalog/3919/" target="_blank">USB Host Shield for M5Stack</a><br /></p><p>回路図とにらめっこしながら作成したのがこれ。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSOqQ1BXcSsu_7xJAgZwMneK21IK_gFhivcc3GohyphenhypheniZTPvLQNUBWDDAR1wZlx3q3RRz_p3YkzPek3di-mYCPpbRN1iJNxI81HwM531F9vL0RmQIySCUzb1AwFjftOUQDJ0PkBWGNspYXE/s2048/IMG_8933.HEIC" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1536" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSOqQ1BXcSsu_7xJAgZwMneK21IK_gFhivcc3GohyphenhypheniZTPvLQNUBWDDAR1wZlx3q3RRz_p3YkzPek3di-mYCPpbRN1iJNxI81HwM531F9vL0RmQIySCUzb1AwFjftOUQDJ0PkBWGNspYXE/s320/IMG_8933.HEIC" /></a></div><p>プログラムはライブラリの USB_Host_Shield_2.0 がそのまま使えるということでサンプルプログラムの USBFTDILoopback を使います(つないでいるUSBのリーダがFTDIなので。このリーダはSPPだけでなく、USB接続して仮想COMポートで制御できます)。このサンプルでは特定のデータを送信して受信するのを繰り返すようになっています。そこで送信するデータを下記のリーダのバージョン取得コマンドに書き換えておきます(65行目)。</p><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><span style="color: #569cd6;">char</span> <span style="color: #9cdcfe;">strbuf</span>[] = <span style="color: #ce9178;">"~rv</span><span style="color: #d7ba7d;">\r\n</span><span style="color: #ce9178;">"</span>;</div><p>早速動かしてみると、動いてはいるようですがコマンドを投げているような気配はありません。何が起きているのかわからないのでデバッグモードにしてデバッグ出力するようにします。settings.h の42行目あたりの次の値を0から1に変更すればいいようです。</p><div style="color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;"><div style="background-color: #1e1e1e; line-height: 19px;"><div><span style="color: #6a9955;">/* Set this to 1 to activate serial debugging */</span></div><div><span style="color: #c586c0;">#define</span><span style="color: #569cd6;"> </span><span style="color: #569cd6;">ENABLE_UHS_DEBUGGING</span><span style="color: #569cd6;"> </span><span style="color: #b5cea8;">1</span></div></div></div><p>これで動かしてみると、</p><p>FTDI Init<br />FTDI Init: Product not supported<br />Expected VID:00000403<br />Found VID:0403<br />Expected PID:6001<br />Found PID:6015</p><p>このような表示でました。どうも PID が合ってないようです。ということでソース側のPIDを変更します(cdcftdi.h の29行目あたり)。</p><p>もう1回動かします。</p><p>FTDI Init<br />
Addr:01<br />
NC:01<br />
Conf.Val: 01<br />
Iface Num: 00<br />
Alt.Set: 00<br />
Endpoint descriptor:<br />
Length: 07<br />
Type: 05<br />
Address: 81<br />
Attributes: 02<br />
MaxPktSize: 0040<br />
Poll Intrv: 00<br />
Conf.Val: 01<br />
Iface Num: 00<br />
Alt.Set: 00<br />
Endpoint descriptor:<br />
Length: 07<br />
Type: 05<br />
Address: 02<br />
Attributes: 02<br />
MaxPktSize: 0040<br />
Poll Intrv: 00<br />
NumEP:03<br />
Conf:01<br />
baud_value:001A<br />
baud_index:0000<br />
FTDI configured<br />
.~Rv0000bl-7.2.6.2<br />
.~Rv0000bl-7.2.6.2<br />
.~Rv0000bl-7.2.6.2<br />
.~Rv0000bl-7.2.6.2<br />
.~Rv0000bl-7.2.6.2<br />
.~Rv0000bl-7.2.6.2<br />
.~Rv0000bl-7.2.6.2<br />
<br /></p><p>キター!リーダからバージョン情報のリプライが来ています。これで ESP32 マイコンからUSB接続のリーダが利用できるようになりました。</p><p><br /></p>ssanohttp://www.blogger.com/profile/05508471105610047571noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-547022891789573332021-06-01T17:37:00.000+09:002021-06-01T17:37:18.106+09:00RFID対応の Alexaガジェットを作る<p> MANICAモバイルのゲートを作るというのを以前やったんですが、これをちゃんと作りたいということで何で作ろうかと考えたんですが、やっぱり手頃なのがなくてそういえばアレクサとか Google Nest とか最近どうなってるんだろうと思ったら、アレクサのガジェットが作れるようになっていました。</p><p>詳細はこちらに詳しく記載されておりますので参照くださいませ。</p><p><a href="https://qiita.com/poruruba/items/e4559e18cb90cd0a3b81" target="_blank">ESP32をAlexa Gadgets Toolkitデバイスにしよう</a><br /></p><p>RFIDリーダとガジェットを直接接続するのは無理ですが、ESP32とRFIDリーダを接続すればガジェットとして使えそうです。ちなみにガジェット自体は上記リンクの内容で問題なく動いたんですが、なぜかスキル側でエンドポイントの取得が全然できなくて一旦諦めたんですが数日後にやってみたらあっさり取得できたので進めることができました。</p><p>こんな構成になります。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkTd4tmZA-GPUyezV0KfMsPXHnaEIVc4O36uCos566X7svot5gYcdgoABMmE1xa_2S36b1yg-k2kRVJqMi5DTGjJwwrjFtkInf3KFOBh_ktiY-UAtGtZ28ypV8MjJUV8VeT1GU-WezRPY/s1319/IMG_8932.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="989" data-original-width="1319" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkTd4tmZA-GPUyezV0KfMsPXHnaEIVc4O36uCos566X7svot5gYcdgoABMmE1xa_2S36b1yg-k2kRVJqMi5DTGjJwwrjFtkInf3KFOBh_ktiY-UAtGtZ28ypV8MjJUV8VeT1GU-WezRPY/s320/IMG_8932.jpg" width="320" /></a></div> アレクサとESP32はBLE、ESP32とRFIDリーダはSPPで接続します。<div><p>まずは家の中で使う想定で、これを使ってカギとかサイフとかを探せるようにしてみたいと思います。</p><p>・・・</p><p><br /></p><p>というわけで作成してみたんですが、実用レベルには至らなそうな結果になってしまいました。</p><p>私「アレクサ、ICタグでカギを探して。」</p><p>アレクサ「わかりました。」 ここでリーダが自動で読み取りを開始する</p><p>アレクサ「ありませんね」</p><p>アレクサ「ありませんね」</p><p>アレクサ「反応あり」 (タグが読めた)</p><p>アレクサ「反応あり」</p><p>アレクサ「近い」 (RSSIが大きくなった)</p><p>アレクサ「近い」</p><p>アレクサ「そこ!」 (RSSIがさらに大きくなった)</p><p>アレクサ「そこ!」</p><p>私「あった」</p><p>アレクサ「よかったですね!」 ここでリーダの読み取りは停止</p><p>という動きになるんですが、なんともリアルタイム性が無いので探しづらいです(笑</p><p>ESP32側ではリアルタイムに判定できるんですが、その結果をガジェットで上げるとクラウドのスキルまでいって、そこから話すことばを選んでアレクサに降りてきてようやく話すという感じなので判定からアレクサが喋るまでどうしてもラグが出来てしまいます。</p><p>アレクサは言葉のやり取りをする前提なのでリアルタイム性を求めるのは難しいかもしれません。何かもうひと工夫必要ですね。</p><p><br /></p></div>ssanohttp://www.blogger.com/profile/05508471105610047571noreply@blogger.com0tag:blogger.com,1999:blog-4802822171796745320.post-80729490350067376642021-04-28T09:56:00.028+09:002021-04-28T19:33:05.889+09:00インターネット共有を使って、VPN経由で通信してみる<p> <a href="https://enjoy-rfid.blogspot.com/2020/10/wi-fi-directvpn.html">前回</a>、Windows PC上でWi-Fi Directを使って、VPN経由で通信してみました。今回はmacOS上でインターネット共有を使って、VPN経由で通信してみようと思います。短いです。RFID関係ありません。</p><h2 style="text-align: left;">使ったもの</h2><div><ul style="text-align: left;"><li>MacBook Pro macOS Big Sur</li><li>iPhone 7</li></ul><h2 style="text-align: left;">手順</h2></div><div>まず、VPN接続を設定します。設定し、接続が完了するとこんな風に表示されると思います。</div><div><div><br /></div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9WjEcxN8w-gAU-1Ev5uaCq4IJo1mH2a30ip5UZeu_iPmXbTbYfg2IJZyKBrEk-tfxQ_p7kpESAZSYIHXPxSd00cluBypiqNEBP7oxVenJ74IO5JuHKTEBVcEePqlSorXz6Ik9xm4igmw/s446/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2021-04-28+19.30.28.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="402" data-original-width="446" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9WjEcxN8w-gAU-1Ev5uaCq4IJo1mH2a30ip5UZeu_iPmXbTbYfg2IJZyKBrEk-tfxQ_p7kpESAZSYIHXPxSd00cluBypiqNEBP7oxVenJ74IO5JuHKTEBVcEePqlSorXz6Ik9xm4igmw/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2021-04-28+19.30.28.png" width="320" /></a></div><br /><div><br /></div><div>次にシステム環境設定から共有を開きます。ここで、共有する接続経路に接続中のVPNを選択します。相手のコンピュータでのポートは今回はUSBケーブルで接続しているので、iPhone USBを選択します。この状態でインターネット共有にチェックを入れると、ダイアログが表示されiPhoneからVPN経由で通信が行えるようになります。設定済みの画面はこんな感じです。</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6CBrRWJudErxVvDvwAvBP93R-Mjw1WdWSyMzJtjOr6ytKJaE5OQFDrgA32e0elvLyJM_bDBXwl_H4MkNDIRRRBc3arXxj32q6E8vMjs7ZpZeghYK2fJDemDZFPqY4ihFP3cO2SnM3-qI/s1340/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2021-04-28+19.30.42.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1090" data-original-width="1340" height="520" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6CBrRWJudErxVvDvwAvBP93R-Mjw1WdWSyMzJtjOr6ytKJaE5OQFDrgA32e0elvLyJM_bDBXwl_H4MkNDIRRRBc3arXxj32q6E8vMjs7ZpZeghYK2fJDemDZFPqY4ihFP3cO2SnM3-qI/w640-h520/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2021-04-28+19.30.42.png" width="640" /></a></div><br /><div><br /></div><h2 style="text-align: left;">まとめ</h2><div>Windowsと比べると、端末との通信方式が色々選べるところが違うようです。MacでWi-Fi経由でVPN接続しておけば、試してないですが、有線LANで接続した機器がVPN経由で通信できるようになると思います。あとは機器やiPhoneごとにVPN接続する必要がなくなるので、VPN資源の削減になりそうです。</div>hnakanohttp://www.blogger.com/profile/11112416181028786776noreply@blogger.com0