02_WifiClient1to1

CherryIoTをWi-Fiクライアントにする

光センサーの値を、別のCherryIoTのWi-Fiサーバーへ送信します。

光センサーモジュールWi-Fi通信
1

準備する

CherryIoTとモジュールを接続する

CherryIoTの指定コネクタに以下のモジュールを接続し、CherryIoTをPCのUSB-A挿入口に接続します。

光センサーモジュール

光センサーモジュール

接続先:A

2台のCherryIoTを用意する

このサンプルは、クライアント用とサーバー用の2台のCherryIoTを組み合わせて使用します。もう1台には「01_WifiServer1to1」のプログラムを書き込みます。

2

サンプルコード

GitHubで公開しているサンプルコードです。コードをコピーして Arduino IDEで使用します。

02_WifiClient1to1.ino
GitHubで開く
GitHubからコードを読み込んでいます...
3

プログラムを書き込む

上のサンプルコードをコピーし、Arduino IDEに貼りつけます。

ボードとポートの設定を確認し、左上の 「→(書き込みボタン)」を押してCherryIoTに書き込みます。

初めて書き込む方は「はじめてのCherryIoT」で詳しい手順を確認してください。

4

動作確認

光センサーの明るさに応じて、サーバー側のLEDが点灯・消灯するなら成功です。

動作中、シリアルモニターにはWi-Fiの接続状況と、光センサーで測定した明るさが表示されます。

Arduino IDEの画面右上にあるアイコンをクリックすると、 画面下にシリアルモニターが表示されます。

Arduino IDEでシリアルモニターを表示する場所
5

コードの解説

指定したSSIDへ接続し、明るさを判定した結果をWi-Fiサーバーへ送ります。

02_WifiClient1to1.ino
GitHubで開く
GitHubからコードを読み込んでいます...

Serial.begin(115200);シリアルモニターへ文字や測定値を表示するため、通信速度を115200bpsに設定します。

const char *ssid="ESP32-WiFi-1";サーバー用CherryIoTが作るWi-Fiのネットワーク名を指定します。

const char *pass="esp32wifi";サーバー側と同じWi-Fiパスワードを指定します。

IPAddress ip(192,168,0,1);接続先となるサーバー用CherryIoTのIPアドレスを指定します。

static WiFiClient client;Wi-Fiサーバーへ接続するためのclientオブジェクトを作ります。

WiFi.begin(ssid,pass);設定したSSIDとパスワードを使ってWi-Fi接続を開始します。

while(WiFi.status()!=WL_CONNECTED)Wi-Fiへ接続できるまで、接続状態を繰り返し確認します。

client.connect(ip,80);指定したIPアドレスのサーバーへ80番ポートで接続します。

float litsnsr_ad = analogRead(litsnsrPin);光センサーの値を読み取ります。

float lux = 10000 * litsnsr_v / (3.3 - litsnsr_v) / 1000;読み取った値をルクスへ換算します。

Serial.print(lux);測定した明るさをシリアルモニターに表示します。

if(client.connected()==true)サーバーとの接続が続いているかを確認します。

if(lux > 20){明るさが20ルクスを超えているかを判定します。

client.write(1);明るいときは値1をサーバーへ送信します。

delay(10);0.01秒待ちます。

else {ifの条件(明るさが20ルクスを超えている)を満たさないとき、次の処理を実行します。

client.write(2);値2をサーバーへ送信します。