【Raspberry Pi】【電子工作】PIRモーションセンサ(人感センサ)の確認
PIRモーションセンサ(人感センサ)にて、人を検知してみます。
1.必要なもの
- ラズベリーパイ(1のB+)
- ブレッドボード(直接センサをラズパイに接続するならいらない)
- PIRモーションセンサ(https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4KSX)
- ジャンパーコード各種
2.配線図、回路図
こんな感じ!
PIRセンサは3.3Vあれば動作するため、VDDにラズパイの3.3Vに繋げる。センサで検知すればSIGから信号が送信されるため、適当なGPIOに接続しておく。
3.ソースコード
検知するだけであれば大して難しくは無いです。
問題はどうやって活用するか、ということ。
【Raspberry Pi】【電子工作】Lチカをやってみる
せっかくラズパイを買ったので、電子工作に挑戦します。
参考にするのは「ラズパイマガジン 2015年秋号」に記載されている内容です。
1.必要なもの
- ブレッドボード
- 抵抗:330Ω
- LED(こちらを購入→http://akizukidenshi.com/catalog/g/gI-09451/)
- ジャンパーコード各種
2.接続させる前に
ブレッドボードを介してLEDを光らせます。
光らせるには電流を通してあげないといけないわけで、抑えておかないと行けないポイントは以下のとおり。
- LEDの光らせろとかセンサから情報を取得しろ、というのは、ラズパイのGPIOピンを使う必要がある。
- LEDを光らせるときは過電流だとLEDが壊れるため、抵抗が必要になる。必要な電流量はオームの法則で求める。
という点でしょうか。
1については、以下の画像の通りで、GPIOと書かれているピンにジャンパーコードを指す必要がある。
出展:DESIGNSPARK - Raspberry Pi B+のご紹介(http://data.designspark.info/uploads/images/53bc258dc6c0425cb44870b50ab30621)
で、LEDを光らせるにはオームの法則を使って電流を計算する必要がある。
そんなわけで、はい、計算サイトです。
まず、使用するLEDの仕様として、
・連続最大電流:50mA
とのこと。要は50mA以上を流すと壊れるということ。
抵抗は330Ωを買っており、かつラズパイのGPIOピンは3.3V動作ピン、そしてLEDのVf(順電圧)の2.1Vを差し引く必要があるため、
(3.3V-2.1V)/330Ω=3.63mAになります。この電流量ならLEDが壊れることはなく、また、程よく光ります。
3.接続図と回路図
fritzingというCADアプリがあるため、これを用います。
2項の内容を踏まえると以下のとおりです。
4.プログラム
1秒間隔で点灯と消灯を繰り返します。
これでLEDが点きます!
【Raspberry Pi】DLNAサーバの構築
ちゃんと手順で残していなかったため、書きます。
なお、DLNAの対象になるのはラズパイに繋いだ外付けのHDDです。
外付けHDDの設定はこちら→http://engetu21.hatenablog.com/entry/2015/02/01/205818
1.minidlnaのインストール
Linuxにおいてはminidlnaというソフトを入れれば結構簡単に実現できます。
というわけでインストール
$ sudo apt-get install minidlna
2.minidlnaの設定内容変更
minidlnaの設定内容を変更します。
$ sudo vi /etc/minidlna.conf
media_dir=V,/mnt/hdd1/videos
media_dir=A,/mnt/hdd1/music
media_dir=P,/mnt/hdd1/pictures
V,A,Pはそれぞれvideo,audio,picturesを表す。まぁ、ファイル内にコメントで書いてあるんですが。
3.設定の反映と再起動
設定と反映をします。2番めのはやる必要ないかもしれないけど、一応。
$ sudo /etc/init.d/minidlna force-reload
[ ok ] Restarting DLNA/UPnP-AV media server: minidlna.
$ sudo /etc/init.d/minidlna restart
[ ok ] Restarting DLNA/UPnP-AV media server: minidlna.
あとは、AndroidでDLNAに対応したアプリでアクセスできるかを確認。
4.システム起動時に自動実行
以下のコマンドを実行しておく。
$ sudo update-rc.d minidlna defaults
【悲報】3.0TBのHDDが逝く
久しぶりの更新ですが、特にネタは無く。いや、無くはないけどモチベーションがなかなか。
そういったわけでHDDが逝きました。暑さもあったけど、直前で変なことしちゃったからなぁ・・・。今回死んだのはバックアップ側なので問題無いですが。
問題だったのは某バックアップソフトを使ったからだけど、自分で作って運用したほうがいいかもしれない・・・。
【Raspberry Pi】apt-get updateで失敗する
何故かupdateに失敗する。
結論から言えばDNS解決ができていなかっただけなんですが。
$ sudo apt-get update
エラー http://mirrordirector.raspbian.org wheezy Release.gpg
'mirrordirector.raspbian.org' を解決できませんでした(略)
W: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視され るか、古いものが代わりに使われます。
で、resolv.confを見ると
$ view /etc/resolv.conf
nameserver 8.8.8.8
確かにOS設定時のDSNサーバを(面倒なので)8.8.8.8にしていた・・・
というわけで、上記設定をプロバイダ提供のDNS解決が変更し、リロード。
$ sudo vi /etc/resolv.conf
nameserver xxx.xxx.xxx.xxx
$ sudo /etc/init.d/networking reload
[....] Reloading network interfaces configuration...ifup: interface lo already configured
Waiting for br0 to get ready (MAXWAIT is 10 seconds).
done.
再度updateで無事実施可能。
$ sudo apt-get update
ヒット http://repository.wolfram.com stable Release.gpg(略)
【Raspberry Pi】外付けHDDの追加
ラズパイで外付けHDDを管理させます。
HDDは3.5インチの1.5TB(ST31500341AS)。玄人志向の外付けケースを使ってUSBケーブルで接続します。
1.外付けHDDのパーテーションの作成とフォーマット
余程のことがない限り、USBで接続すればラズパイで自動認識してくれます。
$ sudo fdisk -l
(略)
Disk /dev/sda: 1500.3 GB, 1500301910016 bytes
パーテーション作成はコマンドでもできますが、今回はGUIでやります(特に意味はなし)。というわけで、GPartedをインストールします。インストールは事前に導入していたSynapticにて。
なお、今回はWindowsで接続しても大丈夫なようにNTFSで作ります。NTFSで作る場合は予めntfs-3gをインストールしないとダメです。
$ sudo apt-get install ntfs-3g
インストールが完了したら、
ラズパイのスタートメニュー?->「設定」->「GParted」を実行。
GPartedが起動したら、メニュー->「GParted()」->「デバイス(D)」->「/dev/sda1」を選択します。
/dev/sda1(外付けHDD)が見つかるため、パーテーションメニューからパーテーションを作ります。また、 フォーマット時はNTFSを選択します。ntfs-3gをインストールしていないと、NTFSを選択できないため、注意。
まぁ、GUIは直感的にわかると思うので、特に操作説明は書きません。
2.マウントの設定
マウントできるようにします。
$ sudo mkdir /mnt/hdd1
$ sudo mount /dev/sda1 /mnt/hdd1
しかし、これだと毎回マウントしないと行けないため、自動マウントをさせます。他の外付けHDDを接続することも想定し、UUID指定でマウントできるようにします。
UUIDは以下のコマンドで抽出。
$ sudo blkid /dev/sda1
/dev/sda1: UUID="XXXXXXXXXXXXX" TYPE="ntfs"
(追記)なお、以下のコマンドでも確認することが可能です。
$ lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ntfs XXXXXXXXXXXXX /mnt/hdd1
このUUIDを自動マウントセッティングします。一番最後の行に以下のように追加
$ sudo vi /etc/fstab
UUID="XXXXXXXXXXXXX" /mnt/hdd1 ntfs defaults 0 2
自動マウントされるかは再起動で確認しましょう。
→(追記)sudo mount -a を打つことで再起動せずに確認することも可能。
【2019/8/15追記】
上記の設定をした際、配下のグループやユーザを変えられない場合がある。その時には、fstabの設定を以下のように変更する。
※参考:【Linux】UbuntuでNTFS形式のファイルで所有者や権限が変更する方法 https://sekisuiseien.com/computer/11054/
$ sudo vi /etc/fstab
UUID="XXXXXXXXXXXXX" /mnt/hdd1 ntfs-3g defaults,permission 0 2
$ sudo mount -a
また、一括で グループ/ユーザを変える場合は以下の通り。
参考:ファイルやディレクトリのパーミッションを一括で置換したい https://qiita.com/takeshi81/items/48ea62eae2fc7f1cb2f0
$ sudo find /home/xxxx -type d -exec chmod 755 {} +
$ sudo find /home/xxxx -type f -exec chmod 644 {} +
【追記終わり】
3.HDD回転を自動で止める
参考サイト:
Raspberry PiでUSB外付けHDDの回転を自動で止める | Frog Code Works
sdparmをインストールします。
$ sudo apt-get install sdparm
動作確認は以下のコマンドで。
$ sudo sdparm --command=stop /dev/sda1
/dev/sda1: Initio ST31500341AS 3.01
動作用シェルスクリプトを作成(コピペ)。作成後に実行権限を付与。
$ sudo vi /usr/local/bin/usbhdd_spindown.sh
$ sudo chmod 755 /usr/local/bin/usbhdd_spindown.sh
起動時の シェル実行設定をします。
$ sudo vi /etc/rc.local
/usr/local/bin/usbhdd_spindown sda1 900 2>&1 | logger -t usbhdd_spindown &