2024年9月24日火曜日

DRAGINO の DLOS8 で OpenVPN を設定して遠隔操作できるようにする

 LoRaWANのゲートウェイに DRAGINO の DLOS8 を使ってるんですが、長期間運用しているとフォワーダが何らかの原因で落ちるみたいで、そうするとSIMでインターネットには繋がってるけどLoRaWANの送受信ができないという状態になってしまいます。

そうすると再起動をかける必要があるんですが、それをやるには本体の近くまで行ってWiFiで接続して再起動という操作をする必要があってとても不便です。(※最新のファーム(lgw--build-v5.4.1723688701-20240815-1029)でフォワーダが落ちる不具合は治ってるんじゃないかという話もありますが、まだそのファームで長期運用した実績がないので現時点では不明です)

何とかならんかと思っていたところ、DLOS8の設定画面にOpenVPNの設定が追加されていることに気づきました。これはひょっとしてVPNで外部から接続できるようになるのか?でもどうやるんだ?と探したところオンラインのマニュアルには記載ありました。

ということで OpenVPN のサーバを作ることにします。いろいろ調べてると、Amazon Lightsail というVPSサービスを使うと非常に安くサーバを作れそうです。これ使うと最小構成だとたった月額5ドルで利用できます。OpenVPN のサーバとして使うだけなら最小構成でも十分です。

早速 Amazon Linux2 の OS でインスタンスを作成し、静的IPアドレスの設定と OpenVPN 利用のため UDP 1194番をファイアウォールのルールに追加します。

その後はこちらの記事を参考に構築していきます。(ありがたや~)

https://qiita.com/kapioz/items/5b75c3470a4e57d916ba

DLOS8 の方に認証ファイルを設定しないといけないんですが、これが CA trust/Client Cert/Client Key/Ta Key の4つもあります。それぞれどれを使うのかは次の通りです。

CA trust  -  「サーバ証明書と秘密鍵の作成」で作成したサーバ証明書(ファイル名は ca.crt にします)

Client Cert  -  「クライアント証明書と秘密鍵の作成」で作成したクライアント証明書(ファイル名は ***.crt にします)

Client Key  -  「クライアント証明書と秘密鍵の作成」で作成した秘密鍵(ファイル名は ***.key にします)

Ta Key  -  「TLS証明鍵の作成」で作成した証明鍵(ファイル名は ta.key にします)

※クライアント証明書はパスワードかけるとDLOS8が読み込んでくれないので、作成時にサーバと同じく nopass のオプションを付けて、パスワード無しで作成します。

続けて OpenVPN Client の設定です。これはマニュアル通りに記載すればOKでした。

サーバにコンソールで接続して、DLOS8に SSH で繋いでみます。

するとキタ~!これでリモート管理ばっちりです。


2024年9月13日金曜日

第26回 自動認識総合展に行ってきました!

東京ビッグサイトで開催されている「第26回 自動認識総合展」に行ってきました!

自動認識技術の最新トレンドをチェックするため、いろいろなブースを回ってたくさん勉強してきました。

会場には、リーダー、ICタグ、印刷機、ソフトウェアなど、さまざまなソリューションがずらり。

RFIDだけでなく、画像や音声認識といった技術も注目されていて、どんどん進化しているのを感じました。


RFID導入で気づいたこと

いくつかのブースでお話を聞いてみて、RFID導入において一番コストがかかるのが「ソフトウェアの開発」だということがわかりました。

でも、最近ではパッケージ化されたソフトを使って、スモールスタートできる選択肢も増えてきています。

ただし、本格的に業務に組み込むには、やっぱり専門家の助けが必要。

カスタマイズが肝心なんですね。


マニカエクセルツールの魅力を再発見!

その中で改めて「これは使える!」と思ったのが、マニカエクセルツールです。

専門的なプログラミングの知識がなくても、エクセルが使えればOKなところが本当にありがたい!

