17章:ESP-WROOM-02で気圧センサーモジュール/LPS25H(I2C)制御

    作成2015.11.04

  1. ESP-WROOM-02で気圧センサーモジュール/LPS25H(I2C)の参考アドレス
    51章:Arduino演習(気圧センサーモジュール/LPS25H(I2C)編)
    http://skomo.o.oo7.jp/f47/hp47_51.htm
     Arduino UNOとESP-WROOM-02はLPS25HのI2C制御において、互換性があります。ただし、ESP-WROOM-02のシリアル 通信のボ−レートは115200bpsに設定する必要があります。


  2. ESP-WROOM-02で気圧センサーモジュール/LPS25H(I2C)制御回路図
     ESP-WROOM-02で気圧センサーモジュール/LPS25H(I2C)制御回路図を以下に示します。





  3. スケッチの作成
    (Serial.begin(9600);→Serial.begin(115200);に変更するのみです。
    //LPS25H
    #include     
    #define disk1 0x5D    //Address of LPS25H eeprom chip
     
    void setup(void)
    {
      Serial.begin(115200);
      Wire.begin();  
        Serial.println(readLPS25H(disk1, 0x0F),HEX );//通信確認正常ならば0xBDを受信
        writeLPS25H(disk1, 0x20, 0x90);//パワーオン、1Hzを設定
    }
     
    void loop()
    {
      int i;
      long data[5];
      float P,T;
    
      for(i=0;i<5;i++)
      {
        data[i]=readLPS25H(disk1, 0x28+i);
      }
      P=( float)(data[2]*256*256+data[1]*256+data[0])/4096.0;
    
      if(data[4]>=128)
      {
        T=42.5-( float)(65536-(data[4]*256+data[3]))/480.0;
      }
      else
      {
        T=42.5+( float)(data[4]*256+data[3])/480.0;
      }
      Serial.print("Pressure(hPa)=");
      Serial.print(P,2);
      Serial.print("\t");
      Serial.print("Temperature(C)=");
      Serial.println(T,2);
      
      delay(1000);
    }
     
    void writeLPS25H(int deviceaddress, byte eeaddress, byte data ) 
    {
      Wire.beginTransmission(deviceaddress);
      Wire.write(eeaddress);
      Wire.write(data);
      Wire.endTransmission();
     
      delay(5);
    }
     
    byte readLPS25H(int deviceaddress, byte eeaddress ) 
    {
      byte rdata = 0x00;
     
      Wire.beginTransmission(deviceaddress);
      Wire.write(eeaddress);  
      Wire.endTransmission();
      Wire.requestFrom(deviceaddress,1);
      if (Wire.available()) rdata = Wire.read();
      return rdata;
    }
    


  4. スケッチの書込み
    (1)ESP-WROOM-02のフラッシュ書き換え時のピン設定
    *ENピン:(Chip Enable.)→High(10kΩプルアップ)
    *GPIO-15ピン:(Type I/O MTDO;HSPI_CS; UART0_RTS)→LowHigh(10kΩプルダウン)
    *GPIO-2ピン:(Type I/O UART Tx during flash programming)→High(10kΩプルアップ)
    *GPIO-0ピン:(Type I/O SPI_CS2)→Low(10kΩプルダウン)(Lowでラッシュ書き換えモード)
    *TXピン:USBシリアル変換モジュールのRX
    *RXピン:USBシリアル変換モジュールのTX
    *GNDピン:USBシリアル変換モジュールのGND

    (2)ESP-WROOM-02の電源を投入します。
    (3)メニュー「ツール」_「ポート」_「COM14」を選択します。
    (4)メニュー「スケッチ」_「マイコンボードに書込む」を選択します。
    (5)書込みが完了します。
    (6)GPIO-0ピン:(Type I/O SPI_CS2)→High(10kΩプルアップ)に戻します。
    (7)ESP-WROOM-02の電源を再投入します。


  5. 動作試験
    (1)arduino.exeを起動して、シリアルモニタを開きます。
    (2)GPIO-0ピン:(Type I/O SPI_CS2)→High(10kΩプルアップ)に戻し、ESP-WROOM-02の電源を再投入します。
    (3)シリアルモニタに以下の受信データが1sごとに表示されます。
    Pressure(hPa)=756.50	Temperature(C)=42.50
    Pressure(hPa)=1028.26	Temperature(C)=24.55
    Pressure(hPa)=1028.30	Temperature(C)=24.55
    Pressure(hPa)=1028.33	Temperature(C)=24.56
    Pressure(hPa)=1028.26	Temperature(C)=24.57
    Pressure(hPa)=1028.40	Temperature(C)=24.58
    Pressure(hPa)=1028.27	Temperature(C)=24.58
    Pressure(hPa)=1028.36	Temperature(C)=24.58
    Pressure(hPa)=1028.27	Temperature(C)=24.60
    Pressure(hPa)=1028.30	Temperature(C)=24.60
    Pressure(hPa)=1028.29	Temperature(C)=24.62
    Pressure(hPa)=1028.26	Temperature(C)=24.62
    Pressure(hPa)=1028.32	Temperature(C)=24.63
    Pressure(hPa)=1028.30	Temperature(C)=24.64
    Pressure(hPa)=1028.33	Temperature(C)=24.65
    Pressure(hPa)=1028.44	Temperature(C)=24.65
    Pressure(hPa)=1028.36	Temperature(C)=24.67
    Pressure(hPa)=1028.44	Temperature(C)=24.66
    Pressure(hPa)=1028.50	Temperature(C)=24.68
    Pressure(hPa)=1028.27	Temperature(C)=24.69
    


  6. ESP-WROOM-02で気圧センサーモジュール/LPS25H(I2C)制御まとめ
    (1)Arduino UNOとESP-WROOM-02はLPS25HのI2C制御において、互換性があります
    (2)ただし、ESP-WROOM-02のシリアル通信のボ−レートは115200bpsに設定する必要があります。
    (3)ESP-WROOM-02のコストパフォーマンスはすばらしい!!




18章:ESP-WROOM-02でアナログ入力制御に行く。

トップページに戻る。