linkServer_3.ino 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. #include <ESP8266WiFi.h>
  2. #include <WebSocketClient.h>
  3. #include <PS2X_lib.h> //for v1.6
  4. #define PS2_DAT 1 //14
  5. #define PS2_CMD 3 //15
  6. #define PS2_SEL 12 //16
  7. #define PS2_CLK 15 //17
  8. PS2X ps2x;
  9. int error = 0;
  10. byte type = 0;
  11. byte vibrate = 0;
  12. int PlyStnRStickUpDn = 0; //读取PS2右侧摇杆向上/向下的值.
  13. int PlyStnRStickLtRt = 0; //读取PS2右侧摇杆向左/向右的值.
  14. int PlyStnLStickUpDn = 0; //读取PS2左侧摇杆向上/向下的值.
  15. int PlyStnLStickLtRt = 0; //读取PS2左侧摇杆向左/向右的值.
  16. /******************************************************************/
  17. const char* ssid = "无线信号";
  18. const char* password = "无线密码";
  19. char path[] = "/wss";
  20. char host[] = "www.xxx.com"; // 服务器端域名地址
  21. WebSocketClient webSocketClient;
  22. WiFiClient client;
  23. void(*resetFunc) (void) = 0;
  24. void setup(void) {
  25. Serial.begin(115200);
  26. ps2x.config_gamepad(PS2_CLK, PS2_CMD, PS2_SEL, PS2_DAT, false, false);
  27. delay(5000);
  28. WiFi.begin(ssid, password);
  29. while (WiFi.status() != WL_CONNECTED) {
  30. delay(500);
  31. Serial.println("loading...");
  32. }
  33. delay(5000);
  34. if (client.connect(host, 80)) {
  35. Serial.println("Wss-Udp-ok!");
  36. } else {
  37. Serial.println("Wss-Udp-No!");
  38. while(1) {
  39. }
  40. }
  41. webSocketClient.path = path;
  42. webSocketClient.host = host;
  43. if (webSocketClient.handshake(client)) {
  44. Serial.println("Handshake Ok");
  45. } else {
  46. Serial.println("Handshake No.");
  47. while(1) {
  48. }
  49. }
  50. }
  51. void loop() {
  52. String data;
  53. PlyStnLStickUpDn = ps2x.Analog(PSS_LY); //左侧摇杆上/下
  54. PlyStnLStickLtRt = ps2x.Analog(PSS_LX); //左侧摇杆左/右
  55. PlyStnRStickUpDn = ps2x.Analog(PSS_RY); //右侧摇杆上/下
  56. PlyStnRStickLtRt = ps2x.Analog(PSS_RX); //右侧摇杆左/右
  57. ps2x.read_gamepad();
  58. if(ps2x.ButtonPressed(RED_FRET)){
  59. webSocketClient.sendData("2");
  60. }
  61. if(ps2x.ButtonPressed(YELLOW_FRET)){
  62. webSocketClient.sendData("1");
  63. }
  64. if(ps2x.ButtonPressed(BLUE_FRET)){
  65. webSocketClient.sendData("3");
  66. }
  67. if(ps2x.ButtonPressed(ORANGE_FRET)){
  68. webSocketClient.sendData("4");
  69. }
  70. if(ps2x.Button(UP_STRUM)){
  71. webSocketClient.sendData("UP");
  72. }
  73. if(ps2x.Button(DOWN_STRUM)){
  74. webSocketClient.sendData("DOWN");
  75. }
  76. if(ps2x.Button(RIGHT_STRUM)){
  77. webSocketClient.sendData("RIGHT");
  78. }
  79. if(ps2x.Button(LEFT_STRUM)){
  80. webSocketClient.sendData("LEFT");
  81. }
  82. if(ps2x.Button(PSB_START)){
  83. webSocketClient.sendData("START");
  84. }
  85. if(ps2x.Button(PSB_SELECT)){
  86. webSocketClient.sendData("SELECT");
  87. }
  88. if(ps2x.Button(PSB_L2)){
  89. webSocketClient.sendData("L2");
  90. }
  91. if(ps2x.Button(PSB_R2)){
  92. webSocketClient.sendData("R2");
  93. }
  94. if(ps2x.Button(PSB_L1)) {
  95. webSocketClient.sendData("K-" + String(PlyStnLStickUpDn));
  96. }
  97. if(ps2x.Button(PSB_R1)) {
  98. webSocketClient.sendData("W-" + String(PlyStnRStickUpDn));
  99. }
  100. if (client.connected()) {
  101. webSocketClient.getData(data);
  102. if (data.length() > 0) {
  103. if(data == "server-ok"){
  104. webSocketClient.sendData("Hello!");
  105. }
  106. if(data == "username or password"){
  107. webSocketClient.sendData("admin:123456");
  108. }
  109. if(data == "reset"){
  110. Serial.println("EPS-Reset ...");
  111. resetFunc();
  112. }
  113. }
  114. }else{
  115. resetFunc();
  116. }
  117. delay(50);
  118. }