これなら、RFIDのデータを自分好みにカスタマイズできるし、業務に合った形で運用ができるんです。

やっぱりシンプルで使いやすいツールって大事ですよね。

マニカエクセルツールの体験版はこちらからダウンロードできます。


注目の「PLOCO」

そして、業務用の製品が多い中で、ひときわ目を引いたのが「PLOCO」という教育ツール。



RFIDといえば業務向けのイメージが強いですが、「PLOCO」は子供たちのプログラミング教育やIT教育に使えるので、教育分野への展開が期待されているそうです。

ITスキルがますます重要視される今、「PLOCO」が未来の子供たちの学びにどんな影響を与えるのか、とても楽しみです。

参考記事:ハヤト・インフォメーション、白紙とロック社からRFID知育玩具「PLOCO」を譲渡。次世代イノベーターの育成を目指し、コンシューマ向けRFID市場に参入


まとめ

今回の展示会では、新しい技術やソリューションにたくさん触れることができて、本当に勉強になりました。

RFIDの導入を検討している方はもちろん、すでに導入している企業も新たなヒントが見つかる場だったと思います。

これからも最新の情報をキャッチして、より良いソリューションを提案できるよう頑張っていきたいと思います!



2024年8月8日木曜日

エクセルツールで光るタグ

 今回はこちらのタグのサンプルをいただいたので試してみます。

https://www.rfidtagworld.com/products/LED-Tag/LED-Tag_5568.html

LEDタグ

LEDついてるのに安いです。すごいですね。LED付きのタグは、「お前光れ!」と命令するとそのタグが光るので、複数ある中で1個を探したいときにとても便利に使えます。

せっかくなのでエクセルツールで使えるようにしてみました。リーダはDENSOのSP1を使います。

エクセルツールを起動してSP1と接続し、「セルへ入力」の機能でタグのEPCを取得します。そのうち3個を選んで、「ICタグを探す」モードに変えます。この3個を光らせようという試みです。

スマホの方はこんな感じ
で、SP1で読み取りすると!

3個光ったー(わかりますかね?)

ちなみに光るタグの機能はMANICAモバイルにはすでに搭載されております。


これで探しものがぐっと楽になりますね!
現状対応しているリーダはAndroid版エクセルツールのSP1とBlasterのみですが、順次対応機種を増やしていく予定です。


2024年7月18日木曜日

ミマモライドが、ニュースで紹介されました。

BLEビーコンを活用して地域を見守るミマモライド、自動販売機に受信機をインストールしていくアプローチの斬新さも相まって、沖縄県内に着々と実装が進んでいます。

認知症の方のお出かけをサポートするという考え方も広く支持されるようになり、今回もTVニュースでご紹介いただきました。


徘徊する権利を守る、という大きな目的は、決して技術的なサポートのみで成り立つものではありません。どうやって地域として見守っていくのか、まだまだ実験途上のプロジェクトではありますが、エリアに受信機ネットワークが拡がっていくことで、スマートシティ的なセンサーノードの拡がりとか、多用途展開への道筋も見えてきそうですよね。

もちろんBtoB領域でも活用できる技術ですので、広いエリアでの所在管理などにお困りの方はお気軽にお問い合わせください。




2024年7月4日木曜日

フラッグタグで、塗料による読み取り距離を比較してみた

フラッグタグとは、金属製品に貼り付け、金属自体で電波を受けることが可能なため、小さなサイズでも長い距離を読み取れるタグです。

昨年の3月にフラッグタグで、10m以上の読み取り距離を実現できるかを試したのですが、今回は、金属を塗装して、読み取り距離を比較してみました。

実験で使用したタグとリーダーは、前回と同様、以下になります。

タグ   : Smartrac Midas Flag Tag

リーダー : デンソー BHT-1281

距離の測定には、レーザー距離計を使用しました。

