LAFVIN ロゴESP32 ベーシックスターター
キット

包装内容明細書

LAFVIN ESP32 ベーシック スターター キット - 梱包リスト

ESP32 入門

ESP32 は初めてですか? ここから始めましょう! ESP32 は、Espressif が開発した、Wi-Fi および Bluetooth ワイヤレス機能とデュアルコア プロセッサを搭載した低コストで低消費電力の System on a Chip (SoC) マイクロコントローラ シリーズです。ESP8266 をご存知の場合、ESP32 はその後継機であり、多くの新機能が搭載されています。LAFVIN ESP32 ベーシック スターター キット - ESP32 入門ESP32 仕様
もう少し技術的かつ具体的に知りたい場合は、ESP32 の詳細な仕様をご覧ください (出典: http://esp32.net/)—詳細については、 データシートを確認する):

  • ワイヤレス接続 WiFi: HT150.0 で 40 Mbps のデータレート
  • Bluetooth: BLE (Bluetooth Low Energy) および Bluetooth Classic
  • プロセッサ: Tensilica Xtensa デュアルコア 32 ビット LX6 マイクロプロセッサ、160 または 240 MHz で動作
  • メモリ:
  • ROM: 448 KB (ブートおよびコア機能用)
  • SRAM: 520 KB (データと命令用)
  • RTC fas SRAM: 8 KB (ディープスリープ モードからの RTC ブート中のデータ ストレージとメイン CPU 用)
  • RTC 低速 SRAM: 8KB (ディープスリープ モード中のコプロセッサ アクセス用) eFuse: 1 Kbit (そのうち 256 ビットはシステム (MAC アドレスとチップ構成) に使用され、残りの 768 ビットはフラッシュ暗号化やチップ ID などの顧客アプリケーション用に予約されています)

組み込みフラッシュ: ESP16-D17WD および ESP0-PICO-D1 上の IO32、IO2、SD_CMD、SD_CLK、SD_DATA_32、および SD_DATA_4 を介して内部接続されたフラッシュ。

  • 0 MiB (ESP32-D0WDQ6、ESP32-D0WD、および ESP32-S0WD チップ)
  • 2 MiB (ESP32-D2WD チップ)
  • 4 MiB (ESP32-PICO-D4 SiP モジュール)

低消費電力: 例えば、ADC変換を引き続き使用できることを保証します。amp深い眠りの間に。
周辺機器入出力:

  • 静電容量式タッチを含むDMAを備えた周辺機器インターフェース
  • ADC(アナログ-デジタルコンバーター)
  • DAC(デジタル-アナログコンバーター)
  • I²C (インターインテグレーテッドサーキット)
  • UART (ユニバーサル非同期受信機/送信機)
  • SPI (シリアル ペリフェラル インターフェース)
  • I²S (統合インターチップサウンド)
  • RMII (縮小メディア非依存インターフェース)
  • PWM(パルス幅変調)

安全: AESおよびSSL/TLS用のハードウェアアクセラレータ

ESP32 開発ボード

ESP32 は、ベア ESP32 チップを指します。ただし、「ESP32」という用語は、ESP32 開発ボードを指す場合にも使用されます。ESP32 ベア チップの使用は、特に学習、テスト、およびプロトタイピングの場合には、簡単ではなく実用的ではありません。ほとんどの場合、ESP32 開発ボードを使用することになります。
ESP32 DEVKIT V1 ボードをリファレンスとして使用します。下の図は、32 個の GPIO ピンを備えたバージョンの ESP1 DEVKIT V30 ボードを示しています。LAFVIN ESP32 ベーシック スターター キット - ESP32 開発ボード仕様 – ESP32 DEVKIT V1
次の表は、ESP32 DEVKIT V1 DOIT ボードの機能と仕様の概要を示しています。

コア数 2 (デュアルコア)
Wi-Fi 2.4GHz、最大150Mビット/秒
ブルートゥース BLE (Bluetooth Low Energy) と従来の Bluetooth
建築 32ビット
クロック周波数 最大240MHz
ラム 512KB
ピン 30(モデルによって異なります)
周辺機器 静電容量式タッチ、ADC(アナログ-デジタルコンバータ)、DAC(デジタル-アナログコンバータ)、12C(集積回路)、UART(汎用非同期受信機/送信機)、CAN 2.0(コントローラエリアネットワーク)、SPI(シリアル周辺機器インタフェース)、12S(集積回路間
サウンド)、RMII(縮小メディア独立インターフェース)、PWM(パルス幅変調)などがあります。
内蔵ボタン リセットボタンとブートボタン
内蔵LED GPIO2に接続された内蔵の青色LED、ボードに電源が供給されていることを示す内蔵の赤色LED
USBからUARTへ
CP2102

LAFVIN ESP32 ベーシック スターター キット - ESP32 DEVKITmicroUSB インターフェイスが付属しており、これを使用してボードをコンピューターに接続し、コードをアップロードしたり電源を供給したりできます。
CP2102 チップ (USB から UART) を使用して、シリアル インターフェイスを使用して COM ポート経由でコンピューターと通信します。もう 340 つの一般的なチップは CHXNUMX です。コンピューターがボードと通信できるように、必要なドライバーをインストールする必要があるため、ボード上の USB から UART へのチップ コンバーターを確認してください (このガイドの後半で詳しく説明します)。
このボードには、ボードを再起動するための RESET ボタン (EN というラベルが付いている場合があります) と、ボードを点滅モードにする (コードを受信できる) BOOT ボタンも付いています。一部のボードには BOOT ボタンがない場合がありますので注意してください。
また、GPIO 2 に内部的に接続された青色 LED も内蔵されています。この LED は、何らかの視覚的な物理的出力を提供するデバッグに便利です。ボードに電源を供給すると点灯する赤色 LED もあります。LAFVIN ESP32 ベーシックスターターキット - ボードESP32 ピン配置
ESP32 周辺機器には以下が含まれます。

  • 18 個のアナログ-デジタル コンバータ (ADC) チャネル
  • 3つのSPIインターフェース
  • 3つのUARTインターフェース
  • 2つのI2Cインターフェース
  • 16つのPWM出力チャンネル
  • 2 つのデジタル - アナログ コンバータ (DAC)
  • 2つのI2Sインターフェース
  • 10 個の静電容量センシング GPIO

ADC (アナログ - デジタル コンバータ) 機能と DAC (デジタル - アナログ コンバータ) 機能は、特定の静的ピンに割り当てられます。ただし、どのピンが UART、I2C、SPI、PWM などであるかは、コード内で割り当てるだけで決定できます。これは、ESP32 チップの多重化機能により可能になります。
ソフトウェア上でピンのプロパティを定義することもできますが、次の図に示すように、デフォルトで割り当てられているピンがあります。LAFVIN ESP32 ベーシック スターター キット - ESP32 ピン配置さらに、特定の機能を持つピンがあり、それによって特定のプロジェクトに適しているか適していないかが決まります。次の表は、入力、出力として使用するのに最適なピンと、注意が必要なピンを示しています。
緑色で強調表示されたピンは使用できます。黄色で強調表示されたピンは使用できますが、主に起動時に予期しない動作が発生する可能性があるため注意が必要です。赤色で強調表示されたピンは、入力または出力として使用することは推奨されません。

GPIO 入力 出力 注記
0 引き上げられた OK 起動時にPWM信号を出力します。点滅モードに入るにはLOWにする必要があります。
1 TXピン OK 起動時のデバッグ出力
2 OK OK オンボードLEDに接続されており、点滅モードに入るにはフローティングまたはLOWのままにする必要があります。
3 OK RXピン 起動時に高
4 OK OK
5 OK OK 起動時にPWM信号を出力、ピンを固定
12 OK OK ブーツは高く引っ張ると故障し、ストラップピン
13 OK OK
14 OK OK 起動時にPWM信号を出力する
15 OK OK 起動時にPWM信号を出力、ピンを固定
16 OK OK
17 OK OK
18 OK OK
19 OK OK
21 OK OK
22 OK OK
23 OK OK
25 OK OK
26 OK OK
27 OK OK
32 OK OK
33 OK OK
34 OK 入力のみ
35 OK 入力のみ
36 OK 入力のみ
39 OK 入力のみ

ESP32 GPIO とその機能のより詳しい分析については、引き続きお読みください。
入力専用ピン
GPIO 34 から 39 は GPI であり、入力専用ピンです。これらのピンには内部プルアップ抵抗またはプルダウン抵抗がありません。出力として使用できないため、これらのピンは入力としてのみ使用してください。

  • GPIO34
  • GPIO35
  • GPIO36
  • GPIO39

ESP-WROOM-32に統合されたSPIフラッシュ
GPIO 6 から GPIO 11 は、一部の ESP32 開発ボードで公開されています。ただし、これらのピンは ESP-WROOM-32 チップの統合 SPI フラッシュに接続されており、他の用途には推奨されません。したがって、プロジェクトではこれらのピンを使用しないでください。

  • GPIO 6 (SCK/CLK)
  • GPIO 7 (SDO/SD0)
  • GPIO 8 (SDI/SD1)
  • GPIO 9 (SHD/SD2)
  • GPIO 10 (SWP/SD3)
  • GPIO 11 (CSC/CMD)

静電容量式タッチ GPIO
ESP32 には 10 個の内部静電容量タッチ センサーがあります。これらは、人間の皮膚のように電荷を保持するものの変化を感知できます。そのため、指で GPIO に触れたときに発生する変化を検出できます。これらのピンは静電容量パッドに簡単に統合でき、機械式ボタンの代わりに使用できます。静電容量タッチ ピンは、ESP32 をディープ スリープ状態から起動するためにも使用できます。これらの内部タッチ センサーは、次の 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)

アナログ-デジタルコンバーター(ADC)
ESP32 には 18 x 12 ビット ADC 入力チャネルがあります (ESP8266 には 1x 10 ビット ADC しかありません)。これらは、ADC およびそれぞれのチャネルとして使用できる GPIO です。

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

注記: ADC2 ピンは、Wi-Fi 使用時には使用できません。したがって、Wi-Fi を使用していて、ADC2 GPIO から値を取得できない場合は、代わりに ADC1 GPIO の使用を検討してください。これで問題は解決するはずです。
ADC 入力チャンネルの解像度は 12 ビットです。つまり、0 から 4095 までの範囲のアナログ読み取り値を取得できます。0 は 0V、4095 は 3.3V に相当します。コードと ADC 範囲でチャンネルの解像度を設定することもできます。
ESP32 ADC ピンは線形動作をしません。おそらく、0 と 0.1V、または 3.2 と 3.3V を区別することはできないでしょう。ADC ピンを使用するときは、この点に留意する必要があります。次の図に示すような動作になります。LAFVIN ESP32 ベーシックスターターキット - 動作デジタル-アナログコンバーター(DAC)
ESP2にはデジタル信号をアナログボリュームに変換する8 x 32ビットDACチャンネルがあります。tage信号出力。これらはDACチャンネルです:

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

