SlideShare a Scribd company logo
Python, Raspberry Pi, Arduinoで作る 
消費電力モニタリングシステム 
Junichi Kakisako a.k.a. kironono 
2014/09/13 (PyCon JP 2014)
自己紹介 
• @kironono (きろのの) 
✦ http://kironono.com/ 
• きろ字のなかの人 
✦ $ sudo apt-get install ttf-kiloji 
• 好きなたべもの 
✦ いちご 
2
自己紹介 
• 普段はWebアプリの受託開発してます 
• 電子回路は趣味でやってます 
• 今日しない話 
✦ 回路設計 
✦ 電気特性 
✦ 半田ごての妙技 
• これからハードウェア方面にも手をだしてみようかな、 
という方々の参考になれば幸いです 
3
1. はじめに(仮) 
4
ちょっと聞いてくださいよ、 
奥さん 
5
ハードウェアとか 
6
流行ってるらしいじゃないの。 
7
フィジカル・コンピューティング 
とか 
8
モノのインターネッツ(IoT) 
とか 
9
オープンソースハードウェア 
とか 
10
PythonでWeb開発やってきたけど、 
ハードウェアも手を出したいな。 
という方に。 
11
2. Raspberry PiとArduino 
12
まぁ、よくある組み合わせ 
だと思います。 
13
「あ、また?」 
「ですよね (^_^;)」 
みたいな。 
14
どちらか一つくらいは 
お手元にありますよね!? 
15
Raspberry Pi 
16 
• Raspberry Pi Foundationが教育用と 
して開発 
• ARMプロセッサが乗ったカードサイ 
ズのコンピュータ 
• ARM11 700MHz, 256MBのメモリ 
• HDMI、オーディオ、USB、LAN端子 
などひと通りのインターフェイス搭載 
• ディスプレイ、キーボード、マウス、 
ネットワークにすぐ繋げられる 
• GPIO、CSI、DSI等の入出力端子
Raspberry Pi でできること 
17 
• 普通のLinuxが動く 
✦ Raspbian (Debian) 
✦ Pidora (Fedora) 
✦ Arch Linux 
• もちろんPythonも動く 
• PiGRRL(ゲームボーイ) 
• Automated Home Brewing(ビール醸 
造) 
• RAPIRO(組立式ロボット)
でも、お高いんでしょう? 
18
そんなことないんです! 
19 
• 現在3モデルが販売中 
✦ Raspberry Pi Model A 
✦ Raspberry Pi Model B 
✦ Raspberry Pi Model B+ 
• $25~$35 (3,940円) 
• ライバル達 
✦ HummingBoard ($45) 
✦ BeagleBone Black ($45)
必要な周辺機器 
20 
• USBケーブル 
(A-microB) 
• USB電源 (700mA以上供給 
できること) 
• SDカード (4GB以上) 
• マウス、キーボード 
• ディスプレイ 
• シリアルケーブル(あると 
嬉しい)
Arduino 
21 
• オープンソースハードウェア 
• 開発環境、ハードウェア、言語、合わ 
せてArduino 
• 設計図(Eagleファイル)も公開されてい 
るので、自分で作れる 
• もちろんハードウェアを購入できる 
• マイコン: ATMega328-P 
• フラッシュメモリ: 32KB 
• デジタルIO: 14本 
• アナログInput: 6本 
• 5Vで駆動
Arduino IDE 
22 
• クロスプラットフォーム 
(Java) 
✦ Windows 
✦ Mac OS 
✦ Linux 
• エディタ、コンパイラー、 
スケッチ転送、シリアル 
モニタ 
• 豊富なサンプル付き
Lチカ (HelloWorld) 
23 
int led = 13; 
! 
void setup() { 
pinMode(led, OUTPUT); 
} 
! 
void loop() { 
digitalWrite(led, HIGH); 
delay(1000); 
digitalWrite(led, LOW); 
delay(1000); 
}
でも、お高いんでしょう? 
24
そんなことないんです! 
• Arduinoにはファミリーがいっぱいいる 
✦ Arduino Uno (3,024円) 
✦ Arduino Leonardo(2,916円) 
• …とは言ったもののあまり安くないような 
• 自分で作ることができます!( ー`дー´)キリッ 
25
Arduino互換回路 
26 
• いらないものを取っ払っ 
て… 
✦ 電源安定化回路 
✦ USBシリアル変換 
✦ 拡張用の各種回路 
• 必要最小限にする
ワンチップArduinoもどき 
27 
• ATMega328-P: 250円 
• 積層セラミック・コン 
デンサ: 3×15円 
• セラロック: 40円 
• 抵抗: 4×1円 
• LED: 25円 
364円
Arduinoできないこと 
• Python 動かない 
• メモリをたくさん使う処理 
• 高負荷な処理(画像処理とか) 
28
3. Arduinoとおしゃべりする 
29
シリアル通信 
30 
• ここではRS-232C 
• 簡素なものは、TX, RX, 
GND があればよい
Firmata 
• Firmata (ふぁるまーた) 
✦ Arduinoに書き込む 
• python-firmata (Pythonライブラリ) 
• これを使えば、自分で書くコードはPythonで完結できる 
• が、基本的な操作(例えば入出力ピンのON/OFF)しか 
できない 
• もちろん拡張することは可能だが、それだとPython以外 
を書くことになる 
31
pySerial 
• Pythonからシリアル通信をおこなうためのモジュー 
ル 
• PyPIから取得可能 
• ファイル操作ライクなAPIで操作可能 
read, write, readline 
32
pySerial 
33 
import serial 
! 
# シリアルポートを開く 
s = serial.Serial(‘/dev/ttyusbserial’, 19200) 
! 
# シリアルポートから改行まで読み込み 
line = s.readline() 
! 
# シリアルポートに書き込み 
s.write(“hello”) 
! 
# シリアルポートを閉じる 
s.close()
4. 電力を見える化しよう 
34
電力モニタを作る 
35
使うもの 
• 電流センサー 
✦ 流れている電流を測る 
• Arduino (自作Arduino互換) 
✦ センサーを制御する 
• Raspberry Pi (Model: B) 
✦ Arduinoと通信する 
✦ Webアプリケーションをサーブする 
✦ データを蓄積する 
• USB接続の無線アダプタ 
✦ Raspberry Piを無線LANに接続する 
36
電流センサ 
37 
• クランプ型の電流セン 
サ CTL-10-CLS 
• 最大80Aまで測定可能 
• センサを貫通する電流 
の大きさに合わせて、 
出力電圧が変化
Raspberry Pi (Raspbian) 
構成図 
38 
Browser Redis 
Pyramid MySQL 
Serial port / Client 
Arduino Sensor 
WebSocket 
Subscribe Publish 
USB - Serial Adapter
制作手順 
• センサーの値を読む回路を考える 
• ブレッドボードに実装する 
• Arduinoのスケッチを書いて、Arduinoに書き込む 
• シリアル通信できる端末でテスト 
• ユニバーサル基板に実装する 
• シリアル通信するPythonコードを書く 
• Webアプリを書く 
• テスト 
• Raspberry Pi にデプロイ 
• テスト 
ハードウェア 
ソフトウェア 
39
Arduino側の処理 
• センサーの電圧をA/D変換 -> 電流がわかる 
• 検出した電流から電力を計算 
• 1秒間 (W = ジュール毎秒毎秒) の平均をとる 
• シリアルポートを通してRaspberry Piに送信 
40
Raspberry Pi側の処理 
• Arduino連携部分 
✦ シリアルポートを開いて、データが到着するのを待つ 
✦ 電力値を受け取ったら、RedisのPubSubにPublish 
✦ MySQLにも書き込む 
• Webサーバー部分 
✦ WebSocketのsubscribe待ち受け 
✦ RedisのPubSubをSubscribe、データを受け取ったら、WebSocketに 
emit 
✦ Pyramid + gevent_socketio 
41
42
43
Webアプリ 
44
分電盤に設置してみる 
45 
• クランプで挟むだけな 
ので、既存の設備を切 
断したりする必要はな 
い 
• 第二種電気工事士の資 
格は持ってます
デモ 
46
5. まとめ 
47
まとめ 
• 入門に適しているツール群 
✦ Python 
✦ Arduino 
✦ Raspberry Pi 
• 現実世界とインタラクションを始めるためのツール 
が出揃っている 
48
まとめ 
• オープンソースハードウェアの普及 
• プロトタイピング環境の充実 
49
ソースコードとか 
• Github 
https://github.com/kironono/homepower 
50
書籍とか 
• Raspberry Piクックブック (Make:PROJECTS) 
オライリージャパン - Simon Monk 
• Arduinoをはじめよう (Make:PROJECTS) 
オライリージャパン - Massimo Banzi 
• Arduinoをはじめようキット 
スイッチサイエンス 
51
パーツとか 
• スイッチサイエンス 
http://www.switch-science.com/ 
• 秋月電子通商 
http://akizukidenshi.com/ 
• マルツパーツ館 
http://www.marutsu.co.jp/ 
52

More Related Content

PDF
Differentiable Ray Sampling for Neural 3D Representation
Preferred Networks
 
PDF
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII
 
PDF
バイナリニューラルネットとハードウェアの関係
Kento Tajiri
 
PDF
Chainer でのプロファイリングをちょっと楽にする話
NVIDIA Japan
 
PDF
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
Hiroki Nakahara
 
PDF
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層
智啓 出川
 
PDF
Nginxを使ったオレオレCDNの構築
ichikaway
 
PPTX
OpenVRやOpenXRの基本的なことを調べてみた
Takahiro Miyaura
 
Differentiable Ray Sampling for Neural 3D Representation
Preferred Networks
 
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII
 
バイナリニューラルネットとハードウェアの関係
Kento Tajiri
 
Chainer でのプロファイリングをちょっと楽にする話
NVIDIA Japan
 
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
Hiroki Nakahara
 
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層
智啓 出川
 
Nginxを使ったオレオレCDNの構築
ichikaway
 
OpenVRやOpenXRの基本的なことを調べてみた
Takahiro Miyaura
 

What's hot (20)

PDF
データに内在する構造をみるための埋め込み手法
Tatsuya Shirakawa
 
PPTX
RenderTextureの正しいα値は?
KLab Inc. / Tech
 
PDF
シリコンバレーの「何が」凄いのか
Atsushi Nakada
 
PDF
トリコの動かし方
株式会社ジェンデザイン
 
PDF
01 ROS2 実用化に関するサーベイ ROS2勉強合宿 @別府温泉
Mori Ken
 
PDF
ARM CPUにおけるSIMDを用いた高速計算入門
Fixstars Corporation
 
PPTX
遠赤外線カメラと可視カメラを利用した悪条件下における画像取得
Masayuki Tanaka
 
PDF
ConvNetの歴史とResNet亜種、ベストプラクティス
Yusuke Uchida
 
PDF
「ユニティちゃんを踊らせよう!」モーションキャプチャーデータのアニメーション演出
小林 信行
 
PDF
20111015 勉強会 (PCIe / SR-IOV)
Kentaro Ebisawa
 
PDF
FPGAをロボット(ROS)で「やわらかく」使うには
Hideki Takase
 
PDF
プログラムを高速化する話Ⅱ 〜GPGPU編〜
京大 マイコンクラブ
 
PDF
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII
 
PDF
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
Hiroki Nakahara
 
PDF
Rethinking and Beyond ImageNet
cvpaper. challenge
 
PDF
NEDO講座 MoveIt! チュートリアル 第1部
openrtm
 
PDF
IROS2020 survey
robotpaperchallenge
 
PPTX
DLLAB Engineer Days: 推論環境としての Windows ML x ONNX の実際
Daiyu Hatakeyama
 
PDF
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII
 
PDF
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
エピック・ゲームズ・ジャパン Epic Games Japan
 
データに内在する構造をみるための埋め込み手法
Tatsuya Shirakawa
 
RenderTextureの正しいα値は?
KLab Inc. / Tech
 
シリコンバレーの「何が」凄いのか
Atsushi Nakada
 
トリコの動かし方
株式会社ジェンデザイン
 
01 ROS2 実用化に関するサーベイ ROS2勉強合宿 @別府温泉
Mori Ken
 
ARM CPUにおけるSIMDを用いた高速計算入門
Fixstars Corporation
 
遠赤外線カメラと可視カメラを利用した悪条件下における画像取得
Masayuki Tanaka
 
ConvNetの歴史とResNet亜種、ベストプラクティス
Yusuke Uchida
 
「ユニティちゃんを踊らせよう!」モーションキャプチャーデータのアニメーション演出
小林 信行
 
20111015 勉強会 (PCIe / SR-IOV)
Kentaro Ebisawa
 
FPGAをロボット(ROS)で「やわらかく」使うには
Hideki Takase
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
京大 マイコンクラブ
 
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII
 
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
Hiroki Nakahara
 
Rethinking and Beyond ImageNet
cvpaper. challenge
 
NEDO講座 MoveIt! チュートリアル 第1部
openrtm
 
IROS2020 survey
robotpaperchallenge
 
DLLAB Engineer Days: 推論環境としての Windows ML x ONNX の実際
Daiyu Hatakeyama
 
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII
 
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
エピック・ゲームズ・ジャパン Epic Games Japan
 
Ad

Viewers also liked (20)

PDF
Micro Python で組み込み Python
Hirotaka Kawata
 
PDF
"Continuous Publication" with Python: Another Approach
Daisuke Miyakawa
 
PDF
PyConJP Keynote Speech (Japanese version)
nishio
 
PPTX
Arduino 入門
mitunaga
 
PPTX
開発キックオフ時にマネージャが行うべき11のこと ~Visual Studio Online & TFS 使い始めと HOME 画面の構成
慎一 古賀
 
PDF
Pycon2014 django performance
hirokiky
 
PDF
Deep Learning for Image Recognition in Python
Hideki
 
PDF
Arduino を PHP で制御する
Kenichi Ahagon
 
PDF
Oktavia Search Engine - pyconjp2014
Yoshiki Shibukawa
 
PDF
PyConJP Keynote Speech (English version)
nishio
 
PDF
デブコミュ#20150312
Daisuke Imai
 
PDF
XML-RPC : Pythonが「電池付属」と呼ばれる理由
Ransui Iso
 
PDF
PyCon JP 2014 plone terada
Manabu Terada
 
PDF
Pyconjp2014_implementations
masahitojp
 
PPTX
CEDEC2014 不正コピーとチートの攻防戦 上原使用スライド
UEHARA, Tetsutaro
 
PDF
簡単に楽しくはじめよう!Raspberry Pi入門
Akira Ouchi
 
PDF
Pyramid入門
Atsushi Odagiri
 
PDF
Manage Myself
bash0C7
 
PDF
[RubyMotion LT] nitronに見るiosアプリ開発の未来
Masahiro Nishimi
 
PDF
M2M製品開発におけるmrubyの効果160726
shimane-itoc
 
Micro Python で組み込み Python
Hirotaka Kawata
 
"Continuous Publication" with Python: Another Approach
Daisuke Miyakawa
 
PyConJP Keynote Speech (Japanese version)
nishio
 
Arduino 入門
mitunaga
 
開発キックオフ時にマネージャが行うべき11のこと ~Visual Studio Online & TFS 使い始めと HOME 画面の構成
慎一 古賀
 
Pycon2014 django performance
hirokiky
 
Deep Learning for Image Recognition in Python
Hideki
 
Arduino を PHP で制御する
Kenichi Ahagon
 
Oktavia Search Engine - pyconjp2014
Yoshiki Shibukawa
 
PyConJP Keynote Speech (English version)
nishio
 
デブコミュ#20150312
Daisuke Imai
 
XML-RPC : Pythonが「電池付属」と呼ばれる理由
Ransui Iso
 
PyCon JP 2014 plone terada
Manabu Terada
 
Pyconjp2014_implementations
masahitojp
 
CEDEC2014 不正コピーとチートの攻防戦 上原使用スライド
UEHARA, Tetsutaro
 
簡単に楽しくはじめよう!Raspberry Pi入門
Akira Ouchi
 
Pyramid入門
Atsushi Odagiri
 
Manage Myself
bash0C7
 
[RubyMotion LT] nitronに見るiosアプリ開発の未来
Masahiro Nishimi
 
M2M製品開発におけるmrubyの効果160726
shimane-itoc
 
Ad

Similar to Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム (20)

PDF
配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!
Kazuhiro Abe
 
PDF
OSC Tokyo 2013 Spring JRPUG
Hideki Aoshima
 
PDF
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
74th
 
PDF
Netduino
Tadahiro Ishisaka
 
PPTX
PYNQ 祭り: Pmod のプログラミング
ryos36
 
PDF
今すぐ始めるArduino
funa3
 
PDF
機械学習 (AI/ML) 勉強会 #2 IoT編
Fujio Kojima
 
PDF
Boost.勉強会 #13 @仙台 鳥小屋
Yuto M
 
PDF
Imaocande LT
Imaoka Micihihiro
 
PDF
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
hiro345
 
PDF
Raspberry Pi and WebIOPi
hiro345
 
PDF
Arduino + rcs620sで遊ぼう
treby
 
PDF
Singularityで分散深層学習
Hitoshi Sato
 
PPTX
ロボットシステム学2015年第7回
Ryuichi Ueda
 
PPTX
平成26年度熊本高専Arduino講座 第2週 XBeeを用いた遠隔放射線量計測
Katsuhiro Morishita
 
PPTX
PukiWiki と Raspberry Pi と Arduino を連携させてIoT システムを作ってみた話
Takashi Yamanoue
 
PDF
Japanino Workshop #2
Shigeru Kobayashi
 
PDF
IとTの間のお仕事の話
Tsutomu Sakaguchi
 
PDF
GTC Japan 2017
Hitoshi Sato
 
PDF
Androidでロボットを動かそう・すまべん関西201003
cat sin
 
配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!
Kazuhiro Abe
 
OSC Tokyo 2013 Spring JRPUG
Hideki Aoshima
 
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
74th
 
PYNQ 祭り: Pmod のプログラミング
ryos36
 
今すぐ始めるArduino
funa3
 
機械学習 (AI/ML) 勉強会 #2 IoT編
Fujio Kojima
 
Boost.勉強会 #13 @仙台 鳥小屋
Yuto M
 
Imaocande LT
Imaoka Micihihiro
 
Arduino、Raspberry Pi、PIC 入門以前(NSEG 2014-04-19)
hiro345
 
Raspberry Pi and WebIOPi
hiro345
 
Arduino + rcs620sで遊ぼう
treby
 
Singularityで分散深層学習
Hitoshi Sato
 
ロボットシステム学2015年第7回
Ryuichi Ueda
 
平成26年度熊本高専Arduino講座 第2週 XBeeを用いた遠隔放射線量計測
Katsuhiro Morishita
 
PukiWiki と Raspberry Pi と Arduino を連携させてIoT システムを作ってみた話
Takashi Yamanoue
 
Japanino Workshop #2
Shigeru Kobayashi
 
IとTの間のお仕事の話
Tsutomu Sakaguchi
 
GTC Japan 2017
Hitoshi Sato
 
Androidでロボットを動かそう・すまべん関西201003
cat sin
 

Recently uploaded (9)

PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 

Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム