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の通信が確認できた。