IOTをシンプルに:Arduino IDEでESP32を操作する

このチュートリアルでは、IoTを使用するためのすばらしい開発キットボードであるESP32を見てみましょう。 Espressifによって開発されたこのボードは、低価格で優れた機能を備えているため、NodeMCUの後継製品となるはずです。

しかし、ESP8266やArduinoでの作業に慣れているすべてのライブラリや機能がこの新しいボードでまだ機能しているわけではないことを指摘することも重要です。 おそらくこれはもうすぐですので、ESP 32 Forum WebPageで定期的に確認してください。

ここでは、Arduino IDEでESP32をプログラムする方法を学び、最も一般的な機能とライブラリを調べ、この素晴らしいチップで導入された重要な違いと新機能のいくつかを示します。

要するに、我々は探検します:

  • デジタル出力:LEDの点滅
  • デジタル入力:タッチセンサーの読み取り
  • アナログ入力:ポテンショメーターからの可変電圧の読み取り
  • アナログ出力:LED輝度の制御
  • アナログ出力:サーボ位置の制御
  • デジタルセンサーで温度/湿度データを読み取る
  • インターネットに接続して現地時間を取得する
  • 単純なローカルWebページからのデータの受信、LEDのオン/オフ
  • 単純なローカルWebページへのデータの送信

ステップ1:ESP32の主な特徴

ESP32は10米ドル以下のボードであり、市場の同様のIoTボードに比べて大きな利点があります。

このボードには、1つのプロセッサが通信を処理するときに、たとえば他のプロセッサがI / O制御を担当するため、非常に役立つデュアル処理マイクロプロセッサが搭載されています。 この機能により、Commで処理する場合に唯一のCPUがI / Oの制御を停止する必要があるESP8266で発生する問題を防ぐことができます。 さらに、ESP32には、WIFI、BLUETOOTH、DAC、複数のADC(ESP8266として1つだけではない)、静電容量式タッチセンサーなどが統合されています(上のブロック図をご覧ください)。 そして良いニュースは、消費電力がESP8266とほぼ同じであることです。

その主な特徴と、ESP8266と比較した場合の違いを示すことができるチャートを以下に示します。

その主なプロパティを詳細に示しましょう。

主な機能:

  • 600 MHzの240 MHzデュアルコアTensilica LX6マイクロコントローラー
  • 統合された520 KB SRAM
  • 統合された802.11 b / g / n HT40 Wi-Fiトランシーバー、ベースバンド、スタック、およびLwIP
  • 統合デュアルモードBluetooth(クラシックおよびBLE)
  • CPUコードスペースにメモリマップされた16 MBフラッシュ
  • 2.3V〜3.6Vの動作電圧
  • -40°C〜+ 125°Cの動作温度
  • 外部アンテナ用のオンボードPCBアンテナ/ IPEXコネクタ

センサー:

  • 超低ノイズアナログアンプ
  • ホールセンサ
  • 10x静電容量式タッチインターフェイス
  • 32 kHz水晶発振器

34 x GPIO:

  • ハードウェアフロー制御を含む3 x UART
  • 3 x SPI
  • 2 x I2S
  • 18 x ADC入力チャンネル
  • 2 x DAC
  • 2 x I2C
  • すべてのGPIOピンで使用可能なPWM /タイマー入力/出力
  • 32 kB TRAXバッファーを備えたOpenOCDデバッグインターフェイス
  • SDIOマスター/スレーブ50 MHz
  • 最大16 MBの外部SPIフラッシュをサポート
  • SDカードインターフェイスのサポート

セキュリティ関連:

  • WEP、WPA / WPA2 PSK /エンタープライズ
  • ハードウェア加速暗号化:AES / SHA2 / Elliptical Curve Cryptography / RSA-4096

性能:

  • スニファー、ステーション、SoftAP、Wi-Fiダイレクトモードをサポート
  • 最大データレート150 HT40、72 HT20、54 、および11
  • 最大送信電力19.5 、16.5 、15.5
  • -97 dBmの最小受信感度
  • 135 Mbps UDP持続スループット
  • ディープスリープでの5μAの電力消費

