SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
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 は安くて簡単に利用できておすすめ
●   買うときは海外通販が安い

Contenu connexe

Tendances

点群深層学習 Meta-study
点群深層学習 Meta-study点群深層学習 Meta-study
点群深層学習 Meta-studyNaoya Chiba
 
PRML読書会#2,#3資料
PRML読書会#2,#3資料PRML読書会#2,#3資料
PRML読書会#2,#3資料Hiromasa Ohashi
 
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​SSII
 
3次元レジストレーション(PCLデモとコード付き)
3次元レジストレーション(PCLデモとコード付き)3次元レジストレーション(PCLデモとコード付き)
3次元レジストレーション(PCLデモとコード付き)Toru Tamaki
 
20170419PFNオープンハウス インターンと採用 公開用
20170419PFNオープンハウス  インターンと採用 公開用20170419PFNオープンハウス  インターンと採用 公開用
20170419PFNオープンハウス インターンと採用 公開用Preferred Networks
 
深層強化学習でマルチエージェント学習(前篇)
深層強化学習でマルチエージェント学習(前篇)深層強化学習でマルチエージェント学習(前篇)
深層強化学習でマルチエージェント学習(前篇)Junichiro Katsuta
 
[R勉強会][データマイニング] R言語による時系列分析
[R勉強会][データマイニング] R言語による時系列分析[R勉強会][データマイニング] R言語による時系列分析
[R勉強会][データマイニング] R言語による時系列分析Koichi Hamada
 
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23Masashi Shibata
 
論文紹介「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」Naoya Chiba
 
[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習Deep Learning JP
 
RでGARCHモデル - TokyoR #21
RでGARCHモデル - TokyoR #21RでGARCHモデル - TokyoR #21
RでGARCHモデル - TokyoR #21horihorio
 
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)智啓 出川
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)RyuichiKanoh
 
[DL輪読会]モデルベース強化学習とEnergy Based Model
[DL輪読会]モデルベース強化学習とEnergy Based Model[DL輪読会]モデルベース強化学習とEnergy Based Model
[DL輪読会]モデルベース強化学習とEnergy Based ModelDeep Learning JP
 
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Shintaro Fukushima
 
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成MobileRoboticsResear
 
EEG analysis (nonlinear)
EEG analysis (nonlinear)EEG analysis (nonlinear)
EEG analysis (nonlinear)Kenyu Uehara
 

Tendances (20)

点群深層学習 Meta-study
点群深層学習 Meta-study点群深層学習 Meta-study
点群深層学習 Meta-study
 
PRML読書会#2,#3資料
PRML読書会#2,#3資料PRML読書会#2,#3資料
PRML読書会#2,#3資料
 
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜​
 
Lucas kanade法について
Lucas kanade法についてLucas kanade法について
Lucas kanade法について
 
3次元レジストレーション(PCLデモとコード付き)
3次元レジストレーション(PCLデモとコード付き)3次元レジストレーション(PCLデモとコード付き)
3次元レジストレーション(PCLデモとコード付き)
 
20170419PFNオープンハウス インターンと採用 公開用
20170419PFNオープンハウス  インターンと採用 公開用20170419PFNオープンハウス  インターンと採用 公開用
20170419PFNオープンハウス インターンと採用 公開用
 
深層強化学習でマルチエージェント学習(前篇)
深層強化学習でマルチエージェント学習(前篇)深層強化学習でマルチエージェント学習(前篇)
深層強化学習でマルチエージェント学習(前篇)
 
[R勉強会][データマイニング] R言語による時系列分析
[R勉強会][データマイニング] R言語による時系列分析[R勉強会][データマイニング] R言語による時系列分析
[R勉強会][データマイニング] R言語による時系列分析
 
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
 
論文紹介「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」
 
[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習
 
RでGARCHモデル - TokyoR #21
RでGARCHモデル - TokyoR #21RでGARCHモデル - TokyoR #21
RでGARCHモデル - TokyoR #21
 
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
[DL輪読会]モデルベース強化学習とEnergy Based Model
[DL輪読会]モデルベース強化学習とEnergy Based Model[DL輪読会]モデルベース強化学習とEnergy Based Model
[DL輪読会]モデルベース強化学習とEnergy Based Model
 
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)
 
coordinate descent 法について
coordinate descent 法についてcoordinate descent 法について
coordinate descent 法について
 
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
 
Depth Estimation論文紹介
Depth Estimation論文紹介Depth Estimation論文紹介
Depth Estimation論文紹介
 
EEG analysis (nonlinear)
EEG analysis (nonlinear)EEG analysis (nonlinear)
EEG analysis (nonlinear)
 

Similaire à Linuxで温度計測あれこれ

ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!Yohei Fushii
 
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)Kenichiro MATOHARA
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0Kiwamu Okabe
 
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...Netwalker lab kapper
 
Lessfs をかじってみた(小江戸らぐオフな集まり第110回)
Lessfs をかじってみた(小江戸らぐオフな集まり第110回)Lessfs をかじってみた(小江戸らぐオフな集まり第110回)
Lessfs をかじってみた(小江戸らぐオフな集まり第110回)Kenichiro MATOHARA
 
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機Tetsuyuki Kobayashi
 
etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2
etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2
etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2Mitsutoshi Nakano
 
はじめての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...Netwalker lab kapper
 
NVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 LinuxNVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 LinuxTomoki SHISHIKURA
 
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールMITSUNARI Shigeo
 
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版今さら聞けない人のためのDocker超入門 CentOS 7.2対応版
今さら聞けない人のためのDocker超入門 CentOS 7.2対応版VirtualTech Japan Inc.
 
Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介Kiwamu Okabe
 
StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件StackExchangeで見たシステムプログラミング案件
StackExchangeで見たシステムプログラミング案件yaegashi
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo LinuxについてTakuto Matsuu
 
mbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミングmbedではじめる組み込みHaskellプログラミング
mbedではじめる組み込みHaskellプログラミングKiwamu Okabe
 
自宅サーバーを立てる話
自宅サーバーを立てる話自宅サーバーを立てる話
自宅サーバーを立てる話naba0123
 

Similaire à 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プログラミング
 
自宅サーバーを立てる話
自宅サーバーを立てる話自宅サーバーを立てる話
自宅サーバーを立てる話
 

Plus de Kenichiro MATOHARA

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

Plus 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で作りたい
 

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 は安くて簡単に利用できておすすめ ● 買うときは海外通販が安い