RTC GPIO
ESP32にはRTC GPIOサポートがあります。RTC低電力サブシステムにルーティングされたGPIOは、ESP32がディープスリープ状態のときに使用できます。これらのRTC GPIOは、超低電力サブシステムがESP32をディープスリープからウェイクアップするために使用できます。
電源 (ULP) コプロセッサが実行中です。次の GPIO は外部ウェイクアップ ソースとして使用できます。

  • RTC_GPIO0 (GPIO36)
  • RTC_GPIO3 (GPIO39)
  • RTC_GPIO4 (GPIO34)
  • RTC_GPIO5 (GPIO35)
  • RTC_GPIO6 (GPIO25)
  • RTC_GPIO7 (GPIO26)
  • RTC_GPIO8 (GPIO33)
  • RTC_GPIO9 (GPIO32)
  • RTC_GPIO10 (GPIO4)
  • RTC_GPIO11 (GPIO0)
  • RTC_GPIO12 (GPIO2)
  • RTC_GPIO13 (GPIO15)
  • RTC_GPIO14 (GPIO13)
  • RTC_GPIO15 (GPIO12)
  • RTC_GPIO16 (GPIO14)
  • RTC_GPIO17 (GPIO27)

パルス幅変調
ESP32 LED PWM コントローラには、異なるプロパティを持つ PWM 信号を生成するように構成できる 16 個の独立したチャネルがあります。出力として機能できるすべてのピンは、PWM ピンとして使用できます (GPIO 34 から 39 は PWM を生成できません)。
PWM 信号を設定するには、コードで次のパラメータを定義する必要があります。

  • 信号の周波数。
  • デューティサイクル;
  • PWM チャネル;
  • 信号を出力するGPIO。

I2C
ESP32 には 2 つの I32C チャネルがあり、どのピンも SDA または SCL として設定できます。Arduino IDE で ESP2 を使用する場合、デフォルトの IXNUMXC ピンは次のとおりです。

  • GPIO 21(SDA)
  • GPIO 22(SCL)

ワイヤ ライブラリを使用するときに他のピンを使用する場合は、以下を呼び出すだけです。
Wire.begin(SDA, SCL);
SPI
デフォルトでは、SPI のピン マッピングは次のとおりです。

SPI MOSI 味噌 クロック CS
VSPI GPIO23 GPIO19 GPIO18 GPIO5
脳卒中 GPIO13 GPIO12 GPIO14 GPIO15

割り込み
すべての GPIO は割り込みとして設定できます。
ストラップピン
ESP32 チップには次のストラップ ピンがあります。

  • GPIO 0 (ブートモードに入るにはLOWにする必要があります)
  • GPIO 2 (起動中はフローティングまたはLOWである必要があります)
  • GPIO4
  • GPIO 5 (起動中はHIGHである必要があります)
  • GPIO 12 (起動中はLOWである必要があります)
  • GPIO 15 (起動中はHIGHである必要があります)

これらは、ESP32 をブートローダーまたはフラッシュ モードにするために使用されます。USB/シリアルが組み込まれたほとんどの開発ボードでは、これらのピンの状態を気にする必要はありません。ボードは、フラッシュ モードまたはブート モードに適した状態にピンを設定します。ESP32 ブート モードの選択の詳細については、こちらをご覧ください。
ただし、これらのピンに周辺機器が接続されている場合は、新しいコードのアップロード、新しいファームウェアでの ESP32 のフラッシュ、またはボードのリセットを試行する際に問題が発生する可能性があります。ストラップ ピンに周辺機器が接続されていて、コードのアップロードや ESP32 のフラッシュで問題が発生する場合は、それらの周辺機器が ESP32 が正しいモードに入るのを妨げている可能性があります。正しい方向に進むには、ブート モードの選択に関するドキュメントをお読みください。リセット、フラッシュ、またはブート後、それらのピンは期待どおりに機能します。
ブート時にピンをHIGHにする
一部の GPIO は、起動時またはリセット時に状態が HIGH に変更されるか、PWM 信号を出力します。
つまり、これらの GPIO に出力が接続されていると、ESP32 がリセットまたは起動したときに予期しない結果が生じる可能性があります。

  • GPIO1
  • GPIO3
  • GPIO5
  • GPIO 6 ~ GPIO 11 (ESP32 統合 SPI フラッシュ メモリに接続 – 使用は推奨されません)。
  • GPIO14
  • GPIO15

有効にする(EN)
Enable (EN) は 3.3V レギュレータのイネーブル ピンです。プルアップされているので、3.3V レギュレータを無効にするにはグランドに接続します。つまり、プッシュボタンに接続されたこのピンを使用して、たとえば ESP32 を再起動できます。ampル。
GPIO消費電流
ESP40 データシートの「推奨動作条件」セクションによると、GPIO あたりの絶対最大消費電流は 32mA です。
ESP32 内蔵ホール効果センサー
ESP32には、周囲の磁場の変化を検出するホール効果センサーも内蔵されています。
ESP32 Arduino IDE
Arduino IDE には、Arduino IDE とそのプログラミング言語を使用して ESP32 をプログラムできるアドオンがあります。このチュートリアルでは、Windows、Mac OS X、Linux のいずれを使用していても、Arduino IDE に ESP32 ボードをインストールする方法を説明します。
前提条件: Arduino IDEがインストールされている
このインストール手順を開始する前に、コンピュータに Arduino IDE がインストールされている必要があります。インストールできる Arduino IDE には、バージョン 1 とバージョン 2 の XNUMX つのバージョンがあります。
次のリンクをクリックすると、Arduino IDE をダウンロードしてインストールできます。 arduino.cc/en/メイン/ソフトウェア
どのArduino IDEバージョンをお勧めしますか?現時点では、いくつかの plugins ESP32用(SPIFFSなど) FileSPIFFS プラグイン (システム アップローダー プラグイン) は、Arduino 2 ではまだサポートされていません。したがって、将来 SPIFFS プラグインを使用する予定がある場合は、レガシー バージョン 1.8.X をインストールすることをお勧めします。Arduino ソフトウェア ページを下にスクロールするだけで見つかります。
Arduino IDEにESP32アドオンをインストールする
Arduino IDE に ESP32 ボードをインストールするには、次の手順に従ってください。

  1. Arduino IDEで、 File>設定LAFVIN ESP32 ベーシックスターターキット - 設定
  2. 「追加ボードマネージャー」欄に以下を入力してください。 URLs”フィールド:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
次に、「OK」ボタンをクリックします。LAFVIN ESP32 ベーシックスターターキット - 「OK」ボタン注記: すでにESP8266ボードをお持ちの場合 URLを区切ることができます。 URL次のようにカンマで区切って入力します。
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
ボード マネージャーを開きます。[ツール] > [ボード] > [ボード マネージャー] に移動します。LAFVIN ESP32 ベーシックスターターキット - Espressif検索する ESP32 をインストールし、「ESP32 by Espressif Systems」のボタンを押します。LAFVIN ESP32 ベーシックスターターキット - Espressif以上です。数秒後にインストールされるはずです。LAFVIN ESP32 ベーシックスターターキット - インストール済み

テストコードをアップロード

ESP32 ボードをコンピューターに接続します。Arduino IDE を開いた状態で、次の手順に従います。

  1. ツール > ボードメニューでボードを選択します(私の場合は ESP32 DEV モジュールです)LAFVIN ESP32 ベーシック スターター キット - ツール ボード
  2. ポートを選択します (Arduino IDE に COM ポートが表示されない場合は、CP210x USB to UART Bridge VCP ドライバーをインストールする必要があります)。LAFVIN ESP32 ベーシック スターター キット - UART ブリッジ
  3. 次の例を開くampル・アンダー File > 例amples > WiFi
    (ESP32) > WiFiスキャンLAFVIN ESP32 ベーシック スターター キット - WiFiScanLAFVIN ESP32 ベーシックスターターキット - WiFiScan 1
  4. Arduino IDE で新しいスケッチが開きます。LAFVIN ESP32 ベーシック スターター キット - Arduino IDE
  5. Arduino IDE の [アップロード] ボタンを押します。コードがコンパイルされ、ボードにアップロードされるまで数秒待ちます。LAFVIN ESP32 ベーシックスターターキット - ボード
  6. すべてが期待どおりに進んだ場合、「アップロードが完了しました。」というメッセージが表示されます。LAFVIN ESP32 ベーシックスターターキット - アップロード完了
  7. ボーレート 115200 で Arduino IDE シリアル モニターを開きます。LAFVIN ESP32 ベーシックスターターキット - モニター
  8. ESP32 のオンボードの有効化ボタンを押すと、ESP32 の近くで利用可能なネットワークが表示されます。LAFVIN ESP32 ベーシックスターターキット - 有効化ボタン

トラブルシューティング

ESP32 に新しいスケッチをアップロードしようとすると、「致命的なエラーが発生しました: ESP32 への接続に失敗しました: タイムアウトしました...接続中...」というエラー メッセージが表示されます。これは、ESP32 がフラッシュ/アップロード モードではないことを意味します。
適切なボード名と COM ポートを選択したら、次の手順に従います。
ESP32ボードの「BOOT」ボタンを押し続けますLAFVIN ESP32 ベーシックスターターキット - 「BOOT」

  • Arduino IDE の「アップロード」ボタンを押してスケッチをアップロードします。LAFVIN ESP32 ベーシックスターターキット - ICON 6
  • Arduino IDE に「接続中...」というメッセージが表示されたら、「BOOT」ボタンから指を離します。LAFVIN ESP32 ベーシックスターターキット - 「アップロード完了
  • その後、「アップロード完了」というメッセージが表示されます。
    これで完了です。ESP32 で新しいスケッチが実行されるはずです。「ENABLE」ボタンを押して ESP32 を再起動し、アップロードした新しいスケッチを実行します。
    また、新しいスケッチをアップロードするたびに、そのボタンシーケンスを繰り返す必要があります。

プロジェクト 1 ESP32 入力 出力

この入門ガイドでは、Arduino IDE と ESP32 を使用して、ボタン スイッチなどのデジタル入力を読み取り、LED などのデジタル出力を制御する方法を学習します。
前提条件
Arduino IDE を使用して ESP32 をプログラムします。続行する前に、ESP32 ボード アドオンがインストールされていることを確認してください。

  • Arduino IDEにESP32アドオンをインストールする

ESP32 デジタル出力を制御する
まず、制御したい GPIO を OUTPUT として設定する必要があります。次のように pinMode() 関数を使用します。
pinMode(GPIO、出力);
デジタル出力を制御するには、digitalWrite() 関数を使用するだけです。この関数は、参照する GPIO (int 番号) と状態 (HIGH または LOW) を引数として受け取ります。
デジタル書き込み(GPIO、状態);
GPIO 6 ~ 11 (統合 SPI フラッシュに接続) および GPIO 34、35、36、39 (入力専用 GPIO) を除くすべての GPIO は出力として使用できます。
ESP32 GPIO の詳細については、ESP32 GPIO リファレンス ガイドをご覧ください。
ESP32 デジタル入力の読み取り
まず、次のように pinMode() 関数を使用して、読み取りたい GPIO を INPUT として設定します。
pinMode(GPIO、入力);
ボタンなどのデジタル入力を読み取るには、参照する GPIO (int 番号) を引数として受け取る digitalRead() 関数を使用します。
デジタル読み取り(GPIO);
GPIO 32 ~ 6 (統合 SPI フラッシュに接続) を除くすべての ESP11 GPIO を入力として使用できます。
ESP32 GPIO の詳細については、ESP32 GPIO リファレンス ガイドをご覧ください。
プロジェクト例ample
デジタル入力とデジタル出力の使い方を説明するために、簡単なプロジェクトを構築します。ampプッシュボタンと LED を備えた le です。次の図に示すように、プッシュボタンの状態を読み取り、それに応じて LED を点灯します。LAFVIN ESP32 ベーシックスターターキット - Project Example

