あっきぃ日誌

ラズピッピブログのようなオタクブログのようななにか

自宅のRaspberry PiのOSをBookwormにする(2)

ラズピッピをBookwormにしていくやつの続き。今回は3A+で動かしているベランダとカーテンEjectの環境をBookwormに更新しました。

ベランダ版メダカメラ

これは先日の室内メダカメラが2カメラから1カメラに減っているだけなので、スクリプトの用意等は変わりません。が、カメラケーブルが長すぎるせいか、タイムアウトエラーが頻発して映像も荒れ放題でした。タイムアウト値の追加みたいな情報を見つけたりして試していましたが、どうやらOSのアップデートで解消したようにみえています。何だったんだ。

以下はメモ。

  • アップデート前: 0.2.0+rpt20240215-1
  • アップデート後: 0.2.0+rpt20240418-1

カメラのタイムアウトの話題はこことか色んなところで見られます。タイムアウト値を変えて様子見をしたあとOSのアップデートをしたら設定が上書きされて吹っ飛んでしまったものの、現在は安定していそうという感じです。

https://github.com/raspberrypi/libcamera/issues/139

先日更新した室内メダカメラも、ちょくちょくサービスがコケているようなので、なにか問題がある様子。カメラ周りはlibcameraになってから全然ですねえ。。

BME280センサー

ベランダに放ってるBME280センサーも、スクリプトは無改造で対応完了。サービスのパスをvenvに変える等だけで済みましたが、py-zabbixでuse_configを使っている場合にtry文のexceptの対象が違っていた(ValueErrorからAttributeErrorに変わった?)ので、ValueErrorを雑にカットしました。

$ vi venv/lib/python3.11/site-packages/pyzabbix/sender.py

        try:
            # python2
            args = inspect.getargspec(
                configparser.RawConfigParser.__init__).args
#        except ValueError:
        except:
            # python3
            args = inspect.getfullargspec(
                configparser.RawConfigParser.__init__).kwonlyargs

py-zabbix/pyzabbix/sender.py at master · adubkov/py-zabbix · GitHub

Inky Impressionサーバー

7色電子ペーパーREST APIで書き換えするサービス。こちらもvenvに移行するだけで済みました。

カーテンEject

カーテンEjectはbashで雑にGPIOでフォトカプラーをLチカするだけのものでしたが、sysfsを使用していたため、代替を見つける必要があります。

akkiesoft.hatenablog.jp

以前はこんな感じでやっていました。

#!/bin/bash

if [ ! -f /sys/class/gpio/gpio23/direction ] ; then
  echo "23" | sudo tee /sys/class/gpio/export > /dev/null
  echo "out" | sudo tee /sys/class/gpio/gpio23/direction > /dev/null
fi

echo 1 | sudo tee /sys/class/gpio/gpio23/value > /dev/null
sleep 0.1
echo 0 | sudo tee /sys/class/gpio/gpio23/value > /dev/null

代替としてはpinctrlコマンドを使えばいいようです。ヘルプからoutput周りの例を抜き出すとこんな感じ。

$ pinctrl help
(一部抜粋)
  pinctrl set 10 op        Set GPIO10 to be an output
  pinctrl set 10 dl        Set GPIO10 to output low/zero (must already be set as an output)
  pinctrl set 20 op pn dh  Set GPIO20 to output with no pull and driving high

これでOKそうですね。

#!/bin/bash

pinctrl set 23 op dh
sleep 0.1
pinctrl set 23 op dl

まとめ

やはりというかカメラ周りに若干の不安を感じますが、3A+でも一応なんとか動いてくれているので、これで様子見かなという気がします。

次はPXEブートしている環境をやっていきです。が、一旦コミケ向けの執筆に戻りましょうかね……。

https://akkiesoft.hatenablog.jp/entry/20200510/1589086380