Arduino IDEを使用してESP32ウェブサーバーをプログラムする方法
Wi-Fiネットワークを介してマイクロコントローラとインターフェースすることは、かつてはかなり珍しいことでした。現在では、ESP32開発ボードとArduino IDEを使用して、わずか数分でローカルESP32ウェブサーバーを立ち上げることができます。
このデモでは、Adafruit ESP32 Featherと、2.4 GHzで動作するWi-Fiネットワークへのアクセスが必要です。Arduino 2.0 IDEを使用してESP32をプログラムします。マグネット、LED、抵抗も使用しますが、これらはオプションです。
ESP32 Web サーバー ソフトウェア準備
Arduino 2.0 IDEをインストールしてESP32ウェブサーバーのセットアップを開始します。ESP32デバイスでこれを機能させるために、Arduino IDE > Preferencesダイアログを開き、Additional boards manager URLsフィールドに次の行を追加します。
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Tools > Board > Boards managerに移動し、「esp32」と検索します。「esp32 by Espressif Systems」ボード定義をインストールすると、ESP32ボードをプログラムできるようになり、多数の例にアクセスできます。
LEDサーバー制御
ESP32 Feather開発ボードをUSB経由でコンピュータに接続し、デバッグアイコンの右にあるドロップダウンメニューで適切なポートを選択します。選択すると、ボードのリストが表示されます。この場合、「Adafruit esp32」と入力して表示されるAdafruit ESP32 Featherオプションを選択します。
ファイル > 例 > WiFi に移動し、SimpleWiFiServerをロードします。コードの30行目と31行目を修正して、実際のSSIDとパスワードを含めます。複数のオプションがある場合、2.4 GHzネットワークにアクセスしていることを確認してください。アップロードボタンを押すと、プログラムがコンパイルされ、ボードに送信されます。
プログラムされたら、ESP32 Featherはネットワークへの接続を試みます。Arduino IDEのシリアルモニターを開き(右上のアイコン)、115200ボーに設定します。アクセス用のIPアドレスが表示されますが、表示されるにはリセットと/または下にスクロールする必要があるかもしれません。ブラウザで表示されたIPアドレスに移動すると、テキストの2行と、ピン5のオンまたはオフを招くリンクが表示されます。
LED/抵抗器をピン5に接続することができます(最初の画像に示されています)ので、コードをそのまま動作させることができます。また、組み込みのLEDを設定して、この小さなハードウェアの複雑さを回避することも可能です。そのためには、38行目、103行目、106行目の[pin] 5をLED_BUILTINに置き換え、外部ハードウェアなしで点灯します。オプションで、87行目と88行目の「LED on pin 5」を「builtin LED」に変更して、ユーザーインターフェースを正確にすることもできます。変更が反映されるように、再アップロードしてください。
ESP32ウェブサーバー用ホール効果センサー
リモートコントロールは素晴らしいですが、ESP32ウェブサーバーをリモートロケーションで何を感知させたいですか?ここでは、ESP32-WROOM-32Eモジュールに内蔵されているホール効果センサーを利用して、近くの磁場を示します。
次のコード行を88行目のclient.print関数の直下に追加してください:
int val = 0;
val = hallRead();
client.print("magnet status ");
client.print(val);
このコードは、“val”という変数を確立し、ホール効果の測定値を保存するためのものです。ボード上のホールセンサーを読み取り、結果をクライアントのウェブブラウザに表示します。これはアナログ値であり、磁場の方向に依存することに注意してください。
テストするために、コードをESP32 Featherにアップロードし、ブラウザを正しいIPアドレスに向けてください。すると、3行目に磁場の読み取り値が表示されるのがわかります。
ESP32-WROOM-32Eモジュールの上に磁石を置き、ブラウザを更新してください。この値は、存在する磁場に応じて更新されます。ページのリンクをたどるか、対応するアドレスに移動することでライトをオン・オフすることもできますが、この操作によって磁場の値も更新されます。
ESP32をさらに進める
この記事では、ESP32デブボードとWi-Fiネットワークを使用してArduinoで非常にシンプルなWebサーバーを設定する方法を説明します。ESP32のWi-Fi機能により、適切な設定を行うことでクラウドやより広範なインターネットにアクセスできます。このモジュールは、幅広い消費者、DIY、プロトタイプ作成のアプリケーションで使用できます。
Arduino IDEでESP32ウェブサーバーを作成する前に、Arrow.comで業界をリードするメーカーの製品をチェックして、以下のようなものから始めてみてください。
記事タグ