NodeMCU + socket.io | Komentor

Hallo mein Name ist Alex. Und ich mache verschiedene coole Sachen.
Dieser Artikel ist nur eine Art Notiz für mich selbst, daher war es später einfacher, sich an Dinge zu erinnern. Aber wenn Sie nützliche Codebeispiele finden – großartig!

Die Idee ist also ganz einfach. Ich möchte einen Kleinwagen mit Fernsteuerung über das Internet bauen. Also habe ich 3D gedruckt, was Sie auf dem Bild sehen können, ein billiges Foto platziert und nodeMCU hinzugefügt.

Nodemcu empfängt Bewegungsbefehle über Sockets. Und das Telefon wird nur eine eigenständige Sache sein, auf der der Video-Chat geöffnet ist.

IMG_5965.JPG

Teil 1 – socket.io-Server

Es ist sehr dumm, aber es hilft Ihnen zu verstehen, ob nodeMCU verbunden ist und Befehle empfängt 💪

index.js

const httpServer = require("http").createServer();
const io = require("socket.io")(httpServer, {

});
var i = 0;
io.on("connection", (socket) => {

        console.log('connected')
        setInterval(()=>{
                i++;
                io.emit("hello", "world " + i);
        }, 50)

});



httpServer.listen(3000);

Paket.json

{
  "name": "socket_server",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "cors": "^2.8.5",
    "express": "^4.18.1",
    "socket.io": "^4.5.2"
  }
}

Teil 2 – nodeMCU

Seien Sie vorsichtig, Sie müssen eine Reihe von Bibliotheken in Arduino IDE installieren.
Skizze -> Bibliothek einbinden -> …

Bildschirmfoto vom 26.09.2022 am 16.05.17.png

Und vielleicht auch einige andere Bibliotheken :3


#include <ESP8266WiFi.h>        // Include the Wi-Fi library
#include <ESP8266WiFiMulti.h>
#include <Arduino.h>
#include <ArduinoJson.h>

const char* ssid     = "WIFINAME";         // The SSID (name) of the Wi-Fi network you want to connect 2.4ghz!
const char* password = "your password!";     // The password of the Wi-Fi network

#include <WebSocketsClient.h>
#include <SocketIOclient.h>
#include <Hash.h>
SocketIOclient socketIO;
#define USE_SERIAL Serial

void socketIOEvent(socketIOmessageType_t type, uint8_t * payload, size_t length) {
  switch (type) {
    case sIOtype_DISCONNECT:
      USE_SERIAL.printf("[IOc] Disconnected!\n");
      break;
    case sIOtype_CONNECT:
      USE_SERIAL.printf("[IOc] Connected to url: %s\n", payload);

      // join default namespace (no auto join in Socket.IO V3)
      socketIO.send(sIOtype_CONNECT, "/");
      break;
    case sIOtype_EVENT:
      USE_SERIAL.printf("[IOc] get event: %s\n", payload);
      break;
    case sIOtype_ACK:
      USE_SERIAL.printf("[IOc] get ack: %u\n", length);
      hexdump(payload, length);
      break;
    case sIOtype_ERROR:
      USE_SERIAL.printf("[IOc] get error: %u\n", length);
      hexdump(payload, length);
      break;
    case sIOtype_BINARY_EVENT:
      USE_SERIAL.printf("[IOc] get binary: %u\n", length);
      hexdump(payload, length);
      break;
    case sIOtype_BINARY_ACK:
      USE_SERIAL.printf("[IOc] get binary ack: %u\n", length);
      hexdump(payload, length);
      break;
  }
}
void setup() {
  Serial.begin(115200);         // Start the Serial communication to send messages to the computer
  delay(10);
  Serial.println('\n');

  WiFi.begin(ssid, password);             // Connect to the network
  Serial.print("Connecting to ");
  Serial.print(ssid); Serial.println(" ...");

  int i = 0;
  while (WiFi.status() != WL_CONNECTED) { // Wait for the Wi-Fi to connect
    delay(1000);
    Serial.print(++i); Serial.print(' ');
  }

  Serial.println('\n');
  Serial.println("Connection established!");
  Serial.print("IP address:\t");
  Serial.println(WiFi.localIP());         // Send the IP address of the ESP8266 to the computer


  //put your server ip address
   socketIO.begin("xx.xx.xx.xx", 3000, "/socket.io/?EIO=4");

    // event handler
    socketIO.onEvent(socketIOEvent);

}

void loop() { 
    socketIO.loop();
  //
  }

Ich werde ein paar Videos posten, wenn es endlich funktioniert.
Ich muss eine Website mit Steckdosen einrichten, um das Auto und den Video-Chat zu steuern, um zu sehen, was passiert.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *