2018年7月2日月曜日

ESP32/arduino : LED ON/OFF

目的 :
トラ技 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 件のコメント:

コメントを投稿