必要な部品
回路を構築するために必要な部品のリストは次のとおりです。

  • ESP32 開発キット V1
  • 5mm LED
  • 220オーム抵抗器
  • ボタンを押す
  • 10kオームの抵抗
  • ブレッドボード
  • ジャンパー線

概略図
先に進む前に、LED とプッシュボタンを使用して回路を組み立てる必要があります。
LEDをGPIO 5に接続し、プッシュボタンをGPIOに接続します。 4.LAFVIN ESP32 ベーシック スターター キット - 回路図コード
Arduino IDEでコードProject_1_ESP32_Inputs_Outputs.inoを開きます。LAFVIN ESP32 ベーシックスターターキット - コードLAFVIN ESP32 ベーシック スターター キット - コード 1コードの仕組み
次の 2 行では、ピンを割り当てるための変数を作成します。

LAFVIN ESP32 ベーシック スターター キット - Code Worksボタンは GPIO 4 に接続され、LED は GPIO 5 に接続されます。Arduino IDE を ESP32 で使用する場合、4 は GPIO 4 に対応し、5 は GPIO 5 に対応します。
次に、ボタンの状態を保持する変数を作成します。デフォルトでは 0 (押されていない) です。
ボタンの状態 = 0;
setup() では、ボタンを INPUT として初期化し、LED を OUTPUT として初期化します。
そのためには、参照するピンとモード (INPUT または OUTPUT) を受け入れる pinMode() 関数を使用します。
pinMode(ボタンピン、INPUT);
pinMode(ledPin、出力);
loop() では、ボタンの状態を読み取り、それに応じて LED を設定します。
次の行では、ボタンの状態を読み取り、buttonState 変数に保存します。
前に見たように、digitalRead() 関数を使用します。
ボタンの状態 = digitalRead(ボタンピン);
次の if ステートメントは、ボタンの状態が HIGH かどうかを確認します。HIGH の場合は、ledPin と状態 HIGH を引数として受け取る digitalWrite() 関数を使用して LED をオンにします。
(ボタンの状態 == HIGH)の場合LAFVIN ESP32 ベーシック スターター キット - Code Works 1ボタンの状態が HIGH でない場合は、LED をオフに設定します。digitalWrite() 関数の 2 番目の引数として LOW を設定するだけです。LAFVIN ESP32 ベーシックスターターキット - digitalWriteコードのアップロード
アップロード ボタンをクリックする前に、[ツール] > [ボード] に移動し、ボード:DOIT ESP32 DEVKIT V1 ボードを選択します。
「ツール」>「ポート」に移動し、ESP32 が接続されている COM ポートを選択します。次に、アップロード ボタンを押して、「アップロード完了」メッセージが表示されるまで待ちます。LAFVIN ESP32 ベーシックスターターキット - ICON 7注意:デバッグウィンドウに多数のドット(接続中…__…__)が表示され、「ESP32への接続に失敗しました:パケットヘッダーの待機中にタイムアウトしました」というメッセージが表示される場合は、ドットが表示された後、ESP32オンボードのBOOTボタンを押す必要があることを意味します。
表示され始めます。トラブルシューティング

デモンストレーション

コードをアップロードしたら、回路をテストします。プッシュボタンを押すと LED が点灯するはずです。LAFVIN ESP32 ベーシックスターターキット - デモ離すと電源がオフになります。LAFVIN ESP32 ベーシックスターターキット - ターンオフ

プロジェクト 2 ESP32 アナログ入力

このプロジェクトでは、Arduino IDE を使用して ESP32 でアナログ入力を読み取る方法を示します。
アナログ読み取りは、ポテンショメータなどの可変抵抗器やアナログ センサーから値を読み取るのに役立ちます。
アナログ入力 (ADC)
ESP32でアナログ値を読み取ると、変化するボリュームを測定できます。tag0 V ~ 3.3 V の間のレベル。
巻tag測定された電圧は0から4095の間の値に割り当てられ、0Vは0に、3.3Vは4095に相当します。tag0 V から 3.3 V の間の電圧には、その間の対応する値が与えられます。LAFVIN ESP32 ベーシック スターター キット - アナログ入力ADCは非線形です
理想的には、ESP32 ADC ピンを使用する場合は線形動作が期待されます。
しかし、それは起こりません。次の図に示すような動作が発生します。LAFVIN ESP32 ベーシックスターターキット - 非線形この動作は、ESP32 が 3.3 V と 3.2 V を区別できないことを意味します。
両方のボリュームに同じ値が得られますtages: 4095。
非常に低いボラティリティでも同じことが起こるtage 値: 0 V と 0.1 V の場合は同じ値 0 になります。ESP32 ADC ピンを使用する場合は、この点に留意する必要があります。
analogRead() 関数
Arduino IDE を使用して ESP32 でアナログ入力を読み取るのは、analogRead() 関数を使用するのと同じくらい簡単です。この関数は、読み取りたい GPIO を引数として受け取ります。
アナログ読み取り(GPIO);
DEVKIT V15board (1 GPIO のバージョン) では 30 個のみ使用できます。
ESP32 ボードのピン配列を取得し、ADC ピンを見つけます。これらは、下の図で赤い枠で強調表示されています。LAFVIN ESP32 ベーシックスターターキット - ボーダーこれらのアナログ入力ピンの解像度は 12 ビットです。つまり、アナログ入力を読み取る場合、その範囲は 0 から 4095 まで変化する可能性があります。
注意: Wi-Fi 使用時は ADC2 ピンは使用できません。したがって、Wi-Fi を使用していて ADC2 GPIO から値を取得できない場合は、代わりに ADC1 GPIO の使用を検討してください。これで問題は解決するはずです。
すべてがどのように結びつくかを見るために、簡単な例を見てみましょうampポテンショメータからアナログ値を読み取ることができます。
必要な部品
この元amp必要な部品は以下のとおりです。

  • ESP32 DEVKIT V1 ボード
  • ポテンショメーター
  • ブレッドボード
  • ジャンパー線

回路図
ポテンショメータを ESP32 に配線します。ポテンショメータの中央のピンは GPIO 4 に接続する必要があります。次の回路図を参考にしてください。LAFVIN ESP32 ベーシック スターター キット - 回路図コード
Arduino IDE を使用して ESP32 をプログラムします。続行する前に、ESP32 アドオンがインストールされていることを確認してください。(この手順をすでに実行している場合は、次の手順に進むことができます。)
Arduino IDEにESP32アドオンをインストールする
Arduino IDEでコードProject_2_ESP32_Inputs_Outputs.inoを開きます。LAFVIN ESP32 ベーシック スターター キット - コード 2このコードは、ポテンショメータから値を読み取り、その値をシリアル モニターに出力するだけです。
コードでは、ポテンショメータが接続されているGPIOを定義することから始めます。この例ではample、GPIO 4。LAFVIN ESP32 ベーシックスターターキット - examplesetup() では、ボーレート 115200 でシリアル通信を初期化します。LAFVIN ESP32 ベーシックスターターキット - examp1 番目loop() では、analogRead() 関数を使用して potPin からアナログ入力を読み取ります。LAFVIN ESP32 ベーシックスターターキット - examp2 番目最後に、ポテンショメータから読み取った値をシリアルモニターに出力します。LAFVIN ESP32 ベーシックスターターキット - examp3 番目提供されたコードを ESP32 にアップロードします。[ツール] メニューで適切なボードと COM ポートが選択されていることを確認します。
Exのテストample
コードをアップロードし、ESP32 リセット ボタンを押した後、ボー レート 115200 でシリアル モニターを開きます。ポテンショメータを回転させて、値が変化することを確認します。取得できる最大値は 4095 で、最小値は 0 です。LAFVIN ESP32 ベーシックスターターキット - 最大値

まとめ

この記事では、Arduino IDE で ESP32 を使用してアナログ入力を読み取る方法を学びました。要約すると、次のようになります。

  • ESP32 DEVKIT V1 DOIT ボード (30 ピン バージョン) には、アナログ入力の読み取りに使用できる 15 個の ADC ピンがあります。
  • これらのピンの解像度は 12 ビットで、0 から 4095 までの値を取得できます。
  • Arduino IDE で値を読み取るには、analogRead() 関数を使用するだけです。
  • ESP32 ADC ピンは線形動作をしません。おそらく、0 と 0.1V、または 3.2 と 3.3V を区別することはできないでしょう。ADC ピンを使用するときは、この点に留意する必要があります。

プロジェクト 3 ESP32 PWM(アナログ出力)

このチュートリアルでは、Arduino IDEを使用してESP32でPWM信号を生成する方法を説明します。ampESP32 の LED PWM コントローラーを使用して LED を暗くする簡単な回路を構築します。LAFVIN ESP32 ベーシック スターター キット - アナログ出力ESP32 LED PWM コントローラー
ESP32 には、さまざまな特性を持つ PWM 信号を生成するように構成できる 16 個の独立したチャネルを備えた LED PWM コントローラがあります。
Arduino IDE を使用して PWM で LED を調光するには、次の手順に従います。

  1. まず、PWM チャネルを選択する必要があります。16 から 0 までの 15 個のチャネルがあります。
  2. 次に、PWM 信号の周波数を設定する必要があります。LED の場合、5000 Hz の周波数で十分です。
  3. 信号のデューティ サイクル解像度も設定する必要があります。解像度は 1 ~ 16 ビットです。ここでは 8 ビット解像度を使用します。つまり、0 ~ 255 の値を使用して LED の明るさを制御できます。
  4.  次に、信号が表示される GPIO を指定する必要があります。そのためには、次の関数を使用します。
    ledcAttachPin(GPIO、チャンネル)
    この関数は 2 つの引数を受け入れます。1 つ目は信号を出力する GPIO で、2 つ目は信号を生成するチャネルです。
  5. 最後に、PWM を使用して LED の明るさを制御するには、次の関数を使用します。

ledcWrite(チャンネル、デューティサイクル)
この関数は、PWM 信号を生成するチャネルとデューティ サイクルを引数として受け入れます。
必要な部品
このチュートリアルを実行するには、次の部品が必要です。

  • ESP32 DEVKIT V1 ボード
  • 5mm LED
  • 220オーム抵抗器
  •  ブレッドボード
  • ジャンパー線

