2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Seeed XIAO BLE nRF52840を使ってBLE IoT センサーを作る(製作編)

Posted at

はじめに

前回こちらの記事で実験したBLEセンサを、さらに具体的用途を決めて、製作を行いました。
https://qiita.com/DeviceManager/items/440d3f045429a8edef51

自宅の温度・湿度・気圧・CO2の測定とクラウドでの記録を目的としています、センサは室内・室外に設置する想定です。

室内センサ

室内センサで測定するのは、温度・湿度・気圧・CO2になります。CO2センサの電力消費が多いことから、電池駆動はあきらめ、USBで常時電源を供給して動作するようなものにします。

回路図

シンプルです、XIAO BLEとBME280、CO2センサーのみです。

ソースコード

こちらに公開しました。Platform IOでArduinoを利用したファイル一式です。ほかの環境でのテストは未確認ですが、platform IOで読み込ませることで、たぶんこのまま利用できると思います。
https://github.com/keitanak/XIAO-BLE-IoT-Sensor

ソースコードの以下のコメントを外すことで、CO2センサからもデータの取得をおこない、BLEデータとしてアドバタイズします。

image.png

データフォーマットはヘッダー部分を除いて、以下のようにしています。

  // 温度
  0x10,0x00,0x00,
  // 湿度
  0x11,0x00,0x00,
  // 気圧
  0x14,0x00,0x00,
  // Battery voltage
  0x40,0x00,
  // CO2
  0x17,0x00,0x00

外観

簡単なものですが、プリント基板にしてみました。JLCPCBさんにオーダーしました。

左側がCO2センサ、右上がBME280、右下にXIAO BLEです。ちょっと密着しすぎましたかね。

IMG_20240406_185003780.jpg

室外センサ

室内センサで測定するのは、温度・湿度・気圧になります。BME280のみで済むのでスリープも組み合わせて消費電力を抑えます、電池駆動で、必要な時にUSBで充電して動作するようなものにします。

回路図

シンプルです、XIAO BLEとBME280のみです。ここには表現されていませんが、LIPOバッテリーも必要です。

ソースコード

ソースコードの以下のコメントを入れておくことで、BME280のみデータの取得をおこない、BLEデータとしてアドバタイズします。

image.png

バッテリー駆動にするために、消費電力を抑えるための仕組みを入れてみています。
XIAOでArudino利用時のスリープ動作に関して、なかなかまとまった情報がなかったのですが、
こちらのスレッドの内容が一番役に立ちました。

スリープに関わる要点だけ抜き出してみます

// このライブラリが必要のようです
#include <Adafruit_SPIFlash.h>  // Need to be deleted /Documents/Arduino/libraries/SdFat

// setup()の中では以下の部分を実施しておきます。
  // Enable DC-DC converter
  NRF_POWER->DCDCEN = 1;  // Enable DC/DC converter for REG1 stage

  // Sleep QSPI flash
  flashTransport.begin();
  flashTransport.runCommand(0xB9);  // enter deep power-down mode
  flashTransport.end();

// loop()の中ではスリープするのみでよさそうです。
  //待ち時間を入れます。
  delay(delayTime);

この状態で消費電流を計測してみると、スリープしている期間の消費は5μアンペアです。かなり抑えられていますので、これで良しとしました。

IMG_20240511_110830749-2.jpg

データフォーマットはヘッダー部分を除いて、以下のようにしています。

  // 温度
  0x10,0x00,0x00,
  // 湿度
  0x11,0x00,0x00,
  // 気圧
  0x14,0x00,0x00,
  // Battery voltage
  0x40,0x00,
  // CO2
  0x17,0x00,0x00

外観

簡単なものですが、プリント基板にしてみました。PCBGOGOさんにオーダーしました。

左側がBME280、右側下にXIAO BLEです。真ん中にあるジャンパは消費電流を測定する場合に利用しますが、通常はショートします。

IMG_20240511_141426851_MP-2.jpg

動作確認

まだ長時間の評価はしていませんが、ひとまずはデータがアドバタイズされています。

CO2センサー付き

Screenshot_20240512-173549-2.jpg

10 0AC2 温度 27.54℃
11 1140 湿度 44.16%
14 276A 気圧 1009 hPa
40 29 バッテリー (なし)
17 022B CO2 555 ppm

CO2センサー無

Screenshot_20240512-171310-2.jpg

10 0A19 温度 26.37℃
11 119D 湿度 47.23%
14 2770 気圧 1009 hPa
40 27 バッテリー 3.9V

今後の計画

ようやくセンサー部分ができました。あとはこのセンサーからデータを受信して、クラウドに送信するゲートウエイを別に準備しようと思います。
バッテリーの持続時間も気になるところなので、評価してみたいと思います。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?