#include #include #include // 定义wifi账户|密码 #define AP_SSID "iPhone" #define AP_PSW "12345678" // 服务器端域名地址 char path[] = "/"; char host[] = "caner.top"; int PlyStnRStickUpDn = 0; //读取PS2右侧摇杆向上/向下的值. int PlyStnRStickLtRt = 0; //读取PS2右侧摇杆向左/向右的值. int PlyStnLStickUpDn = 0; //读取PS2左侧摇杆向上/向下的值. int PlyStnLStickLtRt = 0; //读取PS2左侧摇杆向左/向右的值. //socket方法 WebSocketsClient webSocket; PS2X ps2x; //定义宏 #define PS2_DAT 1 //14 #define PS2_CMD 3 //15 #define PS2_SEL 12 //16 #define PS2_CLK 15 //17 //socket自定义监听 void SocketEvent(WStype_t type, uint8_t * payload, size_t length) { switch (type) { case WStype_DISCONNECTED: Serial.printf("[WSc] Disconnected!\n"); break; case WStype_CONNECTED: Serial.printf("[WSc] Connected to url: %s\n", payload); break; case WStype_TEXT: Serial.printf("[WSc] get text: %s\n", payload); break; } }; //监测PS2按钮并发送信息 void Ps2OnButton() { // 拿到值 PlyStnLStickUpDn = ps2x.Analog(PSS_LY); //左侧摇杆上/下 PlyStnLStickLtRt = ps2x.Analog(PSS_LX); //左侧摇杆左/右 PlyStnRStickUpDn = ps2x.Analog(PSS_RY); //右侧摇杆上/下 PlyStnRStickLtRt = ps2x.Analog(PSS_RX); //右侧摇杆左/右 // 读值 ps2x.read_gamepad(); // 发送值 if (ps2x.ButtonPressed(YELLOW_FRET)) { webSocket.sendTXT("1"); } else if (ps2x.ButtonPressed(RED_FRET)) { webSocket.sendTXT("2"); } else if (ps2x.ButtonPressed(BLUE_FRET)) { webSocket.sendTXT("3"); } else if (ps2x.ButtonPressed(ORANGE_FRET)) { webSocket.sendTXT("3"); } else if (ps2x.Button(UP_STRUM)) { webSocket.sendTXT("UP"); } else if (ps2x.Button(DOWN_STRUM)) { webSocket.sendTXT("DOWN"); } else if (ps2x.Button(RIGHT_STRUM)) { webSocket.sendTXT("RIGHT"); } else if (ps2x.Button(LEFT_STRUM)) { webSocket.sendTXT("LEFT"); } else if (ps2x.Button(PSB_START)) { webSocket.sendTXT("START"); } else if (ps2x.Button(PSB_SELECT)) { webSocket.sendTXT("SELECT"); } else if (ps2x.Button(PSB_L2)) { webSocket.sendTXT("L2"); } else if (ps2x.Button(PSB_R2)) { webSocket.sendTXT("R2"); } else if (ps2x.Button(PSB_L1)) { webSocket.sendTXT("K-" + String(PlyStnLStickUpDn)); } else if (ps2x.Button(PSB_R1)) { webSocket.sendTXT("W-" + String(PlyStnLStickUpDn)); } else { webSocket.sendTXT("Other operating"); } }; void setup() { Serial.begin(115200); WiFi.begin(AP_SSID, AP_PSW); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); delay(5000); // socket连接 webSocket.begin(host, 49700, path); // event handler webSocket.onEvent(SocketEvent); // 设置连接认证 // webSocket.setAuthorization("user", "Password"); // 设置重连时间ms webSocket.setReconnectInterval(5000); // 设置心跳ms // webSocket.enableHeartbeat(150000, 3000, 2); ps2x.config_gamepad(PS2_CLK, PS2_CMD, PS2_SEL, PS2_DAT, false, false); } void loop() { // put your main code here, to run repeatedly: webSocket.loop(); Ps2OnButton(); }