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;
作業メモ
- BME280使用 温湿度・気圧センサモジュールキット
- JP3:short(I2C使用),JP2,JP1:open(No pullup)
- 1:VDD, 2:GND, 3:NC, 4:SDA, 5:GNDでアドレス0x76, 6:SCL
- 参考記事
- Raspberry Piキャラクタ液晶ディスプレイモジュールキット バックライト付
- JP1,JP2,JP3:open
- 参考記事
- Raspberry Pi Model A+
MZ-80C
忘れた頃に、MZ-80C入荷しました。こりゃ、おっさん(じーさん)ホィホィな製品だわ。
# ちなみに、本物の MZ-80 は、所有したことはない。
でも、たぶん1週間もすれば、WiFi-USB刺して、Rasbianなサーバになってるだろう。
内蔵ゲームの感想
ちなみに、内蔵の「平安京エイリアン」やってみたけど、一匹も倒せんかった。
自分の歳よりも古いゲームをした、うちの子供の感想。「キー操作が反応悪かったり、キー配置(移動のワードスター配列)がキモっ」とのことでした。
# それでも、私より上手く遊んでたけど。
改造するか
さっそく、I2C接続の小さなLCDモジュールと、温度湿度モジュールを発注。
ついに MovableType を卒業するか…
自宅サイトは、MovableType で運用してきたけど、 movabletype-opensource もメンテナンスされなくなってた。
MovableType の login エラー
だましだまし使っていようと思っていたけど、OS の更新をかけたら、
Got an error: Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/{{ <-- HERE support}}/?/
みたいなエラーで、login できなくなった。 ちょいと、ソースを触れば login できるようになるとは思うけど、 ここらが “MovableType卒業” の潮時か。
blog の変遷
自宅サイトは、2000年ぐらいから、BLOG を運用してるはずだけど、 最初は手書き。途中で HNS(Hyper Nikki System) に切り替えたけど、 途中で MovableType に移行(自宅は2008年に移行)。
最古記事は、2003年だけどこの記事は、HNS のデータを Export して Movable-Type に取り込んだもののはず。
WordPress に移行
ということで、以前から WordPress のページは準備していたので、 そっちに切り替えよう。
メールでの投稿とかの機能は切っちゃおう。
ということで、この記事が我が家の MovableType 最後かな。
あれ、Dropbox 使ってないじゃん
今まで、LaTeX 仕事だと、Linux 環境じゃないと今一つ不便 だった。 このため、Windows,Mac で作業をするときは、 Windows,Mac,Linux で Dropbox を起動して共有させて、 terminal 経由で実際は Linux 上で作業をしていた。
LaTeX 仕事なら、emacs anthy anthy-el texlive-lang-cjk texlive-binaries tgif があれば、 ひとまず問題なし。
でも、Windows で、Windows 10 Creaters Update の Bash on Windows でも terminal がまともに使えるから、emacs も自然に動く。 実質 debian だし、aptitude install texlive-lang-cjk で、 LaTeX 環境も悩まずに入る。
同じく、Mac でも、MacPorts で LaTeX 環境が動くので、 Linux で作業する必要がほぼ無くなってきた。
でということで、Dropbox をほぼ使わなくなっているので、 「Dropbox、今までありがとうございました」
perl 5.24 で CPAN 更新たっぷり
自宅サーバなどで動かしている Perl のプログラムが エラーを吐き始めた。
どうも、日々の更新で Perl のバージョンアップで、 CPAN を使ってインストールしていた perl モジュールの 整合性が問題みたい。
ということで、インストール済み perl モジュールの更新。
(( 更新対象を表示 )) $ sudo perl -MCPAN -e "CPAN::Shell->r" (( 更新 )) $ sudo perl -MCPAN -e "CPAN::Shell->install(CPAN::Shell->r)"
色々と使っている自宅サーバ、Raspberry-Piサーバは、 100件を越える更新で、すごく時間がかかった。
古い Raspberry-Pi は、メモリ不足で CPAN更新ができねぇし…
iptables hashlimit
imaps などを経由してブルートフォースアタックされるのも怖いので、 hashlimit を用いた制限
((/etc/ferm/ferm.conf)) domain ip { table filter { chain HASHCHECK { mod hashlimit hashlimit-name HASHCHECK_TABLE hashlimit 1/m hashlimit-burst 30 hashlimit-mode srcip hashlimit-htable-expire 120000 ACCEPT ; mod limit limit 1/s LOG log-prefix '[iptables hash drop]: ' ; DROP ; } chain INPUT { : proto tcp dport imaps jump HASHCHECK ; : } } : }
WiFiのアクセスポイント監視
出先での無線LAN利用のために、mineo をキャリアとして WiFiルーターを使っているけど、出先でルータを切り忘れてしまい、 自宅でそのWiFiルータに接続してしまうことがある。 そうなると、パケット代の浪費になるし、自宅でWiFiルータが 入っているか確認したくなる。
そこで、自宅のサーバにWiFiのUSBドングルつけて、 WiFiルータのアクセスポイントのESSIDを見つけたら、 icinga で警告メールを投げることを試してみた。
ELECOM WDC-150SU2M
((ドライバのインストール)) $ git clone https://github.com/lwfinger/rtl8188eu $ cd rtl8188eu $ make all $ sudo make install
アクセスポイントの一覧
$ iwlist wlan0 scan ESSID:"<アクセスポイント名>" :
これで、WiFiルータのESSID名を見つけたら、exit(2) するような Perl スクリプトを書いて icinga に渡せばいい。
NetworkManager の負荷
これで OK と思っていたけど、munin を見てみたら、USB WiFi ドングルを付けたころから、異常負荷がでている。 top で観察すると、NetworkManager が何度もプロセスを起動している。
しかたがないので、NetworkManager が WiFi の設定をしないように
(( /etc/NetworkManager/NetworkManager.conf )) : [keyfile] unmanaged-devices=interface-name:wlan0 :
を設定してみたが、今度はデバイスが初期化されていないから、 "iwlist wlan0 scan" をしても、アクセスポイントを見つけない。
うーむ、どうしたらいいんだろ。
ftp.jp.debian.org が遅くね?
サーバ(debian)の更新をかけてたけど、今日はやたらと遅い。 サーバ側のトラブルかな。
サーバを ftp.jp.debian.org から、ftp.jaist.ac.jp に 変更したら、サクサクとダウンロードされるじゃん。
letsencrypt.sh から dehydrated に移行
以前に導入していた、自宅サーバを SSL で公開するユーザ向けの SSL 証明書を作ってくれる、letsencrypt.sh だけど、パッケージ名が dehydrated に名前が変更となったみたい。
これに応じて、ディレクトリの名前などが変更になったので 設定ファイルを若干変更。apt-listchanges からのメールをみて、 以下のような設定ファイルの移動を行う。
(( インストールと設定ファイルの移行 )) # aptitude install dehydrated # mv -v /etc/letsencrypt.sh/domains.txt /etc/dehydrated/ # mv -v /etc/letsencrypt.sh/conf.d/* /etc/dehydrated/conf.d/ # mv -v /var/lib/letsencrypt.sh/accounts /var/lib/dehydrated/ # mv -v /var/lib/letsencrypt.sh/certs /var/lib/dehydrated/
ただし、/etc/dehydrated/conf.d/ の設定ファイルの中に、 変数 BASEDIR が含まれていたものがあったが、動かないようだったので、 絶対 PATH に書き換えた。
(( 動作確認 )) # /usr/bin/dehydrated -c --force