SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
Linux で温度計測あれこれ



KenichiroMATOHARA(@matoken)
       http://hpv.cc/~maty/
自己紹介
●   @matoken
    ●   最近は Google+ によく居ます.
    ●   http://hpv.cc/~maty/
●   千葉の方から来ました ><
    ●   Wikipedia 見ると一応東海道ぽい
●   普段は「小江戸らぐ」で活動しています.
    ●   ちょうど先月が 120 回目のオフ会があって 10 周年 !
今日は ?
●   USB 経由で温度をロギングする方法を紹介
温度計測
●   何故測りたくなったか ?
    ● ある夏の日
    ● サーバルームのエアコン死亡


    ● 一気に温度が上がる ><


    ● 無人だったらやばかった
温度を図る試み 1
●   サーバの内部温度計の値を拾う
    ● 付いていないものが多い.
    ● あまり正確じゃない
USB 接続温度計経由で計測
●   strawberry linux USBRH
        http://strawberry-linux.com/catalog/items?code=52001
    ●   ¥ 3,980-( 完成品は¥ 4,980-)
    ●   本来 Windows 専用
    ●   Linux で動くドライバが存在する
        http://www.dd.iij4u.or.jp/~briareos/soft/usbrh.html
        http://acapulco.dyndns.org/usbrh/
    ●   一箇所ならいいけど複数入れるには高いかな ?
マイコンを利用して複数のセンサを
●   Arduino(miniPro 2,000 円 ) というマイコンを利用
    して複数の温度センサを設置
    ●   温度センサには LM35DZ(@100) や HSM20G( 販売停
        止 ) を利用
    ●   温度センサにずれがかなりある
サンコーレアモノショップの
            USB 温度計
●   Linux でも使えるという噂を聞く
●   1 つ¥ 1,980-
●   秋葉原に行って試しに買ってみる
    http://www.thanko.jp/product/846.html
刺すだけで認識
$ dmesg
[ 5954.690042] usb 1-1.2: new low-speed USB device number 4 using ehci_hcd
[ 5954.854803] input: RDing TEMPerV1.2 as
/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input12
[ 5954.855138] generic-usb 0003:0C45:7401.0001: input,hidraw0: USB HID v1.10
Keyboard [RDing TEMPerV1.2] on usb-0000:00:1a.0-1.2/input0
[ 5954.857514] generic-usb 0003:0C45:7401.0002: hiddev0,hidraw1: USB HID
v1.10 Device [RDing TEMPerV1.2] on usb-0000:00:1a.0-1.2/input1
[ 5954.857543] usbcore: registered new interface driver usbhid
[ 5954.857545] usbhid: USB HID core driver
$ lsusb -d 0c45:7401
Bus 001 Device 011: ID 0c45:7401 Microdia
温度データをロギングするソフトを
            探す
●   CD には Windows 用の software しか付いて来な
    い
●   Linux で動作するものを探して貰ってくる (VID:PID
    で検索した )
    https://github.com/bitplane/temper
ビルド
    $ git clone git://github.com/bitplane/temper.git
    $ cd temper
●   README では
    # 1. Install libusb-0.1.4 and dev package, plus build-essential
    #
    # sudo apt-get install build-essential libusb-0.1.4 libusb-0.1.4-dev
●   となっているが ,Ubuntu12.04 では
    $ sudo apt-get install build-essential libusb-0.1-4 libusb-dev
    $ make
    gcc -Wall temper.c pcsensor.c -o temper -lusb
    $ sudo ./temper
    05-Jul-2012 16:32,32.711338
ビルド
    $ git clone git://github.com/bitplane/temper.git
    $ cd temper
●   README では
    # 1. Install libusb-0.1.4 and dev package, plus build-essential
    #
    # sudo apt-get install build-essential libusb-0.1.4 libusb-0.1.4-dev
●   となっているが ,Ubuntu12.04 では
    $ sudo apt-get install build-essential libusb-0.1-4 libusb-dev
    $ make
    gcc -Wall temper.c pcsensor.c -o temper -lusb
    $ sudo ./temper
    05-Jul-2012 16:32,32.711338
時間のフォーマットを修正
時間がGMTで表示されるのでlocaltimeに変更
●

