- ESP8266とは何ですか?
- WiFi理論の基礎:
- ESP8266を使用したプログラミングの種類:
- ESP8266モジュールをプログラムするハードウェア:
- 必要な材料:
- 回路の説明:
- ESP8266をプログラムするためのボードの構築:
モノのインターネットとホームオートメーションは、最近非常に話題になっています。ワールドワイドウェブと通信でき、世界中のどこからでもアクセスできるものを自分たちで構築するのは、本当にクールですね。
ちょっと待って!!!それも複雑に聞こえます???…。
私もそうしました。インターネットとやり取りできるものを作るには、膨大な時間とスキルが必要だと思いました。いいえ、Espressif SystemsのESP8266と呼ばれるこの素晴らしいモジュールのおかげで、私は完全に間違っていました。これで、このモジュールを使用して、IoTプロジェクトへの扉を簡単に開くことができます。この低コストで小さなサイズのモジュールは、適切な手順を実行すれば、驚異的な効果があり、非常にシンプルで使いやすいものです。
このチュートリアルは、このESP8266-01モジュール を紹介し、使い始めるのに役立つことを目的としています。おそらく、あなたはすでにモジュールを持ってきて、それを使おうとしている間に立ち往生しています。次に、あなただけでは心配しないでください。このモジュールの適切なガイダンスやドキュメントがないため、多くの人がモジュールを開始するのが非常に難しいと感じています。これがこのチュートリアルを作成する理由です。こちらの手順に従ってください。ESP8266-01モジュールをすぐに起動して実行できるはずです。ここでは、FTDI USB toTTLシリアルアダプターモジュールを使用してESP8266をプログラムします。チュートリアルの最後にある詳細なビデオを確認してください。
トピックに入る前に、ESP8266-01モジュールに関するいくつかの基本をカバーしましょう。
ESP8266とは何ですか?
ほとんどの人はESP8266をWIFIモジュールと呼んでいますが、実際にはマイクロコントローラーです。ESP8266は、上海を拠点とする会社であるEspressifSystemsによって開発されたマイクロコントローラーの名前です。このマイクロコントローラは、WIFI関連のアクティビティを実行する機能を備えているため、WIFIモジュールとして広く使用されています。
ESP8266-01からESP8266-12まで、さまざまな種類のESP8266モジュールを利用できます。チュートリアルで使用しているのはESP8266-01です。これは、最も安価で簡単に入手できるためです。ただし、すべてのESPモジュールには1種類のESPプロセッサしかありません。異なるのは、使用されるブレークアウトバードの種類だけです。ESP8266-01のブレークアウトボードには2つのGPIOピンしかありませんが、他のボードではそれより高くなります。
モジュールの完全な仕様を以下の表に示します。
電圧 |
3.3V |
現在の消費量 |
10uA-170mA |
点滅中の最大消費電流 |
800mA |
フラッシュメモリー |
16MB(通常512K) |
プロセッサー |
テンシリカL10632ビット |
プロセッサ速度 |
80-160MHz |
羊 |
32K + 80K |
GPIO |
17(ただし、ほとんどは多重化されています) |
アナログ-デジタルコンバーター |
1(10ビット) |
最大TCP接続 |
5 |
仕様について驚いたかもしれないいくつかのことは、はい、ESP8266モジュールにはADCコンバーターが付属しており、デバイスのフラッシュ中に0.8Aの非常に高い電流を消費します。
また、さまざまなESP8266ベースの興味深いIoTプロジェクトも確認してください。
WiFi理論の基礎:
転送制御プロトコル(TCP)、インターネットプロトコル(IP)、ユーザーデータグラムプロトコル(UDP)、アクセスポイント(AP)、ステーション(Sta)、サービスセット識別子(SSID)、アプリケーションプログラミングインターフェイス(API)、Webサーバー… 。
上記のすべての用語はあなたにとって意味がありますか?
もし、そうなら。次に、ビンゴはこの部分をジャンプして次のセクションに移動できます。
もしそうなら、いいえ。それなら、あなたは私が最初にこれらすべてのものを紹介されたときと同じように、これらの用語のほとんどをまばたきしたばかりの多くの電気学生の一人でなければなりません。ですから、これらすべての用語をすばやく実行してみましょう。そうして初めて、IOTの世界に参入することができます。
転送制御プロトコル(TCP):
私たちのほとんどは、これが何を意味するのかを知っているでしょう。はい、これらはインターネットが機能するための一連のルールです。ESP8266にはWIFI接続をセットアップする機能があるため。高レベルのWi-Fiは、ワイヤレスリンクを介してTCP / IP接続に参加する機能です。ESPをTCP / IPプロトコルまたはUDPプロトコルで動作させることができます。
ユーザーデータグラムプロトコル(UDP):
UDPも別のタイプのインターネットプロトコルです。このタイプの通信はTCPより高速ですが、精度は低くなります。その理由は、TCPは通信中に確認応答を使用しますが、UDPは使用しないためです。TCPは主に、高い信頼性が要求されるネットワークで使用されます。UDPは、信頼性よりも速度が優先される場所で使用されます。たとえば、UDPはビデオ会議で使用されます。一部のピクセルが送信されなくても、ビデオ品質にはそれほど影響しませんが、速度は非常に重要です。
ESP8266プロジェクトとコードのほとんどはTCP / IPを回避し、UDPはほとんど気になりません。
アクセスポイント(AP)とステーション(STA):
ESPモジュールの使用を開始すると、これら2つの用語に頻繁に遭遇します。あなたとあなたの友人があなたのスマートフォンでインターネットをサーフィンしたいとしましょう。しかし彼はアクティブなインターネット接続を持っていないので、あなたはあなたのホットスポットをオンにすることに決め、あなたの友人はそれに接続します。ここで、インターネット接続を提供している電話はアクセスポイント(AP)であり、インターネットを使用している友人の電話はステーション(STA)と呼ばれます。
ESP8266モジュールは、APモード、STAモード、またはSTAモードとAPモードの両方(組み合わせ)の3つのモードで使用できます。
サービスセット識別子(SSID):
これはかなり単純な用語です。私たちのほとんどすべてがWIFIを使用しています。Wi-Fiネットワークの名前はSSIDと呼ばれます。ステーションが接続するアクセスポイントが複数ある場合、ステーションは接続するアクセスポイントを認識している必要があるため、各アクセスポイント(AP)にはSSIDと呼ばれるIDが与えられます。
アプリケーションプログラミングインターフェイス(API):
簡単に言うと、APIは、リクエストを受け取り、処理して、システムに目的の結果を返すメッセンジャーです。インターネット上で行うほとんどのアクティビティは、フライトの予約やオンライン購入など、APIを使用します。すべてのWebサイトは、サインアップ、支払いなどの作業の一部が行われるAPIにリンクしています。そこ。
ESP8266は、APIを使用してインターネットの世界と通信します。たとえば、時間、気候、または対応するWebサイトへのAPIの形式で要求する必要があるものを知りたい場合です。そのウェブサイトはリクエストを受け取り、ESPモジュールに望ましい結果を返します。
Webサーバー:
Webサーバーは、Webサイトのコンテンツを表示する役割を果たします。その特定のWebサイトのすべてのコンテンツは、そのWebサーバーにロードされます。Webサーバーとしてのみ機能することを仕事とする専用コンピューターがあります。ESP8266をプログラムしてWebサーバーとして機能させ、世界中のどこからでも接続することもできます。
さて、これは私たちが始めるのに十分です。それでは、ハードウェアを手に入れましょう。
ESP8266を使用したプログラミングの種類:
ESP8266モジュールを操作する方法は2つあります。このチュートリアルは、両方を使い始めるのに役立ちます。1つの方法は、ATコマンドを使用することです。もう1つの方法は、ArduinoIDEを使用することです。それが何を意味するのか理解しましょう。
工場出荷時に出荷されるすべてのESP8266モジュールには、デフォルトのファームウェア(SDK + API)がロードされています。このファームウェアは、ATコマンドを使用してESP8266モジュールをプログラムするのに役立ちます。
もう1つの方法は、Arduino IDE(ボードは不要)とそのライブラリを使用してESP8266モジュールを直接プログラミングすることです。すべてのプロジェクトは、両方の方法で実行できます。ただし、ESP8266のプログラミングにArduino IDEの使用を開始すると、デフォルトのSDKが破損している可能性があるため、ATコマンドを使用できない場合があります。その場合、デフォルト設定でESPをフラッシュする必要があります。これについては、別のチュートリアルで説明します。
ESP8266モジュールをプログラムするハードウェア:
ESP8266は8端子モジュールです。同じものからのピンを以下に示します。
残念ながら、このモジュールはブレッドボードに対応していないため、ブレッドボードに直接マウントすることはできません。また、Arduinoとは異なり、USB toSerialドライバーは組み込まれていません。したがって、「FTDI USB toTTLシリアルアダプタモジュール」を使用して通信する必要があります。FTDIボードが3.3Vでも動作できることを確認してください。このチュートリアルで使用しているものを以下に示します。
さて、私たちが知っているように、3.3VでESP8266の電源を入れる必要があります。ただし、消費電流は0.8Aであるため、FTDIブレークアウトボードから電力を供給した場合、期待どおりに動作しない可能性があります。したがって、独自の電源回路を構築する必要があります。ここでは、電力供給の目的でLM317を使用しました。完全なハードウェアを作成するための詳細については、後のセクションで説明します。
必要な材料:
- パフォーマンスボード
- ESP8266-01
- FTDIブレイクアウトボード
- LM317
- 0.1ufコンデンサ
- 10ufコンデンサ
- バレルジャック
- Bergstikの男性と女性
- ボタンを押す
- 接続線
- ボードに電力を供給する12Vアダプター。
回路の説明:
ボードの回路図を以下に示します。
FTDIから直接ESPに電力を供給して動作させようとした人もいるかもしれませんが、いくつかの追加コンポーネントを使用して独自のボードを構築する理由は次のとおりです。
- ESPモジュールに十分な電流を供給できるFTDIボードはごくわずかです。フラッシュ中に他のモジュールよりも大電流を消費するESPモジュールはほとんどありません。したがって、独自の電源を使用することは常に安全であり、ブレッドボードではなくドットボードに電源回路を統合する方が簡単です。
- コードをアップロードする前に、必ずESPモジュールをリセットする必要があります。独自のボードを作成すると、モジュールを簡単にリセットできます。プッシュボタンを使用してESP8266をリセットしました。
- Arduinoを使用してプログラミングする場合はGPIO0ピンを接地する必要があり、ATコマンドを使用する場合は空のままにしておく必要があります。独自のボードを作成する場合は簡単に切り替えることができます。ATコマンドモードとArduinoIDEプログラミングモードを切り替えるためにジャンパーを使用しました。
- すべてのプログラミングはシリアル通信を使用して行われます。ブレッドボードを使用している場合、一部の緩い端子が途中でエラーを引き起こし、モジュールをフラッシュして再び動作させるように強制する可能性があります。
そうは言っても、ブレッドボードを使用するか、モジュールをプログラミングするための独自のボードを作成するかを選択できます。それでもブレッドボードを使用したい場合は、ブレッドボードを使用して上記と同じ回路を構築できます。外観のみが異なり、このチュートリアルの他のすべての手順は同じように適用されます。
ESP8266をプログラムするためのボードの構築:
そこで、ここでは、ESP8266に電力を供給するための独自の電力回路を備えたESP8266モジュールをプログラムするためのボードを構築しています。
すでに述べたように、モジュールのプログラミングには約800mAが必要です。したがって、LM317のソース電流はほぼ1.2Aであるため、LM317可変電圧レギュレータを使用して独自のパワーモジュールを構築しました。LM317の入力電圧は12Vで、12V2Aウォールマウントアダプターを使用して供給されます。LM317の出力は、220Ωと360Ωの抵抗を使用して常に3.3Vに安定化されます。また、LM317の詳細については、LM317を使用したバッテリー充電回路を確認してください。
LM317の出力電圧を計算する式を以下に示します。
Vout = 1.25 *(1+(R2 / R1))
ここで、R1は220オーム、R2は360オームです。
ESP8266モジュールは、次の表に示すピンに従って接続されます。
ピン番号 |
ESPピン名 |
に接続されています |
1 |
接地 |
FTDIモジュールのアース |
2 |
GPIO2 |
自由のままにするか、将来の使用のためにバーグスティックに接続します |
3 |
GPIO0 |
プログラミングモードを切り替えるために切り替えます |
4 |
処方箋 |
FTDIモジュールの送信 |
5 |
Tx |
FTDIモジュールの受信 |
6 |
CH_PH |
LM317から3.3V |
7 |
リセット |
モジュールをリセットするための押しボタン |
8 |
Vcc |
LM317から3.3V |
ATコマンドモードとArduinoプログラミングモードを簡単に切り替えるために、ArduinoIDEを使用するときにGPIO0をグランドに引き、ATコマンドを使用するときにフローティングのままにするスイッチ(ジャンパー)を配置しました。
押すとESPモジュールをリセットするプッシュボタンがあります。これは、ESPモジュールのRSTピンを押しボタンを介してアースレールに接続するだけで実行できます。ESPモジュールをプログラムする前に、毎回リセットする必要があります。
回路を組み立てると、次のようになります。
私はパフォーマンスボードを使用しましたが、興味があればブレッドボードを使用することもできます(上記で説明したように)。完全なビルドと説明は、以下のビデオに示されています。
接続が完了したら。ESPおよびFTDIボードなしでボードの電源を入れ、ESPモジュールの位置のVccおよびアース端子で3.3Vが正しく得られるかどうかを確認します。次に、FTDIボードが3.3Vモードになっていることを確認し、FTDIおよびESPモジュールをボードに接続します。
アダプタの電源を入れてボードに接続すると、ESPモジュールが赤色で点灯します。
次に、ミニUSB-USBケーブルを使用してFTDIボードをコンピューターに接続し、コンピューターのデバイスマネージャーに移動すると、以下に示すように、FTDIボードがCOMポートに接続されていることがわかります。
それでは、ESP8266モジュールのプログラミングに取り掛かりましょう。ATコマンドを使用して開始し、次にArduinoIDEの使用に移行することができます。他のESP8266ベースのプロジェクトを確認することを忘れないでください。