Raspberry PiでUSBメモリを使う
Raspberry Piで何かやってみる話の続きです。前回はシリアルポートからのデーターの読み出しでしたが、今回は読んだデーターをファイルへ記録して見ます。
Linuxなのでファイルに記録するのは、出力先をファイルにリダイレクトするだけでOKです。でもこれだとあまり面白く無いのでUSBメモリに記録してみることにします。なお、この先の記事は勉強中の人間が書いていますので、内容に変なとこがあるかも知れません。
USBメモリをいちいち手作業でマウントするのも面倒なのでusbmountというのをインストール。設定方法などは下記のサイトを参考にしました。
debian unstableでGO!さん
ふじかわ家のページ、OS起動中のUSBメモリのオートマウント
/etc/usbmount/usbmount.confの設定は下記です。
FILESYSTEMS="vfat ext2 ext3 ext4 hfsplus usbfs"
MOUNTOPTIONS="sync,noexec,nodev,noatime,nodiratime"
FS_MOUNTOPTIONS="-fstype=vfat,iocharset=utf8,codepage=932,uid=500,gid=500,dmask=000,fmask=011"
uidとgidの設定が何だか変な感じですが、こうしないとマウントされるだけで書き込み出来なかったです。たぶんここは見直すことになると思います。
▼USBメモリの状態確認

sshでTeraTermから操作しています。
dfでドライブの割り当て状態確認。/media/usb0に約8GBのドライブが見えてますが、これはFAT-32のUSBメモリです。
ls -lでusb0の中を見ると、windowsで書いたファイルもちゃんと見えてます。漢字のファイル名もちゃんと表示されています。
こんなpythonのプログラム (140508serial.py) を動かします。
これを python 140508serial.py > /media/usb0/test.csv とやって起動すると、次のような形式でシリアルポートからのデーターをUSBメモリに連続的に書き込みが行われます。
2014/05/11 17:10:27 , 1008.46, 31.72, 40.6, 244
バックグラウンドで実行させたほうが使い易いならコマンドの後ろに&を付けます。この場合、走らせたプロセスを止めるにはpsでpidを調べ、kill pid (pidにはpsで調べた値を入れる)で止める。
ということで、Raspberry Piの使い方が少しわかってきました。見掛けは頼りないですが、中身は本物のLinuxなのでなかなか面白いです。
実は私、UNIXがSystem-Vだった頃に少しいじったことがあります。その頃覚えたコマンドが今でも使えるはかなり嬉しかったです。
Linuxなのでファイルに記録するのは、出力先をファイルにリダイレクトするだけでOKです。でもこれだとあまり面白く無いのでUSBメモリに記録してみることにします。なお、この先の記事は勉強中の人間が書いていますので、内容に変なとこがあるかも知れません。
USBメモリをいちいち手作業でマウントするのも面倒なのでusbmountというのをインストール。設定方法などは下記のサイトを参考にしました。
debian unstableでGO!さん
ふじかわ家のページ、OS起動中のUSBメモリのオートマウント
/etc/usbmount/usbmount.confの設定は下記です。
FILESYSTEMS="vfat ext2 ext3 ext4 hfsplus usbfs"
MOUNTOPTIONS="sync,noexec,nodev,noatime,nodiratime"
FS_MOUNTOPTIONS="-fstype=vfat,iocharset=utf8,codepage=932,uid=500,gid=500,dmask=000,fmask=011"
uidとgidの設定が何だか変な感じですが、こうしないとマウントされるだけで書き込み出来なかったです。たぶんここは見直すことになると思います。
▼USBメモリの状態確認

sshでTeraTermから操作しています。
dfでドライブの割り当て状態確認。/media/usb0に約8GBのドライブが見えてますが、これはFAT-32のUSBメモリです。
ls -lでusb0の中を見ると、windowsで書いたファイルもちゃんと見えてます。漢字のファイル名もちゃんと表示されています。
こんなpythonのプログラム (140508serial.py) を動かします。
# -*- coding: UTF-8 -*-
# Read Serial on GPIO port
import serial
#import time
import datetime
def main():
todaydetail = datetime.datetime.today()
con=serial.Serial('/dev/ttyAMA0', 9600, timeout=10) # GP-IOのシリアルポート
print con.portstr # ポートのステータスを出力
while 1: # 無限ループで
str=con.readline() # シリアルから一行読む
todaydetail = datetime.datetime.today() # 日時を取得
print todaydetail.strftime("%Y/%m/%d %H:%M:%S"), # Excel形式で日時を出力
print ",",
print str, # 出力
# con.write(str)
if __name__ == '__main__':
main()
これを python 140508serial.py > /media/usb0/test.csv とやって起動すると、次のような形式でシリアルポートからのデーターをUSBメモリに連続的に書き込みが行われます。
2014/05/11 17:10:27 , 1008.46, 31.72, 40.6, 244
バックグラウンドで実行させたほうが使い易いならコマンドの後ろに&を付けます。この場合、走らせたプロセスを止めるにはpsでpidを調べ、kill pid (pidにはpsで調べた値を入れる)で止める。
ということで、Raspberry Piの使い方が少しわかってきました。見掛けは頼りないですが、中身は本物のLinuxなのでなかなか面白いです。
実は私、UNIXがSystem-Vだった頃に少しいじったことがあります。その頃覚えたコマンドが今でも使えるはかなり嬉しかったです。
- 関連記事
-
- Raspberry Piのメンテナンス
- Raspberry Pi で太陽光発電のデーターロギング
- Raspberry PiでUSBメモリを使う
- Raspberry Piでシリアルデータ受信
- Raspberry Pi を使える状態に組み上げ