トラ技 2017年11月号付録の ESP32基板を組み立てたが、 Arduino IDE のサンプル i_LEDblink.ino で ON/OFF できないまま放置していた。これを動作させられる様、調査/学習する。
修正点 :
以下を修正することで、動作可能となった。
1. 行の読み込みを '\n' までとし、最終行の判定は '\r' で行う。
if (client.available()) { // if there's bytes to read from the client, String line = client.readStringUntil('\n'); <--- '\r' を '\n' に変更 ・ ・ ・ if (line.length() == 1 && line[0] == '\r'){ <--- '\n' を '\r' に変更(HTMLの行の最後は '\r\n' で、最終行は空行('\r\n'のみ) の為、'\r' まで読み込んで '\n'で判定すると最後に '\n' が余ってしまう為。
line = client.readStringUntil('\n') で 読み込んだ場合、'\n' は line には含まれない。 )
2. ボタン押下の判定時、line.IndexOf は、-1 でないことを判定する。
if (line.indexOf("GET /?on")!=-1) { <--- -1 でない場合に変更 digitalWrite(2, HIGH); // GET /H turns the LED on } if (line.indexOf("GET /?off")!=-1) { <--- -1 でない場合に変更 digitalWrite(2, LOW); // GET /L turns the LED off }( line.IndexOf は 指定文字列を含まない時に -1 を返すため )
0 件のコメント:
コメントを投稿