質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
DateTime

多くのプログラミング言語におけるDateTimeオブジェクトは、日付と時間に関する演算と出力を行います。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

3回答

2409閲覧

時刻を記録・保存したいのですが、時刻が更新されずにずっと記録されて困っています。

KRSugar

総合スコア16

DateTime

多くのプログラミング言語におけるDateTimeオブジェクトは、日付と時間に関する演算と出力を行います。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2019/06/17 16:57

前提・実現したいこと

人感センサで人を検知したらLEDを光らせ、その時刻を.txtで記録、保存したいと考えています。

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

しかし、.txtで保存はできるのですが、時刻が更新されず、ずっと最初に記録した時刻のままで追記されていきます。

該当のソースコード

Python3

1import threading 2import RPi.GPIO as GPIO 3import sys 4import os 5import shutil 6import time 7import datetime as dt 8import datetime 9from time import sleep 10 11 12#PIN NO SET 13LED1 = 16 14PIR = 11 15 16GPIO.setmode(GPIO.BOARD) 17GPIO.setup(LED1, GPIO.OUT) 18GPIO.setup(PIR, GPIO.IN) 19 20GPIO.output(LED1, True) 21time.sleep(2.0) 22GPIO.output(LED1, False) 23 24d = datetime.datetime.now() 25 26#LED ON OFF Thread 27def ledmain(): 28 global stopstr1 29 stopstr1 = " " 30 while True: 31 sleep(1) 32 if ( stopstr1 != " "): 33 GPIO.cleanup() 34 sys.exit() 35 36 #LED ON OFF 37 if ( GPIO.input(PIR) == GPIO.HIGH): 38 led01() 39 40#INTERRUPT Thread 41def stopinput(): 42 global stopstr1 43 44 45#led01 46def led01(): 47 with open('gps.txt', "a", encoding='utf-8')as f: 48 print('detection!{0:%Y-%m-%d %H:%M:%S}'.format(d), file=f) 49 GPIO.output(LED1, True) 50 time.sleep(0.2) 51 GPIO.output(LED1, False) 52 time.sleep(0.2) 53 54 55#SET Thread 56th=threading.Thread(target=stopinput) 57th.start() 58th2=threading.Thread(target=ledmain) 59th2.start() 60

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

Raspberry pi zero w の、Python3.5.3です。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

d = datetime.datetime.now()led01()メソッドの最初でやればいい気が。

投稿2019/06/17 17:11

gentaro

総合スコア8949

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

そりゃ現在時刻を最初だけ取得して使いまわししてるんだから、取得時の時刻しか出ないのは当たり前のはなしですね

投稿2019/06/18 04:16

y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

print('detection!{0:%Y-%m-%d %H:%M:%S}'.format(datetime.datetime.now()), file=f)

じゃダメなんすかね?

投稿2019/06/17 19:38

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問