« ESP8266でAjax(SDWebServerで削除) | トップページ | ESP8266WebServerが遅いわけ »

2015年7月17日 (金)

ESP8266のHelloServerちょろ変えでTOUTピンデータ表示

ESP8266のHelloServerちょろ変えでTOUTピンデータ表示

ESP8266 Arduino IDE のスケッチ例の HelloServer を最低限の修正でTOUTピンのデータを表示する。

スケッチのHandleRootを以下のように修正する(2行追加1行修正)。

void handleRoot() {
  digitalWrite(led, 1);
  int adc = analogRead(A0);   // input TOUT Pin
  String msg = "hello from esp8266!\r\nTOUT: " + String(adc);
  server.send(200, "text/plain", msg);
  digitalWrite(led, 0);
}

動作は
LED点灯後(元からあったまま)
TOUTピンのデータを読み出します
読み取ったTOUTピンの数値からStringに変換しつつ前後に文字追加
そのStringをWebブラウザに返す。

この後入力値から電圧を計算すると測定値がおかしいことが判りました。

調査すると C:\Users\<user>\AppData\Roaming\Arduino15\packages\esp8266\hardware\esp8266\1.6.4-673-g8cd3697\cores\esp8266\core_esp8266_wiring_analog.c で readvdd33() を呼び出しています。readvdd33() は libphy.a にありソースは無さそうです。
戻ってきた値を >>2 して1/4にしています。TOUTピン解放でanalogRead(A0)の戻り値を4/1000すると3V3への供給電圧になります。
analogRead(A0)またはanalogRead(17)以外ではdigitalRead(pin) * 1023の値で0または1023が返ります。

ということで上記サンプルはTOUTピン解放で3V3端子の電圧を読み取るプログラムということになりそうです。

« ESP8266でAjax(SDWebServerで削除) | トップページ | ESP8266WebServerが遅いわけ »

Arduino」カテゴリの記事

コメント

ashiyuさん、こんばんは。
早速アップされた情報で書き換えてみました。
簡単にとてもうまくいっています。
目から鱗です。
ご指摘のとおり、温湿度データなのですが、ADCの代わりに変数データを渡してうまくいきました。
handleRoot()の中だけだと温度変化を取り込めてないようなので、LOOPの中でデータをgetして変化を取り込めるようになりました。
ありがとうございました。

同じ内容でコメントさせていただきました。

参考にしていただきありがとうございます。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/569662/61896173

この記事へのトラックバック一覧です: ESP8266のHelloServerちょろ変えでTOUTピンデータ表示:

« ESP8266でAjax(SDWebServerで削除) | トップページ | ESP8266WebServerが遅いわけ »