ESP8266により、各種センサを用いて取得した値をシリアルモニタに表示します。
準備
パソコン、ESP8266
アナログ入力とデジタル入力
センサの種類により、アナログ入力、デジタル入力を使用します。使用する関数はアナログの場合、analogRead()、デジタル入力の場合digitalRead()となります。アナログ入力に使用できるピンはA0、デジタル入力に使用できるピンは、D0(16)、D1(5)、D2(4)、D4(2)、D5(14)、D6(12)、D7(13)です。カッコ内の番号はGPIOとしてのピン番号です。アナログ入力の分解能は、理論的には、3.3V / 1024 (10bit)となります。
プログラム-analogRead()を使用した例-
アナログ入力を用いる場合の基本プログラムを示します。A0に入力された電圧は、ADC(Analog-Digital Converter)を介して、0から1023の値として取得されます。今回使用したESP8266では、analogRead()で得られる値の最小値は4、最大値が1024となりました。
以下のプログラムを書き込み、シリアルモニタを表示すると、A0に入力される電圧に対応した整数値が表示されます。
#define A_SENSOR A0
int value = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
value = analogRead(A_SENSOR);
Serial.println(value);
delay(1000);
}
プログラム-digitalRead()を使用した例-
デジタル入力を用いる場合の基本プログラムを示します。センサをD2に接続し、digitalRead(D2)として、ON/OFFの信号を読み取ります。
#define D_SENSOR D2
int value = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
value = digitalRead(D_SENSOR);
Serial.println(value);
delay(1000);
}