新:Pi Pico W にWebサーバーを建てていくつかサービスを実行してみる


前回のPi Pico W にWebサーバーを建てていくつかサービスを実行してみるでは、開発環境にMicroPython を使いましたが、今回はArduino IDE でやってみます。

ブラウザーの見た目は同じようなもんですが、取得している温度が高めです。使っている関数が甘めなのか、内部温度センサーはRP2040チップの近くにあるのでその影響がそのまま出ています。

 

 

 

 

 

 

 

 

母艦はラズパイ4Model B を使います。

開発環境は以下を参照

ラズパイ4でArduino IDE を使ってみる

 


Arduino IDE を使ってみる

ラズパイ4 Model B にRaspberry Pi OS 64bit Desktopを入れておきます。

出荷時状態のPico W をUSBケーブルでラズパイに接続。

Arduino IDE を起動

ファイルー>環境設定

追加のボードマネージャーのURL に以下を入力してOKで閉じます。

https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

 

 

 

 

 

 

 

 

 

 

 

 

ツールー>ボードー>ボードマネージャーを選択

検索フィールドにpico を入力して、Raspberry Pi Pico /RP2040 をインストールします。

 

 

 

 

 

 

 

 

 

ツールー>ボードからRaspberry Pi Pico W をアサインします。

 

 

 

 

 

 

 

 

 

 

 

 

 

シリアルポートでは初期状態のポート番号を設定

後でコードをコンパイルしてファームウェアをインストールした場合、Pico が再起動されるとポート番号は変わります。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

次に示すような内部温度センサーを読んで表示するようなクライアント用コードを実装してみます。

 温度取得表示コード

SSID とパスワードは自分の環境で書き直してください。

これをコンパイルしてフラッシュメモリーに書き込みます。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

コンパイルが完了すると、UF2ファイルとしてPico W のフラッシュメモリーに書き込まれ、その後Pico W は再起動されます。

シリアルポートを確認すると新しいポート番号が現れていますので、これを再アサインします。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ところで、このサーバーのIPアドレスは何でしょう?

コードではIPアドレスが取得できたら、Serial.print関数で表示するようになっています。

起動時に確認してみます。

Arduin IDE でシリアルモニターを開いておきます。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

この状態で、Pico W をラズパイに接続します。電源が供給されるのでPico は起動を開始します。で、IPアドレスを確認した時点でモニターに表示します。

こんな感じ。

 

 

 

 

 

 

 

ブラウザーでアクセスします。

 

 

 

 

 

 

 

 

TEMP をクリックして温度取得

 

 

 

 

 

 

 

 


今度は、LED を点灯するコードはこんな感じです。

これを実行して、アクセスします。

 

 

 

 

 

 

 

LEDをクリックするとPico W のLEDが点灯したり消灯したりします。

 

 

 

 

 

 

 

 


2つをまとめてみます。

Serverのセットアップが終わるとLED が3回点滅するようにしています。

これを実行して、アクセスします。

 

 

 

 

 

 

 

 

 


Appendix

オリジナルコードは以下のスケッチ例で見れます。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

こういうグラフが5秒間隔で更新描画されて、都度LED が点滅します。

 

 

 

 

 

 

 

 

 


 

 

Be the first to comment

Leave a Reply

Your email address will not be published.


*