モノのインターネットのコード例:スマート散水

最近、モノのインターネットを形成するさまざまなプロジェクトの教育用コード例を公​​開しました。 今日は自動灌漑システムについてお話します。 Intel IoT Developer Kit、Intel Edisonを使用して構築され、クラウドプラットフォーム、さまざまなAPI、およびその他のテクノロジーを使用します。













システム機能



Intel Edisonに基づいて作成する自動灌漑システムの機能は次のとおりです。





仕事の特徴



灌漑システムでは、スマートフォンやその他の適切なデバイスを使用して、Intel Edisonに保存されているWebページを開くことにより、灌漑スケジュールを設定できます。 湿度センサーを自動的にポーリングし、受信したデータをWebページに表示します。



水ポンプがオンになっていると想定されているが、水流センサーが水がパイプを通過していないことを示している場合、テキストメッセージがTwilioを介して指定された番号に送信されます。 したがって、故障している灌漑システムを迅速に修復できます。



さらに、システムは、Microsoft Azure環境で実行されるIntel IoT Examples Datastoreのコードを使用してイベントログを保持できます。



ハードウェア



プロジェクトのハードウェア部分は、Grove Environment&Agriculture Kitです。これには以下が含まれます。





ソフトウェア





事前準備



開始するには、次のコマンドを使用して、How-To Intel IoT Code SamplesリポジトリをGitコンピューターにコピーします。



$ git clone https://github.com/intel-iot-devkit/how-to-code-samples.git
      
      





必要な資料を含むZIPアーカイブをダウンロードする場合は、 このページを開き、右側の[ZIPのダウンロード]ボタンをクリックしてください。 アーカイブをダウンロードした後、それを解凍し、このプロジェクト(watering-system)のコードを含むフォルダーを見つけます。



Intel XDK IoT Editionへのアプリケーションの追加



Intel XDK IoT Editionで、Node.jsプロジェクトのインポートコマンドを選択します。





Node.jsプロジェクトをインポートする



次に、トレーニングプロジェクトのファイルがあるフォルダーに移動して選択します。





プロジェクトコードのあるフォルダーを選択する



ここで、Intel Edisonボードをコンピューターに接続し、プログラムをボードにダウンロードする必要があります。 これを行うには、ウィンドウの左下にあるIoTデバイスメニュー(IoTデバイス)を使用できます。 システムが接続されたボードを自動的に認識した場合、メニューで適切な行を選択します。





Intel Edison Connection



ボードが自動的に認識されなかった場合は、[手動接続の追加]を選択し、表示されるウィンドウの[アドレス]フィールドに「192.168.2.15」と入力し、[ポート]フィールドに「58888」と入力します。接続。



Intel Edisonでのプログラムの手動インストール



さらに、プログラムはIntel Edisonに手動でインストールできます。 これを行うには、SSHを介してボードに接続し、次のコマンドを実行します。



 $ git clone https://github.com/intel-iot-devkit/how-to-code-samples.git
      
      





次に、サンプルがあるフォルダーに移動します。 GitがEdisonにまだインストールされていない場合は、SSLを介してボードに接続し、次のコマンドを実行することでこれを行うことができます。



 $ opkg install git
      
      





Groveセンサーの接続









プロトタイプ灌漑システムアセンブリ



センサーとアクチュエーターが接続されるGroove拡張ボード(Grove Shield)は、スイッチングArduino互換カードに接続する必要があります。 Grove拡張ボードの小さなVCCスイッチが5Vの位置にあることを確認します。



スターターキットに付属の外部アダプターからIntel Edisonに電力を供給するか、適切な外部電源(12V、1.5A)と交換する必要があります。 5V USBバッテリーを使用することもできます。



さらに、ブレッドボードと、ウォーターポンプ用の追加の5 V電源が必要です。 ポンプには別の電源が必要であることに注意してください。 Intel Edisonとポンプの両方に同じソースを使用することはできません。つまり、2つのバッテリーまたは2つのアダプターが必要です。



ウォーターポンプを接続するには、ドライグルーブリードスイッチ付きのリレーが必要です。 接続は次のとおりです。



  1. Groveケーブルの一方の端をリレーに接続し、もう一方の端をGrove拡張ボードのD4ポートに接続します。
  2. 水ポンプのワイヤの1つをポンプ用の5 V電源に接続します。
  3. ポンプのもう一方のワイヤをリレー電源コネクタの1つに接続します。
  4. 他のリレー電源コネクタをポンプ電源のアースに接続します。
  5. 赤い線を「5V」端子に、黒い線を「GND」端子に、黄色の線をグローブ拡張ボードのデジタル出力2に接続して、水流センサーを接続します。
  6. Groveケーブルの一方の端を湿度センサーに接続し、もう一方の端をGrove拡張ボードのポートA0に接続します。


