Pi Pico W からラズパイにデータを送信して表示


Raspberry Pi Pico W は無線通信チップを搭載した安価(1210円)なマイコンです(現時点ではWi-Fi のみでBluetooth は無効になっています…….多分)。

 

 

 

 

 

 

 

 

 

 

半導体不足が言われていた発売当初はなかなか手に入りませんでしたが、現在供給は安定しているようです。

ヘッダーピンは自分で半田付けしないといけませんが、何といってもこの価格は魅力的です。

ここでは、こういうことをやってみます。Pico W は内部温度センサーを持っているのでこの値を取得してラズパイに送信して表示してみます。

外部バッテリは1.8V~5.5Vの電源を使用すれば、内部回路で3.3Vを維持してくれます。

リチュウムイオン・モバイルバッテリの場合、途中で給電が停止するタイプもあるので注意が必要です。

 

 

 

 

 

 

 

 

 

乾電池式のモバイルバッテリで動作は確認済

 

 

 

 

 

 

 

 

 

 

 

 

送受信はsocketでユニキャストします。受信側のラズパイではIPアドレスは固定にしておきます。

Pico はマイコンなので、コードはmain.pyで保存しておけば、電源供給された時点で起動します。

送信側のPico W は通信状態確認にLチカを使ってみます。

 

 

 

 

 

 

 

 

 

 

 

 

受信側のラズパイはデータ表示にTkinterを使ってみます。

 

 

 

 

 

 


送信側(Pico W)のコード

開発環境はThonny でMicropython を使います。

環境のセットアップは以下を参照

Pi PicoにMicroPythonをセットアップして実行してみる(メモ)

送信側では4つの機能を1つにします。

1:Wi-Fi ネットワークに接続

2:内部温度センサーの値を取得

3:ユニキャスト

4:Lチカ

LEDを点灯/消灯します。”LED”は”WL_GPIO0″でも可。Pico とはここが違っています。LEDの接続が異なっているので、Pico は25を指定していましたが、W では25を指定してもLチカしません。

点灯

消灯

 

これらを1つにまとめてみます。

固定IPアドレス、SSID、パスワードはご自分ので置き換えてください。

【main.py】

 


受信側(ラズパイ)のコード

表示用ウィンドウサイズは350x200、文字の色は赤

Pico W は内部クロックを持っていないのでRTCモジュールを使わない場合、時刻はラズパイ側で取ります。

【receive.py】

 


●ラズパイ側でレシーバー 起動

python3 receive.py

 

●Pico W 起動

電源投入

 

 

 

 

 

 

 

 

 

 


Appendix

Pythonでプロセス間通信、結果をGUIに表示


Be the first to comment

Leave a Reply

Your email address will not be published.


*