02 ESP8266でセンサの値を取得

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);
}