ラズパイ4やめてJetson Nano + Influxdbをセンシングの母艦にする:ラズパイ4壊れたので新規インストール・センシングセンサーも新規設定:ラズパイ用Pimoroni(ピモロニ)PHAT 9選 3つ使ってみる

ラズパイ4でInfluxdbを使って自宅の温湿度・Co2などセンシングしてたけどラズパイがフリーズを繰り返してMicroSDが壊れてしまったので、あまり使っていないJetson NanoでInfluxdbを使ってセンシングデータの母艦にする。

結果的にJetson nanoはRaspberryPi4よりCPUが速いようで安定的にInfluxDBが動いた。

ただ、Jetson nanoは2GBのUSB Type-C接続できるバージョンでM.2のWifi+Bluetoothカードを装着できず、Wifiドングルは買いましたが、Bluetoothドングルは古いのしか持っていなかったため、Bluetoothで取得するセンシングデータはRaspberry Piで取得してInfluxDBに投げることにした。

この記事は複数のページに別れています
  1. (今このページを見ています)
  1. Jetson nano 2GB セットアップとWifi接続
    1. Jetson nanoのOSダウンロード
    2. SDカードフォーマッター
    3. Etcherで書き込み
    4. Wifiにつながらない!
    5. ブリッジ接続
      1. Wifiドングルのドライバー
      2. アイ・オー・データ Wi-Fi 無線LAN 子機 11ac/n/a/g/b 43
  2. Barrierで複数PC間でキーボード・マウスを共有
    1. Windows10のbarrierインストール
    2. 起動・終了
    3. 設定
    4. Jetson nano 準備
    5. Softwareでインストール
    6. 初期設定
    7. 自動起動
    8. 自動起動設定ファイルを変更する
    9. ラズパイにもインストール・設定
      1. 下準備
      2. 本体ダウンロード
      3. 起動
      4. 初期設定
    10. Windowsでの設定
  3. Jetson nano InfluxDBインストールする前の下準備
    1. Jetson Nanoアップデート・アップグレード
    2. 母艦用IPアドレス192.168.31.53をJetson Nanoにする
  4. InfluxDBインストール・起動確認
    1. apt-getでインストール
    2. 起動
    3. 起動確認
    4. 自動起動設定
    5. 終了
    6. InfluxDBのCPU占有率
  5. grafana 導入
    1. ダウンロードページ
    2. OS・アーキテクチャを調べる
    3. インストール
    4. 自動起動・リロード
    5. 起動
    6. 起動確認
    7. Grafanaアクセス
  6. telegraf 導入
    1. telefrafのページ
    2. インストール
    3. 起動
    4. 起動確認
    5. 自動起動
    6. 設定
  7. InfluxDBのデータをリストア
    1. InfluxDB ストップ
    2. InfluxDB バックアップ
    3. ディレクトリの確認
      1. ポータブルSSDのディレクトリ
      2. リストアする場所
    4. メタ リストア
    5. データ リストア
    6. 起動してみる
    7. influxdbに権限を与える
    8. telegrafで確認したら過去データ含めて表示された!
    9. grafana-cliでGrafanaのプラグイン インストール
  8. Chronograf 導入
    1. インストール
    2. 初期設定
  9. Python下準備
    1. pipインストール
    2. PythonのInfluxDBクライアント
  10. Jetson Nanoの内部データ取得設定
    1. CPU温度
      1. Pythonスクリプト
      2. Cron
    2. 電力モード
    3. コア数・動作周波数
    4. Grafana サーバーのセンシング 項目は少なくなったけど復活
  11. Bluetoothセンシングデータ取得(未完→ラズパイ4で実行する)
    1. 下準備
      1. bluepy
      2. Bluetooth
      3. hcitool
    2. 以前作ったPythonスクリプトを流用
    3. Scanするけど結果が帰って来ない
    4. Bluetoothドングルのバージョン調べる
  12. その他の処理
    1. Ubuntuアップグレードしない
    2. LibreOfficeは使用しないので削除

Jetson nano 2GB セットアップとWifi接続

Jetson nanoのOSダウンロード

OSをDL、2GB用がある!間違いやすい。

Jetson Download Center