レーザー距離計はm(メートル)単位で、小数点3桁まで測定できるのですが、今回の実験では、7回読み取った距離を計測して、平均値の小数点3桁目を四捨五入しました。本文の距離の単位はメートルとなります。

また、金属は、0.5×100×200 mm  (厚さ×縦×横)の鉄板を使用しました。

使用した塗料は以下の2種類になります。特殊な塗料ではなく、一般的な金属用の塗料です。


① 亜鉛メッキ塗料

  使用した塗料には亜鉛が含まれています。メーカーのホームページによると、「導電性はありますが、樹脂や添加剤などにより電気抵抗があります。」との事なので、多少の導電性はあるようです。

② 合成樹脂塗料

  使用した塗料には、合成樹脂として、アクリル・シリコンが使用され、絶縁性があります。

前回と同様、フラッグタグを貼った金属板を、プラスチック製のタブレットスタンドに立てかけました。(写真は亜鉛メッキ塗料で塗装した鉄板)



リーダーのMANICA EXCEL TOOL で電波を4番目にして、立てかけた金属板を正面から読み取りました。


なお、レーザー距離計のレーザーを金属板に当てるのが難しかったので、10cm後方の壁に当てて距離を測定しました。

以下の順位と読み取り距離になりました。

  1位 塗装なし     : 5.61

  2位 亜鉛メッキ塗料  : 5.51

  3位 合成樹脂塗料   : 5.36

また、3枚の金属版を横に並べ、リーダーで読み取りながら近づいた時に、どれが一番先に読み取ったかを調べました。(18 回 実施)

  1位 塗料なし    : 12 回

  2位 亜鉛メッキ塗料 :  5 回

  3位 合成樹脂塗料  :  1 回

塗装すると読み取りが少し悪くなりますが、亜鉛メッキ塗料の方が読み取りがよい、という結果になりました。亜鉛メッキ塗料は導電性があるので、電波の減衰を抑える効果があるようです。


ちなみに、以前の実験で使用した、導電塗料で塗装したプラスチック容器にフラッグタグを貼って、読み取りを試したのですが、貼らずにタグのみを読み取った場合との違いがありませんでした。(写真は2022年1月に、導電塗料を使ってシールド効果を実験した時の容器)

つまり、塗料自体で電波を受ける事はなく、電波の減衰を抑える効果のみのようです。


<参考>

『フラッグタグで、読み取り距離10m以上を実現してみた』(2023年3月)

https://enjoy-rfid.blogspot.com/2023/03/blog-post.html

『塗料のシールド効果を実験してみた』(2022年1月)

https://enjoy-rfid.blogspot.com/2022/01/blog-post.html









2024年6月25日火曜日

iPhoneで身の回りにあるICタグを読み取る実験をしました!

 開発中のiPhone版マニカエクセルツールのアプリにテスターで参加させてもらいました。

MANICA EXCEL TOOL 1.0 (37) on iOS.


ICタグの読み取りに必要なアイテム

  • iPhone

  • RFIDリーダー

  • ICタグ




リーダー:BU01 Multi-function Bluetooth RFID UHF Reader

BU01腕時計型リーダーを使用しました。

シンプルで、スマートウォッチのようなデザインです。


ICタグ:身の回りにあるものを探してみる

今回は、ユニクロのエアリズムやヒートテックについているタグを使用しました。

買い物や図書館の本の貸し出しなど、身近なところでICタグは使われているのですね。


身近なものを使って、手軽に始められるということが分かりました。

それでは、これを使ってさっそくRFIDを体験してみたいと思います。


MANICA EXCEL TOOL アプリのダウンロード~設定

設定はすごく簡単でした。


  1. アプリをインストールします。

  2. アプリを開くと設定画面になるので、「リーダを選択」は「お持ちのリーダーを選択」して、「PCとの接続方法」は「Wifiで接続」にします。


  3. Bluetoothの使用を許可して、Bluetoothをオンにします。


  4. リーダーの電源を入れていないと「ハンディリーダを探しています」となるので、設定したRFIDリーダーの電源をオンにします。


