投稿

ラベル(Raspberry Pi)が付いた投稿を表示しています

MQTTでIoT通信(3)受け取ったのデータのファイル保存 プログラムをサービスとして起動する

MQTTでIoT通信(4)受け取ったのデータのファイル保存に挑戦。 sudo apt install python3-paho-mqtt で Pythonの paho-mqtt ライブラリをインストール logger.pyとして import paho.mqtt.client as mqtt import os # --- 設定 --- BROKER = "localhost" TOPIC = "sensor/#"     # 受信したいトピック #LOG_FILE = "mqtt_data.csv" # 保存ファイル名 LOG_FILE_pre = "/tmp/mqtt-data-" # 保存ファイル名の接頭部分 # メッセージ受信時の処理 def on_message(client, userdata, msg):     # 届いた内容を文字列に変換     payload = msg.payload.decode("utf-8")     #トピックスのデータの処理 sensor/マシン名     myTOPIC = msg.topic.split('/')     #myTOPIC[0]がsensorで[1]がマシン名     #ペイロードのデータの処理     mydata = payload.split(':')        # mydata[0] = tmp  mydata[1]が温度になるはず      LOG_FILE = LOG_FILE_pre +myTOPIC[1] + '-' + mydata[0] + ".txt"   #logファイルの指定 /tmp/に接頭語 マシン[>          # ファイルに上書き保存(自動で閉じる仕組み) データの値だけ格納、温度だと24.45みたいな     with open(LOG_FILE, "w", encoding="utf-8")...

MQTTでIoT通信(2)mosquittoの設定

 mosquittoの設定する。 /etc/mosquitto/mosquitto.confが設定ファイルで、初期設定では以下のようになっている。 #Place your local configuration in /etc/mosquitto/conf.d/ # # A full description of the configuration file is at # /usr/share/doc/mosquitto/examples/mosquitto.conf #pid_file /run/mosquitto/mosquitto.pid persistence true persistence_location /var/lib/mosquitto/ log_dest file /var/log/mosquitto/mosquitto.log include_dir /etc/mosquitto/conf.d 詳細は /etc/mosquitto/conf.d 以下からインクルードするようになっている。特にファイルは置かれていない(READMEだけ)。取りあえず最低限の記述をするために /etc/mosquitto/conf.d/01mosquitto.conf を作成 listener 1883 0.0.0.0 allow_anonymous true 全てのIPからポート1883で受信する パスワード認証とかは無し という設定です。   sudo systemctl restart mosquitto で再起動。 mosquitto_sub -d -t /client/abc を実行。別クライアントから mosquitto_pub -h [ IP address ] -p 1883  -t /client/abc -m "shee546978" で通信できる。 ユーザー認証 以下でユーザー作成1回目だけ -c をつける(ファイル pwfile が作成される) sudo mosquitto_passwd -c /etc/mosquitto/pwfile testuser パスワード入力を2回求められるので適当にいれると ファイル pwfile にハッシュ値?で保存される(違うユーザーで同じパスワードいれても違う値になるね)。...

MQTTでIoT通信(1)

  MQTTでIoT通信をしようと思う。まずはサーバーになるラズパイ(取りあえずはバーチャルマシンに構築したx64のRaspberry pi OSをインストールしたサーバー)にMQTT Broker(サーバーみたいなもの)をインストールソフトはmosquitto > sudo apt install mosquitto 次にパブリッシャーをインストール > sudo apt install mosquitto-clients ターミナルを2枚開いてAで受信状態にします。 mosquitto_sub -d -t /client/abc Bで送信コマンドを送る mosquitto_pub -d -t /client/abc -m "shee546978" A側で   Subscribed (mid: 1): 0 Client (null) received PUBLISH (d0, q0, r0, m0, '/client/abc', ... (10 bytes)) shee546978  と受信される。 取りあえず、これで動作確認ができる。 ただし現在はブローカーも、パブリッシャーもサブスクライパーも同じマシン上で動いていることに注意。 参考 https://qiita.com/sheep29/items/637f9f00e35cc707f681 https://elchika.com/article/ea67de45-ab62-4515-8a63-e9f83f056eed/ https://qiita.com/tsudaryo1715/items/da6092fecaa42f7d9b23

