グラフィック・ディスプレイを使う (3) Nano 33 IoT+BME280
連載「グラフィック・ディスプレイを使う」の1回目と2回目では、AdafruitのGFXライブラリを使いました。これは、グラフィック・ディスプレイの描画関数のライブラリです。今回から、このライブラリの利用例を解説します。
描画を実行するのは、第2回で使った「Adafruit 2.0" 320x240 Color IPS TFT Display」とマイコン・ボードはNano Everyとピン・コンパチブルの「Nano 33 IoT」(写真下)です。こちらは3.3V動作ですが、グラフィック・ディスプレイは3.3/5Vの両方に対応しています。
随時取得するデータはボッシュのBME280センサを利用します。温度、湿度、気圧が同時に取得できます。動作電圧は3.3Vです。
●BME280
秋月電子通商で入手したBME280ボードを利用します。インターフェースは、
- I2C
- SPI 3線式
- SPI 4線式
の3種類が用意されています。SPI 4線式は一般的なSPIインターフェースで、MOSI、MISO、CLK、CS(SS)の4本でマイコンと接続します。SPI 3線式はMOSIとMISOが共通に接続され、半二重の通信を行います。Microwireの3線式とも呼ばれているようです。
3線式といった場合、デバイスが1個だけのとき、CS(SS)をGNDにつなぎ、MOSI、MISO、CLKの3本でつなぐ方法を指す場合もあります。
●接続
実験ではディスプレイはつないでいません。BME280ボードのJ1、J2、J3は、マニュアルに従いいずれもオープンにしています。
D7につないでいるCSBは、SSもしくはCSと呼ばれるチップ・セレクト信号です。
ディスプレイ | Nano 33 IoT | BME280 |
---|---|---|
Vin | JP2-2 3.3V | Vdd |
3V3 | - | - |
GND | JP2-14 GND | GND |
SCK | JP2-1 SCK | SCK |
MISO | JP3-15 MISO | SDO |
MOSI | JP3-14 MOSI | SDI |
CS | JP3-13 D10 | - |
RST | JP3-12 D9 | - |
D/C | JP3-11 D8 | - |
- | JP3-10 D7 | CSB |
SDCS | - | |
BL | - |
●スケッチ
BME280のライブラリをインストールします。ライブラリ管理の検索欄にBME280と入れ、表示されたAdafruit BME280 Libraryをインストールします。
アラートが出ます。Install 'Adafruit BME280 Library' onlyをクリックしました。
ライブラリと同時にインストールされたサンプルbme280testを選択します。
コンパイルすると、Adafruit_Sensor.hがないといわれます。単独でインストールする方法が見つからなかったので、
https://github.com/adafruit/Adafruit_Sensor/blob/master/Adafruit_Sensor.h
へ行き、ソースをコピーし、エディタに貼り込み、C:\Users\ユーザ名\Documents\Arduino\libraries\Adafruit_BME280_Libraryの中に、Adafruit_Sensor.hのファイル名で保存しました。
デフォルトではI2C用になっているので、2か所変更します。
実行しているシリアルモニタの様子です。