$ git diff temper.c
diff --git a/temper.c b/temper.c
index 5670bb5..90a80f9 100644
--- a/temper.c
+++ b/temper.c
@@ -41,7 +41,7 @@ int main(){
struct tm *utc;
time_t t;
t = time(NULL);
- utc = gmtime(&t);
+ utc = localtime(&t);
char dt[80];
strftime(dt, 80, "%d-%b-%Y %H:%M", utc);
$ make
gcc -Wall temper.c pcsensor.c -o temper -lusb
$ sudo ./temper
06-Jul-2012 01:37,33.740040
秒数も出したい & 表示形式も変えたい
$ git diff temper.c | strings
diff --git a/temper.c b/temper.c
index 5670bb5..92de43d 100644
--- a/temper.c
+++ b/temper.c
@@ -41,10 +41,10 @@ int main(){
struct tm *utc;
time_t t;
t = time(NULL);
- utc = gmtime(&t);
+ utc = localtime(&t);
char dt[80];
- strftime(dt, 80, "%d-%b-%Y %H:%M", utc);
+ strftime(dt, 80, "%Y-%m-%d %H:%M:%S", utc);
printf("%s,%fn", dt, tempc);
fflush(stdout);
$ sudo ./temper
2012-07-06 02:27:48,31.875517
普通に利用できるようになりました
    $ sudo sh log.sh | tee log
    2012-07-06 02:26:55,31.939814
    2012-07-06 02:27:00,31.875517
    2012-07-06 02:27:05,31.875517
    2012-07-06 02:27:10,31.875517
    2012-07-06 02:27:19,31.875517
    2012-07-06 02:27:24,31.875517
    2012-07-06 02:27:29,31.875517
    2012-07-06 02:27:34,31.875517
     :
●   後は煮るなり焼くなり
gnuplot でグラフにする例
gnuplot> set datafile separator ","
gnuplot> set xdata time
gnuplot> set timefmt "%Y-%m-%d %H:%M:%S"
gnuplot> plot "logfile" using 1:2 w lp
gnuplot> set terminal png
gnuplot> set output 'temper.png'
gnuplot> plot "logfile" using 1:2 w lp
新幹線寒かったです ><
注意とか
●   sudo を付けずに一般ユーザで実行するとエラーも
    出さず帰ってこない
●   同梱の log.sh は 5 秒おきに実行してくれる
●   PC の熱を拾うので, USB ポート直挿しは避けたほ
    うが良い
●   付属の延長ケーブルを利用
●   NotePC だと 2,3 度温度が上がった
という発表を
         先月の小江戸らぐでしました
●   「日経 Linux で似たような記事があったよ」
    ●   日経 Linux2012 年 6 月号 p49 に載っていた.
    ●   記事を見ると同じ温度計だけど www.amazon.co.jp で
        ¥ 980- で売ってるとか orz
    ●
探すとあちこちで売っている
●   dx.com や ebay 等あちこちで売っているのを発
    見
●   eBay で $10 を切るくらいで shipping free
    ●   大抵深センから 1 週間ほどで届く
●   バリエーションもいくつかある
外観   センサ形状     温度      湿度
TEMPer      銀色     内蔵       ○       ☓
TEMPer1     銀色     外部       ○       ☓
TEMPer2     青色   内部 + 外部    ○       ☓
TEMPerHUM   青色     内部       ○       ○

※TEMPerHUM は未入手 ( 間違えて TEMPer2 を買った )
※TEMPer2 は今回のプログラムでは内部センサしか利用できていな
い
※TEMPer/TEMPer1/TEMPer2 は全て VID/PID 同じ…
まとめ
●   TEMPer は安くて簡単に利用できておすすめ
●   買うときは海外通販が安い

Mais conteúdo relacionado

Mais procurados

組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
 

Mais procurados (20)

SFUの話
SFUの話SFUの話
SFUの話
 
マルチコアを用いた画像処理
マルチコアを用いた画像処理マルチコアを用いた画像処理
マルチコアを用いた画像処理
 
LiDAR-SLAM チュートリアル資料
LiDAR-SLAM チュートリアル資料LiDAR-SLAM チュートリアル資料
LiDAR-SLAM チュートリアル資料
 
論文紹介「PointNetLK: Robust & Efficient Point Cloud Registration Using PointNet」
論文紹介「PointNetLK: Robust & Efficient Point Cloud Registration Using PointNet」論文紹介「PointNetLK: Robust & Efficient Point Cloud Registration Using PointNet」
論文紹介「PointNetLK: Robust & Efficient Point Cloud Registration Using PointNet」
 
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
 
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
 
自作GPUへの道
自作GPUへの道自作GPUへの道
自作GPUへの道
 
GeoPackageを使ってみた(おざき様)
GeoPackageを使ってみた(おざき様)GeoPackageを使ってみた(おざき様)
GeoPackageを使ってみた(おざき様)
 
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
 
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
 
SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用SSII2018TS: 3D物体検出とロボットビジョンへの応用
SSII2018TS: 3D物体検出とロボットビジョンへの応用
 
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
 
IROS2020 survey
IROS2020 surveyIROS2020 survey
IROS2020 survey
 
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
 
PythonとQGISで簡単処理
PythonとQGISで簡単処理PythonとQGISで簡単処理
PythonとQGISで簡単処理
 
Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装
 
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
 

Semelhante a Linuxで温度計測あれこれ

ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
Yohei Fushii
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0
Kiwamu Okabe
 
Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介
Kiwamu Okabe
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
Takuto Matsuu
 

Semelhante a Linuxで温度計測あれこれ (20)

ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
 
RPi電子工作入門
RPi電子工作入門RPi電子工作入門
RPi電子工作入門
 
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
 
Osc2013 tokyospring
Osc2013 tokyospringOsc2013 tokyospring
Osc2013 tokyospring
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0
 
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...
 
Lessfs をかじってみた(小江戸らぐオフな集まり第110回)
Lessfs をかじってみた(小江戸らぐオフな集まり第110回)Lessfs をかじってみた(小江戸らぐオフな集まり第110回)
Lessfs をかじってみた(小江戸らぐオフな集まり第110回)
 
Cuda
CudaCuda
Cuda
 
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
 
etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2
etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2
etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2
 
はじめてのUserLAnd。AndroidでUbuntu,Debian ArchLinuxなどをprootで動かそう Beginner for inst...
はじめてのUserLAnd。AndroidでUbuntu,Debian ArchLinuxなどをprootで動かそう  Beginner for inst...はじめてのUserLAnd。AndroidでUbuntu,Debian ArchLinuxなどをprootで動かそう  Beginner for inst...
はじめてのUserLAnd。AndroidでUbuntu,Debian ArchLinuxなどをprootで動かそう Beginner for inst...
 
NVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 LinuxNVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 Linux
 
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
 
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
 
Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介
 
今さら聞けない人のためのGit超入門 OSC2018広島版
今さら聞けない人のためのGit超入門 OSC2018広島版今さら聞けない人のためのGit超入門 OSC2018広島版
今さら聞けない人のためのGit超入門 OSC2018広島版
 
StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
 
mbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミングmbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミング
 
自宅サーバーを立てる話
自宅サーバーを立てる話自宅サーバーを立てる話
自宅サーバーを立てる話
 

Mais de Kenichiro MATOHARA

Mais de Kenichiro MATOHARA (20)

PQI Air Pen Hack
PQI Air Pen HackPQI Air Pen Hack
PQI Air Pen Hack
 
ゲーミングプラットホームのLutris
ゲーミングプラットホームのLutrisゲーミングプラットホームのLutris
ゲーミングプラットホームのLutris
 
USBを保護するUSBGuard
USBを保護するUSBGuardUSBを保護するUSBGuard
USBを保護するUSBGuard
 
Raspberry PiのUSB OTGを試す
Raspberry PiのUSB OTGを試すRaspberry PiのUSB OTGを試す
Raspberry PiのUSB OTGを試す
 
Let’s Encrypt更新話
Let’s Encrypt更新話Let’s Encrypt更新話
Let’s Encrypt更新話
 
Raspberry piのsdl等に対応したreal vncを試してみた
Raspberry piのsdl等に対応したreal vncを試してみたRaspberry piのsdl等に対応したreal vncを試してみた
Raspberry piのsdl等に対応したreal vncを試してみた
 
ちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxをちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxを
 
鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04
 
Raspberry Piにdiskless modeのalpine linuxを導入してみる
Raspberry Piにdiskless modeのalpine linuxを導入してみるRaspberry Piにdiskless modeのalpine linuxを導入してみる
Raspberry Piにdiskless modeのalpine linuxを導入してみる
 
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
 
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみるオープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
 
OSC15OT 配布ペーパー
OSC15OT 配布ペーパーOSC15OT 配布ペーパー
OSC15OT 配布ペーパー
 
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
 
鹿児島らぐC87配布ペーパー
鹿児島らぐC87配布ペーパー鹿児島らぐC87配布ペーパー
鹿児島らぐC87配布ペーパー
 
鹿児島に引っ越しました
鹿児島に引っ越しました鹿児島に引っ越しました
鹿児島に引っ越しました
 
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2
 
鹿児島のOSM状況
鹿児島のOSM状況鹿児島のOSM状況
鹿児島のOSM状況
 
鹿児島らぐはじめました & オープ ンソースアンカンファレンス鹿児 島のお誘い
鹿児島らぐはじめました & オープ ンソースアンカンファレンス鹿児 島のお誘い鹿児島らぐはじめました & オープ ンソースアンカンファレンス鹿児 島のお誘い
鹿児島らぐはじめました & オープ ンソースアンカンファレンス鹿児 島のお誘い
 
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
 
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
 

Último

Último (10)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

Linuxで温度計測あれこれ

  • 2. 自己紹介 ● @matoken ● 最近は Google+ によく居ます. ● http://hpv.cc/~maty/ ● 千葉の方から来ました >< ● Wikipedia 見ると一応東海道ぽい ● 普段は「小江戸らぐ」で活動しています. ● ちょうど先月が 120 回目のオフ会があって 10 周年 !
  • 3. 今日は ? ● USB 経由で温度をロギングする方法を紹介
  • 4. 温度計測 ● 何故測りたくなったか ? ● ある夏の日 ● サーバルームのエアコン死亡 ● 一気に温度が上がる >< ● 無人だったらやばかった
  • 5. 温度を図る試み 1 ● サーバの内部温度計の値を拾う ● 付いていないものが多い. ● あまり正確じゃない
  • 6. USB 接続温度計経由で計測 ● strawberry linux USBRH http://strawberry-linux.com/catalog/items?code=52001 ● ¥ 3,980-( 完成品は¥ 4,980-) ● 本来 Windows 専用 ● Linux で動くドライバが存在する http://www.dd.iij4u.or.jp/~briareos/soft/usbrh.html http://acapulco.dyndns.org/usbrh/ ● 一箇所ならいいけど複数入れるには高いかな ?
  • 7. マイコンを利用して複数のセンサを ● Arduino(miniPro 2,000 円 ) というマイコンを利用 して複数の温度センサを設置 ● 温度センサには LM35DZ(@100) や HSM20G( 販売停 止 ) を利用 ● 温度センサにずれがかなりある
  • 8. サンコーレアモノショップの USB 温度計 ● Linux でも使えるという噂を聞く ● 1 つ¥ 1,980- ● 秋葉原に行って試しに買ってみる http://www.thanko.jp/product/846.html
  • 9. 刺すだけで認識 $ dmesg [ 5954.690042] usb 1-1.2: new low-speed USB device number 4 using ehci_hcd [ 5954.854803] input: RDing TEMPerV1.2 as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input12 [ 5954.855138] generic-usb 0003:0C45:7401.0001: input,hidraw0: USB HID v1.10 Keyboard [RDing TEMPerV1.2] on usb-0000:00:1a.0-1.2/input0 [ 5954.857514] generic-usb 0003:0C45:7401.0002: hiddev0,hidraw1: USB HID v1.10 Device [RDing TEMPerV1.2] on usb-0000:00:1a.0-1.2/input1 [ 5954.857543] usbcore: registered new interface driver usbhid [ 5954.857545] usbhid: USB HID core driver $ lsusb -d 0c45:7401 Bus 001 Device 011: ID 0c45:7401 Microdia
  • 10. 温度データをロギングするソフトを 探す ● CD には Windows 用の software しか付いて来な い ● Linux で動作するものを探して貰ってくる (VID:PID で検索した ) https://github.com/bitplane/temper
  • 11. ビルド $ git clone git://github.com/bitplane/temper.git $ cd temper ● README では # 1. Install libusb-0.1.4 and dev package, plus build-essential # # sudo apt-get install build-essential libusb-0.1.4 libusb-0.1.4-dev ● となっているが ,Ubuntu12.04 では $ sudo apt-get install build-essential libusb-0.1-4 libusb-dev $ make gcc -Wall temper.c pcsensor.c -o temper -lusb $ sudo ./temper 05-Jul-2012 16:32,32.711338
  • 12. ビルド $ git clone git://github.com/bitplane/temper.git $ cd temper ● README では # 1. Install libusb-0.1.4 and dev package, plus build-essential # # sudo apt-get install build-essential libusb-0.1.4 libusb-0.1.4-dev ● となっているが ,Ubuntu12.04 では $ sudo apt-get install build-essential libusb-0.1-4 libusb-dev $ make gcc -Wall temper.c pcsensor.c -o temper -lusb $ sudo ./temper 05-Jul-2012 16:32,32.711338
  • 13. 時間のフォーマットを修正 時間がGMTで表示されるのでlocaltimeに変更 ● $ git diff temper.c diff --git a/temper.c b/temper.c index 5670bb5..90a80f9 100644 --- a/temper.c +++ b/temper.c @@ -41,7 +41,7 @@ int main(){ struct tm *utc; time_t t; t = time(NULL); - utc = gmtime(&t); + utc = localtime(&t); char dt[80]; strftime(dt, 80, "%d-%b-%Y %H:%M", utc); $ make gcc -Wall temper.c pcsensor.c -o temper -lusb $ sudo ./temper 06-Jul-2012 01:37,33.740040
  • 14. 秒数も出したい & 表示形式も変えたい $ git diff temper.c | strings diff --git a/temper.c b/temper.c index 5670bb5..92de43d 100644 --- a/temper.c +++ b/temper.c @@ -41,10 +41,10 @@ int main(){ struct tm *utc; time_t t; t = time(NULL); - utc = gmtime(&t); + utc = localtime(&t); char dt[80]; - strftime(dt, 80, "%d-%b-%Y %H:%M", utc); + strftime(dt, 80, "%Y-%m-%d %H:%M:%S", utc); printf("%s,%fn", dt, tempc); fflush(stdout); $ sudo ./temper 2012-07-06 02:27:48,31.875517
  • 15. 普通に利用できるようになりました $ sudo sh log.sh | tee log 2012-07-06 02:26:55,31.939814 2012-07-06 02:27:00,31.875517 2012-07-06 02:27:05,31.875517 2012-07-06 02:27:10,31.875517 2012-07-06 02:27:19,31.875517 2012-07-06 02:27:24,31.875517 2012-07-06 02:27:29,31.875517 2012-07-06 02:27:34,31.875517 : ● 後は煮るなり焼くなり
  • 16. gnuplot でグラフにする例 gnuplot> set datafile separator "," gnuplot> set xdata time gnuplot> set timefmt "%Y-%m-%d %H:%M:%S" gnuplot> plot "logfile" using 1:2 w lp gnuplot> set terminal png gnuplot> set output 'temper.png' gnuplot> plot "logfile" using 1:2 w lp
  • 18. 注意とか ● sudo を付けずに一般ユーザで実行するとエラーも 出さず帰ってこない ● 同梱の log.sh は 5 秒おきに実行してくれる ● PC の熱を拾うので, USB ポート直挿しは避けたほ うが良い ● 付属の延長ケーブルを利用 ● NotePC だと 2,3 度温度が上がった
  • 19. という発表を 先月の小江戸らぐでしました ● 「日経 Linux で似たような記事があったよ」 ● 日経 Linux2012 年 6 月号 p49 に載っていた. ● 記事を見ると同じ温度計だけど www.amazon.co.jp で ¥ 980- で売ってるとか orz ●
  • 20. 探すとあちこちで売っている ● dx.com や ebay 等あちこちで売っているのを発 見 ● eBay で $10 を切るくらいで shipping free ● 大抵深センから 1 週間ほどで届く ● バリエーションもいくつかある
  • 21. 外観 センサ形状 温度 湿度 TEMPer 銀色 内蔵 ○ ☓ TEMPer1 銀色 外部 ○ ☓ TEMPer2 青色 内部 + 外部 ○ ☓ TEMPerHUM 青色 内部 ○ ○ ※TEMPerHUM は未入手 ( 間違えて TEMPer2 を買った ) ※TEMPer2 は今回のプログラムでは内部センサしか利用できていな い ※TEMPer/TEMPer1/TEMPer2 は全て VID/PID 同じ…
  • 22. まとめ ● TEMPer は安くて簡単に利用できておすすめ ● 買うときは海外通販が安い