ESP-WROOM02とUDPのテスト

ESP-WROOM02のスケッチ

STAモードにします。
#include 
#include 

const char* ssid     = "home0001";
const char* password = "12345678";
const char* host = "192.168.100.1";
unsigned int localPort = 8888;
 
WiFiUDP UDP;
char packetBuffer[255];

static const char *udpReturnAddr = "192.168.100.1";
static const int udpReturnPort = 8889;
 
void setup() {
 
  Serial.begin(115200);
  Serial.println();
 
 // WiFi.softAP(ssid, password);
   WiFi.begin(ssid, password);
   while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");  
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  UDP.begin(localPort);
 
}
 
void loop() {
 
  int packetSize = UDP.parsePacket();
 
  if (packetSize) {
 
    int len = UDP.read(packetBuffer, packetSize);
    //終端文字設定
    if (len > 0) packetBuffer[len] = '\0';
 
    Serial.print(UDP.remoteIP());
    Serial.print(" / ");
    Serial.println(packetBuffer);
 
    UDP.beginPacket(udpReturnAddr, udpReturnPort);
    UDP.write("ok");
    UDP.endPacket();  
    
  } 
 
}

RaspberryPiの設定

WiFiはAPモードに設定。node.jsでUDPテストを行います。
/*
Send Message To ESP-WROOM-02 
*/
var ESP_HOST = '192.168.11.55';  //DHCPでもらったIP
var ESP_PORT = 8888;

var dgram = require('dgram');
var sender = dgram.createSocket('udp4');
var message = new Buffer('test message');

sender.send(message, 0, message.length, ESP_PORT, ESP_HOST, function(err, bytes) {
    if (err) throw err;
    sender.close();
    });

/*
Receive Message From ESP-WROOM-02 
*/
var NODE_HOST = '192.168.100.1'; //APのIPアドレス
var NODE_PORT = 8889;

var receiver = dgram.createSocket('udp4');

receiver.on('message', function (message, remote) {
    console.log('From ESP_Module Message : ' + message);

    });

receiver.bind(NODE_PORT, NODE_HOST);


通信の確認

Rasppiでnodeを実行 。
$sudo node udp_test.js
From ESP_Module Message : ok
ESP-WROOM02のシリアルコンソールに。
192.168.100.1 / test message
これでUDPの通信が確認できた。