
TI で設計を今すぐ始めましょう
「次のすばらしいアイデア」をお探しですか? それなら、TI の Maker および DIY コミュニティをご確認ください。 TI の低コスト、コミュニティ・サポートの開発プラットフォームで設計を今すぐ始めましょう。 TI のマイコン・ベースのローンチパッド・キット、Sitara™ プロセッサを搭載した BeagleBoard および SimpleLink™ ワイヤレス・コネクティビティ SensorTag を使えば、たった数分でプロトタイピングに着手できます。
IoT 冷蔵庫追跡機能のチュートリアル
半ば無意識のうちに間食をしていることに気付いた経験がありますか。または、どれほどの頻度で食事をしているか意識したことはあるでしょうか。 さらに悪いことに、後で食べようと思って冷蔵庫に大事にしまっておいた食品を取りに行ったところ、誰か別の人が食べてしまったことに気付いた経験はありますか。
この新しい冷蔵庫アラームを使用して、これらの問題を過去のものにすることを考慮してください。 テキサス・インスツルメンツのローンチパッド開発キット、SimpleLink™ Wi-Fi® CC3100 ブースタパック、教育用ブースタパック MKII、さらに Temboo から提供されているサービスを組み合わせると、冷蔵庫の扉が開かれるたびにそのことを追跡し、Google Drive 上のスプレッドシートにその事実を記録できるようになります。
完成した製品のデモ
1. Temboo と Google の通信開始:
冷蔵庫モニタを動作させるための最初のステップは Temboo アカウントへの登録です。 Temboo は、多くの API をシームレスに統合するサービスで、IoT(モノのインターネット)開発に特に役立ちます。 この例の冷蔵庫モニタでは、Google スプレッドシート API を使用します。左のペインにある「Google」に移動し、「Spreadsheets」(スプレッドシート)を選択すると、この API が見つかります。 この Google Choreo を使用するには、OAuth をセットアップするためにいくつかのステップを実行します。その結果、Temboo が Google API と交信できるようになります。 OAuth をセットアップするためのステップは、Spreadsheets Choreo(スプレッドシート・コーリオ)ページで見つかります(この操作を実行するには、Google アカウントが必要です)。 ClientID(クライアント ID)、ClientSecret(クライアント・シークレット)、RefreshToken(トークン更新)を書き留めます。これらはいずれも、次のステップで必要になります。
2. Google スプレッドシートの作成:
API の作成に使用したのと同じ Google アカウントで、Google Drive(グーグル・ドライブ) ページに移動します。 新しい Google Sheet を作成し、覚えやすいタイトルを割り当てます(後でこのタイトルが必要になります)。 スプレッドシートを開き、いくつかの変更を加えます。 AppendRow Choreo を使用する予定です。この機能は、情報が入力されている最後の行の下に、カンマ区切りの値を使用して情報を追加し、列見出しの付けられている列のみに情報を挿入します。 この仕様が原因で、列見出しをセットアップしたいと考えています。その結果、どのようなデータがインポートされるかを把握できます。 たとえば、最初の列でエポック時間(詳細は後で説明します)形式のタイムスタンプをインポートし、2 番目の列でセンサが読み取った LUX(光の測定値)をインポートします。 最後のステップは、文字「A」をクリックして最初の列全体を選択することです。 「Format」(書式) --> 「Number」(数値)を選択し、「Date Time」(日付/時刻)を選択します。 この結果、Google はインポートしたエポック時間の値を、人間が読み取ることのできる日付と時刻に変換します。 これで、スプレッドシートはデータを受け取れる状態になり、以下の画像のようになります。

3. Choreo の実行:
OAuth 部分の入力とスプレッドシートのセットアップが終わった後、Choreo と Google の交信を開始します。 Spreadsheets Choreo(スプレッドシート・コーリオ)ページから、AppendRow Choreo(行の追加コーリオ)に移動します。 OAuth セクション全体に対して、取得した情報を入力します。 「RowData」(行データ)に対して、プレースホルダーを入力することができます。その結果、後でコード内で、タイムスタンプと LUX(ルックス)の値を編集できます。 「SpreadsheetTitle」(スプレッドシート・タイトル)は、前のセクションで作成したスプレッドシートに一致させる必要があります。 次に、テストの目的で Choreo を実行します。 現時点では、「success」(成功)が返され、「RowData」(行データ)に入力した値を使用してスプレッドシートが更新されることがわかります。 正常に動作しない場合は、OAuth プロセスの問題が発生した可能性が高いと考えられます。もう一度上記のステップを実施することで、この問題を解決できる可能性があります。 Web 上で Choreo を正常に実行した後は、ローンチパッド・キットをセットアップする作業に進みます。

