mieki256's diary



2017/07/19(水) [n年前の日記]

#1 [raspberrypi] Raspberry Pi3にRTCモジュールを追加してみた

昨日届いた、DS3231使用のRTCモジュールを、Raspberry Pi3に追加してみた。以下を参考に作業。

_「Raspberry Pi 3 (ラズパイ3)」 RTC 追加 : Snow in Novemberのblog
_Raspberry Pi 3BでRTC(リアルタイムクロック)|Penta creation
_Raspberry PiでDS3231 RTCを正しく動かす - My life is programming
_Raspberry Pi 2 で RTC を使いスタンドアロンで時刻を保持 - 或る阿呆の記
_RedSleeve へのミニ RTC モジュールの導入 | あたがわの日記

一応、行った作業をメモ。

本体に接続。 :

GPIOの、1,3,5,7,9版に接続。でいいのかな。

OS側の設定。 :

Raspberry Pi3 と RTCモジュールは、I2Cなる規格(?)で通信するらしい。raspi-config で I2C を有効化する。
sudo raspi-config
enable にしたら再起動(sudo reboot)…しただけでは何故か正常起動しなかったので、一旦電源ケーブルを抜いてからまた差し直した。

I2C関係のツールをインストールする。が、最初から入ってた。
sudo apt install i2c-tools

状態を確認。
sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
68と出てきた。たぶん認識されてる。のかな。

/boot/config.txt に以下の行を追加。
dtoverlay=i2c-rtc,ds3231
再起動。sudo reboot。

状態を確認。
sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
UUが表示された。有効になってるっぽい。

ntpdateをインストール。 :

ntpdate をインストールして、NTPサーバの時刻を強制取得。
sudo apt install ntpdate
sudo ntpdate -u ntp.jst.mfeed.ad.jp
date

RTCに設定。
sudo hwclock -w

ntpを停止。fake-hwclockをアンインストール。 :

ntpが動いてるとRTCとのソレがアレになるらしい。また、フツーの Raspberry Pi にはRTCがついてないので、fake-hwclock なるソレでそれっぽくしてるらしい。ので、サービスを無効にしたり、アンインストールしたり。
sudo apt install chkconfig
sudo chkconfig ntp off
sudo apt remove fake-hwclock
sudo dpkg --purge fake-hwclock

/etc/rc.localに追加。 :

/etc/rc.local に、RTC からシステムクロックに時刻を設定するソレを記述する事例が多いっぽいので真似したり。
sudo vi /etc/rc.local
以下を追加。
# RTC
/sbin/hwclock --hctosys
sleep 10
/usr/sbin/ntpdate -b ntp.nict.jp && /sbin/hwclock --systohc
hwclock -s (hwclock --hctosys) で、RTCからシステムクロックに時刻を設定。また、ntpdate が成功したら、その後に続く処理、hwclock -w (hwclock --systohc)が実行されるらしい。

/etc/default/hwclock を修正。
sudo vi /etc/default/hwclock
HWCLOCKACCESS=no

サービスとして追加する方法もあるらしい。そのほうが、起動直後から早く時間が設定されるとか…。そのうち試してみたい。

cron で一定時間毎に時刻合わせ。 :

sudo crontab -e
# m h dom mon dow command
0 0,12 * * * /usr/sbin/ntpdate ntp.nict.jp && /sbin/hwclock -w
00:00、または 12:00 に、ntpdate でシステムクロックを設定後、RTCに設定。ということでいいのかな。

一応動いてるっぽいような。 :

不良品のRTCモジュールが届いてたらどうしようと不安だったけど、一応動いてるように見える、ような。ホッとした。ただ、通電してない状態で、どの程度時刻を保持できるのかはまだ不明。

使われている電池について。 :

Amazonのレビューには、CR927 なる電池が使われているという話が。

_ボタン電池 CR927の規格や互換品などの詳細情報
_CR927 ‐ 通信用語の基礎知識

充電池ではないっぽい。すると、既に電池が切れてたり、そのうち切れちゃう可能性が。電池交換は…無理だな…。電池に直接端子を溶接してあるし…。個人が半田ごてで何かくっつけようとしたら、熱で電池が爆発しそうだし。

コイン型電池を交換できるタイプのソレを買ったほうが良かったのだろうか…。