Intel Edisonでの手動インストール



Intel Edisonでサンプルコードを実行するパスを選択した場合は、いくつかの依存関係を解決する必要があります。

Edisonでの実行に必要なNode.jsモジュールを取得するには、次のコマンドを実行します。



 npm install
      
      





設定:メッセージとクラウドストレージの送信



システムがテキストメッセージを送信できるようにするには、 TwilioアカウントとAPIキーが必要です。 キーなしではメッセージを送信できません。 この例はメッセージを送信せずに機能しますが、実際のプロジェクトではこの機能は非常に便利です。



Twilioアカウントで動作するように例を設定するには、 TWILIO_ACCT_SID



TWILIO_AUTH_TOKEN



TWILIO_ACCT_SID



およびTWILIO_AUTH_TOKEN



パラメーターの値を設定する必要がありTWILIO_AUTH_TOKEN



。 それぞれ、APIキーと認証トークンを指定する必要があります。



 { "TWILIO_ACCT_SID": "YOURAPIKEY", "TWILIO_AUTH_TOKEN": "YOURTOKEN" }
      
      





必要に応じて、この例で生成されたデータを、Microsoft Azure、Node.js、Redisデータウェアハウスを使用して展開されたデータベースに保存できます。 クラウドサーバーのセットアップ方法の詳細については、 こちらをご覧ください



Microsoft Azureアカウントがあり、サーバーでデータを受信する準備ができている場合、config.jsonを変更する必要があります。つまり、「 SERVER



」および「 AUTH_TOKEN



」パラメーターにサーバーに接続するためのデータを書き込みます。



 { "SERVER": "http://intel-examples.azurewebsites.net/logger/watering-system", "AUTH_TOKEN": "s3cr3t" }
      
      





サンプルのバージョンで、Twilioを使用したテキストメッセージの送信とMicrosoft Azureでのデータの保存の両方を使用している場合、設定は次のようになります。



 { "TWILIO_ACCT_SID": "YOURAPIKEY", "TWILIO_AUTH_TOKEN": "YOURTOKEN", "SERVER": "http://intel-examples.azurewebsites.net/logger/watering-system", "AUTH_TOKEN": "s3cr3t" }
      
      





Intel XDK IoT Editionからプログラムを起動する



プログラムを開始する前に、ファイルに加えた変更を保存します。 その後、アップロードアイコンをクリックして、コードをIntel Edisonにアップロードします。





Intel Edisonへのプロジェクトのアップロード



ダウンロード後、実行アイコンを使用してデバイス上でプログラムを実行します。





プロジェクトの開始



プロジェクトで作業しているときにコードを変更した場合は、[アップロードして実行]コマンドを使用できます。 プログラムの最新バージョンがダウンロードされ、Intel Edisonで起動されます。 Edisonプログラムの実行中は、次の図に示すようなメッセージが表示されます。





Intel Edisonで実行されるプログラムからのメッセージ



手動プログラム開始



プログラムを手動で起動するには、SSHを介してIntel Edisonに接続し、次のコマンドを実行します。



 node index.js
      
      







散水スケジュールの設定



灌漑スケジュールを設定するには、1ページのWebインターフェイスが使用されます。 このページを開くには、メインプログラムが実行されているのと同じIntel Edisonボードで実行されているWebサーバーからページを要求します。





散水スケジュールの設定ページ



ポート3000はサーバーに割り当てられているため、Intel EdisonがWi-Fiネットワークに接続され、IPアドレス192.168.1.13が割り当てられている場合、サーバーアドレス(同じローカルネットワークから接続されている場合)はhttp:/になります。 /192.168.1.13∗000



Intel EdisonのIPアドレスを確認する方法



Intel EdisonのIPアドレスを見つけるには、次のコマンドを使用できます。



 ip addr show | grep wlan
      
      





実装後、次のようなものが表示されます。



 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000   inet 192.168.1.13/24 brd 192.168.1.255 scope global wlan0
      
      





Intel Edisonアドレスは、「inet」の後にあります。 この例では、192.168.1.13です。



結論



Intel Edisonに基づいて、センサーとウォーターポンプのセットを含む灌漑システムをどのように組み立てるかについて話しました。 インターネットに接続されたシステムは、Webページを開くことができる任意のデバイスから制御できます。 この例でクラウドサービスを使用してデータを保存し、メッセージを送信する場合、デバイスの動作に関する統計を収集でき、緊急の場合は、指定された携帯電話番号にテキストメッセージを取得して、故障をすばやく修正できます。



Intel IoTコードサンプルのハウツーシリーズの他のコード例は、 Intel Developer Zoneで入手できます。 ここで説明した例の完全なコードは、 GitHubにあります



All Articles