Mais conteúdo relacionado Semelhante a 20171206 d3 health_tech発表資料 (20) 20171206 d3 health_tech発表資料3. 3. ⼯作フェーズ
3-1. OS起動⽤microSDの準備
3-2. 周辺機器の接続
3-3. Raspberry Piの初期設定
3-4. OSの環境設定
3-5. 電⼦回路のセットアップ
3-6. SQLiteの環境構築
3-6. Go⾔語の環境構築
3-8. 外部サービスの登録
3-9. スクリプトの実装
3-10. 運⽤設定
アジェンダ
9. 23. 電⼦⼯作部品の調達
⼯作に必要なもの
・PC (MAC推奨 ※Windows可)
・Pushbullet が稼働する Android or iOS スマートフォン端末
・ディスプレイ or TV (HDMI端⼦搭載)
・接続可能な無線LANネットワーク
・キーボード (USB接続)
・マウス (USB)
・mini-HDMI変換コネクタ/ケーブル
・USBハブ (microUSB オス端⼦, セルフパワー型)
・USB対応電源アダプタ (2A以上)
・ハンダとハンダゴテ
・microSDカード (16GB 1,000円程度)
・Raspberry Pi zero w ⼀式 (次ページ)
2.準備フェーズ
10. 23. 電⼦⼯作部品の調達
Raspberry Pi zero w ⼀式の購⼊
購⼊先
ケ:RS正規代理店 Raspberry Pi Shop by KSY
( https://raspberry-pi.ksyic.com/ )
ス:SWITCHSCIENCE
( https://www.switch-science.com/ )
ア:amazon.co.jp
( https://www.amazon.co.jp/ )
秋:秋⽉電⼦通商
( http://akizukidenshi.com/catalog/default.aspx )
2.準備フェーズ
11. 23. 電⼦⼯作部品の調達
Raspberry Pi zero w ⼀式の購⼊
部品
• Raspberry Pi Zero W / 1,296円(ケ)
• Piケース Pibow for Zero W ⾚ / 864円(ケ)
• GPIO ハンマーヘッダー メス / 388円 (ス)
• BME280 ⼤気圧/温度/湿度センサーブレイクアウト / 550円(ア)
• ブレッドボード・ジャンパーワイヤ / 300円(秋)
• ブレッドボード・ジャンパーコード(オス-オス)(10cm) / 180円(秋)
• ユニバーサル回路ケース(Low, Smoke) ブレッドボード付-3ple Decker / 980
円(ア)
合計:4,558円(送料別)
今回のテーマ上は不要だが、使⽤している部品
• 透明なブレッドボード(⾚) / 617円(ス)
• AS3935 雷センサーモジュール / 1,480円(秋)
2.準備フェーズ
12. 3-1. OS起動⽤microSDの準備
Raspberry Pi⽤のOSは、NOOBS と イメージの2種類の形式で⽤
意されていますが、今回はイメージファイルを採⽤。
(1).OSイメージのダウンロード
下記のURLから OSイメージファイル(201X-XX-XX-raspbian-jessie.zip)をダ
ウンロード
https://downloads.raspberrypi.org/raspbian_latest
※今回は、Raspbian(2017-07-05-raspbian-jessie.zip)を採⽤。
上記リンクは、最新版がダウンロードされます。
3.⼯作フェーズ
14. 3-1. OS起動⽤microSDの準備
(3). microSDへの書き込み
・ 「SDカードフォーマッター」を使⽤してmicroSDカードを初期化
・OSイメージファイル(201X-XX-XX-raspbian-jessie.zip)を解凍
推奨ツール: https://theunarchiver.com/
・ターミナルを使⽤してOSイメージをSDカードに書き込む
3.⼯作フェーズ
$ cd <OSイメージパス>
$ diskutil list ## PCで認識できているmicroSDカードのデバイスを確認
$ diskutil unmountdisk /dev/disk<番号> ## microSDデバイスパスを指定
$ sudo dd bs=1m if=201X-XX-XX-raspbian-jessie.img of=/dev/disk<番号>
16. 3-3. Raspberry Piの初期設定
(1). 電源をつなげる
(2). GUI画⾯左上のラズベリーパイ アイコンを押下。
「Preferences」→「Raspberry Pi Configuration」を選択。
設定ツール起動。
(3).パスワードの変更
設定ツールの「System」タブ -「Change Password」を押下。
現在のパスワードと新しいパスワードを⼊⼒して「OK」ボタンを押下。
(4).ロケールの変更
設定ツールの「Localisation」タブ -「Set Locale」を押下。
Language に「ja (Japanese)」、Country に「JP (Japan)」、
Character Set に「UTF-8」を設定して「OK」ボタンを押下。
3.⼯作フェーズ
17. 3-3. Raspberry Piの初期設定
(5).タイムゾーンの変更
設定ツールの「Localisation」タブ -「Set Timezone」を押下。
Area に「Asia」、
Location に「Tokyo」を設定して「OK」ボタンを押下。
(6).キーボード配列の変更
設定ツールの「Localisation」タブ -「Set Keybord」を押下。
接続しているキーボードの Country、Variant を設定して
「OK」ボタンを押下。
(7).無線LANの利⽤場所の変更
設定ツールの「Localisation」タブ -「Set WiFi Country」を押下。
Country に「JP Japan」を設定して「OK」ボタンを押下。
3.⼯作フェーズ
22. 3-3. Raspberry Piの初期設定
(10). パッケージとファームウェアのアップデート
ターミナル起動
3.⼯作フェーズ
## 安定版のアップデート
## パッケージ情報をサーバから取得
$ sudo apt-get update
## パッケージのアップデート実施
$ sudo apt-get upgrade
## 再起動
$ sudo shutdown -r now
25. 3-4. OSの環境設定
(1). ユーザ作成
ターミナル起動
3.⼯作フェーズ
## root ユーザのパスワード変更
$ sudo passwd root
## 新規ユーザ macho作成
$ sudo adduser macho
## 新規ユーザを sudo グループに追加
$ sudo gpasswd -a macho sudo
## 新規ユーザを i2c グループに追加
$ sudo gpasswd -a macho i2c
## 初期設定ユーザ pi を sudo グループから除去
$ sudo gpasswd -d pi sudo
26. 3-4. OSの環境設定
(2). SSH, I2Cの変更
GUI画⾯左上のラズベリーパイ アイコンを押下。
設定ツールの「Interfaces」タブ を押下。
「SSH」を「enable」に変更する。
「I2C」を「enable」に変更する。
「OK」ボタンを押下。
リブート確認画⾯が表⽰される。「OK」ボタンを押下。
再起動後、MACの「ターミナル」から以下のコマンドを発⾏し、
接続できることを確認。
3.⼯作フェーズ
$ slogin macho@IPアドレス
33. 3-5. 電⼦回路のセットアップ
OS上の設定確認
「3-4. OSの環境設定」にて変更したI2Cが有効になっていることを確認
3.⼯作フェーズ
## I2Cのスレーブアドレスを確認する
$ sudo i2cdetect 1
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 --
35. 3-6. SQLiteの環境構築
(1). SQLiteのインストール
3.⼯作フェーズ
## sqlite3パッケージのインストール
$ sudo apt-get install sqlite3
## sqlite3のバージョン確認
$ sqlite3 --version
3.8.7.1 2014-10-29 13:59:56 3b7b72c4685aa5cf5e675c2c47ebec10d9704221
## sqlite3 DBファイル作成
$ sqlite3 sensor.db
36. 3-6. SQLiteの環境構築
(2). テーブル作成
3.⼯作フェーズ
-- BME280センサーデータ格納先テーブル
CREATE TABLE BME280
(
BME280_ID INTEGER PRIMARY KEY,
PRESSURE REAL, -- 気圧
TEMPERATURE REAL, -- 気温
HUMIDITY REAL, -- 湿度
INS_DATETIME_TEXT TEXT NOT NULL UNIQUE,
INS_DATETIME_INTEGER INTEGER NOT NULL UNIQUE
);
-- BME280テーブルのインデックス作成
CREATE INDEX IX_BME280_DATETIME_TEXT ON BME280
(INS_DATETIME_TEXT DESC);
37. 3-6. SQLiteの環境構築
(2). テーブル作成
3.⼯作フェーズ
-- アラートデータ格納先テーブル
CREATE TABLE ALERT
(
CODE TEXT PRIMARY KEY,
CONDITION TEXT NOT NULL,
UPD_DATETIME_TEXT TEXT NOT NULL UNIQUE
);
-- 初期データ投入
INSERT INTO ALERT(
CODE, CONDITION, UPD_DATETIME_TEXT
) VALUES (
’DEP’, ’false’, ‘2017-11-30 00:00’
);
40. 3-7. Go⾔語の環境構築
(3). 動作確認
バージョン確認。
ビルド可否の確認。
3.⼯作フェーズ
$ go version
go version go1.9.2 linux/arm
$ nano hello.go
--------------------------------------------
package main
import "fmt"
func main() {
fmt.Printf("Hello RaspberryPi Go.¥n")
}
--------------------------------------------
$ go run hello.go
Hello RaspberryPi Go.
42. 3-9. スクリプトの実装
(1). センサーを制御するライブラリのインストール
3.⼯作フェーズ
## gobot ライブラリのダウンロードとインストール
$ go get -d -u gobot.io/x/gobot/... && go install gobot.io/x/gobot/platforms/raspi
## go-sqlite3 ライブラリのダウンロードとインストール
$ go get github.com/mattn/go-sqlite3 && go install github.com/mattn/go-sqlite3
43. 3-9. スクリプトの実装
(2). 処理内容について
1. 毎分BME280センサーから気圧データを取得する。
2. 取得した気圧データをSQLiteに保存する。
3. 毎分BME280センサーから取得した気圧データと3時間前に取得した気圧デー
タを⽐較する。
4. ⽐較結果が4hpa以上の場合と4hpa以上の気圧低下が収まった場合のみ、
PushBulletの通知を発⾏する。
※気圧の⽐較基準値を4hpaとしているのは、過去の経験則に基づく。
3.⼯作フェーズ