サイトアイコン KOKENSHAの技術ブログ

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

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を触ってみて、いけているところ、ダメなところ、色々検証してみたいと思います。

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

ではまた!

[amazonjs asin=”B0044X2E5S” locale=”JP” title=”【永久保証付き】Arduino Uno”]

[amazonjs asin=”B0718T232Z” locale=”JP” title=”HiLetgo ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetoothデュアルモード”]

[amazonjs asin=”B074FQS3D1″ locale=”JP” title=”基礎からしっかり学ぶC++の教科書 C++14対応 マイクロソフト関連書”]

モバイルバージョンを終了