スクリーンショット 2026-06-11 15.39.32.png
組み込みマイコンでネットワーク機能を使うとき,従来は「まずどうやって動かすか」から調べる必要がありました.使いたいマイコンのベンダーが提供するSDKやサンプルコードを探し,そのAPIに合わせてコードを書く——マイコンが変わればAPIも変わるため,同じようなことをやるにも毎回一から調べ直すことになりがちです.ネットワーク機能ともなれば,TCPスタックの初期化やソケットAPIの使い方など覚えることも多く,「肝心の自分のアプリを書く前に力尽きる」という経験をした方も少なくないのではないでしょうか.
Zephyr OSはそういった悩みへの一つの答えになりえます.ZephyrはRTOSとして標準的なAPIを提供しており,一度使い方を覚えれば異なるボードでも同じコードが動くのが大きな強みです.そして豊富に用意されているサンプルコードの中には,今回取り上げるHTTPサーバーのサンプルも含まれており、思った以上に簡単に動かせました.
この記事では,そのHTTPサーバーサンプルをNXPのFRDM-MCXN947評価ボードで動作させる手順をステップ・バイ・ステップで解説します.サンプルを動かすと,PCのWebブラウザからFRDM-MCXN947にアクセスして,ページ上のボタンでボード上のLEDをON/OFFできるようになります.
ゴール:
ブラウザからFRDM-MCXN947上のHTTPサーバーにアクセスし,ページ上の「LED on」「LED off」ボタンでLEDを制御する.
この記事を読む前に
Zephyrのビルド環境がすでにインストール済みであり,west buildやwest flashの基本操作に慣れていることを前提としています.
環境の構築から始める場合は,Zephyrの公式サイトの「Getting Started Guide」や,MCUXpresso for VSCを使って簡単にセットアップが行えるガイド動画「さぁはじめよう!MCUXpresso VS Code で Zephyr OS」を参照ください.
| 品名 | 備考 |
| FRDM-MCXN947評価ボード | Zephyrドキュメント |
| USBケーブル (上記FRDMボードに同梱) | ボードのJ17コネクタとPCを接続するもの |
| LANケーブル | ボードのEthernetコネクタをネットワークに接続するもの |
今回はmac OSのターミナル画面より,コマンドベースで作業を進めていきます.
ターミナルを開いたら,最初に以下の2つのコマンドを実行しておきます.
まず,Python実行環境をアクティベート(有効化)します:
source ~/zephyrproject/.venv/bin/activate
MCUXpresso for VSCでインストールした場合 bin/activateの場所が標準と異なります.
macOSであれば~/.mcuxpressotools/.venv_3_14/にあります。
WindowsであればC:\Users\<ユーザ名>\.mcuxpressotools\.venv_3_12\Scriptsにありました.*Windows PowerShellを使用する場合には,Linux,macOS,とはコマンドや使用するファイル名が異なるので,「Getting Started Guide」を参照の上,進めてください.
続いて,Zephyrのビルドに必要な環境変数を設定します.このコマンドにより,任意のフォルダからZephyrのビルドが行えるようになります:
source ~/zephyrproject/zephyr/zephyr-env.sh
次に,サンプルのフォルダへ移動します:
cd ~/zephyrproject/zephyr/samples/net/sockets/http_server
このフォルダ内のprj.confファイルには,ネットワーク設定が記述されています.接続形態に合わせて以下の3つの方法から選んでください.
| 節 | 接続形態 | IP設定方法 |
| 3.1節 | ルーター経由でLANに接続 | 固定IPアドレスを手動設定 |
| 3.2節 | ルーター経由でLANに接続 | DHCPで自動取得(手軽) |
| 3.3節 | PCとボードをLANケーブル1本で直結 | PCとボード両方に固定IPを設定 |
ルーター経由でLANに接続し,ボードに固定のIPアドレスを割り当てる方法です.prj.confをテキストエディタで開き,以下の2行を自分のネットワーク環境に合わせて書き換えます.
変更前(デフォルト):
CONFIG_NET_CONFIG_MY_IPV4_ADDR="192.0.2.1"
CONFIG_NET_CONFIG_MY_IPV4_GW="192.0.2.2"
変更後(例):
CONFIG_NET_CONFIG_MY_IPV4_ADDR="192.168.1.100"
CONFIG_NET_CONFIG_MY_IPV4_GW="192.168.1.1"
| 設定項目 | 意味 |
CONFIG_NET_CONFIG_MY_IPV4_ADDR |
ボードに割り当てるIPアドレス(ルーターのサブネット内で他の機器と重複しないアドレスを指定) |
CONFIG_NET_CONFIG_MY_IPV4_GW |
ゲートウェイ(ルーター)のIPアドレス.同一LAN内のPCからアクセスするだけであれば必ずしも必要ではありません |
サブネットマスクはここでは指定しませんが,試した環境では 255.255.255.0が設定されました.この記事では例として「192.168.1.100」を使います.お使いのネットワーク環境に合わせて変更してください.
FRDM-MCXN947をルータ(ワイヤレス・ルータ)に接続する場合,ルータからIPアドレスを自動取得できます.これにはprj.confに次の変更を加えます:
CONFIG_NET_DHCPV4=y # 追加
CONFIG_NET_CONFIG_MY_IPV4_ADDR="" # 空文字列に変更
あるいは
prj.confを編集せず,後述のビルドコマンドで設定ファイルを追加指定する方法もあります(4.2節参照).
ルーターを介さず,PCとFRDM-MCXN947をLANケーブル1本で直接つなぐ構成でも動作させることができます.この場合はDHCPサーバーがいないため,PCとボードの両方に固定IPアドレスを手動で設定します.
ポイントは次の2点です:
設定例を示します:
| 対象 | IPアドレス | サブネットマスク |
| PC(有線LANアダプタ) | 192.168.100.1 |
255.255.255.0 |
| FRDM-MCXN947 | 192.168.100.2 |
255.255.255.0(自動設定) |
ボード側は3.1節と同じ要領でprj.confを編集します.上の表の値を使う場合の設定例:
CONFIG_NET_CONFIG_MY_IPV4_ADDR="192.168.100.2"
CONFIG_NET_CONFIG_MY_IPV4_GW="192.168.100.1"
PC側の有線LANアダプタのIPアドレスは,OSの設定画面から手動で設定します:
192.168.100.1,サブネットマスク255.255.255.0を入力DHCPが使える環境であれば
ルーターに接続する通常の構成(3.2節)の方が,PCのIP設定変更が不要で手軽です.直接接続は,ルーターがない場所での動作確認や,PCのネットワーク設定を変えたくない場面で役立ちます.
設定が完了したら,ビルド(コンパイルとリンク)を行います.
作業ディレクトリは「~/zephyrproject/zephyr/samples/net/sockets/http_server」です.
つぎのコマンドでビルドします.
west build -p auto -b frdm_mcxn947/mcxn947/cpu0
prj.confを編集せずにDHCPを有効にするには,次のコマンドを実行します:
west build -p auto -b frdm_mcxn947/mcxn947/cpu0 -- -DEXTRA_CONF_FILE="overlay-dhcpv4.conf"
-DEXTRA_CONF_FILE="overlay-dhcpv4.conf"により,DHCPを有効にする設定ファイルがprj.confに追加された形でビルドされます.
この設定ではDHCPサーバが有効でない場合,prj.confに書かれた固定IPがデフォルトで設定されます.
ビルドが完了したら,ボードに書き込みます.
ボードのJ17(USB)コネクタ(Ehthernetコネクタに向かって左側)をUSBケーブルでPCに接続し,EthernetコネクタにはLANケーブルを接続しておきます.
IMG_1415.JPG
次のコマンドを実行します:
west flash
書き込みが完了すると,ボードが動作を開始します.
シリアルターミナル(Tera Term,PuTTY,VS Code の Serial Monitor など)を開き,FRDM-MCXN947のポートを選択してボーレートを115200に設定します.
シリアルターミナルにはいくつもの種類があり,好きなものが使えます.これらのインストールと使い方については別記事を参照ください.
uart:~$というプロンプトが表示されたら,次のコマンドを入力します:
net iface
ネットワーク設定の一覧が表示されます.固定IPを指定した場合はその値が,DHCPを使った場合はルーターから割り振られたIPアドレスが表示されるので,そのアドレスを確認してください.
スクリーンショット 2026-06-11 14.18.15.png
起動時のログを見逃した場合
ボード上のSW1(RESET)ボタンを押すとボードが再起動します.再起動直後の出力でもIPアドレスを確認できます.
スクリーンショット 2026-06-11 14.17.59.png
確認したIPアドレスをブラウザのアドレスバーに入力してアクセスします(今回の例では http://192.168.1.100).
正しく動作していれば,「LED on」「LED off」のボタンを含むページが表示されます.これらのボタンを押すと,FRDM-MCXN947の緑色のLEDがON/OFFします.
スクリーンショット 2026-06-11 15.33.47.png
IMG_1419.JPG
変更履歴:
2026-06-16:初版
=========================
本投稿の「Comment」欄にコメントをいただいても,現在返信に対応しておりません.
お手数をおかけしますが,お問い合わせの際には「NXPへの技術質問 - 問い合わせ方法 (日本語ブログ)」をご参照ください.
(既に弊社NXP代理店,もしくはNXPとお付き合いのある方は,直接担当者へご質問いただいてもかまいません.)
ZephyrのHTTPサーバーサンプルをFRDM-MCXN947で動かし,PCのブラウザからボード上のLEDをON/OFFする手順をステップ・バイ・ステップで解説します.ルーター経由での固定IP/DHCP接続に加え,PCとボードをLANケーブル1本で直結する構成にも対応しています.Zephyrのビルド環境がインストール済みであれば,設定ファイルの編集からビルド・書き込みまで,コマンド数本で動作を確認できます.
(作業時間:15分 *Zephyr開発環境インストール済,PCネットワークに慣れていれば)
スクリーンショット 2026-06-11 15.39.32.png