Raspberry pi OS Raspbian GNU/Linux 13 (trixie) コマンド備忘録 6 mh-z19でmunin

 Raspberry pi OS Raspbian GNU/Linux 13 (trixie) コマンド備忘録 5 python仮想環境 mh-z19 第2 前回作ったdist/ フォルダ内に  main をnz-h19-appとファイル名を変更し/usr/local/binに移動 /usr/share/munin/plugins/ に munin-chk-co2 を以下のようなファイルを作成 #!/bin/bash if [ "$1" = "autoconf" ]; then         echo "yes"         exit 0 fi if [ "$1" = "config" ]; then     # グラフタイトル     echo 'graph_title CO2'     # グラフ縦軸     echo 'graph_vlabel CO2 (ppm)'     # グラフのスケール設定 #    echo 'graph_args --base 1024 -l 0'     #カテゴリ     echo "graph_category Environment"     #グラフの縦軸の制限     echo graph_args --lower-limit 400 #--upper-limit 4000     # 凡例の設定        # each line name     echo server1.label CO2 #    echo server2.label WiMAX_Transfer2_amount     #ライン値設定     echo server1.draw LINE2     #    echo server2.draw LINE2 ...

Raspberry pi OS Raspbian GNU/Linux 13 (trixie) コマンド備忘録 5 python仮想環境 mh-z19 第2

 uvの仮想環境のディレクトリに作成されるmain.pyを以下のように書き換える import mh_z19 def main(): #print("Hello from mh-z19-test!") CO2_conce = mh_z19.read_all(serial_console_untouched=True)["co2"] print(CO2_conce) if __name__ == "__main__": main() uv run main.py で 400 とか測定結果だけが出てくる。 pyinstaller --onefile main.py を実行。結構時間かかる。 dist/ フォルダ内に  main というファイルができる、サイズが約11MB。 mvでファイル名変えてのOK。  

Raspberry pi OS Raspbian GNU/Linux 13 (trixie) コマンド備忘録 4 python仮想環境 mh-z19

  mkdir python uv init mh-z19-test で ~/python/mh-z19を作成。 cd mh-z19-test  uv add mh-z19 するがエラーになるので事前に、以下の2つをインストールしてから実行 sudo apt install -y swig sudo apt install -y liblgpio-dev   uv add mh-z19    uv add mh-z19 を普通にすると以下のエラーが出る。        Built mh-z19==3.1.7       Built getrpimodel==0.1.26   × Failed to build `lgpio==0.2.2.0`   ├─▶ The build backend returned an error   ╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)       [stdout]       running bdist_wheel       running build       running build_py       running build_ext       building '_lgpio' extension       swigging lgpio.i to lgpio_wrap.c       swig -python -o lgpio_wrap.c lgpio.i       [stderr]       error: command 'swig' failed: No such file or directory       h...

Raspberry pi OS Raspbian GNU/Linux 13 (trixie) コマンド備忘録 2 BME280 webmin

 webminのインストールはちょっとかわった。 https://webmin.com/download/ に有るようにした。 curl -o webmin-setup-repo.sh https://raw.githubusercontent.com/webmin/webmin/master/webmin-setup-repo.sh sudo sh webmin-setup-repo.sh webmin-setup-repo.shを実行数と環境を設定してくれる。ちょっと時間がかかる。そして apt-get install --install-recommends webmin でwebminがインストールされる。 -------------------  古いOSだとインストール時にBME280を使うときに pipでモジュールインストール していたが、trixieからは全部apt sudo apt-get install i2c-tools sudo apt-get install python3-pip apt install smbus2 apt install python3-bme280 でインストール、 muninは  muninで温度と湿度をグラフ化  で行けそう