接続されました!


これだけで設定完了です!

RFIDの設定は、もっと難しいのでは?と思っていましたが、意外と簡単にスタートすることができました。
本格的に棚卸業務で使用したり、既存システムと連携して動かしたい場合は、詳細な設定が出来ます。


ICタグの読み取り

いよいよ、ICタグを読み込んでみたいと思います。

今回は3枚のタグを用意しました。

結果はスムーズに読み取れるタグと、そうではないタグとに分かれました。


日を変えて実験したところ、スムーズに読み取れるタグはいつもスムーズに読み込めるし、何度かかざす必要があるタグはいつも同様の結果になりました。

どうやらICタグによって読み取り精度が異なるようです。


使い捨てで大量にICタグを使用する場合は、タグの価格を押さえて高価なリーダーを設置したほうが良いだろうし、手頃なリーダーで十分な場合もあるだろし...

そこは、用途により検討する必要がありますね。


まとめ

今回はMANICA EXCEL TOOLのiPhone版アプリを使って、身の回りにあるタグを読み取る簡単なテストをしてみました。


  • RFIDリーダーを用意すれば、身のまわりにある物を使ってRFIDを始めることができる

  • RFIDの設定や読み取りは、意外と簡単に行うことができる


今回は簡単な動作テストでしたが、MANICA EXCEL TOOLは、本格的な棚卸システムを構築できるパッケージなので、興味がある方は是非試してみてください。

WEBから無償でダウンロードできます。

https://www.hayato.info/home/siryou.htm



2024年6月10日月曜日

InnoVEX COMPUTEX TAIPEI 2024の模様

 アジア最大のICT見本市InnoVEX COMPUTEX TAIPEI 2024に参加してきたのでその模様をお伝えします。


会場の外観

intel、MSI、ASUSなど大手メーカーの展示がありました



intelの最新プロセッサー

ASUSの新型ラップトップ

そのほかにもゲーミングPC関係の展示が目立ちました。

なぜか筐体が傾くように動きます

韓国の神社をあしらったPC

そのほか


unitechさんです

いろいろ説明を聞かせてもらいました


InnoVEXのレセプションパーティー

会場付近の台湾料理屋


イベントとは無関係ですが台北の101ビルです

台北の街並み




以上になります。
ブースでの展示にあたってたくさんの方とお話でき、今回のイベントはとても刺激的な経験となりました。私自身RFID事業に対する理解をもっと深められるよう勉強していきたいと思います。



2024年6月6日木曜日

InnoVEX COMPUTEX TAIPEI2024に出展してます!(2024/6/4-8)

というわけで、InnoVEX COMPUTEX TAIPEI2024に出展中。

昨年に引き続き、沖縄県様のブースにお世話になっております。


ひとめで、それ(=沖縄県)と分かるブースデザイン。


彩り鮮やかな壁紙も目を引きます!


いつも使いまわしている展示会用のパネルを、坂本さんに翻訳してもらい中文(繁体字)版で持ち込みました。

展示物としては、いつものMANICAモバイル、ExcelToolに加えて、今回は急遽PLOCOも展示してます。



注目は、何と言っても中文(繁体字)対応したMANICAモバイル。

現地のパートナーさん、ユーザーさんにも大好評です!








6/8まで開催中ですので、お近くの方(いるのかな?)は是非あそびにきてください!

出展内容の詳細は、こちらから。↓

2024年5月30日木曜日

 ICタグとGPS、企業の「所在管理」から得る身近な安全への活用とヒント

こんにちは。

入社して一か月が過ぎた新入社員です。

引き続き、RFID初級編の情報をお届けしていきます。





さっそくですが、「所在管理」って何をするか分かりますか?

言葉からだいたいのイメージはつきますよね。

