Raspberry 4 でNTPサーバ構築中

1. 準備材料

GPS受信機 シリアル出力タイプ(先バラ) みちびき2機(194/195)対応 1PPS出力付 GT-502MGG-N
https://akizukidenshi.com/catalog/g/g117980/

 耐熱通信機器用ビニル電線 2m×10色 導体径0.65mm 単芯
https://akizukidenshi.com/catalog/g/g108996/

熱収縮チューブ(スミチューブC 黒) Φ6×0.25×1m
https://akizukidenshi.com/catalog/g/g106790/

ケーブル用コネクター
https://akizukidenshi.com/catalog/g/g112160/

白光(HAKKO) ヒーティングガン 工業用ドライヤー 温度・風量可変タイプ FV300-81 & ノズル ヘラ型 62mm 幅広加熱 FV-300/FV-310用 N70-02
www.amazon.co.jp/dp/B09V87LX7H

2. 初期設定

2-1.Raspberry 各種設定

下記を参考にした。

【2025年最新版】モニターなしでRaspberry Piを初期設定する方法 | sozorablog
Raspberry Piを使い始めたいけれど、「モニターやキーボードがないからセットアップできない」と悩んでいませんか? 実はモニター・キーボード・マウスを使わずに、パソコンだけでRaspberry Piを初期設定する方法があります。設定が

https://qiita.com/rmatttu/items/90557a25e8da07a2e540
https://qiita.com/yamakenjp/items/e69eeabdefd9cc960610

2-2.タイムゾーン設定

sudo timedatectl set-timezone Asia/Tokyo

2-3.LED設定

ラズパイの赤LED、緑LEDの挙動を変える方法 - Qiita
ラズパイの赤LED、緑LEDの挙動を変える ラズパイには赤LED、緑LEDがついていますが、/boot/config.txtに書いておくと、その挙動をある程度、変えることができます。ラズパイ4B、3B、3B+で確認。 挙動を一時的に変えるこ...

LEDのステータスがわかりにくいので設定変更する。

dtparam=act_led_trigger=timer        # slow blink for green
dtparam=pwr_led_trigger=mmc0         # microSD for red

2. GPSモジュール組み立て

2-1.GPIO PIN配置の確認
pinout

J8:
   3V3  (1) (2)  5V    
 GPIO2  (3) (4)  5V    
 GPIO3  (5) (6)  GND   
 GPIO4  (7) (8)  GPIO14
   GND  (9) (10) GPIO15
GPIO17 (11) (12) GPIO18
GPIO27 (13) (14) GND   
GPIO22 (15) (16) GPIO23
   3V3 (17) (18) GPIO24
GPIO10 (19) (20) GND   
 GPIO9 (21) (22) GPIO25
GPIO11 (23) (24) GPIO8 
   GND (25) (26) GPIO7 
 GPIO0 (27) (28) GPIO1 
 GPIO5 (29) (30) GND   
 GPIO6 (31) (32) GPIO12
GPIO13 (33) (34) GND   
GPIO19 (35) (36) GPIO16
GPIO26 (37) (38) GPIO20
   GND (39) (40) GPIO21

2-2. 配線

下記のようにRaspberry につなぐことにする。
Raspberry側の TXDO , RXDO と、受信機側の TXD, RXDの接続に注意である。

3.GPSモジュール
3-1.UARTの有効化
echo enable_uart=1 | sudo tee -a /boot/firmware/config.txt
echo init_uart_baud=9600 | sudo tee -a /boot/firmware/config.txt
3-2. Bluetoothを無効にする
echo dtoverlay=disable-bt | sudo tee -a /boot/firmware/config.txt
3-3.シリアルコンソールを無効にする
sudo sed -i 's/console=serial0,115200 //g' /boot/firmware/cmdline.txt
sudo systemctl stop serial-getty@ttyS0.service
sudo systemctl disable serial-getty@ttyS0.service
 3-4.PPSを有効にする
echo pps-gpio | sudo tee -a /etc/modules
echo dtoverlay=pps-gpio,gpiopin=18 | sudo tee -a /boot/firmware/config.txt
sudo shutdown -r now

4. GPSD

パッケージのインストール
sudo apt update && sudo apt -y install gpsd gpsd-tools pps-tools
GPS受信確認
ls /dev/ttyAMA0

問題なければ下記を実行

sudo gpsmon -n /dev/ttyAMA0

5.Chronyインストール

5-1.インストール
sudo apt update && sudo apt -y install chrony
5-2.設定
sudo sed -i 's@pool 2.debian.pool.ntp.org iburst@pool ntp.nict.jp iburst minpoll 6 maxpoll 8@g' /etc/chrony/chrony.conf
sudo sed -i 's@sourcedir /run/chrony-dhcp@#sourcedir /run/chrony-dhcp@g' /etc/chrony/chrony.conf
echo refclock PPS /dev/pps0 lock NMEA refid GPS | sudo tee -a /etc/chrony/chrony.conf
echo leapsecmode slew | sudo tee -a /etc/chrony/chrony.conf
echo maxslewrate 1000 | sudo tee -a /etc/chrony/chrony.conf
echo smoothtime 400 0.001 leaponly | sudo tee -a /etc/chrony/chrony.conf
sudo systemctl restart chrony.service
chronyc sources -v

7.その他

7-1.CPU温度表示
 vcgencmd measure_temp
# temp=40.1'C

定期的にログに残すよう、cron 設定する。
下記を参考

https://mylinuxnoteblog.wordpress.com/2017/05/23/%E3%83%A9%E3%82%BA%E3%83%91%E3%82%A4%E3%81%AE%E6%B8%A9%E5%BA%A6%E3%82%92cron%E3%81%A7%E8%A8%98%E9%8C%B2%E3%81%99%E3%82%8B/

temp_recorder.sh

#!/bin/bash
 
date=(`date +"%m/%d"`)
time=(`date +"%H:%M"`)
temp=(`vcgencmd measure_temp`)
str=$date" "$time" "$temp
echo $str >> temp_log

実行権限付与

chmod 744 temp_recorder.sh
./temp_recorder.sh
cat temp_log #=> 05/23 06:12 temp=52.6'C

コメント