スイッチサイエンス の BME280搭載 温湿度・気圧センサモジュール

Raspberry Pi2 で、Pythonのサンプルプログラムを動かして温度・湿度・気圧を一応取得出来たので方法を残しておきます。

■ハードウェアについて

今回使った BME280搭載 温湿度・気圧センサモジュールは、スイッチサイエンスから出ているものです。
1cm×2cmのサイズで、温度・湿度・気圧の3種類の環境情報が取得可能です。
接続は、I2CとSPIで接続できます。
電源電圧は、DC1.8V~3.3V
Raspberry Pi とつないで動作させることができます。

スイッチサイエンス商品ページ
https://www.switch-science.com/catalog/2236/

Amazonでも買えます。

■Raspberry Pi 2との接続

SDO: Hi,LoでI2Cアドレスが決まる(Hiの時 0x77, Loの時 0x76)そうで、今回はGND(Lo)につなぐ(サンプルプログラムが0x76で書かれてる)。
SCK: I2C SCL
SDI: I2C SDA
CSB: 3.3V これはなんで3.3Vなのか謎。そのうち調べる。
GND: GND
Vcore: Vioはつながっているので特につながなくてもいいはず。
Vio: 3.3V

BME280_raspberrypi

 

■raspi-configでI2Cを有効にする

raspi-config を起動してI2Cを有効にします。

$ sudo raspi-config

raspi-config 8 Advanced Options

raspi-config A7 I2C

あと、YES。

■設定

/etc/modules に i2c-dev を追加

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

snd-bcm2835
i2c-dev

 

■I2Cのアドレスを確認

$ sudo i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --

 

■サンプルプログラム取得

$ wget https://raw.githubusercontent.com/SWITCHSCIENCE/BME280/master/Python27/bme280_sample.py
--2015-08-16 03:36:21-- https://raw.githubusercontent.com/SWITCHSCIENCE/BME280/master/Python27/bme280_sample.py
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 103.245.222.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|103.245.222.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3867 (3.8K) [text/plain]
Saving to: `bme280_sample.py'

100%[================================================>] 3,867 --.-K/s in 0s

2015-08-16 03:36:25 (13.3 MB/s) - `bme280_sample.py' saved [3867/3867]

 

■サンプルプログラム実行

$ sudo python bme280_sample.py
Traceback (most recent call last):
 File "bme280_sample.py", line 3, in <module>
 import smbus
ImportError: No module named smbus

エラーが出た。smbusってのがないっぽい。

■ソフトインストール

$ sudo apt-get install python-smbus
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
 python-smbus
0 upgraded, 1 newly installed, 0 to remove and 25 not upgraded.
Need to get 11.9 kB of archives.
After this operation, 95.2 kB of additional disk space will be used.
Get:1 http://archive.raspberrypi.org/debian/ wheezy/main python-smbus armhf 3.1.1+svn-1 [11.9 kB]
Fetched 11.9 kB in 1s (9,661 B/s)
Selecting previously unselected package python-smbus.
(Reading database ... 79545 files and directories currently installed.)
Unpacking python-smbus (from .../python-smbus_3.1.1+svn-1_armhf.deb) ...
Setting up python-smbus (3.1.1+svn-1) ...

 

■再度サンプルプログラム実行

$ sudo python bme280_sample.py
temp : 32.17 ℃
pressure : 1008.27 hPa
hum : 49.47 %

取得できた。でも気温が少し高めに出てる気がする。 とりあえずサンプルプログラムそのままで動かしたけど、微調整とかできるのかな?

 

参考

https://www.switch-science.com/catalog/2236/
http://qiita.com/masato/items/027e5c824ae75ab417c1
http://trac.switch-science.com/wiki/BME280

無線LANアダプタ

Raspberry Pi で使っている無線LANアダプタ(BUFFALO WLI-UC-GNM)の発熱がひどい。
50℃~65℃ぐらいになる。熱の籠もる部分では70.8℃にもなる。

BUFFALO WLI-UC-GNM 70.8℃

Raspberry Pi に使っているのだが、CPUなんかよりも熱くなってる。抜いてコネクタの金属部分を触るとヤケドしそうなぐらい熱い。

続きを読む無線LANアダプタ

Raspbian インストール & 設定

Raspberry Pi 用の OS、Raspbian をインストール & 設定をした。
Raspberry Pi 用の OS は、数個あるが、Raspbian は推奨 OS だそう。
Raspbian (ラズビアン)は、Debian系 の Linux OS。 Fedora系の Pidora と言うOSもある。

取りあえずやったこと。

1. Raspbian をインストール

http://www.raspberrypi.org/downloads/
ここから RASPBIAN のzip版をダウンロードして解凍。img ファイルが手に入る。
(ちなみに現在の最新版は、「2015-05-05-wheezy-raspbian.img」でした)

Win32DiskImager と言うソフトを使って、imgファイルを microSD に展開する。

Win32 Disk Imager - Write

続きを読むRaspbian インストール & 設定

Raspberry Pi B+ を買った

Raspberry Pi B+ を買った

シングルボードパソコンとかシングルボードPCと言うヤツで、ポケットに入るぐらいのサイズで Linux が動くパソコン。

Linux が動くので、勉強に持ってこい。VMWare とか仮想PCに Linux入れてもいいけど、これを使うと物理的に違う PC なので、理解しやすい(と思う)。さらに、GPIOも付いてるので「○○センサをつないで・・・」と夢が広がる。他のパソコンにない特徴は、省電力ってとこと、このGPIOが付いてるってとこかな。

Raspberry Pi B+

続きを読むRaspberry Pi B+ を買った

パスワード認証

