[Arduino]ESP32 Socket ํ†ต์‹  / ESP32 Socket Communication(MacOS)

๐Ÿ‘‰๐Ÿป ์•„๋ž˜๋Š” Esp32 ์™€ nodejs์†Œ์ผ“ ํ†ต์‹ ์— ๋Œ€ํ•œ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.
Below is an example of Esp32 and Node.js socket communication.

๐Ÿ‘‰๐Ÿป Esp32์„ค์ •์€ ๊ธฐ์กด๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
The Esp32 settings are the same as before.

๐Ÿ‘‰๐Ÿป Esp32์—์„œ “sensor=42” ๋ฉ”์„ธ์ง€๋ฅผ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๊ณ  ์„œ๋ฒ„๋Š” “ACK:<Esp32์—์„œ ๋ณด๋‚ธ ๋ฉ”์„ธ์ง€>”ํ˜•์‹์„Esp32๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
Esp32 sends the “sensor=42” message to the server, and the server sends a message in the format “ACK:” to Esp32.

๐Ÿ‘‰๐Ÿป Esp32

#include <WiFi.h>

const char* ssid = "YOUR_ID";
const char* password = "YOUR_PASSWORD";

// ์•„์ดํ”ผ ์ฃผ์†Œ /  Ipaddress
const char* host = "192.168.0.100";
const uint16_t port = 3000;

WiFiClient client;

void connectToServer() {
  Serial.print("Connecting to server...");
  if (client.connect(host, port)) {
    Serial.println("connected");
  } else {
    Serial.println("failed");
  }
}

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) { delay(500); }

  Serial.print("WiFi OK. IP: ");
  Serial.println(WiFi.localIP());

  connectToServer();
}

void loop() {
  // ๋Š๊ฒผ์œผ๋ฉด ์žฌ์—ฐ๊ฒฐ / If disconnected, reconnect
  if (!client.connected()) {
    client.stop();
    connectToServer();
    delay(1000);
    return;
  }

  // ESP32 โ†’ ์„œ๋ฒ„๋กœ ๋ฉ”์‹œ์ง€ ๋ณด๋‚ด๊ธฐ
  // ESP32 โ†’ Send message to server
  client.println("sensor=42");

  // ์„œ๋ฒ„ โ†’ ESP32 ์‘๋‹ต ์ฝ๊ธฐ
  // Read server โ†’ ESP32 response
  while (client.available()) {
    String line = client.readStringUntil('\n');
    Serial.print("Server: ");
    Serial.println(line);
  }

  delay(2000);
}
Screenshot

๐Ÿ‘‰๐Ÿป server.js

const net = require("net");

const server = net.createServer((socket) => {
  console.log("Client connected:", socket.remoteAddress, socket.remotePort);

  socket.on("data", (data) => {
    const msg = data.toString().trim();
    console.log("RX:", msg);

    // ๋ฐ›์€ ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•œ ์‘๋‹ต / Response to a received message
    socket.write("ACK:" + msg + "\n");
  });

  socket.on("end", () => {
    console.log("Client disconnected");
  });

  socket.on("error", (err) => {
    console.error("Socket error:", err);
  });
});

server.listen(3000, "192.168.0.10", () => {
  console.log("TCP server listening on 192.168.0.100:3000");
});
Screenshot

Leave a Reply