源代码:(引用的别人的)
#include <ESP8266WiFi.h>
#include <SocketIoClient.h>
const char* ssid = "tju2106";
const char* pwd = "tju21062106";
const char* HOST = "39.105.118.119"; // 請改成你的電腦IP位址
const int PORT = 5438; // 請改成你的Node.js設定的埠號
unsigned long previousMillis = 0;
long interval = 5000; // 間隔時間,5秒。
SocketIoClient socket;
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, pwd); // 連接Wi-Fi無線網路
Serial.println();
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
// 連線到伺服器時,顯示“Connected to server.”。
socket.on("connect", [](const char * payload, size_t len) {
Serial.println("Connected to server.");
});
// 收到“atime”事件時,顯示收到的資料。
socket.on("atime", [](const char * payload, size_t len) {
Serial.printf("got message: %s\n", payload);
});
socket.begin(HOST, PORT); // 連線到Node.js的伺服器
}
void loop() {
socket.loop();
unsigned long currentMillis = millis();
// 每隔5秒送出“atime”事件,
// 以及 {"msg":"Time please?"} 資料。
if (currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
socket.emit("atime", "{\"msg\":\"Time please?\"}");
}
}
报错::
Arduino:1.8.13 (Windows Store 1.8.42.0) (Windows 10), 开发板:"Generic ESP8266 Module, 80 MHz, Flash, Disabled, All SSL ciphers (most compatible), ck, 26 MHz, 40MHz, DOUT (compatible), 512K (no SPIFFS), 2, nonos-sdk 2.2.1 (legacy), v2 Lower Memory, Disabled, None, Only Sketch, 115200"
C:\Users\pingp\Documents\Arduino\libraries\SocketIoClient\SocketIoClient.cpp: In member function 'void SocketIoClient::beginSSL(const char*, int, const char*, const char*)':
C:\Users\pingp\Documents\Arduino\libraries\SocketIoClient\SocketIoClient.cpp:47:50: error: invalid conversion from 'const char*' to 'const uint8_t* {aka const unsigned char*}' [-fpermissive]
_webSocket.beginSSL(host, port, url, fingerprint);
^
In file included from C:\Users\pingp\Documents\Arduino\libraries\SocketIoClient/SocketIoClient.h:7:0,
from C:\Users\pingp\Documents\Arduino\libraries\SocketIoClient\SocketIoClient.cpp:1:
C:\Users\pingp\Documents\Arduino\libraries\WebSockets\src/WebSocketsClient.h:50:10: error: initializing argument 4 of 'void WebSocketsClient::beginSSL(const char*, uint16_t, const char*, const uint8_t*, const char*)' [-fpermissive]
void beginSSL(const char * host, uint16_t port, const char * url = "/", const uint8_t * fingerprint = NULL, const char * protocol = "arduino");
^
exit status 1
为开发板 Generic ESP8266 Module 编译时出错。