具体的に説明すると、、

例えば広い工場ではどこに誰がいて、作業状況がどうなっているのか把握することができません。

  • 管理面の問題
  • 安全面の問題

これらを解決するキーワードが「所在管理」です。

とりあえず人を探すだけならGPSが使えそう、と思った方いませんか?

ところが、GPSって建物内で使用できないのですね!


建物内での所在確認に適さないGPS

身近な「所在管理」として知られるGPSですが、建物内ではGPS信号が届かず、精度が低下してしまいます。

お子さんの安全確認のために使用されている方は、その欠点に気づいているかもしれません。

そんな建物内での所在管理に役立つのが、ICタグ(RFIDタグ)です。

ICタグ(RFIDタグ)の利点

ここで、ICタグ(RFIDタグ)について説明します。

RFIDは無線周波数を利用してデータを送受信する技術で、タグには個別の識別情報が記録されています。

この技術を使うことで、建物内での人の位置特定が可能となり、GPSが使えない環境でも問題なく利用できます。

  • リアルタイムでの位置特定: どこに誰がいるかを瞬時に把握できる
  • 高精度: 数メートル以内の誤差で位置を特定可能
  • 建物内外で利用可能: GPSが使えない場所でも問題なく機能する


ICタグの活用方法



例えば、どんなことができるかの活用例を挙げてみましょう。

  • 従業員の所在管理: 各従業員にICタグを持たせることで、どこにいるかをリアルタイムで把握できます。
  • 緊急時の避難確認: 緊急時に全員が安全に避難できたかを即座に確認できます。
  • 来客の管理: 受付でICタグを渡し、訪問者の位置を把握することでスムーズな案内が可能です。
  • 迷子対策: 大規模なイベントや施設で迷子になった人を迅速に発見できます。

素晴らしいシステムです。

しかし、これを実現するにはそれなりの費用がかかります。

なぜなら、高額なリーダーを各所に設置する必要があるからです。

将来的にリーダー価格が下がってくれば、身近なシステムとして利用できるかもしれません。


ICタグの活用シーンを考えてみる

ちょっと遠い存在に感じられてきたICタグですが、身近で利用できる良い方法を考えてみました。

広範囲な建物内での所在管理についてお話してきましたが、使用するエリアが特定されていれば、大きな費用をかけず導入することが可能です。

例えば、園児の名札にICチップをつけておけば、園バスや送迎バスなどの乗降チェックが簡単に行えます。

デイサービスの送迎などでも活用できそうです。

塾や習い事先では、すでにNFCを使った入退室チェックが導入されているところも多いです。

カードをリーダーにかざすと入退室チェックができ、登録したメールアドレスに連絡が届きます。

ICタグ(RFIDタグ)を利用すると通信距離が広くなりますので、小さな子供やお体の不自由な方の所在管理が簡単に行えます。

担当者の目視チェックだけではなく、システムによる所在管理が実現されれば、家族もさらに安心できますね。

ICタグの活用事例、いかがでしたでしょうか。

是非、ICタグの導入を検討してみてください。



2024年5月24日金曜日

NFCタグに実際にタッチしないと表示されない Webサイトを作る

以前に書いた NTAG424 DNA の記事が意外に好評でよくアクセスいただいているのですが、結局さー、何に使うん? みたいな内容が無かったのでこちらに記載したいと思います。

NFCタグの使い方として一番多いのは、URLを書き込んでおいてスマホでタッチするとブラウザが起動してそのURLにアクセスできる所謂スマートポスター的な使い方だと思います。

ただそれだけですと QR と変わらないのですが、NTAG424 の機能を使うと実際にタグにタッチした時しかアクセスできない Webサイトを作ることができます。(ちなみに同様な機能を持つタグは他にもあります)

NTAG424 は NTAG213 などでも実装されている、UIDミラーとカウンターという機能があります。これはタグに書き込んだURLのパラメータ部分に、自身の UID と タッチされた回数 を自動で埋め込んでくれるというすばらしい機能です。

