IoTブートキャンプ Day3 [JAPAN]
エンバカデロ本社が2017年2月6日〜9日の合計4日間で開催中のIoTブートキャンプ、本日2/9の早朝にDay3が公開されました。
3日目の前半は RAD Server に関する解説です。後半ではデバイスの計測データを Arduino で取得し、それを RAD Server を介してやり取りする内容をご案内しています。
RAD Server では REST/JSON な Web API を開発することができます。このときに HTTP GET / POST / PUT / DELETE などの基本的なインタフェース部分は RAD Server の機能でハンドリングしていますので、実際に API を実装する場合はそれぞれのイベントに対応したコードを書くだけで済みます。また、RAD Server はユーザやグループの管理機能を備えていますので、API 実装の際に RAD Server 側の機能を利用すればこれらの設計実装を行う必要はなく、API 自体の実装にフォーカスして開発することができます。
実際の API の開発は Delphi/C++Builder で “EMSパッケージ” を選択するとウィザードが起動しますので、ウィザードでリソース名といくつかの項目を入力すれば、基本のテンプレートがウィザードで生成されます。あとはテンプレートに対してリソースの GET, POST に対して必要な処理を実装するだけで REST/JSON の API を作ることができます。
なお、RAD Server は以前は EMS Server と呼んでいた仕組みですので、エンバカデロの資料やドキュメント、コンポーネント名、メソッド、プロパティではEMSサーバと表記される場合があることにご注意ください。
そして今回のデモではクライアントとサーバの間のデータ受け渡しは JSON 形式の配列で行っていますが、クライアント側では TRESTClient, TRESTRequest, TRestResponse などの基本的な REST コンポーネントで取り扱っています。さらに受け取ったデータは TFDMemTable や TStringGrid で扱えますので、ローカルデータベースにアクセスするのと類似の方法で受け取ったデータセットを利用できます。
さて、後半は IoT デバイスから受け取ったデータを RAD Server に送信する方法の説明です。ここではアナログジョイスティックの値を Arduino Nano からのUSBシリアル接続で取得しつつ、ThingPoint で RAD Server とやりとりする内容のデモが行われました。
IoT BootCamp で使用しているソフトウェアのうち Arduino 関連については下記記事(英語)をご参照ください。
https://community.embarcadero.com/blogs/entry/getting-ready-for-the-iot-boot-camp
なお、本日のブートキャンプで WiFi 経由の値の受け渡しで紹介した Node MCU は残念ながら技適を通っていないのですが、その代わりに ESPr Developer に NodeMCU のファームウェアを焼いて使うという方法が代替手段として用いられているようです。
Day3 に関する Jim McKeeth の記事や Youtube でプレイバックは以下のリンクよりご覧いただけます。
https://community.embarcadero.com/blogs/entry/day-3-iot-boot-camp