LoginSignup
5
9

More than 3 years have passed since last update.

Arduinoで照度計を作成し、ログをCSV形式で保存する

Last updated at Posted at 2020-04-10

概要

Arduinoを使って照度計を作成し、そこで取れた照度のログをPythonで受け取ってPCにCSV形式で保存するコードを実装した.

Arduinoで照度計を作成

まずは照度計を作る部分について

使った材料は主に以下の4つ
- Arduino Uno
- ブレッドボード
- フォトトランジスタ(光のセンサー)
- 220Ωの抵抗×1

配線の概要は下の図のようになる.
照度計によって流れる電流の変化をA0端子でAnalogReadしている.
スクリーンショット 2020-04-10 20.35.03.png

以下がArduinoに実装したコードになる.

illuminator.ino
int sensorValue = 0;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:

  sensorValue = analogRead(A0);
  Serial.println(sensorValue);

  delay(1000);
}

この状態で照度のログがちゃんと出力されるか確認しておくといいと思う.

PythonでArduinoのログを受け取る

PySerialというモジュールを使ってArduinoからのログを受け取るらしい.
以下のコマンドでモジュールをインストール.

pip install pyserial

以下のコードでログをCSV形式で保存する.

save_serial.py
import sys
import serial
import datetime
import csv

ser = serial.Serial('/dev/cu.usbmodem14101',9600) #ポートの情報を記入

while(1):
    value = int(ser.readline().decode('utf-8').rstrip('\n'))
    date = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    print(date,value)
    with open('test.csv', 'a') as f:
        print('{},{}'.format(date,value),file=f)

このコードを実行すると以下のようにdatetimeと値のログがCSV形式で保存される.
スクリーンショット 2020-04-10 20.51.11.png

窓際に照度計を設置してグラフで照度の時間変化を表すと以下のようになった.
暗くなる様子がうまく表れている.
スクリーンショット 2020-04-10 20.56.02.png

5
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
9