回路図
次の回路図のように、LEDをESP32に配線します。LEDはGPIOに接続する必要があります。 4.LAFVIN ESP32 ベーシック スターター キット - 回路図注記: 出力として機能できる限り、任意のピンを使用できます。出力として機能できるすべてのピンは、PWM ピンとして使用できます。ESP32 GPIO の詳細については、「ESP32 ピン配置リファレンス: どの GPIO ピンを使用すればよいですか?」をお読みください。
コード
Arduino IDE を使用して ESP32 をプログラムします。続行する前に、ESP32 アドオンがインストールされていることを確認してください。(この手順をすでに実行している場合は、次の手順に進むことができます。)
Arduino IDEにESP32アドオンをインストールする
Arduino IDEでコードProject_3_ESP32_PWM.inoを開きます。LAFVIN ESP32 ベーシック スターター キット - コード 3LAFVIN ESP32 ベーシック スターター キット - コード 4まず、LED が接続されているピンを定義します。この場合、LED は GPIO 4 に接続されます。LAFVIN ESP32 ベーシック スターター キット - コード 5次に、PWM 信号のプロパティを設定します。周波数を 5000 Hz に定義し、信号を生成するためにチャネル 0 を選択し、解像度を 8 ビットに設定します。これらとは異なるプロパティを選択して、異なる PWM 信号を生成することもできます。LAFVIN ESP32 ベーシック スターター キット - コード 6setup() では、次のように、ledChannel、周波数、解像度を引数として受け取る ledcSetup() 関数を使用して、以前に定義したプロパティで LED PWM を構成する必要があります。LAFVIN ESP32 ベーシック スターター キット - コード 8次に、信号を取得するGPIOを選択する必要があります。そのためには、信号を取得したいGPIOと信号を生成しているチャネルを引数として受け取るledcAttachPin()関数を使用します。この例では、ample では、GPIO 4 に対応する ledPin GPIO で信号を取得します。信号を生成するチャネルは、チャネル 0 に対応する ledChannel です。LAFVIN ESP32 ベーシック スターター キット - コード 9ループでは、デューティ サイクルを 0 から 255 の間で変化させて、LED の明るさを上げます。LAFVIN ESP32 ベーシックスターターキット - 明るさそして、255 と 0 の間で明るさを下げます。LAFVIN ESP32 ベーシックスターターキット - 明るさ 1LED の明るさを設定するには、信号を生成しているチャネルとデューティ サイクルを引数として受け取る ledcWrite() 関数を使用するだけです。LAFVIN ESP32 ベーシックスターターキット - 明るさ 28 ビットの解像度を使用しているため、デューティ サイクルは 0 ~ 255 の値を使用して制御されます。ledcWrite() 関数では、GPIO ではなく、信号を生成しているチャネルを使用することに注意してください。

Exのテストample

コードを ESP32 にアップロードします。適切なボードと COM ポートが選択されていることを確認します。回路を確認します。明るさを増減する調光 LED があるはずです。LAFVIN ESP32 ベーシックスターターキット - Ex のテストample

プロジェクト 4 ESP32 PIR モーション センサー

このプロジェクトでは、PIRモーションセンサーを使用してESP32で動きを検出する方法を示します。動きが検出されるとブザーが鳴り、設定された時間(4秒など)動きが検出されないとアラームが停止します。
HC-SR501 モーションセンサーの仕組み
.LAFVIN ESP32 ベーシックスターターキット - モーションセンサーワークスHC-SR501 センサーの動作原理は、移動する物体に対する赤外線放射の変化に基づいています。HC-SR501 センサーによって検出されるには、物体が次の XNUMX つの要件を満たしている必要があります。

  • 物体は赤外線を放射しています。
  • 物体が動いたり揺れたりしている

それで:
物体が赤外線を放射しているが動いていない場合(例:人が動かずに静止している場合)、その物体はセンサーによって検出されません。
物体が動いているが赤外線を放射していない場合(ロボットや車両など)、センサーによって検出されません。
タイマーの紹介
この例ampまた、タイマーも紹介します。動きが検出された後、LED があらかじめ決められた秒数点灯し続けるようにします。コードをブロックし、決められた秒数の間何もできないようにする delay() 関数を使用する代わりに、タイマーを使用する必要があります。LAFVIN ESP32 ベーシック スターター キット - タイマーの紹介delay() 関数
delay() 関数は広く使用されているので、よく知っている必要があります。この関数の使い方は非常に簡単です。引数として 1 つの int 数値を受け入れます。
この数値は、プログラムが次のコード行に進むまでに待機する必要がある時間をミリ秒単位で表します。LAFVIN ESP32 ベーシックスターターキット - コードdelay(1000) を実行すると、プログラムはその行で 1 秒間停止します。
delay() はブロッキング関数です。ブロッキング関数は、特定のタスクが完了するまでプログラムが他の処理を実行できないようにします。複数のタスクを同時に実行する必要がある場合は、delay() は使用できません。
ほとんどのプロジェクトでは、遅延の使用を避け、代わりにタイマーを使用する必要があります。
millis() 関数
millis() という関数を使用すると、プログラムが最初に開始されてから経過したミリ秒数を返すことができます。LAFVIN ESP32 ベーシックスターターキット - プログラムが初めて開始されましたこの関数が便利なのはなぜでしょうか? 数学的な計算を使用することで、コードをブロックすることなく経過時間を簡単に確認できるためです。
必要な部品
このチュートリアルを実行するには、次の部品が必要です

  • ESP32 DEVKIT V1 ボード
  • PIRモーションセンサー(HC-SR501)
  • アクティブブザー
  • ジャンパー線
  • ブレッドボード

回路図LAFVIN ESP32 ベーシック スターター キット - 回路図 1注記: ワーキングボリュームtagHC-SR501 の電圧は 5V です。電源供給には Vin ピンを使用します。
コード
このチュートリアルを進める前に、Arduino IDE に ESP32 アドオンをインストールしておく必要があります。まだインストールしていない場合は、次のいずれかのチュートリアルに従って、Arduino IDE に ESP32 をインストールしてください。(この手順をすでに実行している場合は、次の手順に進むことができます。)
Arduino IDEにESP32アドオンをインストールする
Arduino IDE でコード Project_4_ESP32_PIR_Motion_Sensor.ino を開きます。
デモンストレーション
コードを ESP32 ボードにアップロードします。適切なボードと COM ポートが選択されていることを確認してください。コードのアップロードの参照手順。
ボーレート 115200 でシリアル モニターを開きます。LAFVIN ESP32 ベーシックスターターキット - デモ 1PIR センサーの前に手を動かします。ブザーがオンになり、シリアル モニターに「モーションが検出されました。ブザー アラーム」というメッセージが表示されます。
4 秒後にブザーはオフになります。LAFVIN ESP32 ベーシックスターターキット - ブザー

プロジェクト 5 ESP32 スイッチ Web サーバ

このプロジェクトでは、スタンドアロンの web Arduino IDEプログラミング環境を使用して出力(32つのLED)を制御するESPXNUMXを搭載したサーバー。 web サーバーはモバイル対応で、ローカルネットワーク上のブラウザとしてあらゆるデバイスからアクセスできます。 web サーバーとコードが段階的にどのように動作するかを説明します。
プロジェクトオーバーview
プロジェクトに直行する前に、私たちが何をしたいのかを概説することが重要です。 web 後で手順を実行するのが簡単になるように、サーバーで実行します。

  • の web 構築するサーバーは、ESP32 GPIO 26 と GPIO 27 に接続された XNUMX つの LED を制御します。
  • ESP32にアクセスできます web ローカル ネットワーク内のブラウザーに ESP32 の IP アドレスを入力してサーバーにアクセスします。
  • ボタンをクリックすると web サーバーでは、各 LED の状態を瞬時に変更できます。

必要な部品
このチュートリアルでは、次の部品が必要になります。

  • ESP32 DEVKIT V1 ボード
  • 2x 5mm LED
  • 2オーム抵抗器200個
  • ブレッドボード
  • ジャンパー線

回路図
まず回路を組み立てます。次の回路図に示すように、32 つの LED を ESP26 に接続します。27 つの LED は GPIO XNUMX に接続し、もう XNUMX つの LED は GPIO XNUMX に接続します。
注記: 32 ピンの ESP36 DEVKIT DOIT ボードを使用します。回路を組み立てる前に、使用するボードのピン配列を確認してください。LAFVIN ESP32 ベーシック スターター キット - 回路図コード
ここではESP32を作成するコードを提供します web サーバー。コードProject_5_ESP32_Switch_を開きますWeb_Server.ino は Arduino IDE にありますが、まだアップロードしないでください。動作させるにはいくつか変更を加える必要があります。
Arduino IDE を使用して ESP32 をプログラムします。続行する前に、ESP32 アドオンがインストールされていることを確認してください。(この手順をすでに実行している場合は、次の手順に進むことができます。)
Arduino IDEにESP32アドオンをインストールする
ネットワーク資格情報の設定
ネットワーク資格情報を使用して、次の行を変更する必要があります: SSID とパスワード。コードには、変更する場所に関する詳細なコメントが記載されています。LAFVIN ESP32 ベーシック スターター キット - ネットワーク認証情報コードのアップロード
これで、コードをアップロードして web サーバーはすぐに動作します。
ESP32 にコードをアップロードするには、次の手順に従ってください。

  1. ESP32 ボードをコンピューターに接続します。
  2. Arduino IDE で、[ツール] > [ボード] でボードを選択します (この場合は、ESP32 DEVKIT DOIT ボードを使用しています)。LAFVIN ESP32 ベーシック スターター キット - コードのアップロード
  3. [ツール] > [ポート] で COM ポートを選択します。LAFVIN ESP32 ベーシックスターターキット - ツールポート
  4. Arduino IDE の [アップロード] ボタンを押し、コードがコンパイルされてボードにアップロードされるまで数秒待ちます。LAFVIN ESP32 ベーシックスターターキット - ICON 7
  5. 「アップロードが完了しました」というメッセージが表示されるまで待ちます。LAFVIN ESP32 ベーシックスターターキット - アップロード完了 1

ESP IPアドレスの検索
コードをアップロードした後、ボーレート 115200 でシリアル モニターを開きます。LAFVIN ESP32 ベーシック スターター キット - ESP IP アドレスESP32のENボタン(リセット)を押します。ESP32はWi-Fiに接続し、シリアルモニターにESP IPアドレスを出力します。そのIPアドレスはESP32にアクセスするために必要となるため、コピーしてください。 web サーバ。LAFVIN ESP32 ベーシックスターターキット - web サーバアクセス Web サーバ
アクセスするには web サーバーにアクセスするには、ブラウザを開いて ESP32 の IP アドレスを貼り付けると、次のページが表示されます。
注記: ブラウザと ESP32 は同じ LAN に接続されている必要があります。LAFVIN ESP32 ベーシックスターターキット - アクセス Web サーバシリアル モニターを見ると、バックグラウンドで何が起こっているかがわかります。ESP は新しいクライアント (この場合はブラウザー) から HTTP 要求を受信します。LAFVIN ESP32 ベーシック スターター キット - HTTP リクエストHTTP リクエストに関するその他の情報も表示できます。
デモンストレーション
これで、あなたの web サーバーは正常に動作しています。ボタンをクリックして LED を制御します。LAFVIN ESP32 ベーシック スターター キット - 背景同時に、シリアルモニターを見て、バックグラウンドで何が起こっているか確認することもできます。たとえば、ampGPIO 26をオンにするボタンをクリックすると、ESP32は/26/onでリクエストを受け取ります。 URL.LAFVIN ESP32 ベーシックスターターキット - URLESP32がその要求を受信すると、GPIO 26に接続されたLEDが点灯し、その状態が更新されます。 web ページ。LAFVIN ESP32 ベーシックスターターキット - web ページGPIO 27 のボタンも同様に動作します。正常に動作していることをテストします。LAFVIN ESP32 ベーシック スターター キット - 正常に動作

