無料ダウンロードできる資料の一覧はこちら!. CSVファイルをエクセルで開いてグラフを作るのが面倒なので、RaspberryPi側でgnuplotを使って自動的にグラフを作るようにしてみた。 「はんだ」という名称は仮名書きされることが一般的で、カタカナ書きされることもあるが外来語ではない。, 今回使用したこちらのはんだです。とてもやわらかく、ふにゃふにゃと逃げやすいので、使う分だけを引き出して、短めに持つのがポイントです。 今回は新しい部品を使っての電子工作!ラズベリーパイで温度・湿度・気圧を一気に取得できる、とても便利なモジュールキットの使い方をご紹介します。, 今回はじめて、はんだ付けにも挑戦しました!上の写真にあるとおり、この部品はピンヘッダが別に付属されているため、ブレッドボードに差し込んで使うためにははんだ付けが必要です。熱さと戦いつつ恐る恐る仕上げたはんだ付け、どうぞ温かい目で見てあげてください(笑)。, BME280使用 温湿度・気圧センサモジュールキット pandas matplotlib matplotlib.pyplot numpy 手順 pandasでcsvを読み込む 読み込んだもののデータ型を確認。(データ型がintかf… システム開発エンジニアの西田五郎が運営しております。Raspberry Pi や Arduino その他新規開発案件のご依頼をお待ちしております。, Raspberry PiでIoT 温度・湿度・気圧データ編の3回目です。前回までで、Raspberry Piから温度、湿度、気圧データをWebサーバへ送信してそのデータを蓄積出来るようになりました。今回はそのデータを単純な一覧とグラフで表示してみます。, 以下が、Raspberry PiでIoT(温度・湿度・気圧データ編)の記事一覧です。 1.Webページのテンプレートを用意する 株式会社インデペンデンスシステムズ横浜 , Device Plus – デバプラ - Powered by ROHM. A+よりさらに小さい!そして薄い!本当に動くのか不安になるくらいの小ささですが、果たして無事に起動するのでしょうか!?, プロフィール:プログラミング暦通算4年、最近IT業界に舞い戻ってきたプログラマーです。女子です。, Raspberry PiやArduinoを使った電子工作から、  ロボコン出場ロボットを徹底解剖した紹介資料まで! Inter-Integrated Circuit の略で、I-squared-C(アイ・スクエアド・シー)が正式な読みとされている。ただし、一般的な文字コード環境のプレーンテキスト上では上付き文字が使えないため、I2CあるいはIICと表記されることも多く、日本国内ではこれをもって「アイ・ツー・シー」と発声されたりカタカナ表記されることがある。, 図2 データシートより >>問い合わせはこちら 1つの部品で複数の計測値を取得できると、ブレッドボードもプログラムもシンプルに仕上がるので、とても使い勝手が良いですね。温度センサはこれまでに何度も扱ってきましたが、それよりもこんなに小さな部品で3種類の計測ができるというのが一番の驚きでした!, コツを掴むとなかなか楽しい、はんだ付け!最初は部品の小ささとはんだごての熱さに戸惑いましたが、はんだがうまく流れてきれいに仕上がった瞬間はなんだか感動的でした。自分の手で部品を作っていくのはとても面白い作業ですね!, うわさのRaspberry Pi Zeroが登場! Raspberry PiでIoT(温度・湿度・気圧データ編 その3)データ表示とグラフ表示 . ?Sense HAT emulator」, 第46回「ラズベリーパイ専用アドオンボード Sense HATで遊ぼう!(3)ジョイスティック編」, 第45回「ラズベリーパイ専用アドオンボード Sense HATで遊ぼう!(2)6種類のセンサ編」, 第44回「ラズベリーパイ専用アドオンボード Sense HATで遊ぼう!(1)LEDディスプレイの操作」, 第43回「Raspberry Pi Zero V1.3+カメラモジュールでミニ定点カメラを作ろう!」, 第42回「Model Bシリーズ最新版・Raspberry Pi 3!内蔵Bluetoothを使ってみよう」, 第41回「見た目も中身もコンパクトに!Raspberry Pi ZeroをCUI環境で動かそう」, 第39回「ラズベリーパイで温度・湿度・気圧をまとめて取得!AE-BME280でIC2通信」, 番外編:3Dプリンターで作ったRaspberry Piケースを鬼のデコ電してみた。, 第34回「WebIOPiでIoT!(5)プログラミング応用編~デジタルデバイスとの連携~」, 第33回「WebIOPiでIoT!(4)プログラミング応用編〜フルカラーLEDの制御」, 第31回「WebIOPiでIoT!(2)プログラミング基礎編〜Lチカボタンを作ろう」, 第30回「WebIOPiでIoT!(1)導入&Lチカ編〜ブラウザからGPIOを操作しよう」, 第29回「VolumioでAirPlay!コマンド入力なしの簡単ラズベリーパイ工作」, 第28回「手のひらサイズのラズベリーブログ ~WordPressのインストール~」, 第23回「Raspberry PiからTwitterへ情報発信!(1) Twitter API編」, 第15回「うわさの新作Raspberry Pi2!歴代ラズベリーパイと比べてみよう!」, 第14回「ラズベリーラジオ後編 – MPDとスマートフォンアプリで簡単操作なラジオに変身!」, 第10回「Raspberry PiでLチカ!Scratchのネコちゃんと遊ぼう!」, Device (adsbygoogle = window.adsbygoogle || []).push({}); (OS:Raspbian Jessie/2015年11月21日リリース版にて確認済み), ここで、I2Cを使うために必要なパッケージをインストールしておきましょう。コマンドラインから操作するには「i2c-tools」パッケージ、Pythonから操作するには「python-smbus」パッケージが必要になります。, インストールコマンド ボッシュ社のBME280を搭載したセンサモジュールで、温度、湿度、気圧の3つの環境情報を同時に測定できます。マイコンとの通信方式は、I2CまたはSPIを選択することができます。, 今回使用する電子部品はこちらです。16×10ミリという超小型サイズ! Raspberry PiでIoT(温度・湿度・気圧データ編 その3)データ表示とグラフ表示” >>プライバシーポリシー, Raspberry PiとBME280モジュールで自動で温度・湿度・気圧を測定してグラフ化する, Raspberry Pi3 Model B ボード&ケースセット 3ple Decker対応 (Element14版, Clear)-Physical Computing Lab, 音声配信プラットフォーム「stand.fm」が便利なので100回限定でインターネットの歴史の話をしてみます, ノートアプリ「Notability」が使っていて気持ち良いので手帳のアナログからデジタルへの移行を考えている, 2017/05/27 python/pandas/matplotlibでのグラフ描画に関して追記. Raspberry PiでIoT(温度・湿度・気圧データ編 その2)Webサーバ側構築とデータ送信 ~キックオフミーティング~, 第65回「Pi MusicBoxで音楽ストリーミングサービスSpotifyと連携!」, 第64回ラズパイでClaws MailとGmailを連携させてメールを送受信してみよう!, 第62回 Raspberry Piで作るLED警告灯ソリューション!Crystal Signal Pi(クリスタル・シグナル・パイ) (3)ツール作成編, 第61回 Raspberry Piで作るLED警告灯ソリューション!Crystal Signal Pi(クリスタル・シグナル・パイ) (2)ミドルウェア編, 第60回 Raspberry Piで作るLED警告灯ソリューション!Crystal Signal Pi(クリスタル・シグナル・パイ) (1)セットアップ編, 第57回「改めましてラズベリーパイの基本!(2) Raspberry Pi イメージファイルのインストール&バックアップ 2017年度版」, 第56回「改めましてラズベリーパイの基本!(1) Raspberry Pi NOOBSインストール 2017年度版」, ラズパイで何かしたい!と思った人のためのまとめ!(3) Raspberry Pi ソフトウェア編, ラズベリーパイまとめ!(2) Raspberry Pi 電子工作編 入門から応用まで, ラズパイで何かしたい!と思った人のためのまとめ!(1) Raspberry Pi 初級編, 第55回「SORACOM応用編!ラズベリーパイからDropboxへファイルをアップロード(2)定点カメラとの連携」, 第54回「SORACOM応用編!ラズベリーパイからDropboxへファイルをアップロード(1)Dropbox-Uploader」, 第53回「ラズベリーパイとSORACOM Airでインターネット接続!(2)接続編」, 第52回「ラズベリーパイとSORACOM Airでインターネット接続!(1)登録編」, 第50回「ラズパイ3×Ubuntu MATEで遊ぼう!(2)Wi-Fi接続とBluetooth接続」, 第49回「ラズパイ3×Ubuntu MATEで遊ぼう!(1)日本語入力の設定方法」, 第47回「ラズベリーパイとSense HATを持っていなくても遊べる! I2C(アイ・スクエア・シー、アイ・ツー・シー)はフィリップス社で開発されたシリアルバスである。低速な周辺機器をマザーボードへ接続したり、組み込みシステム、携帯電話などで使われている。 はんだ(半田、盤陀、英語: solder)とは、はんだ付けに利用される鉛とスズを主成分とした合金である。金属同士を接合したり、電子回路で、電子部品をプリント基板に固定するために使われる。材質にも依るが、4 – 10 K程度で超伝導状態へと転移する。 メインの仕事をしてくれる「BME280」は中央にあるシルバーの部分になります。値を取得するために、表面にとても小さな穴が開いているので、これを塞いでしまわないように注意しましょう。, 購入時は、AE-BME280本体とピンヘッダは接続されていない状態でした。ラズベリーパイと組み合わせて使用するには、図1の写真のような形に仕上げた方が使いやすいので、はんだを使って組立作業が必要になります。ピンヘッダは10本のものが同梱されていたので、AE-BME280に合わせて6本目のところで折ってから使います。日本語のマニュアル付き。, 通信方式は、I2CとSPIから選択できますが、SPIは以前扱ったので、今回はI2Cに挑戦したいと思います。, I2C – Wikipedia (adsbygoogle = window.adsbygoogle || []).push({}); >>karaageのポートフォリオ プログラミング言語の一つですが、これもWebで表現するWebを活用するために不可欠となっていると思います。(※一時期、人気がなかったというか評価が低くなっていた時代もあったと思います。)今現在JavaScriptがWebに必要不可欠となっている要素にAjaxがあると思います。Ajaxの非同期通信では、ユーザビリティの向上やブラウザとサーバとの間の通信軽量化を実現しています。IoT関連でも幅広く利用されていると思います。, Raspberry Piでセンサネットワークを構築して実際に稼働してみます。基本編としてRaspberry Piにセンサを直接接続する構成です。その構成で安定して稼働させるにはどういった課題があるか書 …, Raspberry Piでセンサネットワーク稼働試験(AWS SORACOM編)構成・課題等, Raspberry Piでセンサネットワークを構築して実際に稼働してみます。今回は、AWS SORACOM編として通信モジュールにSORACOMの3G対応データ通信端末 AK-020を使用してAWSに …, Raspberry PiでIoTのMQTTで遠隔操作編のシリーズを始めます。実際に動作させてみるということを重点として進めます。ここでの遠隔操作は2台のRaspberry Pi間でインターネット経由の …, Raspberry PiでC言語を使ったLEDの点灯、消灯(いわいるLチカ)を試してみました。やはりGPIOの入出力に関してはこのLチカをやってみないと始まらないというところでしょうか。今回はGPIO …, Raspberry Piでタッチアプリ開発の4回目です。前回作成したレイアウトとボタンのコールバックにGPIOの処理を組み込みます。そして、このアプリを自動起動するように設定します。 今回のシリーズ一 …, Arduino IDEのWindows10でのインストール(2020/05/04版). 何といってもWebで表現するための需要な要素です。但し私は開発系エンジニアなので基本的な使い方しか出来ません。最近ではもっぱらBootstrapを使っています。, JavaScript Raspberry PiでIoT(温度・湿度・気圧データ編 その4)アラートメール送信, 今回の作業手順は以下です。 投稿日:2017年4月2日 更新日: 2019年7月16日. Raspberry PiでIoT(温度・湿度・気圧データ編 その1)BME280でデータ取得, Raspberry PiでIoT(温度・湿度・気圧データ編 その2)Webサーバ側構築とデータ送信, Raspberry PiでIoT(温度・湿度・気圧データ編 その3)データ表示とグラフ表示”, Raspberry PiでIoT(温度・湿度・気圧データ編 その4)アラートメール送信, スイッチサイエンス BME280搭載 温湿度・気圧センサモジュール ピンヘッダ実装済, カラー図解 最新 Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる (ブルーバックス). ラズパイその他工作 ; MESHではじめるIoT生活 ... リビジョン1(2012年10月14日以前の発送分のRaspberry Pi Model Bまで)の場合は0を、リビジョン2のものは1を指定します。今回はRaspberry Pi2 Model Bを使用していたので、引数は1でうまく動作しました。 図12. HTMLとCSS adsFilter(); 2.単純な一覧表示のページを作成する 実験レポートで、実験結果をcsvファイルでまとめて、それをグラフ化するという作業をしたため、おば描きとしてまとめておく。 使用するパッケージ? この数字については、付属の説明書にも書かれています。, データシート まずは、Webページのテンプレートを用意します。テンプレートといいましても以下のようなBootstrapを利用したシンプルなテンプレートです。必要なBootstrapとJQueryはインターネット上のファイルを利用しています。jsファイルはページ最初に記述しています。, すいません、Bootstrapを細かく理解している訳ではありませんので反転(navber-inverse)のナビゲーションバーがあればいいかぐらいです。メニューもありませんが、ご了承下さい。, このページ内の何も含まれていない方のdiv class=”container”内に追記していきます。, 2.単純な一覧表示のページを作成する Raspberry PiとBME280というボッシュ製のセンサモジュールで温度・湿度を自動で計測して、グラフ化する方法を解説します。ソフトウェアも無料で公開しています。 失敗したときに備えて、はんだ吸取線も用意しておくと安心です。その名の通り、付けすぎてしまったはんだを吸い取ってくれる、初心者の強い味方です。, まずは、表面のはんだジャンパです。一番左の「J3」と書かれた部分に、はんだを流し込みます。となりのピンとの間隔が狭いので、繋がってしまわないように注意しましょう。, 次はピンヘッダの接続です。こちらは裏側からはんだ付けしました。間隔が狭くて、むずかしい!両端ははんだがダマになってしまっている悪い例です……。 I2CとSPIでは配線も異なるので、データシートをよく確認しておきましょう。 sudo apt-get python-smbus, i2cdetectコマンドを使用すると、I2Cで接続されているすべてのデバイスを検出できます。, 76と表示されました。16進数の76なので、正確には0x76ですね。 その中で、栽培記録として自動で温度・湿度のデータ記録することを考えます。以前似た様な例を本で読んだ記憶があるなと思って、家の本をパラパラ漁っていたら……ありました!, しかもこの本を献本してくださったmana_cat (id:mana-cat) さんが、そのものずばりの記事を執筆していらっしゃって、めちゃめちゃ参考にさせていただきました。全くの初心者の方には、この本買うのがオススメです。本のレビューは下記参照下さい。, というわけで、基本的にラズパイ超入門を読めばできるのですが、今回私が使用したモジュールがラズパイ超入門とは別のモジュールだったのと(本を買う前にモジュール買って放置してた)、本でやってないことも少し試してみたので、ラズパイ超入門を補完するような形で記事を書いてみようとおもいます。, ラズパイ超入門は、スイッチサイエンスさんのモジュールを前提に書いてあるので、ラズパイ超入門を参考にする人は、スイッチサイエンスさんのを買ったほうがよいです。, なお、このモジュール。モジュール自身の発熱があり温度はあまり当てにならないという情報もあります。, ただ、私の環境で簡易的に温度計と比較した限りでは1℃以下程度の差には収まっているようなので、多くの用途には十分使えるレベルだと思います。大きく温度が外れる場合は、マイコンから熱を受けていないかなど、測定環境を見直してみてください。, Raspberry Pi 3のセットアップ方法や、Raspberry Pi 3の周辺部品等は、以下参照下さい。Raspberry Pi2でも動くとは思いますが、確認はしていません。あしからず。, ジャンパワイヤでモジュールとRaspberry Piを接続します。直接接続できるのでブレッドボードは不要です。, はんだ付けするのに必要なもの一式、例えば以下です。ピンヘッダが実装済みのモジュールを買えば不要です。, 付属の説明書にはI2C通信をするときはJ3を半田付けしろと書いてありますが、ジャンパワイヤで繋げばよいことがわかったので私はしませんでした(後述), BME280モジュールのピン配置は部品面を上にして、左端が1pinで右端が6pin。, 秋月電子のBME280モジュールは、SPIモード、I2Cモードという複数の通信モードで動かすことができます。今回I2Cモードを使いたいので、その場合は3pinを電源(3.3V)に繋ぐことでI2Cモードに設定できます。テスタであたると分かるのですが、BME280モジュールのJ3の半田付けは、1pinと3pinをショートするだけなので、半田付けしなくても3pinを電源(3.3V)に接続すればI2Cモードで動きます。, 後、5pinを電源(3.3V)に繋ぐかGNDに繋ぐかでI2Cのアドレスを変更することができます。今回はデフォルトの0x76にしたいのでGNDに接続しましょう。ネットのサンプルスクリプトも大抵0x76の設定になっているのでこちらの方がよいと思います。電源(3.3V)に繋ぐと0x77になります。, 接続完了したら、Raspberry Piを起動してまずは接続チェックをしてみます。, 下記記事を参照に基礎的なセットアップ($ sudo apt-get upgradeするところ)まで完了させて下さい。, その後、Raspi-configセットアップで、Interfaceのタブを開きI2CをEnableに設定して下さい。BME280モジュールとI2Cという通信方式で通信するので、設定が必要となります。, I2Cは、組み込み機器の内部通信によく使われる双方向通信です。Maxで400kbpsと速度が遅く(USB2.0の480Mbpsの1/1000以下)、配線もそれほど長く引き延ばせないですが、CLKとDATAの2本で通信できる上、複数の機器をハブを用いずバスで繋げられるのが利点です。具体的にはNintendo WiiのWiiリモコンのリモコンとヌンチャクの通信に使われていたりします。, i2c-toolsというのが、I2Cの接続テストや簡単なコマンドを送受信するようなプログラム(i2cdetectとかi2csetとか)。python-smbusというのが、pythonでI2Cを制御するためのライブラリです。, BME280のデフォルトのI2Cアドレス0x76が表示されているので、モジュールとの通信は問題無さそうです。これでハードウェアのチェックは完了。もし表示されなかったら、接続や設定を見直してみて下さい。, pythonでBME280モジュールを制御するプログラムをスイッチ・サイエンスさんが公開しています。ありがたやありがたや。以下のコマンドで、プログラムのダウンロード及び実行ができます。, 追記:スイッチサイエンスさんが、ソフト変更した関係でsmbus2というモジュールが必要になるため、smbus2を追加でインストールする必要があります(入れないとImportError: No module named smbus2というエラーがでます)。インストールは、以下サイトの情報でうまくいった人がいるとのことです(私は未確認), 秋月の温湿度・気圧センサモジュールAE-BME280で、温度・湿度・気圧を取得する(1/2): ままれのblog, smbus2を入れないで済む方法としては、bme280_sample.pyの3行目を以下のように変更して下さい(2を削る), もしくは、以下の方法で古いバージョンのソフトをダウンロードしてもよいです。そもそも、ここを飛ばしてもらってもOKです(私のコードはsmbus2を使用していないので)。, 隣の部屋の温度・湿度計をみたら、おおよそ正しそうな値はとれているのでよしとします。, ただ、このままではデータを後で処理するのに不便なので、フォーマットを修正してcsvに書き出すようにしたいと思います。ラズパイ超入門で、素晴らしいスクリプトが公開されているのですが、2次配布が禁止されているのと、一部自分にとって不都合なところがあったので、ラズパイ超入門のスクリプトのコードは使わず、スイッチサイエンスさんのスクリプトをベースに自作してGitHubで公開しました。自作といっても10行くらい書き足しただけですが。, 以下コマンドで、実行するたびにsensor_data.csvというcsvファイルに時刻、温度、湿度、気圧のデータを書き出すことができます。, 更にcrontab -e実行して、末尾に以下追記すると10分ごとにcsvファイルにデータを自動で追記していくようになります。, csvファイルは、カンマ「 , 」でデータを区切ったテキストファイルです。30分ほど放置してから、less ~/denpa-gardening/sensor_data/sensor_data.csvとしてcsvファイルの中身をみると、以下のようなフォーマットで保存されているのがわかると思います。, このままだとわかりづらいので、データをまとめてグラフ化してみます。PC上でエクセル的なもので処理するのも面倒くさいのでRaspberry Piでグラフを生成してもらうことにします。グラフ化するソフトとして以下のコマンドでgnuplotをインストールします。gnuplot使うの大学生以来です。, グラフをスクリプトtで生成するのどうやるのかなと思ったら、まさに同じようなことをやっている人がいたので、そのスクリプトをベースに以下のようなスクリプトを作成しました。, 以下コマンド実行すると、~/denpa-gardening/sensor_data/以下にグラフのデータsensor_data_temp.png, sensor_data_humid.png, sensor_data_pressure.png,sensor_data_temp_humid.pngが生成されます。, 以下は温度、湿度をグラフ化したsensor_data_temp_humid.pngの例です。, csvファイルが大きくなりすぎるのもいやなので、1日毎にファイルを別名で保存するdata_dump.shを同リポジトリに作成しておきました。これをcronで1日毎に実行すればディスク容量の限り保存を続けられそうです。これでとりあえず完了。, 追記:gnuplotを使わずpython/pandas/matplotlibを使ってグラフを描く方法に関して追記しました。今時gnuplotは…という人はこちらを参照下さい。, Raspberry PiとBME280モジュールを使用して、自動で温度・湿度・気圧を測定してグラフ化までできるようになりました。多くの先人の知恵に助けられ、自分では20行くらいしかプログラム書いてないのですが、20行書くためにコード読んだり、調べたことが色々ためになりました。基本的な知識にまだまだ抜けがあることを改めて実感しました。やっぱりプログラムは自分で組まないとダメですね。, この記事を参考にしてくださっている方が結構いるようなので、私が見つけたサイトをいくつか紹介します。, Raspberry Pi 2で温湿度・気圧センサのBME280をPythonから使う - Qiita, PiTs laboratory: RaspberryPiでラズベリー栽培 自動でグラフを作成(gnuplot), gnuplotで日付・時刻の書かれた時系列データを二軸でグラフ描画し保存するシェルスクリプト – 或る阿呆の記.