#2 [raspberrypi] Raspberry Pi3本体のLED設定を変更

Raspberry Pi3のシャットダウン処理が終了したかどうかを、本体のLEDを使って確認できるようにしたい。まだ終了処理が終わってないのに、電源コードを引き抜くのがちと不安なわけで。

ググってみたら、 CPUが動いてる間は一定間隔で点滅するように設定できるらしい。シャットダウン処理が終了した際に点灯しっぱなしになるから、電源コードを抜いてもOKと分かるはず。

/boot/config.txt で指定すれば、LEDの動作を変えられるっぽい。
sudo vi /boot/config.txt
dtparam=act_led_trigger=heartbeat

しかし…。設定を変えてみて、たしかに反映されたように見えるものの、ケースのデザインの問題で外から見ても点滅してる様子が確認できない…。ケースにドリルで穴を開けないとダメっぽい予感。

ちなみに、使ってるケースはコレ。

_Raspberry Pi 3/2/B+ 用RSコンポーネンツ製ケース 白 - スイッチサイエンス

このケース、GPIOからコードを出したり、カメラモジュールケーブルを出そうとすると不便だったりして、実用性は微妙な印象が。ただ、綺麗でオシャレだし、他のケースと比較して値段も少しだけ安かったりするわけで。本体のみで動かす・電子工作をしない場合は選択肢としてヨサゲな印象。

以下、参考ページ。

_Raspberry Pi がシャットダウンしたか緑LEDでわかるようにする - Raspberry Pi にっき
_Raspberry Pi 3をシャットダウンした時に電源が切れたかを簡単に確認する方法 (ラズパイをシャットダウン操作した時に電源が切れたかを簡単に確認する方法)
_メモ:Raspberry Piの基板上のLEDを別の用途に使う - Qiita

#3 [raspberrypi] Raspberry Pi3の無線LAN関係を少し設定変更

どうも時々、DHCPでIPアドレスを取得できない時があるような…。なので、ちょっと設定を変えた。

IPv6の無効化。 :

まず、IPv6 が有効になってるのがよろしくないのではと思えてきたので、そのあたりを無効化。以下を参考に作業。

_Raspberry Pi 2で遊ぶ(Ver.2.0):ipv6の無効化 | cozy attic

sudo vi /etc/modprobe.d/ipv6.conf
#alias net-pf-10 off
...
install ipv6 /sbin/modprobe -n -i ipv6

新規ファイル作成。
sudo vi /etc/sysctl.d/40-ipv6.conf
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
/etc/sysctl.confに書いてもOK、らしい。

sudo vi /etc/hosts
#::1 localhost ip6-localhost ip6-loopback
#ff02::1 ip6-allnodes
#ff02::2 ip6-allrouters

sudo vi /etc/dhcpcd.conf
noipv6rs
noipv6

これで IPv6 は無効になった。が、やっぱりDHCPでIPアドレス取得ができない時が…。何故。

固定IPアドレスにした。 :

原因が分からんので、固定IPアドレスにしてしまうことにした。以下を参考に作業。

_Raspberry Pi 3 (Raspbian Jessie)の無線LANに固定IPアドレスを設定する - Qiita

sudo vi /etc/dhcpcd.conf
interface wlan0
static ip_address=192.168.xx.yy/24
static routers=192.168.xx.1
static domain_name_servers=192.168.xx.1

pingでエラー。 :

関係ないけど、Raspberry Pi3上で ping を打つとエラーが。

_【エラー】ラズベリーパイでpingを実行すると「ping: icmp open socket: Operation not permitted」と表示されて実行できない

真似をして以下を実行。
sudo chmod u+s /bin/ping

#4 [nitijyou] 某所に行ってきた

16:27から17:44まで作業。詳細はGRPでメモ。

#5 [nitijyou] ヘッドルーペを購入

某所からの帰宅途中で寄ったダイユーエイトでヘッドルーペを発見。ホーマックには5,000円ぐらいの品しか置いてなかったけど、ダイユーエイトで見つけたソレは2,000円ほど。お袋さん or 親父さんへのプレゼントとして購入してみたり。

まあ、実際に使えるのか、便利かどうかは分からんけど…。

以上、1 日分です。

過去ログ表示

Prev - 2017/07 - Next
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project