ステップ2:BoM-部品表

  • ESP32開発キット:ESP32開発ボード(US $ 8.52)
  • マイクロサーボ:TowerPro SG90 9G Mini Servo(US $ 3.80)
  • 温度/湿度センサーDHT22 / AM2302デジタル温度および湿度センサー(US $ 9.99)
  • 導いた
  • 2 x抵抗器:330オームおよび10Kオーム
  • ポテンショメーター:10Kオーム
  • プロトボード

ステップ3:ESP32 Arduino IDEのインストール

ESP8266ファミリと同じように、Arduino IDEを使用してESP32をプログラミングします。

ドライバーのインストール:

更新されたCP210x USB to UARTドライバーをコンピューターにインストールすることが重要です。 次のリンクを入力します:usb-to-uart-bridge-vcp-driversおよびOSに適切なドライバーをインストールします。

ライブラリのインストール:

ここでの目新しさは、GitHubでExpressif自体がライブラリインストールの適切な指示を提供することです:arduino-esp32。 OSの指示に従います。 私の場合(MacOS)、インストールは非常に簡単です:

ターミナルを開き、次のコマンドを実行します(コピー->貼り付けてEnterキーを押します):

 mkdir -p〜/ Documents / Arduino / hardware / espressif && \ cd〜/ Documents / Arduino / hardware / espressif && \ git clone //github.com/espressif/arduino-esp32.git esp32 && \ cd esp32 / tools / && \ python get.py 

その後、Arduino IDEを再起動すると完了です! 「ツール」メニューに複数のボードが表示されている必要があります。 適切なものを選択してください。 一般に、「汎用」ESP32 DEV MODULEは正常に機能します。

Arduino IDEを初めて開くとき、デフォルトのアップロード速度は921, 600ボーであることに注意してください。 これは不安定性を引き起こす可能性があります。 115, 200ボーに変更してください!

ステップ4:Hello World! LEDの点滅

いつものように、新しいハードウェアの調査を開始するときに最初に行うことは、LEDを点滅させることです。

IDEの[例]メニューに移動し、Blinkスケッチを開きます。

ESP32 DevKitには、GPIO 02に接続されたLEDが組み込まれています。「 LED_BUILTIN 」がIDEによって自動的に認識されるかどうかを確認することが重要です。 そうでない場合は、次の行をコードに追加する必要があります。

 int LED_BUILTIN = 2; 