コードの仕組み

このセクションでは、コードを詳しく見て、それがどのように機能するかを確認します。
最初に行う必要があるのは、WiFi ライブラリを組み込むことです。LAFVIN ESP32 ベーシック スターター キット - WiFi ライブラリ前述したように、次の行に二重引用符で囲んで SSID とパスワードを挿入する必要があります。LAFVIN ESP32 ベーシックスターターキット - 二重引用符次に、 web サーバーをポート 80 に接続します。LAFVIN ESP32 ベーシックスターターキット - web サーバ次の行は、HTTP リクエストのヘッダーを格納する変数を作成します。LAFVIN ESP32 ベーシックスターターキット - HTTPrequest次に、出力の現在の状態を保存するための補助変数を作成します。出力をさらに追加してその状態を保存する場合は、さらに変数を作成する必要があります。LAFVIN ESP32 ベーシックスターターキット - 変数また、各出力に GPIO を割り当てる必要があります。ここでは GPIO 26 と GPIO 27 を使用しています。他の適切な GPIO を使用することもできます。LAFVIN ESP32 ベーシックスターターキット - その他の適切な設定()
さて、setup() に入りましょう。まず、デバッグの目的でボーレート 115200 でシリアル通信を開始します。LAFVIN ESP32 ベーシックスターターキット - 目的また、GPIO を OUTPUT として定義し、LOW に設定します。LAFVIN ESP32 ベーシック スターター キット - 出力としての GPIO次の行は、WiFi.begin(ssid, password) を使用して Wi-Fi 接続を開始し、接続が成功するまで待機し、シリアル モニターに ESP IP アドレスを出力します。LAFVIN ESP32 ベーシックスターターキット - シリアルLAFVIN ESP32 ベーシック スターター キット - シリアル 1ループ()
loop()では、新しいクライアントが接続を確立したときに何が起こるかをプログラムします。 web サーバ。
ESP32 は常に次の行で着信クライアントをリッスンしています。LAFVIN ESP32 ベーシックスターターキット - ループクライアントからリクエストを受信すると、受信データを保存します。その後の while ループは、クライアントが接続されている限り実行されます。何をしているのかを正確に理解していない限り、コードの次の部分を変更することはお勧めしません。LAFVIN ESP32 ベーシックスターターキット - まさにLAFVIN ESP32 ベーシックスターターキット - ちょうど1LAFVIN ESP32 ベーシックスターターキット - ちょうど2次のif文とelse文のセクションでは、どのボタンが押されたかを確認します。 web ページを生成し、それに応じて出力を制御します。前に見たように、異なる URL押されたボタンに応じて異なります。LAFVIN ESP32 ベーシックスターターキット - ボタンが押された状態LAFVIN ESP32 ベーシック スターター キット - ボタン 1 を押す例えばampGPIO 26 ONボタンを押すと、ESP32は/26/ONでリクエストを受信します。 URL (その情報はシリアル モニターの HTTP ヘッダーで確認できます)。したがって、ヘッダーに GET /26/on という式が含まれているかどうかを確認できます。含まれている場合は、output26state 変数を ON に変更し、ESP32 は LED をオンにします。
これは他のボタンでも同様に機能します。したがって、さらに出力を追加する場合は、コードのこの部分を変更してそれらを含める必要があります。
HTMLの表示 web ページ
次に必要なのは、 web ESP32はブラウザにHTMLコードを送信し、ページを構築します。 web ページ。
の web この表現 client.println() を使用してページがクライアントに送信されます。引数としてクライアントに送信したい内容を入力する必要があります。
最初に送信する必要があるのは常に、HTML を送信していることを示す次の行です。LAFVIN ESP32 ベーシックスターターキット - HTML の送信そして、次の行は web ページはどんな web ブラウザ。LAFVIN ESP32 ベーシックスターターキット - web ブラウザそして、以下はファビコンのリクエストを防ぐために使用されます。 – この行については心配する必要はありません。LAFVIN ESP32 ベーシック スターター キット - client.println

スタイリング Web ページ

次に、ボタンと web ページの外観。
Helvetica フォントを選択し、ブロックとして表示され、中央揃えになるようにコンテンツを定義します。LAFVIN ESP32 ベーシックスターターキット - スタイリング Web ページボタンのスタイルは、#4CAF50 色、境界線なし、テキストは白色、パディングは 16px 40px です。また、テキスト装飾を none に設定し、フォント サイズ、余白、カーソルをポインターとして定義します。LAFVIN ESP32 ベーシックスターターキット - ポインター2 番目のボタンのスタイルも定義します。これは、前に定義したボタンのすべてのプロパティを持ちますが、色は異なります。これがオフ ボタンのスタイルになります。LAFVIN ESP32 ベーシック スターター キット - client.println 1

設定 Web ページ最初の見出し
次の行では、最初の見出しを設定できます。 web ページ。ここには「ESP32 Web 「Server」とありますが、このテキストは好きなように変更できます。LAFVIN ESP32 ベーシックスターターキット - Web ページ見出しボタンと対応する状態を表示する
次に、GPIO 26 の現在の状態を表示する段落を記述します。ご覧のとおり、output26State 変数を使用しているため、この変数が変更されると状態が即座に更新されます。LAFVIN ESP32 ベーシックスターターキット - さまざまな変更次に、GPIO の現在の状態に応じて、オン ボタンまたはオフ ボタンを表示します。GPIO の現在の状態がオフの場合は、オン ボタンが表示され、そうでない場合は、オフ ボタンが表示されます。LAFVIN ESP32 ベーシックスターターキット - OFFボタンを表示するGPIO 27 でも同じ手順を使用します。
接続を閉じる
最後に、レスポンスが終了したら、ヘッダー変数をクリアし、client.stop() でクライアントとの接続を停止します。LAFVIN ESP32 ベーシックスターターキット - 接続の終了

まとめ

このチュートリアルでは、 web ESP32でサーバーを構築しました。簡単な例を示しましたamp2 つの LED を制御するファイルですが、そのアイデアは、それらの LED をリレー、または制御したいその他の出力に置き換えることです。

プロジェクト6 RGB LED Web サーバ

このプロジェクトでは、ESP32ボードを使用してRGB LEDをリモート制御する方法を紹介します。 web カラーピッカーを備えたサーバー。
プロジェクトオーバーview
始める前に、このプロジェクトがどのように機能するかを見てみましょう。LAFVIN ESP32 ベーシック スターター キット - プロジェクト終了view

  • ESP32は web サーバーはカラーピッカーを表示します。
  • 色を選択すると、ブラウザは URL 選択した色の R、G、B パラメータが含まれます。
  • ESP32 はリクエストを受信し、各カラー パラメータの値を分割します。
  • 次に、RGB LED を制御している GPIO に、対応する値を持つ PWM 信号を送信します。

RGB LED はどのように機能しますか?
共通カソード RGB LED では、3 つの LED すべてが負の接続 (カソード) を共有します。キットに含まれるものはすべて共通カソード RGB です。LAFVIN ESP32 ベーシックスターターキット - RGB LEDが動作するさまざまな色を作成するにはどうすればいいですか?
RGB LED を使用すると、もちろん赤、緑、青の光を生成できますが、各 LED の強度を設定することで、他の色も生成できます。
例えばampたとえば、純粋に青色の光を生成するには、青色 LED を最高強度に設定し、緑色と赤色の LED を最低強度に設定します。白色の光を生成するには、3 つの LED すべてを最高強度に設定します。
色を混ぜる
他の色を生成するには、3 つの色を異なる強度で組み合わせます。各 LED の強度を調整するには、PWM 信号を使用します。
LED は互いに非常に近いため、私たちの目は 3 つの色を個別に見るのではなく、色の組み合わせの結果を見ます。
色の組み合わせ方については、次の表をご覧ください。
これは最も単純な色混合チャートですが、それがどのように機能し、さまざまな色をどのように生成するかがわかります。LAFVIN ESP32 ベーシック スターター キット - さまざまな色必要な部品
このプロジェクトには次の部品が必要です。

  • ESP32 DEVKIT V1 ボード
  • RGB LED
  • 3オーム抵抗器220個
  • ジャンパー線
  • ブレッドボード

回路図LAFVIN ESP32 ベーシック スターター キット - 回路図コード
Arduino IDE を使用して ESP32 をプログラムします。続行する前に、ESP32 アドオンがインストールされていることを確認してください。(この手順をすでに実行している場合は、次の手順に進むことができます。)

  • Arduino IDEにESP32アドオンをインストールする

回路を組み立てた後、コードを開く
プロジェクト_6_RGB_LED_WebArduino IDE の _Server.ino。
コードをアップロードする前に、ESP がローカル ネットワークに接続できるようにネットワーク資格情報を入力することを忘れないでください。LAFVIN ESP32 ベーシックスターターキット - ローカルネットワークコードの仕組み
ESP32 スケッチは WiFi.h ライブラリを使用します。LAFVIN ESP32 ベーシック スターター キット - WiFi.h ライブラリ次の行は、リクエストからの R、G、B パラメータを保持するための文字列変数を定義します。LAFVIN ESP32 ベーシックスターターキット - ストリング redString次の 4 つの変数は、後で HTTP リクエストをデコードするために使用されます。LAFVIN ESP32 ベーシック スターター キット - HTTP リクエストストリップの R、G、B パラメータを制御する GPIO 用の 13 つの変数を作成します。この場合、GPIO 12、GPIO 14、GPIO XNUMX を使用します。LAFVIN ESP32 ベーシックスターターキット - GPIOが必要これらのGPIOはPWM信号を出力する必要があるため、まずPWMプロパティを設定する必要があります。PWM信号周波数を5000Hzに設定します。次に、各色にPWMチャネルを関連付けます。LAFVIN ESP32 ベーシックスターターキット - 各色最後に、PWMチャンネルの解像度を8ビットに設定します。LAFVIN ESP32 ベーシック スターター キット - PWM チャネルsetup()でPWMプロパティをPWMチャネルに割り当てますLAFVIN ESP32 ベーシック スターター キット - PWM チャネルPWMチャンネルを対応するGPIOに接続するLAFVIN ESP32 ベーシックスターターキット - 対応するGPIO次のコードセクションは、カラーピッカーを表示します。 web ページにアクセスし、選択した色に基づいてリクエストを行います。LAFVIN ESP32 ベーシックスターターキット - ピックアップLAFVIN ESP32 ベーシック スターター キット - client.printlnLAFVIN ESP32 ベーシック スターター キット - client.println 1色を選択すると、次の形式のリクエストが届きます。LAFVIN ESP32 ベーシックスターターキット - 次の形式

