Arduino UNO R4 WiFiによるアクセスポイント探索・接続、Webページの取得

Arduino

アクセスポイントの探索

Arduino UNO R4 WiFiを使うためにまずはアクセスポイントに接続しなければならない。接続可能なアクセスポイントを探索するスケッチは以下のとおりである。

#include <WiFiS3.h>

void setup() {
  Serial.begin(115200);
  while (!Serial);

  Serial.println("WiFiスキャンを開始します...");

  int networks = WiFi.scanNetworks();

  if (networks == -1) {
    Serial.println("ネットワークスキャンに失敗しました");
    return;
  }

  Serial.print("見つかったネットワーク数: ");
  Serial.println(networks);

  for (int i = 0; i < networks; i++) {
    Serial.print(i);
    Serial.print(") ");
    Serial.print(WiFi.SSID(i));
    Serial.print("  Signal: ");
    Serial.print(WiFi.RSSI(i));
    Serial.print(" dBm  Encryption: ");
    Serial.println(WiFi.encryptionType(i));
  }
}

void loop() {
  // 何もしない
}

このスケッチを実行し、シリアルモニターを開くと、アクセスポイントの一覧が出てきます。動作例は黒塗りばかりになるため掲載しません。

アクセスポイントへの接続

アクセスポイントが見つかったら、次は接続です。以下のスケッチを実行してください。スケッチの3,4行目にある「SSID」と「暗号化カギ」には皆さんの環境の値を入れてください。

#include "WiFiS3.h"

char ssid[] = "SSID";
char pass[] = "暗号化カギ";

int status = WL_IDLE_STATUS;

void setup() {
  Serial.begin(9600);

  if (WiFi.status() == WL_NO_MODULE) {
    Serial.println("Failed to WiFi communication.");
    while(true);
  }

  while (status != WL_CONNECTED) {
    Serial.print("Try Connecting to ");
    Serial.println(ssid);
    status = WiFi.begin(ssid, pass);

    delay(1000);
  }

  Serial.print("Connected to ");
  Serial.println(WiFi.SSID());

  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);
}


void loop() {
}

このスケッチを実行し、シリアルモニターを開くと、次のようなメッセージが現れます。

これで、無事にアクセスポイントへ接続できたことがわかります。

Webページの取得

では、最後にWebページを取得してみましょう。以下のスケッチを入力してください。

#include "WiFiS3.h"

char ssid[] = "SSID";
char pass[] = "暗号化カギ";

int status = WL_IDLE_STATUS;

char server[] = "www.kyokyo-u.ac.jp";
char pagepath[] = "/event/koukaikouza/r7.html";

WiFiClient client;

void setup() {
  Serial.begin(9600);

  if (WiFi.status() == WL_NO_MODULE) {
    Serial.println("Failed to WiFi communication.");
    while(true);
  }

  while (status != WL_CONNECTED) {
    Serial.print("Try Connect to ");
    Serial.println(ssid);
    status = WiFi.begin(ssid, pass);

    delay(10000);
  }

  Serial.print("Connected to ");
  Serial.println(WiFi.SSID());

  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);
}


void loop() {
  char buf;

  if(client.connect(server, 80)) {
    client.print("GET ");
    client.print(pagepath);
    client.println(" HTTP/1.1");
    client.print("Host: ");
    client.println(server);
    client.println("Connection: close");
    client.println();
  }
  else {
    Serial.println("connection failed");
  }

  while(client.connected()) {
    if(client.available()) {
      buf = client.read();
      Serial.print(buf);
    }
  }

  client.stop();

  delay(600000);
}

ここでは、京都教育大学の公開講座のページにアクセスします。このスケッチを実行すると次のような画面になります。

これで、Webサイトへの接続ができることがわかりました。

コメント

タイトルとURLをコピーしました