WiFi
 Computer >> コンピューター >  >> ネットワーキング >> WiFi

ESP8266 NodeMCU で FreeRTOS を始める – 実践ガイド

ESP8266 NodeMCU で FreeRTOS を始める – 実践ガイド

デニス・ヌシュウ著

最近、AliExpress から NodeMCU を約 4 ドルで購入しました。これを行った理由は、ESP8266 で何が問題になっているのかを調べるためでした。

NodeMCU はオープンソースの IoT プラットフォームです。これには、Espressif Systems の ESP8266 Wi-Fi SoC 上で動作するファームウェアと、ESP-12 モジュールに基づくハードウェアが含まれています。

ESP8266 NodeMCU で FreeRTOS を始める – 実践ガイド 出典:ESP8266 データシート

Arduino UNO と比較すると、CPU パワーと価格の点で、私の ESP8266 は完全に群を抜いています。

ESP8266 は Arduino よりも 500% 高速で、82% 安価です。 ESP8266 には WiFi 接続もあります。

ESP8266 の Espressif Web サイトにアクセスしたとき、私は非常に驚きました。使用できるドキュメントやリソースがたくさんあります。たとえば、ESP8266 に WiFi に接続するように指示する Android アプリケーションがあります。アプリは SSID とパスワードをパケットとして送信し、ESP8266 がそれらを傍受して WiFi に接続します。これは SmartConfig と呼ばれ、Texas Instruments によって発明されました。

この記事では、Espressif RTOS SDK から Smart Config サンプルをセットアップして実行する方法を説明します。