したがって、この文字列を分割して、R、G、B パラメータを取得する必要があります。パラメータは redString、greenString、blueString 変数に保存され、0 から 255 までの値を持つことができます。LAFVIN ESP32 ベーシックスターターキット - ヘッダーLAFVIN ESP32 ベーシック スターター キット - ヘッダー 1ESP32でストリップを制御するには、ledcWrite()関数を使用して、HTTPからデコードされた値でPWM信号を生成します。 リクエスト。LAFVIN ESP32 ベーシック スターター キット - HTTP リクエスト 1注記: ESP32 を使用した PWM の詳細: プロジェクト 3 ESP32 PWM (アナログ出力)
ESP8266でストリップを制御するには、
analogWrite() 関数は、HTPP リクエストからデコードされた値を使用して PWM 信号を生成します。
アナログ書き込み(redPin、redString.toInt());
アナログ書き込み(greenPin、greenString.toInt());
アナログ書き込み(bluePin、blueString.toInt())
値は文字列変数で取得されるため、toInt() メソッドを使用して整数に変換する必要があります。
デモンストレーション
ネットワーク資格情報を入力したら、適切なボードと COM ポートを選択し、コードを ESP32 にアップロードします。コードのアップロードの参照手順。
アップロード後、ボーレート 115200 でシリアル モニターを開き、ESP 有効化/リセット ボタンを押します。ボードの IP アドレスが取得されます。LAFVIN ESP32 ベーシックスターターキット - 同じLANブラウザを開いて、ESP IP アドレスを入力します。次に、カラー ピッカーを使用して RGB LED の色を選択します。
次に、色を有効にするには、「色の変更」ボタンを押す必要があります。LAFVIN ESP32 ベーシック スターターキット - RGB LEDRGB LED をオフにするには、黒色を選択します。
最も強い色 (カラーピッカーの上部にある色) は、より良い結果を生み出す色です。LAFVIN ESP32 ベーシックスターターキット - より良い結果

プロジェクト 7 ESP32 リレー Web サーバ

ESP32 でリレーを使用すると、AC 家電製品をリモートで制御するのに最適です。このチュートリアルでは、ESP32 を使用してリレー モジュールを制御する方法について説明します。
リレーモジュールの仕組み、リレーをESP32に接続して構築する方法を見ていきます。 web リレーをリモートで制御するサーバー。
リレーの紹介
リレーは電気で作動するスイッチで、他のスイッチと同様に、オンまたはオフにしたり、電流を流したり流さなかったりすることができます。低電圧で制御できます。tagESP3.3 GPIOによって提供される32Vのような高電圧を制御できます。tag12V、24V、主電源電圧などtage (ヨーロッパでは230V、米国では120V)。LAFVIN ESP32 ベーシックスターターキット - リレーの紹介左側には、高電圧を接続するための3つのソケットが2セットあります。tages、右側のピン(低電圧tage) ESP32 GPIO に接続します。
メインVol。tage接続LAFVIN ESP32 ベーシックスターターキット - メインボリュームtage接続前の写真のリレー モジュールには 2 つのコネクタがあり、それぞれに共通 (COM)、通常閉 (NC)、通常開 (NO) の 3 つのソケットがあります。

  • COM: 制御したい電流(主電源電圧)を接続しますtage)。
  • NC (通常閉): 通常閉構成は、リレーをデフォルトで閉じたい場合に使用します。NC ピンは COM ピンに接続されており、ESP32 からリレー モジュールに信号を送信して回路を開き、電流の流れを停止しない限り、電流が流れていることを意味します。
  • NO (通常開): 通常開構成は逆に動作します。NO ピンと COM ピンの間に接続がないため、ESP32 から回路を閉じる信号を送信しない限り、回路は切断されます。

制御ピンLAFVIN ESP32 ベーシック スターターキット - 制御ピン低ボラティリティtage 側には 1 つのピンのセットと 1 つのピンのセットがあります。最初のセットは、モジュールに電源を供給するための VCC と GND、およびそれぞれ下部と上部のリレーを制御するための入力 2 (IN2) と入力 XNUMX (INXNUMX) で構成されています。
リレー モジュールにチャネルが 1 つしかない場合は、IN ピンも 1 つだけあります。チャネルが 4 つある場合は、IN ピンも 4 つあります。
IN ピンに送信する信号によって、リレーがアクティブかどうかが決まります。入力が約 2V を下回るとリレーがトリガーされます。つまり、次のようなシナリオになります。

  • 通常閉構成(NC):
  • HIGH信号 – 電流が流れている
  • LOW信号 – 電流が流れていない
  • 通常開構成(NO):
  • HIGH信号 – 電流が流れていない
  • LOW信号 – 電流が流れている

ほとんどの場合に電流が流れていて、ときどきだけ電流を停止したい場合には、常時閉構成を使用する必要があります。
時々電流を流したい場合(例:ample、alをオンにするamp たまに)。
電源の選択LAFVIN ESP32 ベーシックスターターキット - 電源の選択2 番目のピン セットは、GND、VCC、および JD-VCC ピンで構成されます。
JD-VCC ピンはリレーの電磁石に電力を供給します。モジュールには VCC ピンと JD-VCC ピンを接続するジャンパー キャップがあることに注意してください。ここに示すのは黄色ですが、お使いのモジュールは異なる色である可能性があります。
ジャンパー キャップを装着すると、VCC ピンと JD-VCC ピンが接続されます。つまり、リレー電磁石は ESP32 電源ピンから直接電力を供給されるため、リレー モジュールと ESP32 回路は物理的に分離されません。
ジャンパー キャップがない場合、JD-VCC ピンを介してリレーの電磁石に電力を供給するための独立した電源を用意する必要があります。この構成では、モジュールに組み込まれたオプトカプラを使用してリレーを ESP32 から物理的に分離し、電気スパイクが発生した場合に ESP32 が損傷するのを防ぎます。
回路図LAFVIN ESP32 ベーシック スターター キット - 回路図警告: 高ボリュームの使用tag電源装置が故障すると、重大な傷害を引き起こす可能性があります。
そのため、高供給電圧の代わりに5mmのLEDが使用される。tag実験では、電球を使用します。メインボリュームに慣れていない場合はtag誰かに助けを求めてください。ESPをプログラミングしたり回路を配線したりするときは、すべてが主電源から切り離されていることを確認してください。tage.LAFVIN ESP32 ベーシックスターターキット - メインボリュームtageESP32用ライブラリのインストール
これを構築するには web サーバーではESPAsyncを使用しますWebサーバー ライブラリと AsyncTCP ライブラリ。
ESPAsyncのインストールWebサーバーライブラリ
インストールするには、次の手順に従ってください。 ESPAシンクWebサーバ 図書館:

  1. ESPAsyncをダウンロードするにはここをクリックしてくださいWebサーバーライブラリ。
    ダウンロードフォルダ内の.zipフォルダ
  2. .zipフォルダを解凍するとESPAsyncが取得されます。Webサーバーマスターフォルダ
  3. ESPAsyncからフォルダの名前を変更するWebサーバーマスターからESPAsyncへWebサーバ
  4. ESPAsyncを移動するWebサーバーフォルダをArduino IDEインストールライブラリフォルダへ

あるいは、Arduino IDEでスケッチ > インクルードに移動することもできます。
ライブラリ > .ZIP ライブラリを追加… を選択し、ダウンロードしたライブラリを選択します。
ESP32 用 AsyncTCP ライブラリのインストール
ESPAシンクWebサーバ ライブラリには 非同期TCP 図書館で仕事。フォロー
そのライブラリをインストールするための次の手順:

  1. AsyncTCPライブラリをダウンロードするにはここをクリックしてください。ダウンロードフォルダに.zipフォルダがあるはずです。
  2. .zipフォルダを解凍すると、AsyncTCP-masterフォルダが出てきます。
    1. フォルダの名前をAsyncTCP-masterからAsyncTCPに変更します。
    3. AsyncTCPフォルダをArduino IDEインストールライブラリフォルダに移動します。
    4. 最後に、Arduino IDEを再度開きます。

あるいは、Arduino IDEでスケッチ > インクルードに移動することもできます。
ライブラリ > .ZIP ライブラリを追加… を選択し、ダウンロードしたライブラリを選択します。
コード
Arduino IDE を使用して ESP32 をプログラムします。続行する前に、ESP32 アドオンがインストールされていることを確認してください。(この手順をすでに実行している場合は、次の手順に進むことができます。)
Arduino IDEにESP32アドオンをインストールする
必要なライブラリをインストールしたら、コードProject_7_ESP32_Relay_を開きます。WebArduino IDE の _Server.ino。
コードをアップロードする前に、ESP がローカル ネットワークに接続できるようにネットワーク資格情報を入力することを忘れないでください。LAFVIN ESP32 ベーシックスターターキット - ローカルネットワークデモンストレーション
必要な変更を行った後、コードを ESP32 にアップロードします。コード参照のアップロード手順を参照してください。
シリアルモニターをボーレート115200で開き、ESP32 ENボタンを押してIPアドレスを取得します。次に、ローカルネットワークでブラウザを開き、ESP32 IPアドレスを入力してアクセスします。 web サーバ。
シリアルモニターをボーレート115200で開き、ESP32 ENボタンを押してIPアドレスを取得します。次に、ローカルネットワークでブラウザを開き、ESP32 IPアドレスを入力してアクセスします。 web サーバ。LAFVIN ESP32 ベーシックスターターキット - web サーバ注記: ブラウザと ESP32 は同じ LAN に接続されている必要があります。
コードで定義したリレーの数と同じ数のボタンが 2 つある次のような画面が表示されます。LAFVIN ESP32 ベーシックスターターキット - スマートフォンこれで、ボタンを使用してスマートフォンからリレーを制御できるようになります。LAFVIN ESP32 ベーシックスターターキット - スマートフォン 1

プロジェクト8出力状態同期 Web_サーバ

このプロジェクトでは、ESP32またはESP8266の出力を web サーバーと物理ボタンを同時に操作します。出力状態はサーバー上で更新されます。 web ページは物理的なボタンで変更されるか、 web サーバ。
プロジェクトオーバーview
プロジェクトの仕組みを簡単に見てみましょう。LAFVIN ESP32 ベーシック スターター キット - プロジェクト終了viewESP32またはESP8266は、 web 出力の状態を制御できるサーバー。

  • 現在の出力状態は web サーバ;
  • ESP は、同じ出力を制御する物理的なプッシュボタンにも接続されています。
  • 物理的なプッシュボタンを使用して出力状態を変更すると、現在の状態も更新されます。 web サーバ。

