Python,HC-SR04,一定時間の測定

実現したいこと

Raspberrypi4 を使用しています。
一定時間HC-SR04で距離を測定したいです。

36,000秒の間、毎秒csvに時間と距離を記録

上記の動作を目的としております。

以下のプログラムを起動中、2時間程でエラーメッセージもなく動作しなくなりました。

数秒~1時間程度は問題なく動作するのですが、
2時間程度経つと何の表示もなく動かない状態になります。

原因と対策をご教授いただければ幸いです。

発生している問題・エラーメッセージ

エラーメッセージ
なし

該当のソースコード

Python3

ソースコード

import time
import RPi.GPIO as GPIO
import datetime
import csv

PIN_TRIG = 24
PIN_ECHO = 25

SPEED_OF_SOUND = 33145

def init_GPIO():
# GPIOの初期設定
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)

GPIO.setup(PIN_TRIG, GPIO.OUT) GPIO.setup(PIN_ECHO, GPIO.IN)

def calc_distance():
# 0.5秒ほど落ち着かせれる
GPIO.output(PIN_TRIG, GPIO.LOW)
time.sleep(0.5)
# 0.5秒間、超音波を発射
GPIO.output(PIN_TRIG, True)
time.sleep(0.5)
GPIO.output(PIN_TRIG, False)

# 超音波が跳ね返ってくるまでの時間を計測 while GPIO.input(PIN_ECHO) == 0: signaloff = time.time() while GPIO.input(PIN_ECHO) == 1: signalon = time.time() time_passed = signalon - signaloff # 距離を計算する(音速 * 超音波を出力、戻ってくるまでの時間 / 2) distance = SPEED_OF_SOUND * time_passed / 2 return distance

init_GPIO()

#32400秒測定する
for measure in range(32400):

# 0.5 * 20 で、10秒間、0.5秒間隔で測定結果を表示 # 測定結果が約0.5秒で取得されるので、 # 0.5秒毎に距離が測定される distance = f'{calc_distance():.3f}' today = datetime.date.today() today = str(today).replace('-','') with open(today + 'data.csv','a') as f: now = datetime.datetime.now() recordtime = '{0:%H:%M:%S}'.format(now) writer = csv.writer(f) writer.writerow([recordtime,distance]) f.close() print(recordtime,distance)

GPIO.cleanup()

補足情報(FW/ツールのバージョンなど)

・Raspberrypi4 B
・HC-SR04

コメントを投稿

0 コメント