Raspberry pi 2でMagicMirror2

 すでに多くの報告があるのですが、二番煎じくらいの導入したときに備忘録。 インストールまでの準備は Raspberry pi OS Raspbian GNU/Linux 13 (trixie) コマンド備忘録 で インストールしたら、 まずは画面上に任意の文字列を表示したいので MMM-HTMLBox  https://github.com/ulrichwisser/MMM-HTMLBox をインストール。インストール方法は上記ページにあるようにモジュールをインストール config.jsに以下を追加 {         module: "MMM-HTMLBox",         position:"top_left",         config: {                       width: "100%",                       height: "200px",                       refresh_interval_sec: 30,                      backgroundColor: "#FFF",                       content: "There is nothing to display. <br>Put your HTML code into content field in 'config.js'.",         ...

Raspberry pi OS Raspbian GNU/Linux 13 (trixie) コマンド備忘録

ラズパイのRaspberry pi OSちょっと前のDebian 12(bookworm)くらいから色んな事が結構かわっている。 syslogのようなログが/var/logにない # journalctl で表示 # journalctl | grep hoge で検索して表示 #journalctl -f で tail -f と同じ -------------------------- Wifiの設定 情報が錯綜しすぎていて、どうなっているの状態 /etc/wpa_supplicant/wpa_supplicant.conf に書けば良いという情報 しかし、raspi-configで設定し、接続できた場合 /etc/wpa_supplicant/wpa_supplicant.conf というファイルは存在しない。 困った。 ----------------------------- Raspberry pi 2にnode.jsの最新版をいれようとして https://qiita.com/DM2525/items/9d3fbf4367b33df5bdfe をさんこうにしたが、大問題が、Unsupported architecture: armhf. Only amd64, arm64 are supported.で32bit armをサポートしていない・・・・。 以下を実行 curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install nodejs -y sudo apt install nsolid -y node -v で V20.19.4 npm -v で V10.8.2 を返す。 ----------------- MagicMirror2のインストール、めっちゃ時間かかる。「Installing dependencies ...」で止まったみたいになっている。30分くらいだんまり。SDのアクセスランプは点滅しているように見えるが。  bash -c "$(curl -sL https://raw.githubusercontent.com/sdetweil/MagicMirror_scripts/master/raspberry.sh)...

ラズパイのコンソールに画像を表示する(3)

 ラズパイのコンソールに画像を表示する(1) 2024/5/24  からfibというツールを使ってみた亜が、(実用にはいたっていない)調査すると fimというツールが有るらしい。今後はこちらを使おうと思ったかが -t オプションがない? 数秒ごとに画像をスライドショーする機能がなさそうだ。何と言うことだ。

Raspberry Pi 4をUSB-SSDから起動

 Raspberry Pi 4をUSB-SSDから起動させたいと思っていたら色々問題があたったので、備忘録。 まずRaspberry Pi、USB起動には適合するケースがある。 コマンドプロンプトで lsusb -t を実行 Driver=uasだとうまく起動ドライブに使えないらしい。 :  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M     |__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver= uas , 5000M usb-strageだと起動できる。  /:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M     |__ Port 2: Dev 3, If 0, Class=Mass Storage, Driver= usb-storage , 5000M 対策としては次のサイトにある 「Raspberry Pi 4でUSB3.0接続のSSDがとても遅い」 https://signal-flag-z.blogspot.com/2020/03/raspberry-pi-4usb30ssd.html#google_vignette  現状のケースをuasドライバーを使わないようにブラックリストにいれる。取りあえず最後に usb-storageだと多分つまずかずにインストールできる。 すでに運用しているSDから移行する場合は「SD Card Copier」を使うらしいのだが、GUI環境でしか使えないらしい。それは面倒だ。今回は rpi-clone をつかう。インストールは至って簡単で git clone https://github.com/billw2/rpi-clone.git cd rpi-clone  sudo cp rpi-clone rpi-clone-setup /usr/local/sbin だけ、  lsblkで接続されているSSDを確認。 sudo rpi-clone sda でコピーがOK。 PARTUUIDの確認 以下のコ...

python3-xyzでpip install netifacesができない

 久々にRaspberry Piセットアップしていて sudo apt install pip pip install netifaces でnetifacesをインストールしようとしたら、エラーでインストールできなかった。 error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install     python3-xyz, where xyz is the package you are trying to     install. とでたので、 sudo apt install python3-netifaces でインストールできた。  