必要なものは次のとおりです:

  • 最新のコンピューター。
  • ESP12-E を搭載した NodeMCU ボード
  • VirtualBox (https://www.virtualbox.org/wiki/Downloads)
  • Ubuntu サーバー LTS (https://www.ubuntu.com/download/server)

開発用に VirtualBox を構成する

<オル>
  • VirtualBox をダウンロードし、Ubuntu Server をインストールします。これは簡単に実行できますが、方法がわからない場合は、Google で検索するか、このグラフィックのステップバイステップ ガイドを参照してください。 OS のインストールは、持っておくと便利なスキルです。 (ヒント:VirtualBox でディスクの選択を求められたら、ディスクを動的に割り当て、サイズを少なくとも 50 GB にしてください。これにより、将来的に面倒な作業が軽減されます。)
  • 仮想マシン内からインターネットにアクセスできることを確認し、DNS サーバーを構成できることを確認します。
  • ESP8266 NodeMCU で FreeRTOS を始める – 実践ガイド マシンを右クリックし、[設定] -> [ネットワーク] をクリックします

    DNS サーバーを設定するには、この例を参照してください。

    例:dns-nameservers 8.8.8.8 8.8.4.4 Google に ping できれば、準備完了です!

    <オル>
  • (オプション) OpenSSH と Samba サーバーをインストールします。これにより、あなたの人生はずっと楽になります。

  • (オプション) ポート転送を有効にします。仮想マシンに直接 SSH 接続するには、ポート転送を有効にする必要があります。たとえば、ポート 2222 をマッピングするには ホスト マシンポート 22 へ あなたの仮想マシンの .

  • ESP8266 NodeMCU で FreeRTOS を始める – 実践ガイド ポート転送を有効にします:[設定] -> [ネットワーク] -> [ポート転送] アーディング

    ポート転送を有効にしている場合は、次の図に示すように、ホスト マシンから仮想マシンに SSH 接続できるようになります。

    ESP8266 NodeMCU で FreeRTOS を始める – 実践ガイド 図 1:ssh -p 2020 denis@localhost

    注:Windows を使用している場合は、Putty が必要です。 仮想マシンに SSH 接続するため。

    <オル>
  • NodeMCU を接続し、次のコマンドを実行します。
  • tail -f /var/log/kern.log

    これにより、デバイスが /dev/ttyUSB0 として識別されたことがわかります。何も起こらない場合は、USB を仮想マシンに追加する必要があります。 USB を追加した後、デバイスを取り外し、再度接続します。

    ESP8266 NodeMCU で FreeRTOS を始める – 実践ガイド USB の追加:[設定] -> [ポート] -> [USB]

    ここまで進んですべてがうまくいっている場合は、おめでとうございます !これで、SDK をコンパイルし、SmartConfig サンプルを実行する準備が整いました。 https://twitter.com/metonymyqt

    でツイートを撮っていただくこともできます。

    SDK のコンパイルとボードのフラッシュ

    <オル>
  • 必要なパッケージをインストールします (以下を参照)。この情報は、SDK の readme.md からも入手できます。
  • sudo apt-get install make unrar-free autoconf automake libtool gcc g++ gperf flex bison texinfo gawk ncurses-dev libexpat-dev python-dev python python-serial sed git unzip bash help2man wget bzip2 libtool-bin
    
    <オル>
  • 新しいフォルダーを作成し、そのフォルダーに移動します:mkdir Development && cd Development

  • Open SDK のクローンを作成します:https://github.com/pfalcon/esp-open-sdk

  • git clone --recursive https://github.com/pfalcon/esp-open-sdk.git

    <オル>
  • make を実行します:make
  • 警告:このステップが完了するまでに時間がかかるため、しばらくお待ちください。 私の仮想マシンでは 50 分後に完了しました。あなたの場合は多かれ少なかれ時間がかかるかもしれませんが、 実行する前にインターネットに接続していることを確認してください。 そしてDNS が適切に設定されている 。これを確認する最善の方法は、お住まいの地域で Google がブロックされている場合は、Google またはその他のサイトに ping を実行することです。

    ESP8266 NodeMCU で FreeRTOS を始める – 実践ガイド 成功した ping コマンド:$ ping media.com

    ping が成功した場合は、ウィンドウを最小化して、お気に入りのテレビ番組のエピソードを視聴できます。約 40 分後に戻ってください (ただし、コンピュータがスリープ状態にならないように注意してください)。

    SDK が正常に構築されると、パスに何かを入れるように指示するメッセージが表示されます。これを行うには、次のコマンドを実行します。

    echo 'export PATH=/home/denis/Development/esp-open-sdk/xtensa-lx106-elf/bin:$PATH' >> ~/.profile
    

    このコマンドは文字列を ~/.profile に追加します。 ファイル。次に、次のコマンドを実行してください。

    xtensa-lx106-elf-gcc --version

    コマンドが正常に実行されれば、準備完了です。

    <オル>
  • ボードをテストする
  • NodeMCU を接続し、lsusb を実行します。 デバイスが接続されていることを確認します。その後、esptool.pyチップ_idを実行します。 。ボードのチップ ID が表示されるはずです。

    ESP8266 NodeMCU で FreeRTOS を始める – 実践ガイド _esptool.py チップid

    <オル>
  • ESP8266_RTOS_SDK をクローンする
  • git clone https://github.com/espressif/ESP8266_RTOS_SDK.git
    
    <オル>
  • 以下のコマンドを使用して、SDK パスと SDK/BIN パスをエクスポートします。
  • echo 'export SDK_PATH=/home/denis/Development/ESP8266_RTOS_SDK' >> ~/.profile
    
    echo 'export BIN_PATH=/home/denis/Development/ESP8266_RTOS_SDK/bin' >> ~/.profile
    
    <オル>
  • SmartConfig サンプルをコンパイルする
  • cd /home/denis/Development/ESP8266_RTOS_SDK/examples/smart_config/
    
    chmod +x ./gen_misc.sh
    
    ./gen_misc.sh
    

    SPI_SIZE_MAP を求められるまで、デフォルト値を受け入れます。 ここで4を選択します。 NodeMCU のフラッシュ サイズは 32Mbit なので、これは 4MB に相当します。 _SPISPEED 3=80Mhz を選択することもできます

    次のようなものが表示されます。

    !!!SDK_PATH: /home/denis/Development/ESP8266_RTOS_SDKBIN_PATH: /home/denis/Development/ESP8266_RTOS_SDK/bin
    
    No boot needed.Generate eagle.flash.bin and eagle.irom0text.bin successully in BIN_PATHeagle.flash.bin — — — →0x00000eagle.irom0text.bin — →0x20000!!!
    
    <オル>
  • ボードをフラッシュする
  • cd $BIN_PATH
    
    esptool.py erase_flash
    
    esptool.py write_flash 0x00000 $BIN_PATH/eagle.flash.bin 0x20000 $BIN_PATH/eagle.irom0text.bin 0x3FC000 $BIN_PATH/esp_init_data_default.bin
    

    ここで、ボードをリセットすると、LED の点滅がなくなるはずです。

    <オル>
  • 電話アプリケーションを使用する

  • Android アプリケーション

  • iPhone アプリケーション
  • ESP8266 NodeMCU で FreeRTOS を始める – 実践ガイド Android デバイスのスクリーンショット

    アプリケーションを開き、WiFi AP に接続していることを確認し、パスワードを入力して確認を押します。数秒後、ESP8266 が AP に接続されます。それでおしまい。最後まで到達しました、おめでとうございます!

    ESP8266-RTOS-SDK を使用してさらに開発したい場合は、公式 Web サイトにアクセスしてください。そこには多くのリソースとドキュメントがあります。また、SDK フォルダーにある他のサンプルもご覧ください。

    ご一読いただきまして誠にありがとうございます。私に連絡したい場合は、Twitter で連絡してください:MetonymyQT

    リソース

    • ESP8266 の概要
    • ESP8266 リソース
    • FreeRTOS ウェブサイト

    無料でコーディングを学びましょう。 freeCodeCamp のオープンソース カリキュラムは、40,000 人以上の人々が開発者としての職に就くのに役立ちました。始めましょう


    1. ルーターのファームウェアを簡単に更新する方法は? –ステップバイステップ(例)

      ルーターのファームウェアを最新の状態に保つ必要がある理由は複数あります。それらの1つは、リソースをよりインテリジェントに使用し、使用時のセキュリティを強化できる新しい構成があることです。そのため、本日はルーターのファームウェアを更新する方法を段階的に説明します。 速くて複雑ではありません。 ルーターはルーターまたはルーターとも呼ばれ、多くの人が混乱させますが、モデムやWiFiアクセスポイントとは異なります。その機能は、コンピュータ間の相互接続を行うことです。 ネットワークの範囲内で機能します。サイズが大きく異なる家庭、小規模オフィス、大企業で使用できます。 始める前に、ルーターのブランドが

    2. IPアドレスを管理してネットワーク接続のトラブルシューティングを行う方法

      IPアドレスは、ネットワーク内のユーザーを識別するための数値ラベルであり、その中には多くのユーザーまたはデバイスが接続されているか、接続しようとしている可能性があり、ワイヤレスネットワークと通信して接続を確立してIPアドレスの競合を引き起こすことができない場合があります;接続の問題を引き起こします。 IPアドレスの競合を解決する方法は? ルーターのIPアドレス内で競合が発生すると、2つのデバイスに同じIPアドレスが割り当てられて通信するため、ネットワークをナビゲートできなくなります。これにより、2台のコンピューターの1台がネットワークにアクセスできなくなり、最初のコンピューターはすでに同じ