パスワード認証でのパスワード管理のしかたを調べた。

パスワードはハッシュ値にしてDB(データベース)に保存して管理し、認証の時には、入力されたパスワードをハッシュ値にしてDBのハッシュ値と一致するか

と言うことをするのが一般的なよう。

 

なぜそんなことをするかというと、「もしDBのデータが漏洩したとしてもパスワードは死守するため」。

死守するためには他にも ソルト を付加するとか ストレッチング をするとか言う工夫をしているそう。

続きを読むパスワード認証

C# 全角文字を半角文字に変換

全角文字を半角文字に変換するメソッドが用意されてるんだろうなとググってみたら、どうやら Visual C# では用意されてないよう。

@ITの質問掲示板「C#による半角⇔全角変換の方法は?」
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=10448&forum=7

↑ ここなんかを見ると、多くの人は Visual Basic のStrConv()を利用しているようす。

Visual Basic のStrConvメソッド使わずに思ったよりもコード量も少なく書けたので覚え書きとして残しておこうと思う。

ちゃちゃっと書いたので、ひょっとするとうまくいかないかも。うまくいかなかったらゴメンナサイ。

続きを読むC# 全角文字を半角文字に変換

C# MessageBox.Show()

C# の MessageBox について色々試してみた.

ソースコードはこんな感じ.

string ss_message = “サンプル”;    // ss_message には一時的に使用.
MessageBox.Show(
ss_message,
“Title”,
MessageBoxButtons.OK,
MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button1
);

MessageBoxButtons.○○○ の ○○○ の部分を変更して実行してみた.

MessageBoxButtons.○○○

AbortRetryIgnore  AbortRetryIgnore
OK  OK
OKCancel  OKCancel
RetryCancel  RetryCancel
YesNo  YesNo
YesNoCancel  YesNoCancel

 

MessageBoxIcon.○○○ の ○○○ の部分を変更して実行してみた.

MessageBoxIcon

Asterisk  Asterisk
Error  Error
Exclamation  Exclamation
Hand  Hand
Information  Information
None  None
Question  Question
Stop  Stop
Warning  Warning

違う設定なのに同じ表示になっている部分がある.何か他の設定が必要なのだろうか?

よくわからないが,とりあえず保留にしとく.

C# Button

Button の使い方の覚え書き.

ツールボックスから Button を選択し,Form1に配置する.

ツールボックスからButton

配置した Button をダブルクリック.そうするとソースファイル(Form1.cs)が開かれ,button1_Click() と言う関数が追加される.

なんでもいいのだが,ラベルの表示を変更するようにしてみる.

label1.text = “さんぷる”;

と書く.

Form1.cs の button1_Click()

書けたら,デバッグ実行.

ボタンをクリック

button1 をクリックすると Hello world の表示が さんぷる に切り替わることを確認.

さんぷる

button1 と言うボタンの表示を変更するには,プロパティの Text を変更すればいい.

Text

 

C# Hello world

C# で「 Hello world 」の作り方.

Hello world と言うのは,プログラミングの最初にとりあえず作ってみる「 Hello world 」と表示するだけのプログラム.

新しいプロジェクト

Windows フォームアプリケーション で sample プログラムを作成.

sample

ツールボックスを固定.

ツールボックスを固定

ツールボックスが固定された画面.

ツールボックスが固定された画面

ツールボックスから Label を選択し,ウィンドウ上でクリック.

ラベルをおく

置いた Label 上で右クリックしプロパティを選択.

置いたラベル上で右クリック

右下にプロパティが表示される.

右下にプロパティが表示される

プロパティの Text を Hello world に変更.デザインの表示も Hello world になることを確認.

ラベルの Text を Hello world に変更

デバッグ開始をクリック.(または,F5キーを押す)

デバッグ開始をクリック

Hello world が起動される.

Hello world

これで Hello world は作成完了.

C# 開発環境( Microsoft Visual C# を)インストール

C# の勉強をはじめようと思う.

今日の目標は,開発環境ゲットまで.

まずは.C# の開発環境を用意する.以前ちょっと勉強したことがあり,そのときに『 Microsoft Visual Studio 2010 VisualC# 2010 パーフェクトマスター 』と言う3000円もする本も買ったので,2012が出ているが,2010を使う.検索したところ,Microsoft の次のページから Express 版(無料)がダウンロードできた.

ちなみに私の環境は,Windows 7 Professional 64bit.

Microsoft のページ
http://www.microsoft.com/visualstudio/jpn/downloads#d-2010-express

Microsoft C# ダウンロードページ

vcs_web.exe がダウンロードされるのでこれを実行する.

vcs_web.exeを実行

「はい」をクリック.

変更を許可する

少々待ち.

セットアップ

セットアップの品質向上に協力するかどうするかのチェックボックスを ON or OFF して,「次へ」をクリック.

セットアップへようこそ

ライセンス条項を読んで問題なければ「同意する」にチェックし,「次へ」をクリック.

ライセンス条項

SQL Server というのは,データベースサーバのこと.データベースはとりあえず使う予定はないがついでなので入れておく.

インストールオプション

コピー先フォルダーを決めるのだが,特にこだわりがなければそのままで,「インストール」をクリック.

コピー先フォルダー

ダウンロードおよびインストールがはじまるので,完了するまでブラウジングでもしながら待つ.

ダウンロードおよびインストール

「終了」をクリックしてセットアップ完了.

セットアップ完了

『 Visual C# 2010 Express 』をゲット完了.

起動してみよう.スタートメニューから「Microsoft Visual C# 2010 Express」を選んでクリック.

スタートメニュー

起動すると,画面はこんな感じ.

VC# 画面

これで環境は整った.