各ESP32ボードには、異なるGPIOに接続された内部LEDがあります
 / * ESP 32点滅LEDを1秒間オンにし、その後1秒間オフにします。 ESP32には、D2(GPIO 02)に青色LEDが内蔵されています* / int LED_BUILTIN = 2; void setup(){pinMode(LED_BUILTIN、OUTPUT); } void loop(){digitalWrite(LED_BUILTIN、HIGH); // LEDをオン(HIGHは電圧レベル)delay(1000); // 2番目のdigitalWrite(LED_BUILTIN、LOW); //電圧をlow delay(1000)にしてLEDをオフにします; //しばらく待つ} 

GPIO 2に接続された外部LEDと一緒に点滅する内部LED(青いライトに注意)の下

市場には、異なるピンマップを持ついくつかの異なるボードがあります。 上の図は、使用しているボードを示しています。 ここで見つけることができます:/ ESP32-Development-Board

パーフェクト! そのため、 DigitalWrite()はESP8266およびArduinoと同じように完全に機能しています。 BTW、 DigitalRead()も、たとえばプッシュボタンのように、デジタル入力を読み取るのと同じように機能します。

ステップ5:タッチセンサー

新しいクールな機能、 タッチセンサーにジャンプしましょう!

ESP32には10個の静電容量式タッチセンサーが内蔵されています。 たとえば、ボタンとして使用できます。

これらのセンサーは、いくつかのGPIOに接続されています。

  • T0:GPIO 4
  • T1:GPIO 0
  • T2:GPIO 2
  • T3:GPIO 15
  • T4:GPIO 13
  • T5:GPIO 12
  • T6:GPIO 14
  • T7:GPIO 27
  • T8:GPIO 33
  • T9:GPIO 32

それらを読み取るには、関数touchRead(Touch Pin#);を使用する必要があります

たとえば、タッチセンサー0(T0)を読み取るには、次のようにする必要があります。

 int value = touchRead(4); 

センサーT0(GPIO4)に触れるとLEDが点灯するコードを作成しましょう。

シリアルモニターを使用して、センサーが読み取った値を確認し、コードを適切に調整します。

完全なコードの下:

 / ************************************************* **** * ESP32タッチテストとLED Ctrl *タッチピン==> Touch0は、GPIO 4(D4)にあるT0です。 * LEDピン==> D2 * * MJRoBot.org 6Sept17 ************************************* **************** / #define TOUTCH_PIN T0 // ESP32ピンD4 #define LED_PIN 2 int touch_value = 100; void setup(){Serial.begin(115200); delay(1000); //シリアルモニターを起動する時間を与えてくださいSerial.println( "ESP32 Touch Test"); pinMode(LED_PIN、OUTPUT); digitalWrite(LED_PIN、LOW); } void loop(){touch_value = touchRead(TOUTCH_PIN); Serial.println(touch_value); // T0を使用して値を取得if(touch_value <50){digitalWrite(LED_PIN、HIGH); } else {digitalWrite(LED_PIN、LOW); } delay(1000); } 

そして、ESP32が機能する以下:

ステップ6:アナログ入力

アナログ値信号の入力方法をテストしてみましょう。

NodeMCUにはわずか1 X 10ビットのADCに対して、合計18 x 12ビットのADC入力チャンネルがあります。

GPIO ADCチャンネル

  • GPIO 0 ==> ADC2_CH1
  • GPIO 2 ==> ADC2_CH2
  • GPIO 4 ==> ADC2_CH0
  • GPIO 12 => ADC2_CH5
  • GPIO 13 => ADC2_CH4
  • GPIO 14 => ADC2_CH6
  • GPIO 15 => ADC2_CH3
  • GPIO 25 => ADC2_CH8
  • GPIO 26 => ADC2_CH9
  • GPIO 27 => ADC2_CH7
  • GPIO 32 => ADC1_CH4
  • GPIO 33 => ADC1_CH5
  • GPIO 34 => ADC1_CH6
  • GPIO 35 => ADC1_CH7
  • GPIO 36 => ADC1_CH0
  • GPIO 37 => ADC1_CH1
  • GPIO 38 => ADC1_CH2
  • GPIO 39 => ADC1_CH3

アナログ入力を読み取るには、ArduinoおよびESP8266で行ったのと同じようにします。

 int analog_value = analogRead(36); 

ESP32 ADCの解像度は12ビット(ESP8266およびArduinoでは10ビット)であるため、最大3.3Vが適用される場合、ADC読み取りの合計範囲は4, 095(ArduinoおよびESP8266では1, 027)になることに注意することが非常に重要ですその入力。

入力には、10Kオームのポテンショメータを使用して、3.3VとGNDから接続します。 ESP32 ADCピンの入力となる可変出力を使用してみましょう。 上記の図は、ADC1チャンネル0であるGPIO 36に接続されたポテンショメーターを示しています。ボード上の他の入力も試してください。

以下の簡単なコードを実行します。

 / ************************************************* ***** * ESP32アナログ入力テスト*アナログ入力:ADC_1_0ピン==> GPIO36(VP)。 * * MJRoBot.org 6Sept17 ******************************************** ********* / //アナログ入力#define ANALOG_PIN_0 36 int analog_value = 0; void setup(){Serial.begin(115200); delay(1000); //シリアルモニターを起動する時間を与えてくださいSerial.println( "ESP32 Analog IN Test"); } void loop(){analog_value = analogRead(ANALOG_PIN_0); Serial.println(analog_value); delay(500); } 

ポテンショメータを回して、IDEシリアルモニタでゼロから4, 095までの測定値を観察します。

ステップ7:LEDの調光:PWMを使用したアナログ出力

ESP8266またはArduinoで「LEDを調光」したい場合、 analogWrite()のようなコマンドを使用するだけで、出力のPWM値を変化させ、アナログ値をシミュレートできます。 残念ながら、Arduino IDEのESP32用に開発されたこの種のコマンドはまだありません。 しかし、非常に良いニュースは、ESP32 GPIOの36個すべてにPWM機能があることです。 同じ結果を得るには、より複雑なコードを使用する必要があります。

それでは、そのGPIOの1つをPWM出力信号でプログラムしましょう。

このリンク(esp32-arduino-led-pwm-fading)でPWMがどのように機能するかについて詳しくは、非常に優れたチュートリアルを見つけることができます。

生成されるPWM信号について最初に考えることは、その周波数です。 5000 Hzの値を使用します。これはLEDで正常に機能します。 また、LED PWMチャネルとPWMデューティサイクルの分解能をビット単位で指定する必要があります。 0〜15のチャネルと1〜16ビットの解像度を選択できます。 チャンネル0と8ビットの解像度を使用します。

 int freq = 5000; int ledChannel = 0; int解像度= 8; 

GPIO2を使用して、外部LED(および内部LED)を接続します。

 #define LED_PIN 2 

これらのパラメーターは、以下の関数を使用して、setup()フェーズで定義する必要があります。

 void setup(){ledcSetup(ledChannel、freq、resolution); ledcAttachPin(LED_PIN、ledChannel); } 

特定の明るさでLEDをオンにするには、「デューティサイクル」を定義する必要があります。

たとえば、LEDをオフにするには、デューティサイクルを0にし、関数ledcWrite(ledChannel、dutyCycle)を使用して特定のPWMチャネルを通じて値を送信する必要があります。

 int dutyCycle = 0; ledcWrite(ledChannel、dutyCycle); 

dutyCycle変数の値が異なると、LEDが異なる明るさで点灯します。 この変数、dutyCycleは、使用される解像度が8ビットになると、0から255まで変化します。

ポテンショメーター( analog_value変数に接続)を使用して、dutyCycle変数を手動でセットアップできますが、値の範囲が異なったら、マップ関数を使用して入力と出力を一致させましょう。

 dutyCycle = map(analog_value、0、4095、0、255); 

完全なコードの下:

 ***************************************************** *** * ESP32アナログ入力/出力テスト*アナログ入力:ADC_1_0ピン==> GPIO36(VP)。 * PWM LEDピン==> GPIO 02 * * MJRoBot.org 6Sept17 *********************************** ****************** / //アナログ入力#define ANALOG_PIN_0 36 int analog_value = 0; // PMW LED #define LED_PIN 2 int freq = 5000; int ledChannel = 0; int解像度= 8; int dutyCycle = 0; void setup(){Serial.begin(115200); delay(1000); //シリアルモニターを起動する時間を与えてくださいSerial.println( "ESP32 Analog IN / OUT Test"); ledcSetup(ledChannel、freq、resolution); ledcAttachPin(LED_PIN、ledChannel); ledcWrite(ledChannel、dutyCycle); } void loop(){analog_value = analogRead(ANALOG_PIN_0); Serial.println(analog_value); dutyCycle = map(analog_value、0、4095、0、255); ledcWrite(ledChannel、dutyCycle); delay(500); } 

それでおしまい!

ステップ8:サーボ制御

ESP32のPWM機能を使用してサーボモーターを制御しましょう。 コードは、基本的にLEDの明るさを制御するために使用されたものと同じです。

まず、マイクロサーボで動作する周波数は50Hzであるため、周波数パラメーターを(LEDで使用される5, 000ではなく)50に変更する必要があることを覚えておくことが重要です。 また、LED PWMチャネルとPWMデューティサイクルの分解能をビット単位で指定する必要があります。 再びチャンネル0と8ビットの解像度を使用します。

 int freq = 50; int channel = 0; int解像度= 8; 

サーボはGPIO 5に接続されます(上記の電気回路図を参照)。

 #define SERVO_PIN 5 

LEDと同様に、これらのパラメーターはsetup()フェーズ中に以下の関数を使用して定義する必要があります。

 void setup(){ledcSetup(channel、freq、resolution); ledcAttachPin(SERVO_PIN、チャンネル); } 

特定の角度にサーボを配置するには、「デューティサイクル」を定義する必要があります(上の図を参照してください)。

たとえば、サーボを約90度に配置するには、デューティサイクルを約21にする必要があり、関数ledcWrite(ledChannel、dutyCycle)を使用して、PWMチャネルを通じて値を送信する必要があります。

 int dutyCycle = 21; ledcWrite(channel、dutyCycle); 

dutyCycle変数の値が異なると、サーボが異なる角度で配置されます。 この変数、dutyCycleは、10〜32の間で変化する必要があります(この範囲は手動で取得しました)。

LEDで行ったのと同じように、ポテンショメーター( analog_value変数に接続)を使用して、dutyCycle変数を手動で設定し、サーボ位置を変更できます。 値の範囲が異なったら、マップ関数を使用して入力と出力を一致させましょう:

 dutyCycle = map(analog_value、0、4095、10、33); 

完全なコードの下:

 / ************************************************* **** * ESP32サーボ制御*アナログ入力:ADC_1_0ピン==> GPIO36(VP)。 * PWMサーボピン==> GPIO 05 * * MJRoBot.org 6Sept17 ************************************** ****************** / //アナログ入力#define ANALOG_PIN_0 36 int analog_value = 0; // PMW SERVO #define SERVO_PIN 5 int freq = 50; int channel = 0; int解像度= 8; int dutyCycle = 21; void setup(){Serial.begin(115200); delay(1000); //シリアルモニターを起動する時間を与えてくださいSerial.println( "ESP32 Servo Control"); ledcSetup(チャンネル、周波数、解像度); ledcAttachPin(SERVO_PIN、チャンネル); ledcWrite(channel、dutyCycle); } void loop(){analog_value = analogRead(ANALOG_PIN_0); Serial.print(analog_value); Serial.print( "Duty Cycle ==>"); Serial.println(dutyCycle); dutyCycle = map(analog_value、0、4095、10、33); ledcWrite(channel、dutyCycle); delay(50); } 

これで、サーボの上で超音波センサーを使用してIoTレーダーを構築できます! しかし、これは別のチュートリアルになります! ;-)

ステップ9:インターネットへの接続:ローカルタイムスタンプ

GPIOデジタル/アナログおよび入出力機能のいくつかをテストした後、ESP32をインターネットに接続しましょう!

ESP8266ファミリでは、そのためにライブラリesp8266wifi.hを使用していました。 ESP32では、使用するライブラリは次のようになります。

非常に簡単な例は、インターネットから現地時間をキャプチャするようにボードをプログラミングすることです。 これは、プロジェクトを手元に置くのに非常に優れた機能です。 以下のコードは私たちのためにそれを行います:

 / ************************************************* ************* * ESP32を使用したローカルタイムスタンプ* Marcelo Rovaiにより開発-2017年9月8日********************** **************************************** / #include #include #include #define NTP_OFFSET -3 * 60 * 60 //秒単位で#define NTP_INTERVAL 60 * 1000 //ミリ秒単位で#define NTP_ADDRESS "europe.pool.ntp.org" WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP、NTP_ADDRESS、NTP_OFFSET、NTP_INTERVAL); void setup(){Serial.begin(115200); timeClient.begin(); } 

シリアルモニターで、現地時間のスタンプが表示されます。

ステップ10:シンプルなWiFiサーバー

ESP32を単純なWiFiサーバーとしてテストしてみましょう。

  • Arduino IDEの[使用例]メニューを開き、ESP32 WiFi / SimpleWiFiServer.inoスケッチを取得します。

このプログラムについて:

WiFi WebサーバーのLEDが点滅

  • Tom Igoeによって2012年11月25日Arduino用に作成
  • Jan Hendrik Berlinがsparkfun esp32 31.01.2017に移植

Webを介してLEDを点滅させることができるシンプルなWebサーバー。 このスケッチは、ESP32 WiFiネットワークのIPアドレスをシリアルモニターに出力します。 そこから、Webブラウザーでそのアドレスを開いて、ピン5のLEDをオンまたはオフにできます。

ボードのIPアドレスが 10.0.1.40の場合

  • //10.0.1.40/H はLEDをオンにします
  • //10.0.1.40/L

    LEDをオフにします

この例は、WPA暗号化を使用するネットワーク用に書かれています。 WEPまたはWPAの場合、それに応じてWifi.begin()呼び出しを変更します。

回路:ピン5に取り付けられたLED

それでは、大幅な変更をせずにプログラムを使用しましょう。 外部LEDピンをGPIO5に変更する

もちろん、GPIO2のコードを変更したい場合は、ハードウェアを変更しないでください。

まず、ネットワーク資格情報を入力します。

 const char * ssid = "yourssid"; const char * password = "yourpasswd"; 

ESP32にアップロードします。

シリアルモニターで最初に表示されるのは、ESP32が接続されているという情報と、そのIPアドレスです。

 WiFiが接続されました。 IPアドレス:10.0.1.40 

このIPアドレスを入力して、お気に入りのブラウザーを開きます。 上記のようなWebページが表示されます。 そこで、LEDをリモートでオンまたはオフにできます。

ステップ11:DHT 22-温度と湿度の読み取り

IoTプロジェクトで使用される非常に便利なセンサーは、DHT 11または22です。これらは非常に安価で、プロジェクトに簡単に組み込むことができます。

まず、IDEにAdafrutライブラリをインストールする必要があります。 GitHubにアクセスして、このライブラリの更新バージョンをダウンロードします:DHT-sensor-library

ファイルを解凍し、名前をDHTに変更し、フォルダー全体をArduino Libraryディレクトリに移動します

初めて使用したときにメッセージが表示されました:

致命的なエラー:Adafruit_Sensor.h:そのようなファイルまたはディレクトリはありません

掘り下げた後、 Adafruit Unified Sensor Libraryもインストールする必要があることがわかりました。 そのため、Arduino IDE Library Managerから作成しました(上の写真を参照)。 その後、ArduinoとNodeMCUで行うのと同じように、すべてが正常に機能しました。

このセンサーでいくつかのテストを行いましょう。 上記の電気回路図に従って、図のようにDHT22を取り付けます(「グリッド」に面したセンサーを見て、左から右に4本の足を数えます)。

  1. ピンVCC ==> 3.3V
  2. ピンデータ==> GPIO 23
  3. N / C
  4. PIN GND ==> GND

また、VCCとデータの間に10Kオームの抵抗を接続します。

それでおしまい!

ライブラリに含まれている「DHT tester.ino」サンプルスケッチを使用することも、独自に作成することもできます。

以下に示すように、センサーをテストする簡単なコードを作成しました。

 / ************************************************* **** * ESP32 DHT読み取り値* DHT入力:==> GPIO23。 * * MJRoBot.org 9Sept17 *********************************************** ********* / / * DHT * / #include "DHT.h" #define DHTPIN 23 #define DHTTYPE DHT22 DHT dht(DHTPIN、DHTTYPE); float localHum = 0; float localTemp = 0; void setup(){Serial.begin(115200); delay(1000); //シリアルモニターSerial.println( "");を起動する時間をください。 Serial.println( "ESP32 DHT温度と湿度"); Serial.println( ""); dht.begin(); } void loop(){getDHT(); Serial.print( "Temp:==>"); Serial.print(localTemp); Serial.print( "Hum ==>"); Serial.println(localHum); delay(2000); } / *************************************************** *** *屋内のTemp / Humデータを取得********************************************** ************ / void getDHT(){float tempIni = localTemp; float humIni = localHum; localTemp = dht.readTemperature(); localHum = dht.readHumidity(); if(isnan(localHum)|| isnan(localTemp))//読み取りが失敗したかどうかを確認し、早期に終了します(再試行します)。 {localTemp = tempIni; localHum = humIni; 戻り; }} 

上記のシリアルモニターのPrintScreenで結果を確認できます。

ステップ12:ローカルWebページからのデータの送受信

このチュートリアルでこれまでに説明した内容を確認します。

  • デジタル出力:LEDの点滅
  • デジタル入力:タッチセンサーの読み取り
  • アナログ入力:ポテンショメーターからの可変電圧の読み取り
  • アナログ出力:LED輝度の制御
  • アナログ出力:サーボ位置の制御
  • デジタルセンサーで温度/湿度データを読み取る
  • インターネットに接続して現地時間を取得する
  • LEDをオン/オフするための単純なWebページの作成(データの受信)

まだウェブページにデータを送信する必要があることを認識しています。 それでは、やろう!

DHTセンサーから生成されたデータとポテンショメーターによって提供されるアナログ値を取得し、LEDを制御するために作成されたWebページに送信します。

手順10で使用したSimpleWiFiServerコードから開始し、ポテンショメーターとDHTデータを取得するために適切なコード行を追加しました。

電気回路図でわかるように、LEDをGPIO 2に戻したことに注意してください。

GitHubから完全なコードをダウンロードします:ESP32_WiFi_Server_Sending_Receiving_Data.ino

コードをより良く整理したことに注意してください、そして今、loop()はただ:

 void loop(){analog_value = analogRead(ANALOG_PIN_0); getDHT(); WiFiLocalWebPageCtrl(); } 

ここでの目新しさは、「WiFiLocalWebPageCtrl()」関数です。 しかし、これはまさにSimpleWebServerで使用される元のsetup()関数です。 この関数に含めたものは、Webページに表示されるものです(Webページの上記の印刷画面を参照)。

 // HTTP応答のコンテンツはヘッダーに続きます:// WiFiLocalWebPageCtrl(); client.print( "Temperature now is:"); client.print(localTemp); client.print( "oC 
"); client.print("湿度は現在: "); client.print(localHum); client.print("%
"); client.print("
"); client.print("アナログデータ: "); client.print(analog_value); client.print("
"); client.print("
"); client.print("ここをクリックしてLEDをオンにします。
"); client.print("ここをクリックしてLEDをオフにします。
");
温度、湿度、アナログ値は、LED制御に使用されるリンクをクリックするたびに、またはページを更新するたびに更新されることに注意してください。

ステップ13:結論

ここで続けることができますが、ESP32のすべての機能や可能性を網羅することはできませんでした。 この素晴らしいIoTデバイスを使って探索することはたくさんあります。次のチュートリアルでは、ESP32にOLEDディスプレイを追加する方法を学びます。

ESP32およびOLEDディスプレイ:インターネットクロック-DHT22

まもなく新しいESP32チュートリアルで戻ります!

いつものように、このプロジェクトが、他の人々がエレクトロニクス、ロボット工学、IoTのエキサイティングな世界で彼らの道を見つけるのを助けることを願っています!

更新されたファイルについては、GitHubにアクセスしてください:ESP32およびArduino IDEで遊ぶ

他のプロジェクトについては、私のブログをご覧ください:MJRoBot.org

世界の南からのサルド!

私の次のインストラクションでお会いしましょう!

ありがとうございました、

マルセロ

関連記事