最初、2GB用ではなく、ノーマルのほうのjetson-nano-4gb-jp441-sd-card-image.zipをDLしてしまったので、書き込みしたら起動しなかった!

間違えやすいので注意。2GBバージョンのコレ↓をDLする。

jetson-nano-2gb-jp441-sd-card-image.zip

2023/8はバージョンが4.6.1になっていた。

Zipファイルをダウンロードする。

Jetson nano

SDカードフォーマッター

MicroSDをフォーマットする。↓このページの一番下、「同意します」をクリックでZipファイルをダウンロードする。

SDメモリカードフォーマッター Windows用 | SD Association
SDメモリカードフォーマッター Windows用のダウンロードサイトです。
Jetson nano

Etcherで書き込み

詳しいインストールのやり方は以下のNvidiaのページにあります。

Jetson Nano 2GB Developer Kit - Get Started
Find resources to build AI apps, AI robots, and more.

DLしたZipファイルを選択するとimgとして認識される。

Jetson nano

書き込み完了したらJetson nanoにMicroSDを指して起動する。

Wifiにつながらない!

ブリッジ接続

とりあえずWindowsと有線LAN接続のブリッジ接続する。

Jetson nano

うまくつながらない・・・

Wifiルーターに直接LANケーブルさしてネットにつなげて作業した。

Wifiドングルのドライバー

USBのWifiドングルがやってきたのでドライバーを当てて使う。

よく調べずに適当に買った↓Wifiドングルですが、結果的にうまく動きました。

アイ・オー・データ Wi-Fi 無線LAN 子機 11ac/n/a/g/b 43

アイ・オー・データ Wi-Fi 無線LAN 子機 11ac/n/a/g/b 43

Wifiルーターに直接LANケーブル刺して作業するか、mt7610u-linksys-ae6000-wifi-fixes-masterをDL後、USBメモリなどにコピーしてJetson nanoにさす。

$ cd /usr/local/src
$ sudo git clone https://github.com/xtknight/mt7610u-linksys-ae6000-wifi-fixes.git
$ cd mt7610u-linksys-ae6000-wifi-fixes
$ sudo make
$ sudo make install
$ sudo reboot

これでWifi USBドングルの青LEDがチカチカすればOK

WifiルーターでWifi 5Gで接続できた。

Barrierで複数PC間でキーボード・マウスを共有

Jetson nanoにキーボードとマウスを新たに接続するのは無駄なので、Windowsのマウス・キーボードを使うようにする。

Windows10のbarrierインストール

キーボードとマウスが接続されているWindows10用のアプリをインストール。

こちらから最新のbarrierをインストールします。

Tags · debauchee/barrier
Open-source KVM software. Contribute to debauchee/barrier development by creating an account on GitHub.

インストールしたのは2.33でこちらの一番下まで行って、BarrierSetup-2.3.3-rerease.exeをダウンロードする。

あとはインストーラを起動させてServerを選択してインストール。

起動・終了

Barrierを起動すると↓以下のような画面になるのでServerを選択してあるかチェックして、右下の「開始」ボタンを押す。

停止ボタンを押すと、キーボード・マウスは共有されない。

設定

Barrier > Change Settingsを選ぶと設定画面に↓以下の2項目設定する。

  • Elevate:Always
  • Enable SSL:チェックを外す

以上でWindows側の設定は完了。

Jetson nano 準備

続いてJetson nano側での設定

flatpak というパッケージ管理ツールでインストールする。

sudo add-apt-repository ppa:alexlarsson/flatpak
sudo apt install flatpak gnome-software-plugin-flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Softwareでインストール

左下の設定 > Softwareを選択して、Barrierと検索すると出てくる。

初期設定

サーバーIPの部分はWindowsのIPアドレスを入力、その後、Auto configにチェックを入れて適用ボタンを押す。

この画面↑がJetson nanoを起動しているときに一緒に起動します。

自動起動

Jetson nano起動時にBarrierも起動するように起動ファイルをautostartにコピーする。

sudo cp /var/lib/flatpak/app/com.github.debauchee.barrier/current/active/files/share/applications/com.github.debauchee.barrier.desktop /etc/xdg/autostart/

自動起動設定ファイルを変更する

上でコピーした com.github.debauchee.barrier.desktopに設定はあるが、「 Exec=flatpak run com.github.debauchee.barrier 」などを変更、以下のようにする。

