##概要
Arduinoを使って照度計を作成し、そこで取れた照度のログをPythonで受け取ってPCにCSV形式で保存するコードを実装した.
##Arduinoで照度計を作成
まずは照度計を作る部分について
使った材料は主に以下の4つ
- Arduino Uno
- ブレッドボード
- フォトトランジスタ(光のセンサー)
- 220Ωの抵抗×1
配線の概要は下の図のようになる.
照度計によって流れる電流の変化をA0端子でAnalogReadしている.
以下が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)