ラズベリーパイを使ってセンサデータをCSVファイルで出力したい.
センサはDHT11を使っており湿度データおよび気温データの取得には成功しました.
Python3
1#simpletest.py 2import Adafruit_DHT 3 4sensor = Adafruit_DHT.DHT11 5 6pin = 23 7 8humidity, temperature = Adafruit_DHT.read_retry(sensor,pin) 9 10if humidity is not None and temperature is not None: 11 print('Temp={0:0.1f}*C Humidity={1:0.1f}%'.format(temperature, humidity)) 12else: 13 print('Failed to get reading. Try again')
Adafruit サンプルプログラムをラズベリーパイLXTerminalで実行したところ気温と湿度が取得できました.
terminal
1$ Python simpletest.py
Temp=25.0*C Humidity=36.0%
と結果が得られました.
次にこのデータをCSVファイルで出力するためにsensor_data.csvを作成し,センサから得られたデータを書き込みます.
Python3
1#sensor_csv.py 2 3#!/usr/bin/python 4 5import Adafruit_DHT 6import datetime 7 8sensor = Adafruit_DHT.DHT11 9 10pin = 23 11 12humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) 13 14if humidity is not None and temperature is not None: 15 now = datetime.datetime.now() 16 str = '{0},{1:0.1f},{2:0.1f}'.format(now.strftime('%Y/%m/%d %H:%M:%S'),temperature, humidity) 17 print str 18 with open('/home/pi/sensor_data.csv', mode = 'a') as fh: 19 fh.write(str+'\n') 20else: 21 print 'Fail'
こちらを先ほどと同じように実行すると
2019/03/19 15:39:53,25.0,35.0
と結果が得られました.
sensor_csv.pyに実行権限?を与えるために,コマンド
terminal
1pi@raspberrypi: ~/Adafruit_Python_DHT/examples$ chmod 755 sensor_csv.py //↓実行 2pi@raspberrypi: ~/Adafruit_Python_DHT/examples$
を実行します.
参考にしているWebサイトでは
-rwxr-xr-x 1 pi pi 478 11月 12 10:11 sensor_csv.py
と表示されていますが, 私の場合はそれが表示されません.
csvファイルが空データであるためなのでは?と思いましたが先ほどデータを取得しsensor_data.csvに書き込みを行うプログラムを実行しているため,そうではないと仮定しました.
次にcatコマンドを使ってsensor_data.csvを読み込もうとしましたが,これもなにも読みだされなかったので,データが書き込めていないのか、読み込み方が間違っているのかがわかりません.
terminal
1pi@raspberrypi: ~/Adafruit_Python_DHT/examples$ cat sensor_data.csv //↓実行 2pi@raspberrypi: ~/Adafruit_Python_DHT/examples$
となります.
sensor_csv.pyのwith openのmodeをwにしてみましたが結果は変わりませんでした.
またOSはRaspbian stretch liteの最新versionを導入しています(19/03/19).
csvファイルの設定?をしなければいけないのか,プログラムに問題があるのか,ターミナルのコマンドの実行方法に問題があるのか,はたまたそれ以外なのか教えていただけると助かります.
ゆくゆくはセンサデータをグラフにしたりWebサイトで閲覧できるようにしたいのでよろしくお願いします.
参考にしているサイト
*このサイトを閲覧するには無料のアカウント登録が必要になります.
回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2019/03/19 07:41
2019/03/19 08:02