例)
書き込まれたURL
https://www.hayato.info/tag?uid=00000000000000&ctr=000000
スマホで読み取ったときのURL
https://www.hayato.info/tag?uid=04C767F2066180&ctr=000010

NTAG424 では、さらにこのパラメータ部分を AES暗号化してくれます。

スマホで読み取ったときのURL
https://www.hayato.info/tag?id=sja0tVH8IK3Y2NnpJlPDhq0HDKQcwxMucecXCvFYYb4=

こんな感じ

カウンタも含めて暗号化するというのがミソで、そのおかげでタッチする度に毎回異なるコードが生成されます。

ここからはサーバ側の処理になります。送られてきたパラメータ部分を復号し、UIDとカウンタの値を取得します。サーバ側ではアクセスしてきたUIDとカウンタをセットで記録するようにしておきます。

で、記録してあるカウンタと今送られて来たカウンタの値を比較して、記録してある値と同じか低い値であれば、今タグにタッチしてアクセスしてきたのではなく、過去にタッチされたときのURLでアクセスしてきたことがわかります。

上記を実際にAWSで実装した場合が以下になります。AWSで実装したらこうなるという話で、AWSじゃないと実現できないということではありません。


S3: ここに最終的に表示させたいコンテンツを格納します。CloudFrontのOACを利用して、CloudFront経由でのみアクセスできるように設定しておきます。

CloudFront: スマホからのアクセスはここで受けるようにします。Lambda@Edgeを使って、アクセス時にLambda関数を走らせます。

Lambda: 上記の復号とチェックを行います。古いURLとわかれば、それ用のHTMLを返すようにします。

DynamoDB: UIDとカウンタの値を保存します。

これでタッチしないと表示されないWebサイトの完成です。もちろんタッチしてURLにアクセスせず、そのURLを他の場所に送ってそちらでアクセスするという抜け道もありますが、その場合でも実際にタッチしていることに変わりはありません。

2024年5月21日火曜日

新しいチャレンジ、そしてICタグとの出会い

こんにちは。4月に入社しました新入社員です。

社員が気軽に発信できるBLOGがあるなんて、いいですよね!

早速ですが、入社してICタグの可能性を目の当たりにしたとき、真っ先に浮かんだこと、ICタグの魅力についてお話ししたいと思います。

私はこれまで、ずっとWEB関連の仕事をしてきました。

その中で携わった、ERPシステム開発時の出来事が真っ先に思い浮かんだのです。


クライアントの多くが月末の棚卸に頭を悩ませていました。

業務を数日間停止して棚卸を行うことも珍しくないということでした。

このような状況は、会計処理にも大きな影響を及ぼし、月末で締めた会計システムを遡って変更する際の課題も多く、会議が長引くこともよくありました。

ICタグを使えば、物品の管理が格段に楽になります。

例えば、棚卸の際に手作業で一つ一つ確認する必要がなく、一瞬で在庫状況を把握できます。

ICタグは無線通信を利用して、タグが付けられた物品の情報を瞬時に読み取り、システムに自動的に反映されるため、広い倉庫内でも短時間で正確な在庫確認ができます。

毎月のように棚卸にかけていた労力を考えると、呆然としてしまう事実です。

さらに、リアルタイムで物品がどこにあるのか、いつ移動したのかを把握することもできます。

防犯対策としても有効ですね。

これまで、図書館やユニクロなどでICタグを使ったことはありましたが、実際に具体例を見てみないと業務にどのように活用できるかは、ピンとこないものですね。

しかし、何でも開発してしまう技術者って本当にすごいと思います!

こんな便利なツールを目の当たりにすると、効率を求めてシステム化されているはずの社会が、急にアナログの手作業で運用されているように感じてしまいます。

