Arduino-network-communication
Arduino-ネットワーク通信
Texas InstrumentsのCC3000 WiFiモジュールは小さな銀色のパッケージで、最終的にArduinoプロジェクトに使いやすく手頃な価格のWiFi機能をもたらします。
通信にSPI(UARTではありません!)を使用するため、データを必要な速度でプッシュしたり、必要に応じて低速でプッシュしたりできます。 IRQピンを備えた適切な割り込みシステムを備えているため、非同期接続が可能です。 802.11b/g、open/WEP/WPA/WPA2セキュリティ、TKIPおよびAESをサポートしています。 「BSDソケット」インターフェースを備えた組み込みTCP/IPスタックは、クライアントモードとサーバーモードの両方でTCPとUDPをサポートします。
必要なコンポーネント
次のコンポーネントが必要になります-
- 1×Arduino Uno
- 1×Adafruit CC3000ブレイクアウトボード
- 1×5Vリレー
- 1×整流ダイオード
- 1×LED
- 1×220オーム抵抗
- 1×ブレッドボードといくつかのジャンパー線
このプロジェクトには、通常のArduino IDE、AdafruitのCC3000ライブラリ、およびCC3000 MDNSライブラリが必要です。 また、aRESTライブラリを使用して、WiFi経由でリレーにコマンドを送信します。
手順
回路図に従って、以下の画像に示すように接続します。
このプロジェクトのハードウェア構成は非常に簡単です。
- CC3000ボードのIRQピンをArduinoボードのピン番号3に接続します。
- VBATをピン5に、CSをピン10に。
- SPIピンをArduinoボードに接続します:MOSI、MISO、およびCLKをそれぞれピン11、12、および13に接続します。
- V〜in〜はArduino 5Vに接続され、GNDはGNDに接続されます。
リレーを接続しましょう。
ブレッドボードにリレーを配置した後、リレーの2つの重要な部分、つまりリレーを制御するコイル部分とLEDを取り付けるスイッチ部分の識別を開始できます。
- まず、Arduinoボードのピン番号8をコイルの1つのピンに接続します。
- もう一方のピンをArduinoボードのグランドに接続します。
また、リレーのスイッチング時に回路を保護するために、コイルのピンの上に整流ダイオード(グランドピンに接続されたアノード)を配置する必要があります。
- Arduinoボードの+ 5Vをリレーのスイッチの共通ピンに接続します。
- 最後に、スイッチのもう一方のピン(通常、リレーがオフのときは接続されていないピン)の一方を220Ω抵抗と直列のLEDに接続し、LEDのもう一方をArduinoのグランドに接続しますボード。
個々のコンポーネントのテスト
次のスケッチでリレーをテストできます-
注意すべきコード
コードは一目瞭然です。 それをボードにアップロードするだけで、リレーは毎秒状態を切り替え、それに応じてLEDがオンとオフに切り替わります。
WiFi接続の追加
CC3000 WiFiチップを使用して、リレーをワイヤレスで制御します。 このプロジェクトのソフトウェアは、TCPプロトコルに基づいています。 ただし、このプロジェクトでは、Arduinoボードが小さなWebサーバーを実行するため、コンピューターからのコマンドを「リッスン」できます。 最初にArduinoスケッチの面倒を見てから、サーバー側コードの記述方法と素敵なインターフェイスの作成方法を見ていきます。
まず、Arduinoのスケッチ。 ここでの目標は、WiFiネットワークに接続し、Webサーバーを作成し、着信TCP接続があるかどうかを確認し、それに応じてリレーの状態を変更することです。
コードの重要な部分
構成に固有のものをコード内で定義する必要があります。 Wi-Fiの名前とパスワード、およびTCP通信用のポート(ここでは80を使用しています)。
その後、CC3000インスタンス、サーバー、およびaRESTインスタンスを作成できます-
スケッチのsetup()部分で、CC3000チップをネットワークに接続できます-
コンピューターは、データの送信先をどのように知るのですか? 1つの方法は、スケッチを1回実行してから、CC3000ボードのIPアドレスを取得し、サーバーコードを再度変更することです。 しかし、私たちはもっとうまくやることができます、そしてそれがCC3000 MDNSライブラリーが出番するところです。 このライブラリを使用してCC3000ボードに固定名を割り当てるため、この名前をサーバーコードに直接書き留めることができます。
これは、次のコード片で行われます-
また、着信接続をリッスンする必要があります。
次に、連続して実行されるスケッチのloop()関数をコーディングします。 最初にmDNSサーバーを更新する必要があります。
Arduinoボードで実行されているサーバーは、着信接続を待機し、要求を処理します。
WiFi経由でプロジェクトをテストするのは非常に簡単です。 自分のWiFi名とパスワードでスケッチを更新したことを確認し、Arduinoボードにスケッチをアップロードします。 Arduino IDEシリアルモニターを開き、ボードのIPアドレスを探します。
ここでは、192.168.1.103のようなものであると仮定します。
次に、単にお気に入りのWebブラウザーに移動して、次のように入力します-
192.168.1.103/digital/8/1
リレーが自動的にオンになることがわかります。
リレーインターフェイスの構築
次に、プロジェクトのインターフェースをコーディングします。 ここには、インターフェースを含むHTMLファイルと、インターフェースのクリックを処理するクライアント側のJavaScriptファイルの2つの部分があります。 ここのインターフェイスは、コンピューターからWiFiデバイスを簡単に制御するために作成された aREST.js プロジェクトに基づいています。
まず、インターフェースと呼ばれるHTMLファイルを見てみましょう。 最初の部分は、インターフェイスに必要なすべてのライブラリをインポートすることで構成されます-
次に、インターフェイス内に2つのボタンを定義します。1つはリレーをオンにし、もう1つは再びオフにします。
また、ボタンのクリックを処理するためのクライアント側のJavascriptファイルも必要です。 また、ArduinoデバイスのmDNS名にリンクするデバイスを作成します。 Arduinoコードでこれを変更した場合は、ここでも変更する必要があります。
このプロジェクトの完全なコードは、 GitHub リポジトリにあります。 インターフェイスフォルダーに移動し、お好みのブラウザーでHTMLファイルを開きます。 あなたはあなたのブラウザの中に似たようなものを見るはずです-
Webインターフェースのボタンをクリックしてみてください。リレーの状態をほぼ瞬時に変更する必要があります。
あなたがそれをうまく機能させることができたなら、ブラボー! Wi-Fi制御のライトスイッチを作成しました。 もちろん、このプロジェクトではライトよりもはるかに多くを制御できます。 リレーが制御するデバイスに必要な電力をサポートしていることを確認するだけで、準備完了です。