HOME >> 鉄道模型実験室 > 登山鉄道レイアウトとモニタ式操作盤 > ESP32モジュールのスケッチ内容
通信モジュールESP32のスケッチの内容である。
//ESP32 テスト45 #include <WiFi.h> #include <WebServer.h> #define PTS1 12 #define PTS2 14 #define LEFT 32 #define RIGHT 25 #define SPD 26 const char* ssid = "ooooooooooooo"; //ssidを入力 const char* passwd = "oooooooooooo"; //ネットワークパスワード入力 const IPAddress ip(192,xxx,xxx,yyy); const IPAddress gateway(192,xxx,xxx,zzz); const IPAddress subnet(255,255,255,0); WebServer server(80); //通信を受けるポート番号(通常は80に設定) int spd=0 ; void setup(){ Serial.begin(115200); //シリアル通信のデータ転送レートを115200bpsで指定 pinMode(PTS1, OUTPUT); pinMode(PTS2, OUTPUT); pinMode(LEFT, OUTPUT); pinMode(RIGHT, OUTPUT); pinMode(SPD, OUTPUT); digitalWrite(PTS1, LOW); digitalWrite(PTS2, LOW); digitalWrite(LEFT, LOW); digitalWrite(RIGHT, LOW); dacWrite(SPD, 0); WiFi.config(ip,gateway,subnet); delay(100); WiFi.begin(ssid, passwd); //アクセスポイント接続のためのIDとパスワードの設定 while (WiFi.status() != WL_CONNECTED){ //接続状態の確認 delay(300); //接続していなければ0.3秒待つ Serial.print("."); //接続しなかったらシリアルモニタに「.」と表示 } Serial.println(""); //シリアルモニタ改行 Serial.println("WiFi Connected"); //接続したらシリアルモニタに「WiFi Connected」と表示 Serial.print("IP Address : "); //シリアルモニタに表示 Serial.println(WiFi.localIP()); //割り当てられたIPアドレスをシリアルモニタに表示 server.on("/", handleLedOnOff); //TOPページのアドレスにアクセスしたときの処理関数 server.onNotFound(handleNotFound); //存在しないアドレスにアクセスしたときの処理関数 server.begin(); //WebServer起動 } void loop(){ server.handleClient(); } void handleLedOnOff(){ //アクセスしたときの処理関数 if (server.hasArg("point1")){ if (server.arg("point1").equals("on")){ digitalWrite(PTS1, HIGH); server.send(200, "text/html", "Point No1 is Revers Position"); } else if (server.arg("point1").equals("off")){ digitalWrite(PTS1, LOW); server.send(200, "text/html", "Point No1 is Normal Position"); } } if (server.hasArg("point2")){ if (server.arg("point2").equals("on")){ digitalWrite(PTS2, HIGH); server.send(200, "text/html", "Point No2 is Revers Position"); } else if (server.arg("point2").equals("off")){ digitalWrite(PTS2, LOW); server.send(200, "text/html", "Point No2 is Normal Position"); } } if (server.hasArg("direction")){ if (server.arg("direction").equals("left")){ digitalWrite(LEFT, HIGH); server.send(200, "text/html", "LEFT Direction !"); } else if (server.arg("direction").equals("right")){ digitalWrite(RIGHT, HIGH); server.send(200, "text/html", "RIGHT Direction !"); } else if (server.arg("direction").equals("stop")){ digitalWrite(LEFT, LOW); digitalWrite(RIGHT, LOW); server.send(200, "text/html", "Now STOP"); } } if (server.hasArg("speed")){ if (server.arg("speed").equals("up")){ spd = spd + 10; //速度の計算 if (spd >= 255 ){ spd = 255; } dacWrite(SPD, spd); server.send(200, "text/html", "Speed UP !"); } else if (server.arg("speed").equals("down")){ spd = spd - 10; //速度の計算 if (spd <= 0 ){ spd = 0 ; } dacWrite(SPD, spd); server.send(200, "text/html", "Speed DOWN !"); } } } void handleNotFound(void) { //存在しないアドレスへアクセスしたときの処理関数 server.send(404, "text/plain", "Not Found"); }
2022/11/10