要約すると、このプロジェクトでは、同じ出力を web サーバーとプッシュボタンを同時に押します。出力状態が変化するたびに、 web サーバーが更新されました。
必要な部品
回路を構築するために必要な部品のリストは次のとおりです。

  • ESP32 DEVKIT V1 ボード
  • 5mm LED
  • 220オーム抵抗器
  • ボタンを押す
  • 10kオームの抵抗
  • ブレッドボード
  • ジャンパー線

回路図LAFVIN ESP32 ベーシック スターター キット - 回路図 1ESP32用ライブラリのインストール
これを構築するには web サーバーではESPAsyncを使用しますWebサーバー ライブラリと AsyncTCP ライブラリ。(この手順をすでに実行している場合は、次の手順に進むことができます。)
ESPAsyncのインストールWebサーバーライブラリ
ESPAsyncをインストールするには、次の手順に従ってください。Webサーバーライブラリ:

  1. ESPAsyncをダウンロードするにはここをクリックしてくださいWebサーバーライブラリ。
    ダウンロードフォルダ内の.zipフォルダ
  2. .zipフォルダを解凍するとESPAsyncが取得されます。Webサーバーマスターフォルダ
  3. ESPAsyncからフォルダの名前を変更するWebサーバーマスターからESPAsyncへWebサーバ
  4. ESPAsyncを移動するWebサーバーフォルダをArduino IDEインストールライブラリフォルダへ
    あるいは、Arduino IDEでスケッチ > インクルードに移動することもできます。
    ライブラリ > .ZIP ライブラリを追加… を選択し、ダウンロードしたライブラリを選択します。

ESP32 用 AsyncTCP ライブラリのインストール
ESPAsyncはWebサーバー ライブラリが動作するには AsyncTCP ライブラリが必要です。次の手順に従ってライブラリをインストールしてください。

  1. AsyncTCPライブラリをダウンロードするにはここをクリックしてください。ダウンロードフォルダに.zipフォルダがあるはずです。
  2. .zipフォルダを解凍すると、AsyncTCP-masterフォルダが出てきます。
  3. フォルダの名前をAsyncTCP-masterからAsyncTCPに変更します。
  4. AsyncTCPフォルダをArduino IDEインストールライブラリフォルダに移動します。
  5. 最後に、Arduino IDEを再度開きます。
    あるいは、Arduino IDEでスケッチ > インクルードに移動することもできます。
    ライブラリ > .ZIP ライブラリを追加… を選択し、ダウンロードしたライブラリを選択します。

コード
Arduino IDE を使用して ESP32 をプログラムします。続行する前に、ESP32 アドオンがインストールされていることを確認してください。(この手順をすでに実行している場合は、次の手順に進むことができます。)
Arduino IDEにESP32アドオンをインストールする
必要なライブラリをインストールしたら、コードを開きます
プロジェクト8出力状態同期WebArduino IDE の _Server.ino。
コードをアップロードする前に、ESP がローカル ネットワークに接続できるようにネットワーク資格情報を入力することを忘れないでください。LAFVIN ESP32 ベーシックスターターキット - コード

コードの仕組み

ボタンの状態と出力の状態
ledState変数はLED出力状態を保持します。デフォルトでは、 web サーバーが起動すると、LOW になります。LAFVIN ESP32 ベーシック スターター キット - Code Works

buttonState と lastButtonState は、プッシュボタンが押されたかどうかを検出するために使用されます。LAFVIN ESP32 ベーシックスターターキット - 押されましたボタン (web サーバ)
ボタンを作成するための HTML を index_html 変数に含めませんでした。
これは、プッシュボタンで変更できる現在の LED の状態に応じて変更できるようにするためです。
そこで、ボタンのプレースホルダー %BUTTONPLACEHOLDER% を作成しました。これは、後でコード上でボタンを作成するために HTML テキストに置き換えられます (これは、processor() 関数で実行されます)。LAFVIN ESP32 ベーシックスターターキット - 1 が押されましたプロセッサ()
プロセッサ関数は、HTMLテキスト上のプレースホルダーを実際の値に置き換えます。まず、HTMLテキストに
プレースホルダー %BUTTONPLACEHOLDER%。LAFVIN ESP32 ベーシックスターターキット - プロセッサ次に、現在の出力状態を返す outputState() 関数を呼び出します。これを outputStateValue 変数に保存します。LAFVIN ESP32 ベーシックスターターキット - outputStateその後、その値を使用して、適切な状態のボタンを表示する HTML テキストを作成します。LAFVIN ESP32 ベーシックスターターキット - コード 4出力状態を変更するための HTTP GET リクエスト (JavaScript)
ボタンを押すとtoggleCheckbox()関数が呼び出されます。この関数は異なるリクエストを行います。 URLLED をオンまたはオフにします。LAFVIN ESP32 ベーシックスターターキット - JavaScriptLEDを点灯するには、/update?state=1でリクエストを送信します。 URL:LAFVIN ESP32 ベーシック スターター キット - element.checkedそれ以外の場合は、/update?state=0でリクエストを行います。 URL.
状態を更新するための HTTP GET リクエスト (JavaScript)
出力状態を最新の状態に保つには web サーバーでは、/stateに新しいリクエストを作成する次の関数を呼び出します。 URL 毎秒。LAFVIN ESP32 ベーシック スターター キット - 更新状態LAFVIN ESP32 ベーシック スターター キット - 更新状態 1リクエストの処理
次に、ESP32またはESP8266がそれらのリクエストを受け取ったときに何が起こるかを処理する必要があります。 URLs.
ルートでリクエストを受信すると、URL、プロセッサだけでなく HTML ページも送信します。LAFVIN ESP32 ベーシック スターター キット - リクエストの処理LAFVIN ESP32 ベーシック スターター キット - リクエストの処理 1次の行は、/update?state=1 または /update?state=0 でリクエストを受信したかどうかを確認します。 URL それに応じて ledState を変更します。LAFVIN ESP32 ベーシック スターター キット - ledStateLAFVIN ESP32 ベーシック スターター キット - inputParam/stateでリクエストを受信すると URL現在の出力状態を送信します。LAFVIN ESP32 ベーシックスターターキット - 出力状態ループ()
loop()では、プッシュボタンをデバウンスし、ledStateの値に応じてLEDをオンまたはオフにします。 変数。LAFVIN ESP32 ベーシック スターター キット - ループ 1デモンストレーション
コードを ESP32 ボードにアップロードします。コードのアップロードの参照手順。
次に、ボーレート 115200 でシリアル モニターを開きます。オンボードの EN/RST ボタンを押して IP アドレスを取得します。LAFVIN ESP32 ベーシックスターターキット - デモローカルネットワークでブラウザを開き、ESP IPアドレスを入力します。 web 以下に示すようにサーバーです。
注記: ブラウザと ESP32 は同じ LAN に接続されている必要があります。LAFVIN ESP32 ベーシックスターターキット - ブラウザボタンを切り替えることができます web サーバーが LED をオンにします。LAFVIN ESP32 ベーシックスターターキット - web 1サーバー同じLEDを物理的なプッシュボタンで制御することもできます。その状態は常に自動的に更新されます。 web サーバ。

プロジェクト9 ESP32 DHT11 Web サーバ

このプロジェクトでは、非同期ESP32の構築方法を学びます。 web Arduino IDE を使用して温度と湿度を表示する DHT11 を搭載したサーバー。
前提条件
の web 私たちが構築するサーバーは、更新する必要なく自動的に測定値を更新します。 web ページ。
このプロジェクトでは以下のことを学びます:

  • DHT センサーから温度と湿度を読み取る方法。
  • 非同期を構築する web サーバーを使用する ESPAシンクWebサーバーライブラリ;
  • 更新する必要なくセンサーの読み取り値を自動的に更新します。 web ページ。

非同期 Web サーバ
構築するには web サーバーでは ESPAシンクWebサーバーライブラリ 非同期のアプリケーションを簡単に構築できる web サーバー。非同期の構築 web サーバーにはいくつかの利点がありますtagライブラリの GitHub ページに記載されているものと同じもの、たとえば次のようになります。

  • 「複数の接続を同時に処理する」
  • 「応答を送信すると、サーバーがバックグラウンドで応答の送信を処理している間に、すぐに他の接続を処理できるようになります。」
  • 「テンプレートを処理するためのシンプルなテンプレート処理エンジン」

必要な部品
このチュートリアルを完了するには、次の部品が必要です。

  • ESP32開発ボード
  • DHT11モジュール
  • ブレッドボード
  • ジャンパー線

回路図LAFVIN ESP32 ベーシック スターター キット - 回路図 2ライブラリのインストール
このプロジェクトでは、いくつかのライブラリをインストールする必要があります。

DHT センサー ライブラリのインストール
Arduino IDEを使用してDHTセンサーから読み取るには、 DHT センサー ライブラリライブラリをインストールするには、次の手順に従ってください。

  1. DHTセンサーライブラリをダウンロードするにはここをクリックしてください。ダウンロードフォルダに.zipフォルダがあるはずです。
  2. .zipフォルダを解凍すると、DHT-sensor-library-masterフォルダが出てきます。
  3. フォルダの名前をDHT-sensor-library-masterからDHT_sensorに変更します。
  4. DHT_sensorフォルダをArduino IDEインストールライブラリフォルダに移動します。
  5. 最後に、Arduino IDEを再度開きます。

Adafruit 統合センサー ドライバーのインストール
また、 Adafruit 統合センサードライバーライブラリ DHT センサーで作業するには、次の手順に従ってライブラリをインストールしてください。

  1. Adafruit Unified Sensorライブラリをダウンロードするには、ここをクリックしてください。ダウンロードフォルダに.zipフォルダがあるはずです。
  2. .zipフォルダを解凍すると、Adafruit_sensor-masterフォルダが出てきます。
  3. フォルダの名前をAdafruit_sensor-masterからAdafruit_sensorに変更します。
  4. Adafruit_sensorフォルダをArduino IDEインストールライブラリフォルダに移動します。
  5. 最後に、Arduino IDEを再度開きます。

ESPAsyncのインストールWebサーバーライブラリ

インストールするには、次の手順に従ってください。 ESPAシンクWebサーバ 図書館:

  1. ESPAsyncをダウンロードするにはここをクリックしてくださいWebサーバーライブラリ。
    ダウンロードフォルダ内の.zipフォルダ
  2. .zipフォルダを解凍すると、
    ESPAsync を入手Webサーバーマスターフォルダ
  3. ESPAsyncからフォルダの名前を変更するWebサーバーマスターからESPAsyncへWebサーバ
  4. ESPAsyncを移動するWebサーバーフォルダをArduino IDEインストールライブラリフォルダへ

ESP32 用非同期 TCP ライブラリのインストール
ESPAシンクWebサーバ ライブラリには 非同期TCP ライブラリが機能するには、次の手順に従ってライブラリをインストールしてください。

  1. AsyncTCPライブラリをダウンロードするにはここをクリックしてください。ダウンロードフォルダに.zipフォルダがあるはずです。
  2. .zipフォルダを解凍すると、AsyncTCP-masterフォルダが出てきます。
  3. フォルダの名前をAsyncTCP-masterからAsyncTCPに変更します。
  4. AsyncTCPフォルダをArduino IDEインストールライブラリフォルダに移動します。
  5. 最後に、Arduino IDEを再度開きます。

