前提・実現したいこと
ESP8266を積んだNodeモジュールをArduinoとして使おうとしています。
ピリオドの前に何か問題があるということはわかりますが、
そのあたりのヘッダファイルをのぞいてみたりしましたが、
結局Grepなどを使ってもたどり着けませんでした。
発生している問題・エラーメッセージ
D:\Arduino\ESP32_LED_Train\ESP32_LED_Train.ino: In function 'void setup()': ESP32_LED_Train:39:10: error: 'class WiFiServer' has no member named 'on' server.on("/RH", handleon(LED_R)); // IPアドレス+/Hの時 handleon()関数の起動を設定 ESP32_LED_Train:47:9: error: expected unqualified-id before '.' token Server.begin(); // サーバを開始 ^ D:\Arduino\ESP32_LED_Train\ESP32_LED_Train.ino: In function 'void loop()': ESP32_LED_Train:53:9: error: expected unqualified-id before '.' token Server.handleClient(); // ブラウザへのアクセスに応じて適切な関数を起動処理する ^ D:\Arduino\ESP32_LED_Train\ESP32_LED_Train.ino: In function 'void handleRoot()': ESP32_LED_Train:61:9: error: expected unqualified-id before '.' token Server.Send(200, "text/HTML", temp); ^
該当のソースコード
#include <ESP8266WebServer.h> #include <ESP8266WebServerSecure.h> //#include <ESP8266WebServerSecureAxTLS.h> //#include <ESP8266WebServerSecureBearSSL.h> #include <SPI.h> #include <WiFi.h> #include <WiFiServer.h> const char ssid[] = "SPWN_N34_3e32a6"; const char password[] = "6046e5d4b0d04"; WiFiServer server(80); IPAddress ipadr; #define LED_G 4 #define LED_R 5 void setup() { // put your setup code here, to run once: pinMode(LED_G, OUTPUT); // LED接続ポートを出力に設定 pinMode(LED_R, OUTPUT); // LED接続ポートを出力に設定 digitalWrite(LED_G, LOW); // 出力をLOWにしてLEDを消灯する digitalWrite(LED_R, LOW); // 出力をLOWにしてLEDを消灯する Serial.begin(9600); // シリアルモニタを115200bpsで初期化 WiFi.mode(WIFI_STA); // Wi-Fiのモードを設定 WiFi.begin(ssid, password); // 接続するSSID キーを指定してWi-Fiを開始 Serial.println("Now Connecting"); // シリアルプリントの出力改行のみ while (WiFi.status() != WL_CONNECTED) { // 接続が完了するまで待つ delay(500); // 各回500msの時間待つ //Serial.print("."); // 待ち時間500msごとに1ドット表示 接続が完了すると抜ける } ipadr = WiFi.localIP(); Serial.println(""); Serial.print("Connected to "); // Wi-Fi接続を表示 Serial.println(ssid); // SSID表示 Serial.print("IP address: "); Serial.println(ipadr); // シリアルモニタにIPアドレスを表示 Server.on("/", handleRoot); // IPアドレスのみのアクセス時はhandleRoot()を起動 Server.on("/RH", handleon(LED_R)); // IPアドレス+/Hの時 handleon()関数の起動を設定 Server.on("/RL", handleoff(LED_R)); // IPアドレス+/Lの時 handleoff()関数の起動を設定 Server.on("/GH", handleon(LED_G)); // IPアドレス+/Hの時 handleon()関数の起動を設定 Server.on("/GL", handleoff(LED_G)); // IPアドレス+/Lの時 handleoff()関数の起動を設定 Server.begin(); // サーバを開始 Serial.println("HTTP server started"); } void loop() { // put your main code here, to run repeatedly: Server.handleClient(); // ブラウザへのアクセスに応じて適切な関数を起動処理する } void handleRoot() { String temp = "Click <a href=\"/RH\">here</a> to turn the LED RED on.<br />"; temp += "Click <a href=\"/RL\">here</a> to turn the LED RED off.<br />\n"; temp += "Click <a href=\"/GH\">here</a> to turn the LED GREEN on.<br />"; temp += "Click <a href=\"/GL\">here</a> to turn the LED GREEN off.\n"; ~~server.send(200, "text/HTML", temp)~~; Server.send(200, "text/HTML", temp); } void handleon(int led) { digitalWrite(led, HIGH); // GET /H turns the LED on handleRoot(); } void handleoff(int led) { digitalWrite(led, LOW); // GET /L turns the LED off handleRoot(); }
試したこと
WiFiServerのサンプルにしました。
書き込み官僚となりましたが、文字が赤色でした。
⇒
回答者の方のアドバイスにより
ServerのSを小文字から大文字に変更しました。
補足情報(FW/ツールのバージョンなど)
Windows10、
Arduino1.8.9
回答2件
あなたの回答
tips
プレビュー