4. ローンチパッド・キットのコーディング:
この時点で、Temboo は既存のスプレッドシートに 1 行を追加するベース・コードを提供しています。 この結果、API をセットアップするための作業の多くはすでに実施されていますが、Temboo を使用して問題を解決する楽しみは、まだ残されています。 この冷蔵庫モニタを製作するために、教育用ブースタパックに付属している OPT3001 光センサと Energia マルチタスク機能を使用する予定です。後者の機能は、MSP432 ローンチパッドで新規搭載されたものです。 マルチタスクを使用すると、複数の個別スケッチ(タスク)を同じローンチパッド・キット上で同時に実行することや、複数のローンチパッド開発キットが互いに相互作用することが可能になります。 この場合は、fridgeAlarm(冷蔵庫アラーム)という 1 つのタブを用意します。このタブは、光センサを監視し、イベントがトリガされたときに Google シートに 1 行を追加するようにセットアップします。 epochTime(エポック時間)という他のタブは、Wi-Fi を使用してタイム・サーバーへの ping(定期的な通信)を実施し、エポック時間形式で現在の時刻を取得します。エポック時間とは、1970 年 1 月 1 日以来、現在までに経過した秒数です。
5. fridgeAlaram:
fridgeAlarm.ino と呼ぶ以下のコードは、マルチタスク・プログラムのメイン関数です。 この関数はすべての変数を初期化し、Wi-Fi 接続と光センサをセットアップします。 このコードをダウンロードして開くか、コピーして空白の Energia スケッチに貼り付けます。 ダウンロードしたコード全体を確認し、Temboo サイトから提供されたコードと比較します。 このコードは、光センサからイベントをトリガできる点や、スプレッドシートにデータを追加するようにセットアップされているなどの少数の例外を除き、非常に良く似ています。
maxLux(最大ルックス)の値は、冷蔵庫の明かりの輝度に基づいて、変更する必要が生じることがあります。 冷蔵庫の扉が閉じているときはトリガされず、冷蔵庫の扉を開くときにトリガされるようにしてください。 光センサが電球の光にさらされる場合は、100 という値で正常に動作すると考えられます。
86 行目は、変数ブロックの開始地点であり、Temboo AppendRow Choreo ページで提供された値を使用して、これらの変数に値を記入する必要があります。 変更する必要のある行は、横に「Edit Needed」(編集が必要)というコメントを付けて、そのことを明示してあります。
90 行目は、エポック時間を、Google が使用できる値に変換する計算を実行します。 変数 timeZoneShift がページの先頭で宣言されていることに注意してください。 この変数の値は、GMT との時差に合わせて変更する必要があります(筆者は米国の CDT、つまり中部夏時間に合わせて -5 を使用しましたが、日本の標準時 JST に合わせる場合は +9 を使用してください)。
6. epochTime:
ここで、epochTime(エポック時間)と呼ばれる、2 番目のタスクを初期化します。 まず、Energia スケッチ内で、以下のように新しいタブを作成します。

そのタブを epochTime という名前に変更します。以下に示すように、すべての物事が明確に維持されています。

ここでは、並列実行できるように、2 つのタブを個別に用意する必要があります。 epochTime.ino にリストされている以下のコードをクリップボードにコピーし、この新しいタブに貼り付けます。 このコードには何も変更を加える必要がありませんが、ここで指定したタイム・サーバーがダウンしている場合は、他のサーバーを指すように IP アドレスを変更することができます。 サーバーのリストは、こちらで見つかります。
7. TembooAccount.h:
Temboo はライブラリを使用してアカウント情報を入力し、ローンチパッド開発キットとの通信を行います。 このコードを実行する前に、TembooAccount.h を、ローカルの Energia ライブラリを格納するすべての場所に必ずコピーしてください。 別の例は、こちらで見つかります。
両方のタブをセットアップした時点で、コードを実行する準備ができたことになります。 ローンチパッドへのフラッシュ書き込みを行い、冷蔵庫内のアラームをセットアップします。 誰かが冷蔵庫の扉を開き、光センサがイベントをトリガするたびに、Google スプレッドシートに 1 行のデータが追加され、冷蔵庫の扉が開かれた時刻と、冷蔵庫の扉が開かれたときに検出された LUX の値が記録されます。 これでもう、楽しみに取っておいた食品を、不届き者が夜のうちに誰にも知られずに盗み出すことはありません。

上記記事は下記URLより翻訳転載されました。
http://e2e.ti.com/group/launchyourdesign/b/blog/archive/2015/11/05/iot-refrigerator-tracker-tutorial
*ご質問は E2E 日本語コミュニティにお願い致します。