ホーム » 「Raspberry Pi」タグがついた投稿

タグアーカイブ: Raspberry Pi

サーバ⚙

最近の投稿

アーカイブ

カテゴリー

フレームバッファ出力で電力不足?

ラズパイの状態表示を出力させてみたけど、このあとからか、Raspberry-Pi が Under-Voltage 警告が増えたみたい。そして、よく落ちるようになってきた。

HDMI 出力をすることで、電力不足だと思われる。homebridgeさえ動いていればいいので、状況表示はもともとそんなに使うはずでもないので、早々に出力の処理は止めた。

素直に大電流ACアダプタ

ACアダプタをこれ以上増やしたくないと、ルータの USB-3.0 端子から、homebridge用 Raspberry-Pi に給電していたけど、不安定なのは困る。RPi 3 用と書いてある AC アダプタを購入して取り換え。Under-voltage の警告は出なくなったな。当然か。

1日間で700回ほど出力されていた、電圧低下の警告がキレイさっぱりなくなった。当然か…(^_^;

ラズパイのフレームバッファ出力

家電制御とhomebridge専用のRaspberry-Piだけど、HDMI制御用にテレビに繋がっているし、ラズパイの動作状況なりを出力させられないかと思っていた。

X11 の GUI の autologin を使うのが定番だろうけど、X11 が動いているだけで、OS リソースをかなり食っちゃうので、あまりやりたくなかった。

でも、フレームバッファ出力で映像を出すための fbi コマンドをみつける。

そこで、wkhtmltopdf パッケージの wkhtmltoimage コマンドを使って、状況表示のページをキャプチャさせ、その画像を fbi コマンドで、フレームバッファ表示させてみた。

/usr/bin/wkhtmltoimage --width 1200 --height 800 \
    -q 'http://www.example.co.jp' /tmp/web.png
/usr/bin/sudo /usr/bin/fbi -T 1 -d /dev/fb0 --noverbose \
    /tmp/web.png > /dev/null 2>&1

HomeKit/homebridgeをラズパイで再開

一時期、google home notifier のインストールで削除した Siri を使うための HomeKit 互換の homebridge を raspberry-pi の上に再インストールを行った。

Google Home Mini を喋らせるためにインストールした google home notifier では、node.js を使うため(あとで問題がないと分かったけど)に、一旦機能を止めていたけど、機能の競合の起こりにくい raspberry-pi に暇つぶしも兼ねて homebridge を入れる。

インストールにあたり、赤外線リモコンの制御の python-broadlink を raspberry-pi にインストールしたので、単独でテレビのON/OFF/ビデオ入力切替の cec もあるから、サーバを活用しなくても済む。

手順は、過去の自分のインストールメモを参考。ちょっと手間取ったけど。

ということで、

  • テレビ,チューナー,PS4のON/OFF
  • 2つの照明のON/OFF
  • 室内/室外の温度計の表示

が、Hey, Siri で可能。

ラズパイのインタフェース名

自宅の raspberry-pi の設定を触っていて、何気に raspi-config を起動して設定を確認していたら、適当にポチポチさわってて、Network Options, N3 Network Interface Names の設定を触ったようで、再起動がかかったらネットワークがつながらない。

しかたがないので USBキーボードとHDMI のモニタつなげて、直接設定を触ろうとするものの、HDMI に信号が出てこない。

これでは、設定を触ろうにも何もできない。

raspi-config を使わないで設定を変更

もう raspberry-pi 単独では触りようがないので、micro-SD を外して、母艦のサーバで 起動時の設定を触ることとした。

間違って触った Network Interface Names は、古い eth0 などのインタフェース名でなく、enx112233aabbcc みたいな MAC アドレス を交えた新しいインタフェース名を使うような設定(predictable interface naming)。この機能が動き出したおかげで、インタフェースの初期化に失敗している。この設定を戻さないと。

$ sudo bash
((( raspberry-piの/bootフォルダをマウント )))
# mount -t vfat /dev/sdd1 /mnt  デバイス名/sddの部分は要変更

((( predictable interface naming を無効化 )))
# vi /mnt/cmdline.txt
net.ifnames=0  ファイル末尾に追加

((( sshサーバ機能を有効化 ))) 
# touch /mnt/ssh

((( HDMI の出力を有効化 )))
# vi /mnt/config.txt
hdmi_safe=1    先頭の方のこの行をコメントアウト
               低解像度のsafeモードでHDMIを設定

# umount /mnt
((( raspberry-piのrootをマウント )))
# mount -t ext4 /dev/sdd2 /mnt
((( ネットワークの設定ファイルを変更 )))
# vi /mnt/etc/dhcpcd.conf
...

んで、母艦で編集していた micro-SD を raspberry-pi に差し戻して起動。

Raspberry-Pi のファーム壊れた

Raspberry-Pi、ネットワーク越しに rpi-update してた途中でWiFi中継器のネットワークが切れてしまった。おかげでファームウェアの更新に失敗。どうもファームウェアがぶっ飛んだようで、起動しなくなった。タイミング最悪。

その RPi は、ITオンチな1F両親向けに、家族の予定をLED掲示板に表示させてるために使ってた。でも、買い替えるといっても RPi4 買うほどの処理じゃないしな。

難しい話抜きで、Google Nest 買った方が便利かな。でも、OK,Google、使いこなせないだろうしなぁ…

iphoneの検知難しい

大学でアパート住まいの子供が、帰っているのか確認するために、LINE beacon を置いて検知を試したけど、bluetooth を切って既読スルーなヤツなので、ほとんど検知することができない。

そこで、アパートでは無線LANルータを使ってるし Raspberry-Pi で、arpalert を使えば簡単に検知できるだろうと、実験中。でも iPhone はセキュリティ対策なのか、 arp の返答は必要最小限なので同じサブネットとはいえ、そのままでは通信の必要の無い raspberry-pi には、ARP 情報が送られてこない。また ping には返答しないようで、単純に ping で確認も困難。ということで単純な arpalert では検知が難しいなぁ。

定時処理で、”arping -c 1 -I wlan0 IPHONEのIPアドレス” を実行させて、強制的に ARP を送ってもらうか…

stretchで起動しづらい

自宅で色々と動いている Raspberry-Pi 。OS更新はまめにやっているけど、外気温測定に使っているのが Jessie のままだったのに気づく。stretch に上げたけど、どうも起動に失敗する。更新に失敗したかと思ったけど、キーボードをつなぐために USB WiFi を抜いて起動すると、普通に動いている。

今までも、多少 boot が不安定なのはあったけど、stretch になって起動シーケンスが最適化されたのか、WiFi 有効化のタイミングが早まり、ブート時の電力不足が発生していると思われる。

ひとまず、改造面倒だし USB WiFi を抜いて、boot がそれなりに進んでから USB を指して対応。

暑さの測定

以前購入した、Raspberry-Pi 内蔵の MZ-80C のミニチュアは、温度・湿度・気圧のセンサーを付けて、2Fのトイレに設置していたけど、WiFiが若干不安定だったので、常時サーバで記録はしていなかった。しかし、この暑さなので、エアコンの無い部屋の温度を測定したかったので、改めて設定してみた。

Raspberry-Pi の inetd の echo サーバの所に温度測定スクリプトを記載して、”/usr/bin/nc raspberry-pi 7″ で測定できるように設定し、munin 用のデータ取得スクリプトを書いて設定。このクソ暑い温度を測ってみた。

家の西側の2会のトイレに設置しているので、夕方が最高温度で、家の中でも34℃越え。湿度は、トイレのドアを開放すると、大きく変化するようだ。

Raspberry Piに温湿度計とLCDモジュール

LCDディスプレィ接続

まずは、秋月の8×2のキャラクタLCDディスプレィ(AQM0802A)を接続してみた。

MZ-80C内のGPIOを、真上に接続するのはモニタ部分と干渉するので、I2C用のコネクタは背面に(MZ80C的には下側)につけて引き伸ばし。

当然ながら、8×2の小さいLCDを選んだのは、モニタ部分に埋め込むためなので、厚紙を切って配置してみた。参照先のサンプルコードも無事に動いて、”ハローワールド”の表示。

LCDのバックライト機能があるのだけど、GPIO4のポートをON/OFFしても光らない。なぜ…
単純に、バックライトのLEDのA,Kがはんだ付けしてなかっただけ…(x_x;

作業メモ

MZ-80CのRasbianサーバ化

早速、余ってたWiFi USBドングル刺して Rasbianなサーバに。元々のMZ-80CのSDメモリは、カセットテープもどきの場所に入れておく。(^_^)
{CAPTION}

MZ-80のブートデバイス(カセットテープ)の場所に、MZ-80C の SmileBASIC のブートデバイスを保存するのは、自然だよね。

検索 🔎

  My Google     Yahoo

便利サイト