まだまだ世の中は変わっていくのだろうと、改めてICタグの可能性に感動した、RFID猛勉強中の私でした。


これからも、初心者目線で気づいたこと、ICタグの最新情報や活用事例など、ブログを通じて発信していきますので、どうぞよろしくお願いします! 

2024年5月2日木曜日

iOS用のSDKを.NET MAUIで使えるようにしてみる

 RFIDを使ったシステム開発ではスマートフォンでリーダを制御することが多いですが、iOSで使いたいという要望がとても多いです。iOSに対応しているリーダも少ないながらありますのでそのリーダのSDKを使って開発するわけですが、iOSでの開発というものは何と言うか、こう、いろいろ大変ですよね。

ちょこっとしたアプリなら問題無いですが、業務用のアプリになると画面数多いしそれはそれは大変なわけです。そこで少しでも開発を楽にしたいということでXamarinを使うという手があります。

XamarinならC#で書けますので開発は楽です。しかしXamarinのサポートが終わり、.NET MAUIに移行という流れになっています。

そのような事で MAUI で開発していこうと思うのですが、ここで先ほどの SDK が問題になってきます。そう、SDK はネイティブな Framework になっていることが多いのでそのままではMAUIで使用できません。バインディングというものを作成する必要があります。

チュートリアル: iOS Swift ライブラリをバインドする

この資料に沿って作業します。この資料のポイントは、SDKをそのままバインディングするのではなく、必要なメソッドだけラッパー的なライブラリを作ってSDKを後ろに隠し、バインディングはラッパーの部分だけにすることでバインディングに関するややこしい作業を省こうというところです。資料は Xamarin用ですが、まぁ、何とかなるかなと思ってやってみます。

ちなみに MAUI だと Mac がなくても iOS の開発ができるみたいな感じですが、さすがにバインディングのプロジェクトはビルドできなかったのでライブラリを作るところまでは Mac で作業します。

早速問題があって手元にある Mac mini が古くて OS が Catalina までしか上げられないので必然的に Xcode が Version 12.4 までしか入りません。

上記資料に沿って作業を行い、何とか「ネイティブライブラリをビルドする」の章まで完了しました。

次の章「メタデータを準備する」でコケます。Objective Sharpieというツールを使って、バインディングライブラリに必要な ApiDefinition.cs と StructsAndEnums.cs を作成する必要があるんですが、OSが古いせいか sharpie がエラーで起動すらしてくれません。困った。どうしよう。ただどちらのファイルもライブラリの定義情報を記載してるだけのようなので手作業で作ることにします。手作業と言っても、作成するのはラッパーの部分だけなので楽勝です。

次、「バインドライブラリをビルドする」の章、資料では Visual Studio for Mac で作業してます。Visual Studio 使うんなら Windows でもよくね?と思って試しに Windows の Visual Studio 2022 でやってみます。

ネイティブ参照などはうまくいって何かうまくいきそうな気配がする。画面見る限り何の文句も言ってこないしこれはこのまま行けるのか!? が、ビルドでエラー、ApiDefinition.cs に記載している NSObject を知らないと言う。え?何で?基本型じゃん。(※追記 ちなみに Visual Studio を Mac に接続してると、この部分は Mac 側で処理するようで、ビルドアクションの objBindingApiDefinition がそうさせている様子。しかし結局 Xcodeが古いからダメ的なのが出てきて諦めた)

エラーをよくよく見るとMacが無いとビルドできないというメッセージも出ている。ダメか。結局Macか。ということで大人しく Visual Studio for Mac で作業することにする。が、Visual Studio for Mac をインストールしているとおまえの Xcode が古いから使えない機能があるかも的なメッセージが出る。無視して進む。

ビルドまでできるようになったが .NET 7.0 でビルドされている様子。ターゲットを.NET 8.0にしようとするが、インストールされていないと出てくる。別途 .NET 8.0 SDK をインストールするが、相変わらず.NET 8.0はインスールされていないと出る。仕方ないので .NET 7.0 のものをそのまま使うことにする。

