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