今回はかなりオーソドックスなIoTをやってみようかと思います。前回はAWSへの画像のアップロードだけだったんですが、今度はHPまで作ってそこからCSVをダウンロードできるようにしてみます。
DHT11を使いました。3本足はそれぞれ5V、GND、14ピンに接続します。
ラズパイからCSVファイルを出力できるようにします。
import time
import datetime
import dht11
import RPi.GPIO as GPIO
import csv
Temp_sensor=14
def main():
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
instance = dht11.DHT11(pin = Temp_sensor)
while True:
result = instance.read()
print"Temperature =",result.temperature,"C"," Humidity = ",result.humidity,"%"
time.sleep(2)
with open('dht.csv','a') as f:
if result.temperature > 0:
writer = csv.writer(f)
writer.writerow([datetime.datetime.now(),result.temperature,result.humidity])
f.close()
print('done. see dht.csv')
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
pass
これでdht.csvというCSVファイルができました。
このファイル
前回の要領でS3へアップロードしていきます。
前回は画像ファイルtest.jpgだったものをdht.csvへ変更するだけでOKです。
(同じフォルダに入れる必要があります)
今度はAWS側の設定です。
S3にindex.htmlファイルを作って公開できる設定にします。
パブリックアクセスをEvery Oneにするとだれでもアクセス可能になります。
アップロードしたファイルを同じバケットにしてhtmlで関連付けました。
→
こんな具合でできました。CSVがダウンロードできるはずです!
3/31 0のデータが多かったためコード修正しています。