All posts by silky

IoT 見守りデバイスの開発

見守りIoTデバイスは、ウェアフリー生体センサ・シート型圧電センサと開発ボード、電源で構成された。

シート型圧電センサ

本研究では体動がなく静かな状態で得られた生体信号を分析対象とする。センサは敏感すぎて 体動があると、振幅が大大き過ぎになり、それらが検出できなくなる。

図 4.2 センサシートと開発ボード

今回使用したシート型圧電センサの外形寸法(31cm×34cm)により、椅子の座面に敷いた 状態で測定することにした(図 3.2 右側)。座り状態で安定しやすくなり、血圧や脈拍も測 定しやすくなる。本センサでは 得られた信号は呼吸成分や心拍成分でできている。

見守り開発ボード

 

見守り開発ボードにはA/D変換モジュールADS1115、ESP8266マイクロコントローラ内蔵の開発ボードWeMos D1 Miniと、OLED表示モジュール SSD1306が含まれる。

WeMos D1 MiniとはESP8266をメインチップとして、CH340のUSBシリアル変換チップを組み合わせた開発ボードだ。ESP8266マイクロコントローラはWi-Fiネットワークに接続し、簡単なTCP/IP接続を行うことができる。

 

ADS1115は可変ゲインアンプ付き、4チャンネル内蔵の16bit  A/D コンバータ。I2Cというシリアル通信方法で開発ボードに接続する。

 

SSD1306は小型 解像度128×64 OLED ディスプレイである。こちらもI2Cというシリアル通信方法で開発ボードに接続する。

図 4.3 見守りIoTボード

 

UPDとの通信はUPD APIを利用する。データをUPDへ送信と、UPDから見守り開発ボードへの管理コマンド受信に利用されている。送受信データのTAGは、複数の個体を区別するため、マイクロコントローラのMACアドレスの一部を利用する。例えば見守りIoTボードのMACアドレス下6桁は37cb33のマイクロコントローラに対して、ゲインを4に設定する場合は、TAGは gain-37cb33 である。

 

ウェアフリー生体センサからのデータをサンプリング周波 数 100Hz でデータを取得し、A/D変換して保存する。一定期間のデータを収集したら、まとめてUPDへ送信する。データサンプルは付録1を参照。一度にデータの収集できる期間は、見守りデバイスマイクロコントローラの内蔵メモリの容量による。

ESP8266マイクロコントローラの場合、メモリのリミットにより、6 秒間のデータの蓄積、送信できた。プログラムの最適化により、より長い期間のデータの蓄積、送信も可能である。

図 4.4 ケースにいれた見守りIoTボード

 

見守りIoTボードUPDから見守りデバイスへの管理コマンドの受信も可能である。

ADS1115は可変ゲインアンプであり、現在実装したコマンドはそのゲインの設定である。次はADS1115のゲインを指示するコマンドのサンプルである。

 

“VALUE” “gain-37cb33” “4”

われわれ開発した見守りIoTデバイスのプログラムはGitHubのリポジトリを参照する。

Arduino NANO (2) 1602 LCD i2c 表示

1602 LCD直接繋ぐと、6つのデジタルポートを占有(4つデータワイヤ+2の制御ワイヤが必要)し、GPIOはたくさん消耗するので、i2cを利用すると2つのアナログポートが足りる。

WeMosで試すと、うまくいかないので、より汎用のこのNANOで試す。すんなりうまくいく。

I2C インターフェイス SDA、SCL は Arduino Nano ではそれぞれ A4、A5 です。

Arduino Nano
SDA A4
SCL A5

 

サンプルプログラム。

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);

void setup() {
  lcd.init(); 
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Hello, world!");
}

void loop(){
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis() / 1000);
}

写真も後ほどに。

Arduino NANO (1) AD8232 Heart Rate Monitor

経緯

IoT材料を探しに、AD8232 Heart Rate Monitor パーツを購入しました。

添付資料は何もないので、ネットで検索したら、結構出ました。

目の動きも検出できる、いろいろできそう。

回路

参考資料は、Arduino NANOを利用するので、そのままの回路を組み立てる予定。成功したら、ESP8266,ESP32に移植するつもり。

The detailed specification of the Arduino Nano board is as follows:

    • Microcontroller ATmega328
    • Operating Voltage (logic level): 5 V
    • Input Voltage (Recommended): 7-12 V
    • Input Voltage (limits): 6-20 V
    • Digital I/O Pins : 14 (of which 6 provide PWM Output)
    • Analog Input Pins: 8
    • DC Current per I/O Pin: 40 mA
    • Flash Memory 32 KB (ATmega328) of which 2 KB used by bootloader
    • SRAM: 2 KB (ATmega328)
    • EEPROM: 1 KB (ATmega328)
  • Clock Speed: 16 MHz
  • Measurements: 0.73″ x 1.70″

Arduino NANOとAD8232をつないて、LCDまたはOLEDで表示するつもりだが、安定した結果は出ないので、部品の問題か、ソフトウェアの問題か、解決に難航。

部品を買い増すして、検証する予定。

スケッチ

参考資料

  1. https://learn.sparkfun.com/tutorials/ad8232-heart-rate-monitor-hookup-guide