Pi Pico W でWi-Fi 通信をやってみる(2)


Pi Pico W でWi-Fi 通信をやってみる – Server-Client (メモ)Arduino IDE 版でしたので、今回はC/C++版です。(MicroPython を使いたい場合はこちらを参照

 

ServerにはRaspberry Pi 4 Model B を使います。

Raspberry Pi 4 のOSイメージはRaspberry Pi OS (64-bit) Desktopを使います。

 

 

 

 

 

 

 

 

 

 

 

 

サンプルでは、Pico W に搭載された温度センサーのデータを10秒間隔で母艦のラズパイに送信して表示してみます。

 

 

 

 

 

 

 

 


Raspberry Pi 4 にPico-SDKインストールしておきます。

 

pico-examplesをクローンしておきます。

後々にexamplesを使う場合はビルドしておきますが今回はパス。pico-examplesからマイコン用の軽量TCP/IPスタックのlwipのファイルをお借りします。

:pico-examples/pico_wにはwifiやbt(Bluetooth)のサンプルがたくさん同梱されていて参考になりますが、そのままではUSBシリアルがモニターできません。ソースに同梱されているCMakeLists.txtに以下を追加記述します。

pico_enable_stdio_usb(xxxxxxx 1)

xxxxxxxの部分はpico_add_extra_outputsの引数を参照

 

プロジェクトフォルダー(pico-network)を作成します。

 

最終的にはこんな構造になります。

~/pico/
├── pico-network/
│ ├─ client.c
│ ├─ build/
│ ├─ CMakeLists.txt
│ ├─ lwipopts.h
│ └─ pico_sdk_import.cmake

├── pico-examples/
├── pico-sdk/
│ ├── cmake

 


Client

pico-networkフォルダーにファイルを作成します。

元ネタ The Pico/W In C: Simple Web Client

【client.c】

クライアントコードを記述します。

下記のフルコードには内部温度取得のコードが混ざっています。

温度取得コードの部分はこんな感じです。

 

温度表示のフォームはこういうふうにしてみます。

連番:InnerTemp->温度

 

フルコード

Server を起動するRaspberry Pi 4 のIPアドレス(192.168.0.34)、Wi-Fi のSSID、PASSWORDの部分は書き換えてください。

Server のポートは8000番を使います。問題があればここも書き換えてください。

 

【CMakeLists.txt】

CMakeLists.txtを記述します。

内部温度取得用に、target_link_librarieshardware_adcが追加されています。

 

pico_sdk_import.cmakeをコピーしておきます。lwIP スタックに必要なファイルもコピーしておきます。

 

ビルド

Client用のファームウェアを作成します。

 

buildフォルダーに client.uf2が作成されているのを確認。

 


Server起動

サーバー側はPython で記述してみます。

サーバーのアドレスはラズパイのそれで、8000番のポートを使います。Client側でポート番号を変更した場合はこちらでも変更してください。

192.168.0.34の部分はご自分の環境で書き換えてください。

【server.py】

 

まず、Server を起動しておきます。

 

 

 

 

 

 

 

 

 


Client 起動

PicoのBOODELボタンを押しながらMicroUSBケーブルで接続すると、RPI-RP2フォルダーが開きます。

 

 

 

 

 

 

 

 

 

 

 

 

 

フォルダーにclient.uf2をドラッグ・ドロップするとPicoが再起動します。。

プログラムが実行されて10秒間隔でデータが送られ、サーバー側で表示します。

 

 

 

 

 

 

 

 

Pico W 側のシリアルポート確認してみます。

minicomを使います。

起動

Pico とラズパイをケーブルで再接続します(今回はBOOTSELボタンは使いません)。

minicomの画面にIPアドレスなどの情報が表示されています。

 

 

 

 

 

 

 

 


Pi Pico W でWi-Fi 通信をやってみる(1) – Server-Client (メモ)

Pi Pico W でWi-Fi 通信をやってみる(3)


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*