ESP32 esp-idf Eclipse でサンプルプログラムの確認。

ESP32 esp-idf Eclipse での開発環境ができたので、
WiFi Http Client のサンプルを、eclipse で試してみました。

プログラムは、git で入手した、esp-idf/examples 下に一杯あります。
取り敢えず、今回は、下記サンプルにしてみました。

esp-idf/examples/protocols/https_request (git hub のソース)

概要は、Wi-Fi クライアントで、ローカルのWi-Fi ルータに接続して、
インターネット上に公開せれているWebサーバーの HTML をダウンロードして、結果を、USB Serial で接続している、
PCのターミナルに表示する判りやすいサンプルプログラムです。

大雑把な手順は、
1. esp-idf/examples/protocols/https_request  のディレクトリーを、自分の作業ディレクトリーへコピー
2. MSYS2 MinGW 32-bit ターミナルを起動して、上記の自分の作業ディレクトリーへ移動
$make menuconfig
    ->  serial flash coonfig --> Default serial poort = COMX に変更
   exit
$make
3.Eclipse でプロジェクをインポート

取り敢えず、サンプルのソースをそのまま掲載します。
xxxxxx を自分の環境に合わせ設定すれば、そのまま動作します。

Wi-Fi Driver 、ESP HTTP Client の説明などと、見比べてソースを追えば、理解が深まるのでは、

https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/wifi.html
この、 wifi.html を参考にすると、Wi-Fi 接続が出来て、DHCPサーバーから、IPが
貰えると、event_handler() の case SYSTEM_EVENT_STA_GOT_IP:
へ処理が来るみたいです。

ここで、xEventGroupSetBits(wifi_event_group, CONNECTED_BIT);
を実行して、FreeRTOSの別タスクへの通知を行っているみたいです。
そうすると、
http_get_task() の中の、
xEventGroupWaitBits(wifi_event_group, CONNECTED_BIT,false, true, portMAX_DELAY);
の所で Wait していた処理が抜けてそれ以降を実行する流れの様です。
ふむふむ。

https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/protocols/esp_http_client.html

後、
xTaskCreate(&http_get_task, "http_get_task", 4096, NULL, 5, NULL);
は、FreeRTOS が最初から導入されているので、http_get_task がタスクとして、登録されて、
起動されています。

FreeRTOSは、おんちゃんは、下記を参考にさせて貰いました。
http://www.picfun.com/RTOS/FreeRTOSframe.html

おんちゃんも、これから、 esp-idf の勉強です。

このブログ記事について

このページは、おんちゃんが2018年12月 3日 18:36に書いたブログ記事です。

ひとつ前のブログ記事は「ESP32 esp-idf Eclipse (Windows10+MSYS2) でのビルドエラー」です。

次のブログ記事は「ESP32 esp-idf Bluetooth I2s Audio Examples」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

カテゴリ

ウェブページ

サイトナビ