ESP8266 NodeMCU で FreeRTOS を始める – 実践ガイド
デニス・ヌシュウ著
最近、AliExpress から NodeMCU を約 4 ドルで購入しました。これを行った理由は、ESP8266 で何が問題になっているのかを調べるためでした。
NodeMCU はオープンソースの IoT プラットフォームです。これには、Espressif Systems の ESP8266 Wi-Fi SoC 上で動作するファームウェアと、ESP-12 モジュールに基づくハードウェアが含まれています。
出典: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 を構成する
<オル>
マシンを右クリックし、[設定] -> [ネットワーク] をクリックします
DNS サーバーを設定するには、この例を参照してください。
例:dns-nameservers 8.8.8.8 8.8.4.4 Google に ping できれば、準備完了です!
(オプション) OpenSSH と Samba サーバーをインストールします。これにより、あなたの人生はずっと楽になります。
(オプション) ポート転送を有効にします。仮想マシンに直接 SSH 接続するには、ポート転送を有効にする必要があります。たとえば、ポート 2222 をマッピングするには ホスト マシン上 ポート 22 へ あなたの仮想マシンの .
ポート転送を有効にします:[設定] -> [ネットワーク] -> [ポート転送] アーディング
ポート転送を有効にしている場合は、次の図に示すように、ホスト マシンから仮想マシンに SSH 接続できるようになります。
図 1:ssh -p 2020 denis@localhost
注:Windows を使用している場合は、Putty が必要です。 仮想マシンに SSH 接続するため。
<オル>
tail -f /var/log/kern.log
これにより、デバイスが /dev/ttyUSB0 として識別されたことがわかります。何も起こらない場合は、USB を仮想マシンに追加する必要があります。 USB を追加した後、デバイスを取り外し、再度接続します。
USB の追加:[設定] -> [ポート] -> [USB]
ここまで進んですべてがうまくいっている場合は、おめでとうございます !これで、SDK をコンパイルし、SmartConfig サンプルを実行する準備が整いました。 https://twitter.com/metonymyqt
でツイートを撮っていただくこともできます。SDK のコンパイルとボードのフラッシュ
<オル>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 警告:このステップが完了するまでに時間がかかるため、しばらくお待ちください。 私の仮想マシンでは 50 分後に完了しました。あなたの場合は多かれ少なかれ時間がかかるかもしれませんが、 実行する前にインターネットに接続していることを確認してください。 そしてDNS が適切に設定されている 。これを確認する最善の方法は、お住まいの地域で Google がブロックされている場合は、Google またはその他のサイトに ping を実行することです。
成功した 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 が表示されるはずです。
_esptool.py チップid
git clone https://github.com/espressif/ESP8266_RTOS_SDK.git
<オル> echo 'export SDK_PATH=/home/denis/Development/ESP8266_RTOS_SDK' >> ~/.profile
echo 'export BIN_PATH=/home/denis/Development/ESP8266_RTOS_SDK/bin' >> ~/.profile
<オル> 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 アプリケーション
Android デバイスのスクリーンショット
アプリケーションを開き、WiFi AP に接続していることを確認し、パスワードを入力して確認を押します。数秒後、ESP8266 が AP に接続されます。それでおしまい。最後まで到達しました、おめでとうございます!
ESP8266-RTOS-SDK を使用してさらに開発したい場合は、公式 Web サイトにアクセスしてください。そこには多くのリソースとドキュメントがあります。また、SDK フォルダーにある他のサンプルもご覧ください。
ご一読いただきまして誠にありがとうございます。私に連絡したい場合は、Twitter で連絡してください:MetonymyQT
リソース
- ESP8266 の概要
- ESP8266 リソース
- FreeRTOS ウェブサイト
無料でコーディングを学びましょう。 freeCodeCamp のオープンソース カリキュラムは、40,000 人以上の人々が開発者としての職に就くのに役立ちました。始めましょう
-
ルーターのファームウェアを簡単に更新する方法は? –ステップバイステップ(例)
ルーターのファームウェアを最新の状態に保つ必要がある理由は複数あります。それらの1つは、リソースをよりインテリジェントに使用し、使用時のセキュリティを強化できる新しい構成があることです。そのため、本日はルーターのファームウェアを更新する方法を段階的に説明します。 速くて複雑ではありません。 ルーターはルーターまたはルーターとも呼ばれ、多くの人が混乱させますが、モデムやWiFiアクセスポイントとは異なります。その機能は、コンピュータ間の相互接続を行うことです。 ネットワークの範囲内で機能します。サイズが大きく異なる家庭、小規模オフィス、大企業で使用できます。 始める前に、ルーターのブランドが
-
IPアドレスを管理してネットワーク接続のトラブルシューティングを行う方法
IPアドレスは、ネットワーク内のユーザーを識別するための数値ラベルであり、その中には多くのユーザーまたはデバイスが接続されているか、接続しようとしている可能性があり、ワイヤレスネットワークと通信して接続を確立してIPアドレスの競合を引き起こすことができない場合があります;接続の問題を引き起こします。 IPアドレスの競合を解決する方法は? ルーターのIPアドレス内で競合が発生すると、2つのデバイスに同じIPアドレスが割り当てられて通信するため、ネットワークをナビゲートできなくなります。これにより、2台のコンピューターの1台がネットワークにアクセスできなくなり、最初のコンピューターはすでに同じ