sudo vi /etc/xdg/autostart/com.github.debauchee.barrier.desktop

[Desktop Entry]
Type=Application
Name=Barrier
Comment=Keyboard and mouse sharing solution19
Exec=flatpak run com.github.debauchee.barrier 
Icon=com.github.debauchee.barrier
Terminal=false
Categories=Utility;DesktopUtility;
Keywords=keyboard;mouse;sharing;network;share;

X-Flatpak-RenamedFrom=barrier.desktop;

ラズパイにもインストール・設定

下準備

sudo apt update && sudo apt upgrade -y

sudo apt install git cmake make xorg-dev g++ libcurl4-openssl-dev libavahi-compat-libdnssd-dev libssl-dev libx11-dev libqt4-dev qtbase5-dev -y

本体ダウンロード

git clone https://github.com/debauchee/barrier.git

cd barrier
./clean_build.sh
cd build
sudo make install
sudo reboot

起動

再起動したら左上のラズベリー > アクセサリ > Barrierを選択。

初期設定

日本語を選んでクライアントを選択。

メニューのBarrier > Change Settingsで以下のように「SSLを使用」のチェックを外してOKボタンを押す。

Windowsでの設定

最後にWindowsでマウスの移動によりどのOSを操作するか設定していきます。

BarrierのServer内の「サーバーを設定」ボタンを押すと以下のような画面に、

ここでJetson nanoのNanoが表示されるので、仮想位置を設定してダブルクリックします。

以下の設定はマウスがWindowsのディスプレイ右隅に行くとJetson nanoに切り替わる設定。

これでマウスを右隅にしたらJetson nanoでマウスとキーボードが使えるようになりました。

Jetson nano InfluxDBインストールする前の下準備

Jetson Nanoアップデート・アップグレード

sudo apt-get update && sudo apt-get upgrade -y

母艦用IPアドレス192.168.31.53をJetson Nanoにする

WifiルーターでJetson NanoのIPアドレスを固定する。

センサーを積んでいるESP32やラズパイで192.168.31.53にデータを送るようにしたので、IPアドレスをラズパイ4からJetson Nanoに変更する。

WifiルーターはXiaomiのルーターでMi Wifiアプリかブラウザの192.168.31.1で操作可能。けっこう高機能だけど中国語なのがネック。

静的IP設定の部分、Raspi4Bを削除する。

Raspi4Bを違うIPアドレスに変更して、Jetson Nanoを目的のIPアドレスにする。

Jetson Nanoとラズパイ4の固定IPアドレス完了した。

InfluxDBインストール・起動確認

apt-getでインストール

sudo apt-get install influxdb

InfluxDBバージョン(1.1.1+dfsg1-4)だった。

起動

sudo systemctl start influxdb.service

起動確認

Activeの部分が active (running) になっていれば正常に起動している、 activating (start) だと正常に動いていない。