ビルドしてできた DLL 等を Windows に持ってくる。これが使えるのかが問題だ。まず MAUI のプロジェクトを作り、例のDLLを参照してみる。参照できた!ビルドも通った。あとは実機で動くかどうかだ。早速 iPhone を繋いで実行しようとすると iTunes が必要と言われるのでインストールする。

すると実機で動いた!上記以外に他にも細かいトラブルはたくさんありましたが、何とか動作するところまでたどり着きました。あー長かった。

2024年4月26日金曜日

AWSで管理しているLoRA WANデバイスの情報を取得する AWS IoT Wireless

  AWSのIoT Coreでは、LoRA WAN通信のデバイスを登録してデバイスの状態をクラウドから取得することができます。デバイスの登録はコンソール画面から行うのですが、いろいろと面倒なところがあり、これをAPIっぽくカスタムのサイト上で行えるようにしたくなりました。ところが参考となる資料がなかなかないため、ここで紹介します。

必要なパッケージ

using Amazon.IoTWireless.Model;
using Amazon.IoTWireless;
using Amazon.Runtime;

登録しているデバイスの取得

var credentials = new BasicAWSCredentials("YOUR_KEY", "SECRET_KEY");

AmazonIoTWirelessClient client = new AmazonIoTWirelessClient(credentials, Amazon.RegionEndpoint.APNortheast1);

ListWirelessDevicesRequest request = new ListWirelessDevicesRequest(); request.WirelessDeviceType = WirelessDeviceType.LoRaWAN; request.MaxResults = 100;

ListWirelessDevicesResponse response = client.ListWirelessDevices(request);

デバイスの登録

var credentials = new BasicAWSCredentials("YOUR_KEY", "SECRET_KEY");

AmazonIoTWirelessClient client = new AmazonIoTWirelessClient(credentials, Amazon.RegionEndpoint.APNortheast1);

OtaaV1_0_x otaa = new OtaaV1_0_x() {

    AppKey = appkey,     AppEui = appeui };

LoRaWANDevice lora = new LoRaWANDevice {     OtaaV1_0_x = otaa,     DevEui = deveui,     DeviceProfileId = deviceprofileid,     ServiceProfileId = serviceprofileid };

CreateWirelessDeviceRequest request = new CreateWirelessDeviceRequest {     Name = devname,     LoRaWAN = lora,     DestinationName = destination,     Type = WirelessDeviceType.LoRaWAN };

名前はオプションですが、これで最低限のデバイスの登録が行えます。ほかにもデバイスの説明や位置情報なども追加できます。

2024年4月24日水曜日

LoRaWAN のローミングを試す

 LoRaWANはゲートウェイを中心としたスター型の通信になっていますので、基本的には1台のゲートウェイと通信をするんですが、ローミングの機能もあってゲートウェイが変わっても継続して通信することができます。LoRaWANでは通信開始時にJOINという手続きが必要なんですが、ここでの継続して通信というのはこのJOINをゲートウェイが変わってもやり直さなくてよいということになります。

今回はこれを実際に試してみようと思います。ちなみにLoRaWANサーバはAWSのIoT Coreを使用しています。

まず事務所に設置してる1台のゲートウェイから離れた場所に移動して、一時的にゲートウェイを動かしてそちらでJOINを行います。


JOINできたのを確認して、一応データ送信してみます。

うまく飛んでます。ここでゲートウェイは電源を落として、PCは電源落とさないように注意して事務所まで移動します。


窓にゲートウェイ貼っつけてあります。

ここで先程のPCで続けてデータ送信してみます。

あっさり飛びました。すぐに応答があったので、JOIN等の手続きをしているようには見えません。これで一度JOINすれば、通信するゲートウェイが変わっても問題なく通信できることがわかりました。