platformioでESP32がwifiに接続まで試してみた!

はてなブックマーク - platformioでESP32がwifiに接続まで試してみた!
LINEで送る
Pocket

platformioでESP32がwifiに接続まで試してみた!ESP32を使って、簡単に検証してみたのですが、とても簡単でした!

もうArduinoIDEに戻れないかもしれません!笑

目次

Platformio

https://platformio.org/

platformioはオープンソースのプロジェクトで、IoTの開発環境やそのエコシステムの提供を目指しています。

私も数ヶ月前から聞いていますが、やっと本格的に試すことができました。

今日は、その一部を共有したいと思います。

また、私も使ったばかりで、まだ理解していないところ、把握していないところもたくさんがありますので、もし誤りの箇所があれば、ご指摘いただければ、嬉しいです。

ご連絡はTwitterまでお願いします!

Platformioのインストール(vscode)

今回は、私がplatformioをvscodeの拡張としてインストールしました。

Atomの拡張としてインストールすることも可能ですが

一部使える機能が多少違って来ますので、詳しくは下記のリンクをご参照ください。

https://platformio.org/platformio-ide

他にもいろんな環境で使えますので、platformioのサイトでご確認ください。

まず、vscodeがインストール済という前提で初めてください。

vscodeはまだインストールしていない方は、こちらからダウンロードして、インストールしてください。

vscodeを開いて、extensionのアイコンをクリックして、検索欄で、platformioを入れます。

候補に、一番上の、PlatformIO IDEを「インストール」してください。

 

インストール完了したら、一回リロードしてください。

リロード後、platformioの準備が始めますので、しばらくお待ちください。

終わったら、PlatformIOのメイン画面が現れます。

PlatformIO IDE

軽く、見ていきましょう。

Accountタブ

Librariesタブ

様々なセンサーやデバイスのライブラリーが網羅しているので、これは便利ですよね!

Boardsタブ

今回はesp32を使いますが、esp32だけでも様々なボードが作られていますよね。それもここで対応しているボードを見つかるはずです!

検索機能を使えば、すぐ探したいボードを見つかります!

M5StackのFireも対応していますね!

Platformsタブ

ここでいうPlatformはチップ(MCU)のことですね。

Diveicesタブ

接続しているデバイスのリストですね。

今、見えているUSBが接続しているESP32のusbです。

こちらが、見えない場合は、下記の記事を参考にして、esp32のusbドライバーをまずインストールしてください。

あるいはこちらのリンクからドライバーをダウンロードしてインストールしてください。

https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers

MacでArduinoIDEとESP32でLチカ

ESP32のHello World

これで、PlatformIO IDEの準備完了です!

早いですよね、ArduinoのIDEのダウンロードだけもこのぐらいの時間がかかる気がします。笑

まず、プロジェクトを作成します。

PlatformIOのホーム画面の 「+ New Project」をクリックします!

次にプロジェクトに必要な情報を入れます。

Name:あなたのプロジェクトの名前(esp32)

Board:検索して、あなたのesp32のボードを選んでください。(私のはDOIT ESP32 DEVKIT v1です。)

Framework:そのままArduino

Location:プロジェクトのソースコードの場所ですね、ご自由にしてしてください。(私はデフォルトのままにします。)

ぜんぶ埋めましたら、Finishボタンをクリックして、新しいプロジェクトを作成してくれます!

プロジェクトのフォルダ構造はこんな感じになります。

main.ccpを開いて編集します!プログラムは下の通りになります。

構成はArduinoのプログラムと同じですね。

#include <Arduino.h>

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

void loop() {
  delay(1000);
  Serial.println("Hello World!");
}

画面の一番左下にあるPlatformioのアイコンをクリックすると、Taskのメニューが出て来ます!

まず、「Build」をします!

次は、Upload and Monitorを押します!

そうすると、Hello World!が出ます!

プログラムがちゃんとコンパイルして、ESP32に書き込んで、実行されて、その結果が出力されています!とても簡単でしょう!

ArduinoIEDの時は、ESP32のライブラリーを自分で配置したりする必要があったと思いますが、Platformioでは、それも自動的にできていて、楽ですね。笑

ESP32からWifiに接続してみよう!

次は、せっかくesp32なので、wifiに接続するのも試してみたいと思います!

今度は、こちらのプログラムを使います。

const char* WIFI_SSID = “wifi-ssid”;

const char* WIFI_PASS = “wifi-password”;

この部分はあなたの環境に合わせて書き直してあげてください

#include <Arduino.h>
#include "WiFi.h"

// WiFi credentials.
const char* WIFI_SSID = "wifi-ssid";
const char* WIFI_PASS = "wifi-password";

void setup()
{
    Serial.begin(9600);
    // Giving it a little time because the serial monitor doesn't
    // immediately attach. Want the firmware that's running to
    // appear on each upload.
    delay(2000);

    Serial.println();
    Serial.println("Running Firmware.");

    // Connect to Wifi.
    Serial.println();
    Serial.println();
    Serial.print("Connecting to ");
    Serial.println(WIFI_SSID);

    // Set WiFi to station mode and disconnect from an AP if it was previously connected
    WiFi.mode(WIFI_STA);
    WiFi.disconnect();
    delay(100);

    WiFi.begin(WIFI_SSID, WIFI_PASS);
    Serial.println("Connecting...");

    while (WiFi.status() != WL_CONNECTED) {
      // Check to see if connecting failed.
      // This is due to incorrect credentials
      if (WiFi.status() == WL_CONNECT_FAILED) {
        Serial.println("Failed to connect to WIFI. Please verify credentials: ");
        Serial.println();
        Serial.print("SSID: ");
        Serial.println(WIFI_SSID);
        Serial.print("Password: ");
        Serial.println(WIFI_PASS);
        Serial.println();
      }
      delay(5000);
    }

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

    Serial.println("Hello World, I'm connected to the internets!!");
}

void loop()
{
    delay(5000);
    Serial.println("Hello World");
}

同じように、buildして、Upload and Monitorしましたら、「Hello World, I’m connected to the internets!!」が出れば成功です!

まとめ

まだ、platformioを触れたばかりで、全てを把握している訳ではなく、感想になりますが、ArduinoIDEよりは少し軽い気がします。

また、他のプログラミング作業で、慣れて来たeditorで作業をするのが、少し見通しがよくなった気がします。

これからも少しずつPlatformioIDEを触ってみて、いけているところ、ダメなところ、色々検証してみたいと思います。

また、新たな知見がありましたら、また共有します!

ではまた!

はてなブックマーク - platformioでESP32がwifiに接続まで試してみた!
LINEで送る
Pocket

Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close