$ systemctl status influxdb.service
● influxdb.service - InfluxDB is an open-source, distributed, time series databa
   Loaded: loaded (/lib/systemd/system/influxdb.service; enabled; vendor preset:
   Active: active (running) since Sat 2021-10-16 14:17:59 JST; 17min ago
     Docs: man:influxd(1)
 Main PID: 4494 (influxd)
    Tasks: 9 (limit: 2280)
   CGroup: /system.slice/influxdb.service
           └─4494 /usr/bin/influxd -config /etc/influxdb/influxdb.conf

10月 16 14:26:41 nano influxd[4494]: [httpd] 192.168.31.139 - root [16/Oct/2021:
10月 16 14:28:02 nano influxd[4494]: [httpd] 192.168.31.204 - root [16/Oct/2021:

自動起動設定

$ sudo systemctl enable influxdb.service
Synchronizing state of influxdb.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable influxdb

終了

一旦終了して、外付けHDDにバックアップしておいたInfluxDBをコピーする。

sudo systemctl stop influxdb.service

InfluxDBのCPU占有率

Jetson nanoでInfluxDBを運用しているときにCPU負荷を見てみた。

センシングデータがたくさんInfluxDBに飛んできていますが、いまのところぜんぜん平気みたい。ラズパイよりもかなり優秀な気がしてきた。

top - 10:35:26 up  1:27,  2 users,  load average: 0.11, 0.09, 0.13
Tasks: 266 total,   1 running, 265 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.7 us,  1.0 sy,  0.0 ni, 98.1 id,  0.0 wa,  0.2 hi,  0.1 si,  0.0 st
KiB Mem :  2019268 total,    89388 free,  1593568 used,   336312 buff/cache
KiB Swap:  5203916 total,  5119708 free,    84208 used.   266108 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 4512 influxdb  20   0 3226260 381268  11172 S   1.7 18.9   6:11.53 influxd
12221 go        20   0   10156   3528   2788 R   1.0  0.2   0:00.73 top
 1141 root     -51   0       0      0      0 S   0.7  0.0   0:41.97 irq/74-teg+
 5867 root      20   0 6724348  58600  47352 S   0.7  2.9   3:23.06 Xorg

Raspberry Pi4BのときはInfluxDBのCPU負荷が高い時で300%とか行ってたので気がつくとフリーズしてたみたい。

Jetson nanoに変えてからは多くて30%くらいのCPU負荷なので、まだ余裕がありそう。最初からJetson nanoにしておけばよかった。

ちなみにJetson nanoのメモリ2GBバージョンなので、メモリがちょっと足りない気がする。

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           1971        1579          61          52         331         236
Swap:          5081          82        4999

grafana 導入

InfluxDBのデータをグラフィカルにきれいに表示してくれるツール

ダウンロードページ

Download Grafana | Grafana Labs
Overview of how to download and install different versions of Grafana on different operating systems.

OS・アーキテクチャを調べる

上記DLページを見るとUbuntuやRedhatなどのインストール方法があるので、Jetson NanoのOSを調べてみる、Ubuntuでよさそう。

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.6 LTS"

アーキテクチャも調べてみます。

$ uname -m
aarch64
$ arch
aarch64
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-linux-gnu/7/lto-wrapper
Target: aarch64-linux-gnu

aarch64なのでARM64です。

  • OS:Ubuntu
  • アーキテクチャ:ARM64(aarch64)

インストール

ARMボタンを押して、一番上のUbuntuの部分でインストールできそう。

説明にあるようにインストールする。

sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/enterprise/release/grafana-enterprise_8.2.1_arm64.deb
sudo dpkg -i grafana-enterprise_8.2.1_arm64.deb

自動起動・リロード

$ sudo systemctl enable grafana-server
Synchronizing state of grafana-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable grafana-server
Created symlink /etc/systemd/system/multi-user.target.wants/grafana-server.service → /usr/lib/systemd/system/grafana-server.service.

$ sudo systemctl daemon-reload

起動

sudo systemctl start grafana-server

起動確認

$ systemctl status grafana-server
● grafana-server.service - Grafana instance
   Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vend
   Active: active (running) since Sat 2021-10-16 15:02:30 JST; 3s ago
     Docs: http://docs.grafana.org
 Main PID: 10234 (grafana-server)
    Tasks: 9 (limit: 2280)
   CGroup: /system.slice/grafana-server.service
           └─10234 /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini --

10月 16 15:02:33 nano grafana-server[10234]: t=2021-10-16T15:02:33+0900 lvl=info
10月 16 15:02:33 nano grafana-server[10234]: t=2021-10-16T15:02:33+0900 lvl=info

Grafanaアクセス

http://192.168.31.53:3000( ID・Passはデフォルトでadmin・admin )

まずはパスワードを生成する。↓

まだデータがなにもない↓のでグラフは表示できない、telegrafインストールしてみる。

telegraf 導入

Jetson NanoのCPU使用率や温度などをInfluxDBに保存してグラフにしてくれるツール

telefrafのページ

Telegraf Documentation
Documentation for Telegraf, the plugin-driven server agent of the InfluxData time series platform, used to collect and report metrics. Telegraf supports four ca...

インストール

https://docs.influxdata.com/telegraf/v1/install/

Ubuntuなのでapt-getでインストールできそう。

sudo apt-get update && sudo apt-get install telegraf
E: パッケージ telegraf が見つかりません

パッケージない?? Ubuntu 21.04+でないとだめみたい。Jetson NanoはUbuntu18.04だった・・・

Jetson Nanoを再起動して再度やってみたら今度はちゃんとインストールできた。

 sudo apt-get update && sudo apt-get install telegraf

起動

sudo service telegraf start

起動確認

$ sudo systemctl status telegraf
● telegraf.service - The plugin-driven server agent for reporting metrics into I
   Loaded: loaded (/lib/systemd/system/telegraf.service; enabled; vendor preset:
   Active: active (running) since Sat 2021-10-16 15:41:24 JST; 59s ago
     Docs: https://github.com/influxdata/telegraf
 Main PID: 10704 (telegraf)
    Tasks: 11 (limit: 2280)
   CGroup: /system.slice/telegraf.service
           └─10704 /usr/bin/telegraf -config /etc/telegraf/telegraf.conf -config

10月 16 15:41:24 nano systemd[1]: Started The plugin-driven server agent for rep

自動起動

sudo systemctl enable telegraf

設定

telegrafの設定でInfluxDBとNetのデータを収集させる。

sudo vim /etc/telegraf/telegraf.conf

以下の項目をコメントアウトした。

 [[inputs.influxdb]]
   urls = [
     "http://localhost:8086/debug/vars"
   ]
   timeout = "5s"

[[inputs.net]] 

InfluxDBのデータをリストア

ラズパイ4で運用していたInfluxDBのバックアップデータをリストアする。

InfluxDB ストップ

sudo systemctl stop influxdb.service

InfluxDB バックアップ

ラズパイ4では以下のようにバックアップした。

influxd backup /media/pi/ssd/influxdb
influxd backup -database telegraf /media/pi/ssd/influxdb
influxd backup -database sensor /media/pi/ssd/influxdb

metaとDataをバックアップする。

ディレクトリの確認

ポータブルSSDのディレクトリ

SSHでポータブルSSDにアクセスすると以下のように長ったらしい名前になっている。

/media/ユーザ名/73a0c708-506d-4803-8438-845d18349ee8/influxdb/

この中にメタデータとデータが入っている。

リストアする場所

/var/lib/influxdb/meta と、 /var/lib/influxdb/data

メタ リストア

sudo influxd restore -metadir /var/lib/influxdb/meta /media/ユーザ名/73a0c708-506d-4803-8438-845d18349ee8/influxdb

データ リストア

telegrafとsensorのデータをリストアします。

sudo influxd restore -database sensor -datadir  /var/lib/influxdb/data /media/ユーザ名/73a0c708-506d-4803-8438-845d18349ee8/influxdb

sudo influxd restore -database telegraf -datadir  /var/lib/influxdb/data /media/ユーザ名/73a0c708-506d-4803-8438-845d18349ee8/influxdb

起動してみる

sudo systemctl start influxdb.service

influxdbに権限を与える

リストアした /var/lib/influxdb内のファイルやディレクトリはすべてrootになっているので、全てInfluxDBユーザーにする。

sudo chown -R influxdb:influxdb /var/lib/influxdb/*

コレをしないとセンサーからのデータが保存されなかった。

telegrafで確認したら過去データ含めて表示された!

ラズパイ4で取得したデータなどが正常に表示されるようになった。

一部、まだJetson Nanoで設定していない部分が表示されないが、InfluxDBのバックアップ・リストアが正常にできたみたい。

grafana-cliでGrafanaのプラグイン インストール

プラグインのインストール方法は以下で説明しましたので参考にしてくださると嬉しいです。

プラグインを導入する方法はこのように grafana-cli plugins install すると導入可能。

$ sudo grafana-cli plugins install farski-blendstat-panel
✔ Downloaded farski-blendstat-panel v1.0.3 zip successfully

Please restart Grafana after installing plugins. Refer to Grafana documentation for instructions if necessary.

プラグインを導入したら最後に以下のようにGrafanaを再起動すればプラグインが適用されます。

sudo service grafana-server restart

Chronograf 導入

ついでにInfluxDBのWebツール Chronografもインストールする。

インストール

sudo apt-get install chronograf

初期設定

http://localhost:8888/にアクセス

適当にSystemを選択していくと、以下のようにJetson Nanoの動作環境をグラフにしてくれた。

Python下準備

pipインストール

Pythonのツールを簡単にインストールできるパッケージ管理ツール

sudo apt-get -y install python3-pip
sudo apt-get -y install python-pip

Pythonで動くようになった。

$ python3 -m pip -V
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
$ python -m pip -V
pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)

PythonのInfluxDBクライアント

PythonスクリプトからInfluxDBにデータを送るときに必要です。

sudo pip install influxdb

Jetson Nanoの内部データ取得設定

Jetson nanoはいまのところCPU・GPUなどの温度しか取得できませんでした。

CPU温度

A0・CPU・GPU温度を取得してPythonでInfluxDBにアップすればよさそう。

$ cat /sys/devices/virtual/thermal/thermal_zone[0-9]/type
AO-therm
CPU-therm
GPU-therm
PLL-therm
PMIC-Die
$ cat /sys/devices/virtual/thermal/thermal_zone[0-9]/temp
50000
44500
40500
41000
50000
43500

Pythonスクリプト

3種の温度を取得しました。

#!/usr/bin/python
# -*- coding: utf-8 -*-
import time 
import subprocess
import sys

from influxdb import InfluxDBClient
client = InfluxDBClient(host='localhost', port=8086, username='root', password='パスワード', database='sensor')
measurement = 'cpu'
tags = {'host': 'nano'}

def GetCpuTemp():#temp
	temp_value = 0
	Zone_cnt = 3
	temps = list()
	for zone in range(Zone_cnt):
		path = "/sys/devices/virtual/thermal/thermal_zone" + str(zone) + "/temp"
		with open(path, "r") as fs:
			for line in fs:
				temp_value = temp_value + int(line)
				#print(int(line)/1000)
				temps.append(int(line)/1000)
	return temps

if __name__=='__main__':
	
	FieldArr = ''
	CpuTemparr	 = GetCpuTemp()
	FieldArr = {'A0_temp': CpuTemparr[0] , 'CPU_temp': CpuTemparr[1] , 'GPU_temp': CpuTemparr[2]}

	json_body = [
		{
			'measurement': measurement,
			'tags': tags,
			'fields': FieldArr
		}
	]
	print(json_body)
	client.write_points(json_body)

Cron

Cronで定期的に実行させる。

$ crontab -e
*/3 * * * * /usr/bin/python /home/ユーザー名/script/nanocpu.py

電力モード

Jetson nanoの消費電力は?取得できないのかな?調査不足。

10W/5Wモードがある。↓ファン無しで10W(MAXN)モードになっていた。

$ sudo nvpmodel -q
NVPM WARN: fan mode is not set!
NV Power Mode: MAXN
0

5Vモード↓切り替え、10Vモードは「0」にする。

sudo nvpmodel -m 1

コア数・動作周波数

$ sudo jetson_clocks --show
SOC family:tegra210  Machine:NVIDIA Jetson Nano 2GB Developer Kit
Online CPUs: 0-3
cpu0: Online=1 Governor=schedutil MinFreq=1200000 MaxFreq=1479000 CurrentFreq=1479000 IdleStates: WFI=1 c7=1
cpu1: Online=1 Governor=schedutil MinFreq=1200000 MaxFreq=1479000 CurrentFreq=1479000 IdleStates: WFI=1 c7=1
cpu2: Online=1 Governor=schedutil MinFreq=1200000 MaxFreq=1479000 CurrentFreq=1479000 IdleStates: WFI=1 c7=1
cpu3: Online=1 Governor=schedutil MinFreq=1200000 MaxFreq=1479000 CurrentFreq=1479000 IdleStates: WFI=1 c7=1
GPU MinFreq=76800000 MaxFreq=921600000 CurrentFreq=76800000
EMC MinFreq=204000000 MaxFreq=1600000000 CurrentFreq=1600000000 FreqOverride=0
Fan: PWM=0
NV Power Mode: MAXN

Grafana サーバーのセンシング 項目は少なくなったけど復活

Jetson Nanoの内部センシングはラズパイ4よりCPU電力やNetなど取得項目が減ったけど一応完成。

温度・Volt以外はTelegrafから取得しています。

Grafana↑のJsonファイル(TXTファイルです)はこちらに置いておきます。

そのうちにもう少し研究して増やしていきます。

ここから先はBluetoothでセンシングデータを取得してInfluxDBに保存しますが、うちにあるUSBのBluetoothドングルが古すぎてうまく動かなかったので未完成です。

うまくいかなかった状況など残しておきます。

Bluetoothセンシングデータ取得(未完→ラズパイ4で実行する)

WxBeacon2 で温度・湿度・気圧・照度・騒音・紫外線・不快指数・熱中症危険度の情報をInfluxDBに送って自宅の環境をグラフ化します。 WxBeacon2はBluetooth接続

古いBluetoothドングルを使おうと思いましたがBluetooth2.1という古いものだったので使えず、Raspberry Pi4でBluetoothでセンシングしたデータを受け取ってJetson nanoのInfluxDBに投げることにした。

下準備

bluepy

WxBeacon2やXiaomiの温度計からデータをハックするのに使います。

sudo pip install bluepy

Bluetooth

BluetoothをWxBeacon2 使う。

sudo apt-get install python-bluez

hcitool

うちに転がっていたUSBのBluetoothドングルをJetson nanoに指す。

最初は Input/output error が出たけどhci0をダウン・アップしてもう一度スキャンしたら動いた?けど同じMACアドレスが永遠と表示される??

$ sudo hcitool lescan
Set scan parameters failed: Input/output error
$ sudo hciconfig hci0 down
$ sudo hciconfig hci0 up
$ sudo hcitool lescan
LE Scan ...
0B:D8:37:70:59:95 (unknown)
0B:D8:37:70:59:95 (unknown)

以前作ったPythonスクリプトを流用

以下で詳しく説明しました。

WxBeacon2で温度・湿度・気圧・照度・騒音・紫外線・不快指数・熱中症危険度の8つをセンシングしてグラフ表示
前回まででラズパイを母艦にしてセンシングしたデータをデータベース(InfluxDB)に保存してGrafanaでグラフ表示することができたので、今後は少しずつセンシングデータを増やしていく作業です。 今のところセンサーで取得できているデータは

ラズパイ4からスクリプトファイル郡のomronディレクトリをJetson nanoの/home/ユーザー名/script/omronにコピーして作業する。

Scanするけど結果が帰って来ない

Bluetoothドングルが古いからかな?Bluetoothバージョン古い?

$ sudo python /home/ユーザー名/script/omron/envsensor_observer.py
envsensor_observer : complete initialization

----------------------------------------------------
sensor status : 2021-10-18 09:41:24.460953 (Intvl. 180sec)

----------------------------------------------------
sensor status : 2021-10-18 09:44:24.685067 (Intvl. 180sec)

----------------------------------------------------
sensor status : 2021-10-18 09:47:22.848962 (Intvl. 180sec)

Bluetoothドングルのバージョン調べる

$ hciconfig -a
hci0:   Type: Primary  Bus: USB
        BD Address: 00:1B:DC:06:77:3F  ACL MTU: 310:10  SCO MTU: 64:8
        UP RUNNING
        RX bytes:15697 acl:0 sco:0 events:689 errors:0
        TX bytes:7958 acl:0 sco:0 commands:459 errors:0
        Features: 0xff 0xff 0x8f 0xfe 0xdb 0xff 0x5b 0x87
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
        Link policy: RSWITCH HOLD SNIFF PARK
        Link mode: SLAVE ACCEPT
        Name: 'nano'
        Class: 0x000000
        Service Classes: Unspecified
        Device Class: Miscellaneous,
        HCI Version: 4.0 (0x6)  Revision: 0x22bb
        LMP Version: 4.0 (0x6)  Subversion: 0x22bb

LMPが4.0だと・・・Bluetoothバージョンは2.1+EDRらしい・・・コレじゃあ取得できなさそう。

ということで、Bluetoothドングル買おうかと思ったけど、ラズパイ4でBluetooth関連のセンシングデータを受け取って、その後、Jetson nanoのInfluxDBに投げることにする。

その他の処理

Ubuntuアップグレードしない

Ubuntu 18.04.6 LTSからアップグレードしようとしたが、おかしくなるとの情報があるのでやめる。

sudo apt update
sudo apt install update-manager
sudo apt dist-upgrade
sudo do-release-upgrade -d

LibreOfficeは使用しないので削除

sudo apt remove libreoffice-*

コメント

タイトルとURLをコピーしました