このページでは、MQTT, Node-RED, InfludDB, FIWARE等に関する覚書をメモしています。
MQTT
<基礎知識>
注)MQTTサーバー = MQTTブローカー
<ラズパイでMQTT>
注:M5Stackでシリアルが文字化けする場合には、通信速度を115200bpsにすると
<Mosquittoのインストールと基本的な使い方>
サーバー (Broker) のインストール
sudo apt install mosquitto
サーバーの起動
sudo systemctl start mosquitto
サーバーの再起動
sudo systemctl restart mosquitto
バージョンの確認
mosquitto -v
クライアントのインストール
sudo apt install mosquitto-clients
ホスト名、host_aa のブローカーにトピックを指定してのPublish
mosquitto_pub -d -m "メッセージ" -h <ホスト名/IPアドレス> --topic topic_1(もしくは-tオプションでも同じ)
ホスト名、host_aa のブローカーにトピックを指定してのサブスクライブ
mosquitto_pub -d -h <ホスト名/IPアドレス> --topic topic_1(もしくは-tオプションでも同じ)
他のマシンからのアクセス許可する方法やユーザー、パスワードを設定する方法
【備忘録】Raspberry Pi に Mosquitto MQTT Brokerをインストール
ワイルドカードの使用例
home/+/temperature:home 配下の任意のサブ階層の temperature トピックにマッチ
devices/#:devices 配下のすべての階層にマッチします(例:devices/smartphone/status、devices/laptop/battery など)。
※Pimoroniのenviroに関する情報
Enviro Weather (Pico W Aboard)
LAB 3: LoRaWAN example: send sensors values via TTN to Ubidots
Node-RED
Simple IoT Telegram Notifications & Commanding, Node-RED & Telegram Integration 動画
How to use MQTT in Node-Red: basics, examples, tip & tricks 動画
01. Node-REDの概要について シリーズ動画 ノードの使い方
Node-REDダッシュボード
Node-Red Dashboard 2: a quick 1 hour intro into what the new Dashboard looks like
Node-REDダッシュボード2.0 → このページの動画がわかりやすい
Vue.js
Node-RED とTTN
InfluxDB, Grafana
【Iot環境センシング下準備】InfluxDB設定+Grafana+telegrafでラズパイデータ可視化 カッコいいグラフを作ろういn
Raspberry Pi上のInfluxDBに格納したデータをGrafanaで可視化する(Chronografとの比較も)
ISP1807搭載BLEマルチセンサーボードで計測した環境データ(温度・湿度・気圧)をRaspberry Piで可視化するシステムを作る – スイッチサイエンス マガジン
(以下2025.8月以降)
Raspberry Pi IoT Server Tutorial: InfluxDB, MQTT, Grafana, Node-RED & Docker 動画 IOTStackで influxbd1を使っている Arduiono+ラズパイ
Build IoT Server on Raspberry Pi: Node-RED + InfluxDB + Grafana + MQTT Tutorial (MING) 動画 IOTStackで influxbd2を使っている
Connect Node-RED with InfluxDB and Grafana dashboards: EASY Guide 動画
How to Connect Node-Red with InfluxDB v2.0 | Latest Method 動画 InfluxDB用にデータをフォーマットする方法
SuperHouse #41: Datalogging with MQTT, Node-RED, InfluxDB, and Grafana 動画
Home Automation dashboard INSIDE your Magic Mirror with Grafana and Home Assistant! 動画 マジックミラー
Connecting Node Red to InfluxDB V1.8 (32Bit)
MQTTを使ってInfluxDBで記録とダッシュボード表示しつつ、他のデバイスにも送るメモ InfluxDB v.2に繋ぐFunction の設定方法
JSON/JSONata
Grafana
<GeoMap>
<Canvas>
IOTStack
#295 Raspberry Pi Server based on Docker, with VPN, Dropbox backup, Influx, Grafana, etc: IOTstack 動画
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install -y curl
$ curl -fsSL https://raw.githubusercontent.com/SensorsIot/IOTstack/master/install.sh | bash
(自動的にリブート)
$ cd IOTstack
$ ./menu.sh
メニューが表示されるので -> Build Stack <-を選択する
矢印キーでインストールしたいDockerコンポーネントに移動してスペースで選択する
noderedを選択した時に ! ! Issue という警告が出ることがある。その時には右矢印でオプション設定メニューに入り、-> select & build addons list <- からメニューに入り、デフォルトのまま保存して、また元の画面に戻る
エンターキーで確定し、メニューに戻り ->Docker Commands <- を選択する
-> Start stack <- コマンドを選択する
Stackがスタートしインストールが完了するのを待って、エンターを押してメニューにもどる
-> Back <-でメインメニューに戻る
-> Exit <- でコマンドラインに戻る
$ docker-compose ps で現在走っているDockerコンテナの一覧やポート番号が確認できる
例:grafana :3000, influxdb: 8087, mosquitto: 1883, nodered: 1880, portainer: 9000 ??
influxdb2の初期IDは"me"パスワードは"mypassword"
grafanaの初期IDとパスワードはadmin (すぐにパスワードを更新するように求められる)
Node-REDはブラウザから http://127.0.0.1:1880/ でアクセス
(IOTStackの終了方法)
$ cd IOTstack
$ ./meny.sh
メニューが表示されるので ->Docker Commands <- を選択する
-> Stop stack <- コマンドを選択する
-> Back <-でメインメニューに戻る
-> Exit <- でコマンドラインに戻る
もしくは、コマンドラインから
$ docker compose down
なお、同様に
$ docker compose up コマンドでDockerコンテナをコマンドラインから立ち上げることもできる
(Influxdb ver1.8の使い方)
docker exec -it influxdb influx (-itオプションはインタラクティブな端末)
CREATE DATABASE <データベース名 >
Influxdbの基本的な使い方
influxでシェルを起動、exitでシェルを終了
SHOW DATABASESコマンドで、今あるデータベースを表示
CREATE DATABASEコマンドで、データベースを作成
DROP DATABASEコマンドでデータベースを削除
USEコマンドでデータベースを選択
show messurementsでmeasurementsに設定された値が表示される
show FIELD KEYSでfieldKeyとfieldTYpeの一覧を表示する
show TAG KEYSでtagkeyの一覧を表示する
レコードの表示
SELECT * FROM <measurements> LIMIT <数字> → <measruements>から<数字>個のデータを表示する
SELECT * FROM "your_measurement_name" ORDER BY time DESC LIMIT 10 → 最新の10件のデータを表示する
SELECT * FROM "measurement_name" WHERE "tag_key" = 'tag_value' → tagが特定の値の場合のレコードを表示する(文字列はシングルクオーテーションで’’で囲むことに注意!)
INSERTコマンドでデータの書き込み
INSERT <measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]
例: INSERT sensor,room=bedroom temperature=23.4,humidity=67.8,barometer=1023.4 1597746439000000000
データを12時間分(1時間ごとに1時間分削除)保持するポリシー (デフォルトでは無限蓄積)
CREATE RETENTION POLICY <policy1> ON< mydb> DURATION 12h SHARD DUPULICATION 1h REPLICATION 1
INSERT INTO policy1 measurement1 tag1=123, field1=456
データベースを作成時にデフォルトのポリシーを設定する方法
CREATE DATABASE <mydb> WITH DURATION 12h SHARD DUPULICATION 1hREPLICATRION 1 NAME policy_1
データベースの削除
DROP DATABASE "データベース名" → データベースを削除
CREATE DATABASE "データベース名" → 同じ名前でデータベースを再作成
DROP SERIES FROM /.*/ → データベース自体や設定は残したまま、中の時系列データ(レコード)だけを全て削除したい場合
DELETE FROM "測定名" → 特定の測定(テーブルのようなもの)のデータだけを空にしたい場合
TelegrafとInfluxDB
InfluxDB2.0+Grafana+Telegrafの構築 Dockerの利用
Raspberry Pi IoT Server Tutorial: InfluxDB, MQTT, Grafana, Node-RED & Docker 動画 ラズパイ利用
InfluxDB入門
<用語>
Measures(テーブルのこと)
Tags(インデックス(複数可):文字列データのみ)
Fields(データ:あらゆるデータ型が可能)
Shardds, Shard group(ある一定期間のデータのひとまとまり:デフォルトでは1週間)
Retention(データを保存しておく期間:デフォルトでは無期限)
FIWARE
FIWARE AgriGateways
SDR, rtl_433を使った気象データの蓄積
Take charge of your own Ambient weather data with Raspberry Pi, MQTT, an... (動画)
#209 How to Hack your 433 MHz Devices with a Raspberry and a RTL-SDR Don...(動画)
Install rtl_433 for a SDR-RTL Dongle on a Raspberry Pi – SensorsIOT
屋外電源
IFTTT
Blynk