【Raspberry Pi Pico W】WiFi UDP通信 サンプルプログラム

Raspberry Pi Pico W で WiFi UDP通信するサンプルプログラムを作成しました。
EarlePhilhower版 Arduino環境です。
バイナリデータを受信して、そのまま送信します。


// Pico WでWIFI(UDP)
// ※バイナリデータを送受信

#include <WiFi.h>
#include <WiFiUdp.h>

const char *SSID = "xxxxxxxxxx";     // WiFi環境に合わせて書き換える
const char *SSID_PASS = "xxxxxxxxx"; // 同上

// IPを指定する場合
const IPAddress LOCAL_IP(192, 168, 0, 2);
const IPAddress SUBNET(255, 255, 255, 0);
const IPAddress GATEWAY(192, 168, 0, 1);    // 不要な場合はLOCAL_IPと同じにする
const IPAddress DNS(192, 168, 0, 1);

const unsigned int LOCAL_PORT = 56789;     // 受信ポート

//IPAddress DEST_IP(255, 255, 255, 255);  // 送信先IP(ブロードキャスト)
const IPAddress DEST_IP(192, 168, 0, 3);  // 送信先IP
const unsigned int DEST_PORT = 56789;      // 送信先ポート

#define BUF_SIZE 1400   // 1400バイト以上は分割して送信すること

WiFiUDP udp;

void setup() {
  Serial.begin(115200);
  while (!Serial){};
  pinMode(LED_BUILTIN, OUTPUT);

  // IPを指定する (DHCPで割り当てられる場合は不要)
  WiFi.config(LOCAL_IP, DNS, GATEWAY, SUBNET);

  WiFi.begin(SSID, SSID_PASS);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print('.');
    delay(500);
  }
  Serial.print("Connected! local IP: ");
  Serial.println(WiFi.localIP());

  udp.begin(LOCAL_PORT);
}

uint16_t count = 0;

void loop() {
  // UDP受信
  int packetSize = udp.parsePacket();
  if (packetSize > 0) {
    //Serial.printf("Received packet size:%d from:%s:%d to %s:%d\n", 
    //  packetSize, 
    //  udp.remoteIP().toString().c_str(), udp.remotePort(), 
    //  udp.destinationIP().toString().c_str(), udp.localPort());

    uint8_t recvBuffer[BUF_SIZE];
    int recvSize = udp.read(recvBuffer, BUF_SIZE);
    for (int i = 0; i < recvSize; i++) {
      Serial.print(recvBuffer[i]);
      Serial.print(',');
    }
    Serial.println();

    // UDP送信用データ準備
    char sendBuffer[BUF_SIZE];
    for (int i = 0; i < recvSize; i++) {
      sendBuffer[i] = recvBuffer[i];
    }

    // UDP送信
    udp.beginPacket(DEST_IP, DEST_PORT);
    udp.write(sendBuffer, recvSize);
    udp.endPacket();

    count++;
  }

  digitalWrite(LED_BUILTIN, count % 2);
}

■Raspberry Pi Picoの関連記事
【Raspberry Pi Pico W】WiFi UDP通信 サンプルプログラム
Raspberry Pi Pico+Arduinoでサーボをたくさん動かしたい
会話ができる「ぴよロボ」作りました! (Raspberry Pi + Pico + ChatGPT)
Raspberry Pi Pico W でPCとBluetooth(シリアル)接続する
Raspberry Pi Pico/Pico WをArduino開発環境で使うためのメモ
超音波距離センサー + Raspberry Pi Picoで潜水艦ソナー風
コップの水がこぼれない台 MPU6050 + Raspberry Pi Pico(Arduino)
MPU6050 + Raspberry Pi Pico(Arduino) -> PCで3Dのキューブを回転表示

本格派対局将棋 ぴよ将棋
本格派対局将棋アプリ ぴよ将棋
[Android] [iOS]

かわいい「ひよこ」と対局する将棋アプリ。かわいいけどAIは本格派!
対局後の検討機能や棋譜管理機能も充実!棋譜解析機能も搭載!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です