はじめに
「優しいIT」という理念の基、ITコンサルタントをしている亀井亮介と申します!
現在、仕事では要求分析・要件定義を中心に上流工程をしていますが、プログラムも書きます!
優しいIT活動の一環として「教育用ようにプログラミング可能なPCを安価に提供する」理念の「Raspberry Pi 3(通称ラズパイ)」の紹介をします!
今回は、温度の検出します!!!
ラズパイマガジン-2016年6月号 特集1 アキバの人気パーツ 配線図ベスト17 ⑥デジタル温度センサーを参考にしています。
ついに娘(11と9)の夏休みの工作ネタになりそうなネタです!(個人的な叫びですいません)
手順
- 配線
- 準備
- プログラム digital_temperature_sensor.py
- プログラムを動かす
1. 配線
配線図は、ラズパイマガジン-2016年6月号 特集1 アキバの人気パーツ 配線図ベスト17 ⑥デジタル温度センサーそのままです。
テキスト版
- ラズパイ 1番ピン(3.3V) - デジタル温度センサー VDD 4
- ラズパイ 6番ピン(GND) - デジタル温度センサー GND 1
- ラズパイ 3番ピン(SCA) - デジタル温度センサー SCA 2
- ラズパイ 5番ピン(SCL) - デジタル温度センサー SCL 5
2. 準備
必要なライブラリ(libi2c-dev)をインストールします。
$ sudo apt-get install libi2c-dev
設定ファイルに書き込みします。
$ sudo sh -c 'echo "options i2c_bcm2708 combined=1" >> /etc/modprobe.d/i2c.conf'
I2Cを使えるようにします。
I2Cを使えるかどうかの確認
$ sudo /usr/sbin/i2cdetect -y 1
3. プログラム digital_temperature_sensor.py
プログラムもラズパイマガジン-2016年6月号 特集1 アキバの人気パーツ 配線図ベスト17 ⑥デジタル温度センサーを参考にしました。ほとんどそのままです。
GitHubにソースをアップしているので、お好きにお使いください。
$ git clone https://github.com/RyosukeKamei/raspberrypi3.git
# GPIOを制御するライブラリ
import wiringpi
# タイマーのライブラリ
import time
# I2Cデバイスからの読み取りに必要なライブラリを呼び出す
import os
import struct
# I2Cのインスタンスを作成
wiringpi.wiringPiSetup()
i2c = wiringpi.I2C()
# I2Cの設定
# 通信する機器のI2Cアドレスを指定
temperture_dev = i2c.setup(0x48)
# 温度を16ビットのデータ取得
# その他めレジスタ0x03に設定
i2c.writeReg8(temperture_dev, 0x03, 0x80)
while True:
# 温度センサーの2バイト分を読み取る
temperture_data = struct.unpack('2B', os.read(temperture_dev, 2))
# 値が2バイトずつ分かれるので1つにまとめる
temperture = ( ( temperture_data[0] << 8 ) + temperture_data[1] )
# 負の値の場合は数値を変換
if ( temperture_data[0] >= 0x80 ):
temperture = temperture - 65536
# 取得した値を128で割って温度を算出
temperture = temperture / 128
# 温度表示
print ( "温度 " , temperture , "C" )
# 1秒ごと
time.sleep(1)
3. プログラムを動かす
$ sudo python3 digital_temperature_sensor.py
温度がリアルタイムに表示されます!エアコンの設定温度とほぼ同じでびっくりしました(笑)
センサーを指で触ると少し、温度が上昇します!
サイトマップ
Raspberry Pi 3 (ラズパイ)セットアップ
Raspberry Pi 3インストール→無線LAN→日本語入出力→Macから操作
Raspberry Pi 3 にDockerを乗せてPython+MySQL環境を構築!
RaspberryPi3(ラズパイ)にDockerをインストール
RaspberryPi3(ラズパイ)にDockerでPython+bottle+MySQL環境構築する!【簡単構築編】
RaspberryPi3(ラズパイ)にDockerでPython+bottle+MySQL環境構築する!【試行錯誤編】
Raspberry Pi 3でエアコン一体型パソコン「airpi」を作る!
Raspberry Pi 3でエアコン一体型パソコン「airpi」を作る!
Raspberry Pi 3 (ラズパイ)とpythonで遊ぼう
Raspberry Pi 3でプログラミングをする Node-REDと普通にプログラミング
Raspberry Pi 3でpythonを使いLEDを光らせる(Hello World)
Raspberry Pi 3でスイッチの状態を検出する
Raspberry Pi 3でpythonを使いサーボモータを動かす
Raspberry Pi 3でpythonを使いモータードライバーを使いモータを制御する!
Raspberry Pi 3でpythonを使いスライドスイッチを検出する!
Raspberry Pi 3でpythonを使い磁石スイッチを検出する!
Raspberry Pi 3でpythonを使い温度を検出する!
Raspberry Pi 3でpythonを使いブザーを鳴らす!
Raspberry Pi 3でpythonを使いA/Dコンバーターでアナログ信号を検出する!
Raspberry Pi 3でpythonを使い「明るさ」を検出する!
Raspberry Pi 3でpythonを使い「温度(A/Dコンバーターを利用)」を検出する!
Raspberry Pi 3でpythonを使い「7セグメントLED」に出力する!
テスト駆動開発を重点においた規則
コーディング規則「優しいコードを書こう」(FuelPHP)
命名規則「3ヶ月後の自分自身に優しく、チームに優しく、まだ見ぬメンバーに優しく」
Docker+PythonでWebアプリケーション開発
開発しやすい環境構築(Docker+PHP)
Dockerを利用しApacheにPHP環境 + Eclipseを連携
Dockerを利用したFuelPHP開発環境構築
Docker利用したFuelPHP開発環境の初期設定とscaffoldを利用してCRUDスケルトン作成
FuelPHPのデータベースマイグレーション