Arduinoで遊ぶページ

Arduinoで遊んだ結果を残すページです。
garretlab
サンプルプログラム解説

概要

サーバにTCP接続して、メッセージを送信します。

プログラム

setup()

/*
 *  This sketch sends a message to a TCP server
 *
 */

#include <WiFi.h>
#include <WiFiMulti.h>

WiFiMulti WiFiMulti;

void setup()
{
    Serial.begin(115200);
    delay(10);

    // We start by connecting to a WiFi network
    WiFiMulti.addAP("SSID", "passpasspass");

    Serial.println();
    Serial.println();
    Serial.print("Wait for WiFi... ");

    while(WiFiMulti.run() != WL_CONNECTED) {
        Serial.print(".");
        delay(500);
    }

    Serial.println("");
    Serial.println("WiFi connected");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());

    delay(500);
}

WiFiMultiクラスは、複数のアクセスポイントを管理するためのクラスです。

wifiMullti.addAP()は、WiFiアクセスポイントの登録です。SSIDとPASSWORDは、各自の環境に合わせて変更する必要があります。

wifiMulti.run()は、wifiMullti.addAP()で登録したアクセスポイントに接続するメソッドです。接続に成功するとWL_CONNECTEDが返ってきます。

WiFi.localIP()は、現在割り当てられているIPアドレスを返却します。WiFiは、WiFi.cppで定義されている変数です。

loop()

void loop()
{
    const uint16_t port = 80;
    const char * host = "192.168.1.1"; // ip or dns



    Serial.print("connecting to ");
    Serial.println(host);

    // Use WiFiClient class to create TCP connections
    WiFiClient client;

    if (!client.connect(host, port)) {
        Serial.println("connection failed");
        Serial.println("wait 5 sec...");
        delay(5000);
        return;
    }

    // This will send the request to the server
    client.print("Send this data to server");

    //read back one line from server
    String line = client.readStringUntil('\r');
    client.println(line);

    Serial.println("closing connection");
    client.stop();

    Serial.println("wait 5 sec...");
    delay(5000);
}

48行目で、WiFiClient型の変数 client を定義しています。この後は、この変数を利用して、操作を行います。

client.connect()を利用して、指定したホストの、指定したポートに接続します。connect()は成功したときに1を返します。connect()に失敗したときは、5秒待ってからloop()を終了します。結果として、次のloop()が開始されます。

client.print()で、指定した文字列を書き込みます。WiFiClientは、Printクラスを継承しているので、Serialと同じように、print()などを利用することができます。

WiFiClientは、Streamクラスも継承しているので、readStringUntil()が利用できます。

client.stop()を呼び出して、WiFi接続を停止します。

バージョン

1.0.0



メニューを表示するためにJavaScriptを有効にしてください。

Arduinoで遊ぶページ
Copyright © 2018 garretlab all rights reserved.
inserted by FC2 system