コード
Arduino IDE を使用して ESP32 をプログラムします。続行する前に、ESP32 アドオンがインストールされていることを確認してください。(この手順をすでに実行している場合は、次の手順に進むことができます。)
Arduino IDEにESP32アドオンをインストールする
必要なライブラリをインストールしたら、コードを開きます
プロジェクト_9_ESP32_DHT11_WebArduino IDE の _Server.ino。
コードをアップロードする前に、ESP がローカル ネットワークに接続できるようにネットワーク資格情報を入力することを忘れないでください。LAFVIN ESP32 ベーシックスターターキット - コードコードの仕組み
次の段落では、コードがどのように機能するかを説明します。詳細を知りたい場合は読み続けるか、デモンストレーション セクションに進んで最終結果を確認してください。
ライブラリのインポート
まず、必要なライブラリをインポートします。WiFi、ESPAsyncWebサーバーとESPAsyncTCPは、 web サーバー。DHT11 または DHT22 センサーから読み取るには、Adafruit_Sensor と DHT ライブラリが必要です。LAFVIN ESP32 ベーシック スターター キット - ライブラリのインポートLAFVIN ESP32 ベーシック スターター キット - コードの仕組み変数の定義
DHT データ ピンが接続されている GPIO を定義します。この場合、GPIO 4 に接続されます。LAFVIN ESP32 基本スターターキット - 変数の定義次に、使用するDHTセンサーの種類を選択します。ampたとえば、DHT22 を使用しています。別のタイプを使用している場合は、センサーのコメントを外し、他のすべてのセンサーをコメントするだけです。LAFVIN ESP32 基本スターターキット - 変数の定義 1

先ほど定義したタイプとピンを使用して DHT オブジェクトをインスタンス化します。LAFVIN ESP32 基本スターターキット - 変数の定義 2非同期を作成するWebポート 80 上のサーバー オブジェクト。LAFVIN ESP32 基本スターターキット - 変数の定義 3温度と湿度の関数を読む
2 つの関数を作成しました。1 つは温度を読み取る関数 (readDHTTemperature())、もう 1 つは湿度を読み取る関数 (readDHTHumidity()) です。LAFVIN ESP32 ベーシックスターターキット - readDHTHumidityLAFVIN ESP32 ベーシックスターターキット - センサー読み取りセンサーの読み取り値を取得するのは、dht オブジェクトの readTemperature() メソッドと readHumidity() メソッドを使用するのと同じくらい簡単です。LAFVIN ESP32 ベーシックスターターキット - オブジェクトまた、センサーが読み取りに失敗した場合に備えて、2 つのダッシュ (–) を返す条件もあります。LAFVIN ESP32 ベーシックスターターキット - 読み物読み取り値は文字列型で返されます。浮動小数点数を文字列に変換するには、String()関数を使用します。LAFVIN ESP32 ベーシックスターターキット - ストリングデフォルトでは、温度は摂氏で読み取られます。華氏で温度を取得するには、摂氏での温度をコメント化し、華氏での温度のコメントを解除して、次のようになります。LAFVIN ESP32 ベーシックスターターキット - 華氏LAFVIN ESP32 ベーシック スターター キット - 華氏 1コードをアップロードする
次に、コードを ESP32 にアップロードします。適切なボードと COM ポートが選択されていることを確認してください。コードのアップロードの参照手順。
アップロード後、ボーレート115200でシリアルモニターを開きます。ESP32のリセットボタンを押します。ESP32のIPアドレスはシリアルに印刷されます。 モニター。LAFVIN ESP32 ベーシック スターター キット - コードをアップロードデモンストレーション
ブラウザを開いてESP32のIPアドレスを入力します。 web サーバーは最新のセンサー読み取り値を表示する必要があります。
注記: ブラウザと ESP32 は同じ LAN に接続されている必要があります。
温度と湿度の測定値は、更新する必要なく自動的に更新されることに注意してください。 web ページ。LAFVIN ESP32 ベーシックスターターキット - デモ 1

プロジェクト_10_ESP32_OLED_ディスプレイ

このプロジェクトでは、Arduino IDE を使用して、0.96 インチ SSD1306 OLED ディスプレイを ESP32 で使用する方法を示します。
0.96インチOLEDディスプレイのご紹介
OLEDディスプレイ このチュートリアルで使用するのは、次の図に示すように、1306×0.96 ピクセルの単色 128 インチ ディスプレイである SSD64 モデルです。LAFVIN ESP32 ベーシックスターターキット - OLEDDisplayOLED ディスプレイはバックライトを必要としないため、暗い環境でも非常に優れたコントラストが得られます。さらに、ピクセルはオンのときのみ電力を消費するため、OLED ディスプレイは他のディスプレイと比較して消費電力が少なくなります。
OLEDディスプレイはI2C通信プロトコルを使用しているため、配線は非常に簡単です。次の表を参考にしてください。

OLEDピン ESP32
ヴィン 3.3V
グランド グランド
SCL GPIO22
SDA GPIO21

回路図LAFVIN ESP32 ベーシック スターター キット - 回路図SSD1306 OLED ライブラリのインストール – ESP32
ESP32 で OLED ディスプレイを制御するために利用できるライブラリがいくつかあります。
このチュートリアルでは、2 つの Adafruit ライブラリを使用します。 Adafruit_SSD1306 ライブラリ そして Adafruit_GFX ライブラリ.
これらのライブラリをインストールするには、次の手順に従ってください。

  1. Arduino IDE を開き、「スケッチ」>「ライブラリのインクルード」>「ライブラリの管理」に移動します。ライブラリ マネージャーが開きます。
  2. 検索ボックスに「SSD1306」と入力し、Adafruit から SSD1306 ライブラリをインストールします。LAFVIN ESP32 ベーシックスターターキット - OLEDLibrary–
  3. Adafruit から SSD1306 ライブラリをインストールした後、検索ボックスに「GFX」と入力してライブラリをインストールします。LAFVIN ESP32 ベーシックスターターキット - ライブラリ
  4. ライブラリをインストールしたら、Arduino IDE を再起動します。

コード
必要なライブラリをインストールしたら、Arduino IDEでProject_10_ESP32_OLED_Display.inoを開きます。コード
Arduino IDE を使用して ESP32 をプログラムします。続行する前に、ESP32 アドオンがインストールされていることを確認してください。(この手順をすでに実行している場合は、次の手順に進むことができます。)
Arduino IDEにESP32アドオンをインストールするLAFVIN ESP32 ベーシック スターター キット - コード 1LAFVIN ESP32 ベーシック スターター キット - コード 2LAFVIN ESP32 ベーシック スターター キット - コード 3コードの仕組み
ライブラリのインポート
まず、必要なライブラリをインポートする必要があります。I2C を使用するための Wire ライブラリと、ディスプレイに書き込むための Adafruit ライブラリ (Adafruit_GFX と Adafruit_SSD1306) です。LAFVIN ESP32 ベーシック スターター キット - Code Works 1LAFVIN ESP32 ベーシック スターター キット - Code Works 2OLEDディスプレイを初期化する
次に、OLEDの幅と高さを定義します。この例ではampたとえば、128×64 の OLED ディスプレイを使用しています。他のサイズを使用している場合は、SCREEN_WIDTH および SCREEN_HEIGHT 変数で変更できます。LAFVIN ESP32 ベーシック スターター キット - OLED ディスプレイ次に、I2C 通信プロトコル (&Wire) を使用して、先ほど定義した幅と高さで表示オブジェクトを初期化します。LAFVIN ESP32 基本スターターキット - 通信プロトコル(-1) パラメータは、OLED ディスプレイに RESET ピンがないことを意味します。OLED ディスプレイに RESET ピンがある場合は、GPIO に接続する必要があります。その場合は、GPIO 番号をパラメータとして渡す必要があります。
setup() では、デバッグの目的でシリアル モニターをボー レート 115200 で初期化します。LAFVIN ESP32 ベーシックスターターキット - 目的次のように、begin() メソッドを使用して OLED ディスプレイを初期化します。LAFVIN ESP32 ベーシックスターターキット - display.beginLAFVIN ESP32 ベーシック スターター キット - Serial.printlnこのスニペットは、ディスプレイに接続できない場合に備えて、シリアル モニターにメッセージも出力します。

LAFVIN ESP32 ベーシック スターター キット - Serial.println 1別の OLED ディスプレイを使用している場合は、OLED アドレスを変更する必要がある場合があります。この場合、アドレスは 0x3C です。LAFVIN ESP32 ベーシックスターターキット - アドレスディスプレイを初期化した後、テキストを書き込む前に OLED が初期化するのに十分な時間を確保するために、2 秒の遅延を追加します。LAFVIN ESP32 ベーシックスターターキット - 遅延表示をクリアし、フォントサイズ、色を設定し、テキストを書き込む
ディスプレイを初期化した後、clearDisplay() メソッドを使用してディスプレイ バッファをクリアします。LAFVIN ESP32 ベーシックスターターキット - ディスプレイ

テキストを書き込む前に、テキストのサイズ、色、OLED 内でテキストが表示される場所を設定する必要があります。
setTextSize() メソッドを使用してフォント サイズを設定します。LAFVIN ESP32 ベーシック スターター キット - ディスプレイ 1setTextColor() メソッドを使用してフォントの色を設定します。
WHITE は白いフォントと黒い背景を設定します。
setCursor(x,y) メソッドを使用して、テキストの開始位置を定義します。この場合、テキストが (0,0) 座標、つまり左上隅から開始するように設定します。LAFVIN ESP32 ベーシック スターター キット - setTextColor 1最後に、次のようにprintln()メソッドを使用してテキストをディスプレイに送信します。LAFVIN ESP32 ベーシックスターターキット - コード 5次に、display() メソッドを呼び出して、実際に画面にテキストを表示する必要があります。LAFVIN ESP32 ベーシックスターターキット - ディスプレイ

Adafruit OLED ライブラリは、テキストを簡単にスクロールするための便利なメソッドを提供します。

  • startscrollright(0x00, 0x0F): テキストを左から右にスクロールします
  • startscrollleft(0x00, 0x0F): テキストを右から左にスクロールします
  • startscrolldiagright(0x00, 0x07): テキストを左下隅から右上隅までスクロールします startscrolldiagleft(0x00, 0x07): テキストを右下隅から左上隅までスクロールします

コードをアップロードする
次に、コードを ESP32 にアップロードします。コード参照のアップロード手順。
コードをアップロードすると、OLED にスクロールテキストが表示されます。LAFVIN ESP32 ベーシック スターター キット - スクロール テキストLAFVIN ロゴ

ドキュメント / リソース

LAFVIN ESP32 ベーシックスターターキット [pdf] 取扱説明書
ESP32 ベーシック スターター キット、ESP32、ベーシック スターター キット、スターター キット

参考文献

コメントを残す

あなたのメールアドレスは公開されません。 必須項目はマークされています *