今更ながらラズパイをwindowsからリモートでラズパイ上のpython開発

 ラズパイにsshが入っていて接続できることと、VSCがインストールされていることを前提でWindows側のVSCの設定をしていく 1.Remote Developmentをインストール Microsoft謹製のRemote Developmentを拡張機能からインストールする。(一瞬で終わる) 2.リモートエクスプロラーから設定 左メニューの仲野リモートエクスプローラのSSHの+でユーザー名とipアドレスるなどをユーザー名@ホスト名形式でいれる。「更新するSSH構成ファイルを選択する」と出てくるので.ssh/configの方を選択する。 で行けそうだね、デバックとかするのはラズパイ側になんかインストールされている。

ラズパイ SD またまた行った

ラズパイ SD また行った 2023/8/16/2023 から約一年ちょっと9/10当りからラズパイが不安定だ。またSD調子悪い、32GBのSDいれているのに、期間的には伸びないのか、こまったもんだ、

Raspberry PiのCLIの解像度の変更

 /boot/firmware/config.txt の[all]に hdmi_group=1 hdmi_mode=4 で  hdmi_group=1で1080pや720pといったテレビ表記の設定 hdmi_mode=4 720p 60Hz 16:9の解像度(1280×720) 前も書いた 以下の設定で回転する。 dtoverlay=vc4-kms-v3d をコメントアウトして display_hdmi_rotate=1 をいれると、起動時から回転した

Raspberry PiのHDMI電源OFF2

Raspberry PiのHDMI電源OFF 2019.2.10 で書いたけど、検証も何もしてないとしていたので、実際に動作したコマンドを これも、受け売りだが、確認済み @god19   Raspberry Pi4 画面スリープ停止、コマンドラインから HDMI ON/OFF、USB自動マウント $ vcgencmd display_power <- ON / OFF 確認 display_power=1 $ vcgencmd display_power 0 <- OFF display_power=0 $ vcgencmd display_power 1 <- ON display_power=1 OFFはほぼ瞬時に、ONは一呼吸置いてから実施される。  

ラズパイのコンソールに画像を表示する(2)

 接続されているディスプレイの解像度の確認 $ fbset mode "1024x600"     geometry 1024 600 1024 600 16     timings 0 0 0 0 0 0 0     rgba 5/11,6/5,5/0,0/0 endmode  ディスプレイの回転がうまくいかないな。 /boot/firmware/config.txt に display_hdmi_rotate=2 や display_hdmi_rotate=1 をどの場所にいれても採用してくれないな、なんでやろ まあ、画像ファイル生成側で対応すればいいか、とこの時点では思っている。 2024.6.5追記------------------ dtoverlay=vc4-kms-v3d をコメントアウトして display_hdmi_rotate=1 をいれると、起動時から回転した

ラズパイのコンソールに画像を表示する(1)

 ラズパイで、サイネージ作ろうと思ってはや何年、ちょっとだけ進んだ やったことRaspberry Pi Zero WHにOSインストール sudo apt get install fbi でfbiをインストール、sshからは  sudo fbi -a -t 5 -1 -T 1 -d /dev/fb0 123.png で5秒画像が表示されるらしい( 屑俺日記 2015-12-30(Wed) さんさんと日が ) 取りあえず、記事通り、jpegと、pngが自動拡大縮小で表示された。

ラズパイでHX711とロードセルで重量を図る

 ラズパイでHX711とロードセルで重量を図る とりあえず接続は省略、気が向いたら書く ソフトウェア側だが sudo apt install python-dev-is-python3 sudo apt install python3-pip  sudo apt-get install -y git git clone https://github.com/tatobari/hx711py sudo apt install i2c-tools 電源消しちゃったけど、  sudo i2cdetect -y 1で接続確認できなかったけど。 ラズパイを使って、重さをはかるよ  にあるサンプルコードで、測定はできた。????

ラズパイ SD また行った

イメージ
 前回2022の11月頃なので、一年もたなかったね、まあ、中古のTOSHIBA16GBだけど 今回はSUNディスクの32GBにしてみた。 異常なほどレイテンシー下がっているのだが、今までのがなにだったのだと言うくらいに。 そら軽いはずだ