上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
PC/RaspberryPi/温度・湿度などの計測
をテンプレートにして作成
資料室
PC/RaspberryPi/温度・湿度などの計測 をテンプレートにして作成
[
差分
|
バックアップ
|
リロード
]
[ ]
開始行:
* 温度・湿度などの計測
部屋の温度・湿度等をRaspberry Pi/RPZ-IR-Sensorで計測して...
使用するのはRaspberry Pi Zero Wで,RPZ-IR-Sensorをスタッ...
** RPZ-IR-Sensor
#ref(../WEBリモコン/学習リモコンを作る/RPZ-IR-Sensor.png,...
[[RPZ-IR-Sensor>https://www.indoorcorgielec.com/products/...
Raspberry Piの40pin拡張コネクタにスタック装着して使用する...
- BME280(温度・湿度・気圧センサー)搭載~
温度・湿度・気圧を測定するセンサーでA/Dコンバーター内蔵し...
スタックして使用するのでRaspberry Piの発熱の影響を受けて...
インターフェースはI2C。I2C拡張コネクターがあるので付属し...
- TSL2561 光(照度)センサー搭載~
周囲の明るさを計測するための光(照度)センサー。~
センサーはA/Dコンバータを内蔵している。インターフェースは...
- 赤外線送受信機能~
赤外線送信および赤外線受信機能を搭載。~
赤外線送信用のLEDは,チップLEDを3個搭載して広範囲に送信で...
この機能を使って[[学習リモコン>../WEBリモコン/学習リモコ...
- LED,スイッチ搭載~
LEDは4色(緑,黄,青,白)の4個のLED,スイッチは小型タク...
** データ保存用のDBを用意する
自前のサーバーでMariaDBを使用しているので,そこにRaspberr...
DB: envdb
TABLE: iot
COLUM: id int auto inc
rooms varchar(50)
time datetime
temperrature float
humidity float
pressure float
illuminance float
カラムは,id,rooms(部屋の名前), time(日付時間),temp...
*** DBの作成
以下のコマンドでDB envdbを作成する。~
$ mysql -u root -p
MariaDB[(none)]> create database envdb;
MariaDB[(none)]> grant all privileges on envdb.* to yuj...
MariaDB[(none)]> flush privileges;
テーブルiotを作成する。
MariaDB[(none)]> use envdb;
MariaDB[(envdb)]> create table iot (id int not null auto...
テーブルの確認をする。~
MariaDB[(envdb)]> show tables;
+-----------------+
| Tables_in_envdb |
+-----------------+
| iot |
+-----------------+
MariaDB[(envdb)]> show columns from iot;
+-------------+-------------+------+-----+---------+----...
| Field | Type | Null | Key | Default | Ext...
+-------------+-------------+------+-----+---------+----...
| id | int(11) | NO | PRI | NULL | aut...
| rooms | varchar(50) | YES | | NULL | ...
| time | datetime | YES | | NULL | ...
| temperature | float | YES | | NULL | ...
| humidity | float | YES | | NULL | ...
| pressure | float | YES | | NULL | ...
| illuminance | float | YES | | NULL | ...
+-------------+-------------+------+-----+---------+----...
これで計測データを保存するDBが作成出来た。~
** Raspberry Piのソフトウェア
Raspberry Pi Zero WのプログラムはPythonで作成した。~
*** Pi Zero Wのデバイスドライバー
Raspberry Pi Zero W(Raspbian buster)でI2Cインターフェー...
''[[/boot/config.txt>https://www.raspberrypi.com/document...
dtparam=i2c_arm=on
//これで1個目(I2C-1)のI2Cバスが使えるようになる。~
''/etc/modules''に以下を追加する。~
i2c-dev
Raspberry Pi Zero Wを再起動した後,デバイスドライバーがロ...
# lsmod | grep i2c
i2c_bcm2835 7818 0
i2c_dev 7171 0
# ls -la /dev/i2c*
crw-rw---- 1 root i2c 89, 1 4月 13 04:05 /dev/i2c-1
I2Cインターフェースに接続されているデバイスを確認してみる...
$ i2cdetect -l
i2c-1 i2c bcm2835 I2C adapter ...
$ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- 29 -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 77
RPZ-IR-SensorのBME280(0x76,0x77)とTSL2561(0x29)が接続され...
i2cdetectコマンドが無い場合は,
# apt install i2c-tools
でインストールする。
*** BME280とTSL2561用のPythonパッケージ
BME280とTSL2561用のPythonパッケージは,[[RPZ-IR-Sensor>ht...
BME280で温度・湿度・気圧を計測する時に使用するパッケージ...
#code(python,nonumber,bme280i2c.py)
TSL2561で照度を計測するパッケージは''tsl2561.py''。照度が...
#code(python,nonumber,tsl2561.py)
*** 温度・湿度・気圧・照度の計測とDB保存プログラム
Raspberry Piで計測して計測したデータを,[[Ambient>https:/...
Ambientにデータを送信するためPythonのambientパッケージを...
$ pip3 install git+https://github.com/AmbientDataInc/amb...
ローカルのDB(MariaDB)と接続するために,PythonのPyMySQL...
$ pip3 install PyMySQL
部屋の温度・湿度・気圧・照度を計測してDBへの記録するプロ...
センサーは拡張ボードのBME280を使っている。~
#code(python,nonumber,sensor.py)
cronで10分ごとにsensor.pyを起動するようにしている。~
0-59/10 * * * * /home/yuji/work/homesensor/sensor.p...
これで10分毎に計測して,計測したデータを[[Ambient>https:/...
* 計測データの可視化
上記のように計測したデータは[[Ambient>https://ambidata.io...
これで[[Ambient>https://ambidata.io/]]にアクセスして,デ...
** Ambientで計測データを見る
[[Ambient>https://ambidata.io/]]はIoTデータを可視化するCl...
- [[Ambient>https://ambidata.io/]]からユーザー登録でアカ...
- ログインする。~
- チャンネルを作成。~
「リビングルーム」というチャンネル名で作成した。~
チャンネルを作成すると,データ送受信のためのキーが発行さ...
- データをAmbientに送信する。~
上記のプログラム(発行されたキーを埋め込む)で,Raspberry...
- データをグラフで確認。~
データを送信した後は,WEBブラウザでチャンネルを開くとすで...
表示はいろいろカスタマイズ出来るので,好みに設定する。~
-- チャンネルの設定~
チャンネル情報や場所,色をカスタマイズできる。~
場所を表示するようにすると,Google Mapで場所を表示できる...
-- チャートの設定~
表示されているグラフの設定アイコンをクリックすると,グラ...
サイズを変更したり,一つのグラフにいくつかのデータを同時...
このようにして,WEBブラウザでチャンネルを表示するとグラフ...
#ref(ambient.png,,30%)
いつでもいろいろな端末から,WEBアクセスすることで計測デー...
無料でこれだけの機能を提供してもらえるので,1年間のデータ...
- 1チャンネルで8種類のデータに対応。~
- 最大8チャンネル作成できる。~
- 1チャンネルあたり最大3000データ/1日(約30sに1回)まで使...
- 1チャンネル8個までのチャート表示が可能。~
- データーの保存期間は1年間(2023/05/01から4ヶ月)。
** Grafanaで計測データを見る
Ambientは無料で便利に利用していたのだが,規約が変更になり...
そこでローカルDB保存してあるデータを直接グラフ表示するこ...
いろいろ探してみると,[[Grafana>https://grafana.com/grafa...
GrafanaはDBにクエリ問い合わせをして取得したデータを,グラ...
表示する期間や時間帯を変えたり,パーツ毎に特定のノードだ...
対応しているデータソースやDBは数多くある。データソースプ...
- [[Graphite>https://graphiteapp.org/]]~
- [[Prometheus>https://prometheus.io/]]~
- [[Elasticsearch>https://www.elastic.co/jp/elasticsearch...
- [[Grafana Loki>https://grafana.com/oss/loki/]]~
- [[AWS Cloudwatch>https://aws.amazon.com/jp/cloudwatch/]]~
- [[Google Cloud Monitoring>https://cloud.google.com/moni...
- [[Azure Monitor>https://learn.microsoft.com/ja-jp/azure...
- [[Zabbix>https://www.zabbix.com/jp]]~
- [[OpenTSDB>http://opentsdb.net/]]~
- [[InfluxDB>https://www.influxdata.com/]]~
- [[MySQL>https://www.mysql.com/jp/]]~
- [[PostgreSQL>https://www.postgresql.org/]]~
- [[MS SQL Server>https://www.microsoft.com/ja-jp/sql-ser...
これ以外にもいろいろ対応しているようだ。~
** Grafanaのインストール
インストールは[[公式サイト>https://grafana.com/docs/grafa...
自前のローカルサーバー(CentOS 7.9)に以下のようにしてイ...
Grafanaリポジトリを追加する。~
''/etc/yum.repos.d/grafana.repo''を作成する。~
[grafana]
name=grafana
baseurl=https://rpm.grafana.com
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://rpm.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
exclude=*beta*
パッケージ管理ツールで,Grafanaをインストールする。~
# yum check-update
# yum install grafana
インストール後にいくつか設定を行った。~
Apache経由でアクセスできるようにするため,''/etc/httpd/co...
#code(text,nonumber){{
<IfModule mod_proxy.c>
ProxyPreserveHost On
ProxyPass /iot http://xxxx.xxx.xxx.xxx:3000
ProxyPassReverse /iot http://xxx.xxx.xxx.xxx:3000
</IfModule>
}}
Grafanaの設定ファイル''/etc/grafana/grafana.ini''を編集す...
:
protocol = http
http_adr = 192.168.XXX.YYY
domain = yueno.net
root_url = https://xxxx.xxx/iot
:
Apacheを再起動する。~
# systemctl restart httpd
Grafanaの自動起動を有効にして,起動する。~
# systemctl enable grafana-server
# systemctl start grafana-server
# systemctl status grafana-server
** Grafanaでデータを可視化出来るように設定
Grafanaで可視化する場合は,Dashboardを作成してDashboard毎...
- Dashboardを作成~
- Panelを追加~
- データ取得のクエリをセット~
全てGrafanaに管理者でログインしてWEBで設定できる。~
作成・設定したDashboardは保存出来て,設定をJson形式でexpo...
*** Grafanaにログインする
GrafanaへWEBブラウザでURLに https://xxxxxx.xxxx/iot とし...
ログイン画面が表示されるので,最初は管理者ユーザーでログ...
user: admin
password: admin
でログイン出来る。ログイン後パスワードを変更するように促...
*** 新規のユーザーを作成する
configuration → users → inviteをクリックして,必要事項を...
ユーザー追加は招待形式みたいだ。メールで招待を通知するこ...
*** チームを作成する
Grafanaはユーザーをチームというユーザーグループで管理して...
チーム別にトップ画面を変更することが出来るみたい。~
Teams → New teamをクリックして,チーム名を入力した後にCre...
チームを作成したらユーザーを追加する。~
Add member → Add to teamでユーザーを追加出来る。~
Teamsで作成したチームをクリックするとチームの設定ができる...
Settings → Home dashboardでデフォルトのダッシュボードを設...
*** GrafanaでDBにアクセスする
GrafanaでサーバーのDBにアクセスするための設定を行う。~
- 画面左のメニューバーの歯車マークのConfigulation → Data ...
- Add data sourceをクリック~
下の方へスクロールしてMySQLを選択して,DBへの接続設定を行...
Host: DBのIP Address:3306
Database: envdb
User: yuji
Password: ZZZZZZZZ
これでGrafanaからMariaDBに接続できるようになる。~
*** 新しいダッシュボードの作成
Grafanaに新規に作成したユーザーでログインするとデフォルト...
- 画面の左にあるメニューバーのCreateからDashboardを選択し...
- パネル(グラフのこと)を追加する。~
新しいダッシュボードにはまだ何も配置されていないため,パ...
Add panelボタンをクリックしてAdd a new panelを選択すると...
デフォルトパネルは''Time Series''で,横軸が時間でデータを...
- 画面下部にDBからデータを読み込む設定をするところがある...
DBからデータを読み込むためのSQLコマンドを編集する画面にな...
SELECT
CONVERT_TZ(time, '+00:00', '-09:00') AS "time",
temperature 温度,humidity 湿度
FROM
envdb.iot
WHERE
$__timeFilter(time)
ORDER BY time
ダッシュボード上で表示している時間のデータのみを表示させ...
- Title設定
右上のPanel optionsのTitleに「温度・湿度」と入力し,画面...
- 同様にして,気圧と照度も単独のグラフが表示されるように...
- ダッシュボードに表示されているパネルは大きさや位置など...
これでダッシュボード画面に戻ると温度・湿度,気圧,照度の...
Grafanaでグラフ化できるデータは,「時間の要素を持つ数値デ...
画面右上の丸い矢印アイコンのRefresh dashboardをクリックす...
最後に,新しく作成したダッシュボードをSave dashboardをク...
これで,計測したデータを可視化出来るように出来た。~
#ref(grafana.png,,40%)
* I2C通信ポートを別のGPIOを使って行う方法
Raspberry Pi Zero WとRPZ-IR-SensorのBME280とTSL2561との通...
このため,GPIOコネクタの3pinにスイッチ等は接続できない。~
Raspbianでは,RPZ-IR-Sensorを改造するなどしてI2Cバスを別...
例えば,GPIO5(29pin)とGPIO6(31pin)をI2Cバスとして使いたい...
dtoverlay=i2c-gpio,bus=2,i2c_gpio_sda=5,i2c_gpio_scl=6,i...
i2c_gpio_delay_us=2にすることで,通信速度が通常のI2Cバス...
この時,GPIO5とGPIO6の回路にプルアップ抵抗10kΩを実装する...
GPIO0(27pin)とGPIO1(28pin)は1.8kΩでプルアップされているた...
dtoverlay=i2c-gpio,bus=2,i2c_gpio_sda=0,i2c_gpio_scl=1,...
終了行:
* 温度・湿度などの計測
部屋の温度・湿度等をRaspberry Pi/RPZ-IR-Sensorで計測して...
使用するのはRaspberry Pi Zero Wで,RPZ-IR-Sensorをスタッ...
** RPZ-IR-Sensor
#ref(../WEBリモコン/学習リモコンを作る/RPZ-IR-Sensor.png,...
[[RPZ-IR-Sensor>https://www.indoorcorgielec.com/products/...
Raspberry Piの40pin拡張コネクタにスタック装着して使用する...
- BME280(温度・湿度・気圧センサー)搭載~
温度・湿度・気圧を測定するセンサーでA/Dコンバーター内蔵し...
スタックして使用するのでRaspberry Piの発熱の影響を受けて...
インターフェースはI2C。I2C拡張コネクターがあるので付属し...
- TSL2561 光(照度)センサー搭載~
周囲の明るさを計測するための光(照度)センサー。~
センサーはA/Dコンバータを内蔵している。インターフェースは...
- 赤外線送受信機能~
赤外線送信および赤外線受信機能を搭載。~
赤外線送信用のLEDは,チップLEDを3個搭載して広範囲に送信で...
この機能を使って[[学習リモコン>../WEBリモコン/学習リモコ...
- LED,スイッチ搭載~
LEDは4色(緑,黄,青,白)の4個のLED,スイッチは小型タク...
** データ保存用のDBを用意する
自前のサーバーでMariaDBを使用しているので,そこにRaspberr...
DB: envdb
TABLE: iot
COLUM: id int auto inc
rooms varchar(50)
time datetime
temperrature float
humidity float
pressure float
illuminance float
カラムは,id,rooms(部屋の名前), time(日付時間),temp...
*** DBの作成
以下のコマンドでDB envdbを作成する。~
$ mysql -u root -p
MariaDB[(none)]> create database envdb;
MariaDB[(none)]> grant all privileges on envdb.* to yuj...
MariaDB[(none)]> flush privileges;
テーブルiotを作成する。
MariaDB[(none)]> use envdb;
MariaDB[(envdb)]> create table iot (id int not null auto...
テーブルの確認をする。~
MariaDB[(envdb)]> show tables;
+-----------------+
| Tables_in_envdb |
+-----------------+
| iot |
+-----------------+
MariaDB[(envdb)]> show columns from iot;
+-------------+-------------+------+-----+---------+----...
| Field | Type | Null | Key | Default | Ext...
+-------------+-------------+------+-----+---------+----...
| id | int(11) | NO | PRI | NULL | aut...
| rooms | varchar(50) | YES | | NULL | ...
| time | datetime | YES | | NULL | ...
| temperature | float | YES | | NULL | ...
| humidity | float | YES | | NULL | ...
| pressure | float | YES | | NULL | ...
| illuminance | float | YES | | NULL | ...
+-------------+-------------+------+-----+---------+----...
これで計測データを保存するDBが作成出来た。~
** Raspberry Piのソフトウェア
Raspberry Pi Zero WのプログラムはPythonで作成した。~
*** Pi Zero Wのデバイスドライバー
Raspberry Pi Zero W(Raspbian buster)でI2Cインターフェー...
''[[/boot/config.txt>https://www.raspberrypi.com/document...
dtparam=i2c_arm=on
//これで1個目(I2C-1)のI2Cバスが使えるようになる。~
''/etc/modules''に以下を追加する。~
i2c-dev
Raspberry Pi Zero Wを再起動した後,デバイスドライバーがロ...
# lsmod | grep i2c
i2c_bcm2835 7818 0
i2c_dev 7171 0
# ls -la /dev/i2c*
crw-rw---- 1 root i2c 89, 1 4月 13 04:05 /dev/i2c-1
I2Cインターフェースに接続されているデバイスを確認してみる...
$ i2cdetect -l
i2c-1 i2c bcm2835 I2C adapter ...
$ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- 29 -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 77
RPZ-IR-SensorのBME280(0x76,0x77)とTSL2561(0x29)が接続され...
i2cdetectコマンドが無い場合は,
# apt install i2c-tools
でインストールする。
*** BME280とTSL2561用のPythonパッケージ
BME280とTSL2561用のPythonパッケージは,[[RPZ-IR-Sensor>ht...
BME280で温度・湿度・気圧を計測する時に使用するパッケージ...
#code(python,nonumber,bme280i2c.py)
TSL2561で照度を計測するパッケージは''tsl2561.py''。照度が...
#code(python,nonumber,tsl2561.py)
*** 温度・湿度・気圧・照度の計測とDB保存プログラム
Raspberry Piで計測して計測したデータを,[[Ambient>https:/...
Ambientにデータを送信するためPythonのambientパッケージを...
$ pip3 install git+https://github.com/AmbientDataInc/amb...
ローカルのDB(MariaDB)と接続するために,PythonのPyMySQL...
$ pip3 install PyMySQL
部屋の温度・湿度・気圧・照度を計測してDBへの記録するプロ...
センサーは拡張ボードのBME280を使っている。~
#code(python,nonumber,sensor.py)
cronで10分ごとにsensor.pyを起動するようにしている。~
0-59/10 * * * * /home/yuji/work/homesensor/sensor.p...
これで10分毎に計測して,計測したデータを[[Ambient>https:/...
* 計測データの可視化
上記のように計測したデータは[[Ambient>https://ambidata.io...
これで[[Ambient>https://ambidata.io/]]にアクセスして,デ...
** Ambientで計測データを見る
[[Ambient>https://ambidata.io/]]はIoTデータを可視化するCl...
- [[Ambient>https://ambidata.io/]]からユーザー登録でアカ...
- ログインする。~
- チャンネルを作成。~
「リビングルーム」というチャンネル名で作成した。~
チャンネルを作成すると,データ送受信のためのキーが発行さ...
- データをAmbientに送信する。~
上記のプログラム(発行されたキーを埋め込む)で,Raspberry...
- データをグラフで確認。~
データを送信した後は,WEBブラウザでチャンネルを開くとすで...
表示はいろいろカスタマイズ出来るので,好みに設定する。~
-- チャンネルの設定~
チャンネル情報や場所,色をカスタマイズできる。~
場所を表示するようにすると,Google Mapで場所を表示できる...
-- チャートの設定~
表示されているグラフの設定アイコンをクリックすると,グラ...
サイズを変更したり,一つのグラフにいくつかのデータを同時...
このようにして,WEBブラウザでチャンネルを表示するとグラフ...
#ref(ambient.png,,30%)
いつでもいろいろな端末から,WEBアクセスすることで計測デー...
無料でこれだけの機能を提供してもらえるので,1年間のデータ...
- 1チャンネルで8種類のデータに対応。~
- 最大8チャンネル作成できる。~
- 1チャンネルあたり最大3000データ/1日(約30sに1回)まで使...
- 1チャンネル8個までのチャート表示が可能。~
- データーの保存期間は1年間(2023/05/01から4ヶ月)。
** Grafanaで計測データを見る
Ambientは無料で便利に利用していたのだが,規約が変更になり...
そこでローカルDB保存してあるデータを直接グラフ表示するこ...
いろいろ探してみると,[[Grafana>https://grafana.com/grafa...
GrafanaはDBにクエリ問い合わせをして取得したデータを,グラ...
表示する期間や時間帯を変えたり,パーツ毎に特定のノードだ...
対応しているデータソースやDBは数多くある。データソースプ...
- [[Graphite>https://graphiteapp.org/]]~
- [[Prometheus>https://prometheus.io/]]~
- [[Elasticsearch>https://www.elastic.co/jp/elasticsearch...
- [[Grafana Loki>https://grafana.com/oss/loki/]]~
- [[AWS Cloudwatch>https://aws.amazon.com/jp/cloudwatch/]]~
- [[Google Cloud Monitoring>https://cloud.google.com/moni...
- [[Azure Monitor>https://learn.microsoft.com/ja-jp/azure...
- [[Zabbix>https://www.zabbix.com/jp]]~
- [[OpenTSDB>http://opentsdb.net/]]~
- [[InfluxDB>https://www.influxdata.com/]]~
- [[MySQL>https://www.mysql.com/jp/]]~
- [[PostgreSQL>https://www.postgresql.org/]]~
- [[MS SQL Server>https://www.microsoft.com/ja-jp/sql-ser...
これ以外にもいろいろ対応しているようだ。~
** Grafanaのインストール
インストールは[[公式サイト>https://grafana.com/docs/grafa...
自前のローカルサーバー(CentOS 7.9)に以下のようにしてイ...
Grafanaリポジトリを追加する。~
''/etc/yum.repos.d/grafana.repo''を作成する。~
[grafana]
name=grafana
baseurl=https://rpm.grafana.com
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://rpm.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
exclude=*beta*
パッケージ管理ツールで,Grafanaをインストールする。~
# yum check-update
# yum install grafana
インストール後にいくつか設定を行った。~
Apache経由でアクセスできるようにするため,''/etc/httpd/co...
#code(text,nonumber){{
<IfModule mod_proxy.c>
ProxyPreserveHost On
ProxyPass /iot http://xxxx.xxx.xxx.xxx:3000
ProxyPassReverse /iot http://xxx.xxx.xxx.xxx:3000
</IfModule>
}}
Grafanaの設定ファイル''/etc/grafana/grafana.ini''を編集す...
:
protocol = http
http_adr = 192.168.XXX.YYY
domain = yueno.net
root_url = https://xxxx.xxx/iot
:
Apacheを再起動する。~
# systemctl restart httpd
Grafanaの自動起動を有効にして,起動する。~
# systemctl enable grafana-server
# systemctl start grafana-server
# systemctl status grafana-server
** Grafanaでデータを可視化出来るように設定
Grafanaで可視化する場合は,Dashboardを作成してDashboard毎...
- Dashboardを作成~
- Panelを追加~
- データ取得のクエリをセット~
全てGrafanaに管理者でログインしてWEBで設定できる。~
作成・設定したDashboardは保存出来て,設定をJson形式でexpo...
*** Grafanaにログインする
GrafanaへWEBブラウザでURLに https://xxxxxx.xxxx/iot とし...
ログイン画面が表示されるので,最初は管理者ユーザーでログ...
user: admin
password: admin
でログイン出来る。ログイン後パスワードを変更するように促...
*** 新規のユーザーを作成する
configuration → users → inviteをクリックして,必要事項を...
ユーザー追加は招待形式みたいだ。メールで招待を通知するこ...
*** チームを作成する
Grafanaはユーザーをチームというユーザーグループで管理して...
チーム別にトップ画面を変更することが出来るみたい。~
Teams → New teamをクリックして,チーム名を入力した後にCre...
チームを作成したらユーザーを追加する。~
Add member → Add to teamでユーザーを追加出来る。~
Teamsで作成したチームをクリックするとチームの設定ができる...
Settings → Home dashboardでデフォルトのダッシュボードを設...
*** GrafanaでDBにアクセスする
GrafanaでサーバーのDBにアクセスするための設定を行う。~
- 画面左のメニューバーの歯車マークのConfigulation → Data ...
- Add data sourceをクリック~
下の方へスクロールしてMySQLを選択して,DBへの接続設定を行...
Host: DBのIP Address:3306
Database: envdb
User: yuji
Password: ZZZZZZZZ
これでGrafanaからMariaDBに接続できるようになる。~
*** 新しいダッシュボードの作成
Grafanaに新規に作成したユーザーでログインするとデフォルト...
- 画面の左にあるメニューバーのCreateからDashboardを選択し...
- パネル(グラフのこと)を追加する。~
新しいダッシュボードにはまだ何も配置されていないため,パ...
Add panelボタンをクリックしてAdd a new panelを選択すると...
デフォルトパネルは''Time Series''で,横軸が時間でデータを...
- 画面下部にDBからデータを読み込む設定をするところがある...
DBからデータを読み込むためのSQLコマンドを編集する画面にな...
SELECT
CONVERT_TZ(time, '+00:00', '-09:00') AS "time",
temperature 温度,humidity 湿度
FROM
envdb.iot
WHERE
$__timeFilter(time)
ORDER BY time
ダッシュボード上で表示している時間のデータのみを表示させ...
- Title設定
右上のPanel optionsのTitleに「温度・湿度」と入力し,画面...
- 同様にして,気圧と照度も単独のグラフが表示されるように...
- ダッシュボードに表示されているパネルは大きさや位置など...
これでダッシュボード画面に戻ると温度・湿度,気圧,照度の...
Grafanaでグラフ化できるデータは,「時間の要素を持つ数値デ...
画面右上の丸い矢印アイコンのRefresh dashboardをクリックす...
最後に,新しく作成したダッシュボードをSave dashboardをク...
これで,計測したデータを可視化出来るように出来た。~
#ref(grafana.png,,40%)
* I2C通信ポートを別のGPIOを使って行う方法
Raspberry Pi Zero WとRPZ-IR-SensorのBME280とTSL2561との通...
このため,GPIOコネクタの3pinにスイッチ等は接続できない。~
Raspbianでは,RPZ-IR-Sensorを改造するなどしてI2Cバスを別...
例えば,GPIO5(29pin)とGPIO6(31pin)をI2Cバスとして使いたい...
dtoverlay=i2c-gpio,bus=2,i2c_gpio_sda=5,i2c_gpio_scl=6,i...
i2c_gpio_delay_us=2にすることで,通信速度が通常のI2Cバス...
この時,GPIO5とGPIO6の回路にプルアップ抵抗10kΩを実装する...
GPIO0(27pin)とGPIO1(28pin)は1.8kΩでプルアップされているた...
dtoverlay=i2c-gpio,bus=2,i2c_gpio_sda=0,i2c_gpio_scl=1,...
ページ名:
Counter: 0, today: 0, yesterday: 0
Copyright©2008 Yuji Ueno All Rights Reserved.
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
メインメニュー
ホーム
でぶlog
資料室
最新ページ一覧
全ページ一覧
ヘルプ
フォーラム
お問い合わせ