忍者ブログ

農業を始めよう

社会人向け農業大学校の生活を伝えます。

[PR]

2025/06/08(Sun)06:19

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

No.|CommentTrackback

圃場(畑)タイムラプス(2)撮影用Raspberry Pi Zeroの設定

2019/03/18(Mon)21:13

タイムラプス撮影用Raspberry Pi Zeroの設定

作成するもの

圃場(バッテリー駆動)で一定時間毎に写真を撮影してシャットダウンするラズパイを作ります。電池を長期間持たせるために待機時は完全電源Offにします。電源制御は前回作成したArduinoモジュールにて行います。

用意するもの

  • Raspberry Pi Zero/W
  •  設定時に無線LAN接続の方が便利なので。予め無線でssh接続できるようにしておく。
  • PCF8523搭載 RTCモジュール(RTCモジュールなら何でも良い)
  • Raspberry Pi Zero用カメラ


RTC(リアルタイムクロック)の接続

電源を完全に落としたラズパイは時刻を保持できません。そのため写真の撮影時刻を記録するには外付けのRTC(リアルタイムクロック)を接続します。RTCはボタン電池で時刻を保持し続けてくれます。
RTCはi2c接続のため、RTCのVcc,GND,SDA,SCLをラズパイの当該ピンに接続します。

ラズパイの設定

I2Cの設定
sudo apt-get install python-smbus i2c-tools
sudo apt-get install -y python-smbus
sudo apt-get install -y i2c-tools
sudo raspi-config
  -Interfacing Options
  -I2C
  -Enable(Yes)

(reboot)

sudo vi /boot/config.txt
  最終行に追加
  dtoverlay=i2c-rtc,pcf8523

(reboot)

・アドレス68がUUであることを確認
sudo i2cdetect -y 1


・fake hwclockを無効にする
sudo apt-get -y remove fake-hwclock
sudo update-rc.d -f fake-hwclock remove
sudo systemctl disable fake-hwclock
sudo vi /lib/udev/hwclock-set
 3行をコメントアウトする
 #if [ -e /run/systemd/system ] ; then
 # exit 0
 #fi

・ラズパイの時刻をntpで合わせる
sudo apt-get install ntpdate
sudo ntpdate -v ntp.nict.jp
sudo timedatectl set-timezone Asia/Tokyo
date

・ラズパイからRTCの時間をセットする
sudo hwclock -D -r


・カメラの設定

sudo apt-get install python-picamera python3-picamera
sudo raspi-config
Interfacing Options > Camera > <Yes>でONにします。
reboot
・テスト撮影
raspistill -o image.jpg


・省電力設定

sudo apt install -y chkconfig
sudo chkconfig dphys-swapfile off  #swapの停止
sudo chkconfig plymouth off        #グラフィカルブートプロセス
sudo chkconfig triggerhappy off    #キーボードのショートカットキー
sudo chkconfig alsa-utils off      #サウンド関係
sudo chkconfig bluetooth off       #bluetooth
sudo apt-get install powertop
 BAD の項目はGood になるように変更(powertopが設定変更してくれる)

・メンテナンスモードの設定

運用時はOS起動後、撮影したらすぐにshutdownしてしまうので、メンテナンスログインができません。そのためGPIO 18番とGNDからジャンパ線を出して、ショートしているときのみ運用モードに入るようにします。

・写真を撮影するスクリプト

pi@raspberrypi:~ $ more getphoto.sh
#/bin/sh
raspistill -o ~pi/photo/`date '+%y%m%d-%H%M%S'`.jpg

・起動時の自動実行シェルを作成

pi@raspberrypi:~ $ more autoexec.sh
#!/bin/bash
~pi/autoexec.py
if test $? -eq 1; then
    echo `date '+%y%m%d-%H%M%S'` :boot with OffMente >>~pi/bootlog.log
    /etc/init.d/dhcpcd start
    systemctl daemon-reload
else
    echo `date '+%y%m%d-%H%M%S'` :boot with SHORT >>~pi/bootlog.log
    ~pi/getphoto.sh
    shutdown -P now
fi

・/etc/rc.local にautoexec.shを追記(OS起動時にroot権限で実行される)


・GPIOの値を判定するpythonスクリプト

pi@raspberrypi:~ $ more autoexec.py
#!/usr/bin/python
# coding:utf-8
import time
import RPi.GPIO as GPIO
import sys
GPIO.setmode(GPIO.BCM)
#GPIO18pinを入力モードとし、pull up設定とします
GPIO.setup(18,GPIO.IN,pull_up_down=GPIO.PUD_UP)
sw_status = GPIO.input(18)
if sw_status == 0:
    print("SHORT!")
if sw_status == 1:
    print("OFF!")
GPIO.cleanup()
sys.exit(sw_status)

・全てが動作するのを確認したら、無線LANの自動起動をOFFにします

sudo chkconfig dhcpcd off

・完成写真(右下は温湿度+照度監視モジュール)

PR

No.2|農業+IoTComment(0)Trackback

Comment

Comment Thanks★

Name

Title

Mail

URL



Pass Vodafone絵文字 i-mode絵文字 Ezweb絵文字