4.4 Pi Setup Relay
人感センサーでLED点灯と、猫をなくことができたが、今度リレーをコントロールして、電源ONなどでもする。 購入したArduino センサーキットに、リレーが含まれている。 接続は簡単。GronudとVcc接続し、SignalはLED点灯ためのGPIOに繋げればOK。 特にトラブルはなく、猫のなき声とともに、リレーの動作音が聞こえて、リレーについてるLEDも点灯した。 リレーは、なにをコントロールか、まずLED電球のような高出力ものを試したいと思う。 この10WのLEDを点灯すると考えている。LEDにはヒートシンクが必要だが、短時間点灯なら、小さなものはいいかも。 上は100VからLEDを駆動するモジュール。
4.3 Pi Motion Sensor
モーションセンサー(人感センサー)を使って、人が近づくと、LED点灯、猫がなくのような動作をする。 モーションセンサーはHC-SR501を利用する。繋げは簡単な3本結線のみ。電源2本と、真ん中データ一本はGPIO26に接続する。 点灯LEDはGPIO6に接続する。 猫の音声は、AppInventor のHalloPurrから流用。ファイルは ./Music/meow.mp3 に置く。 Raspberry Piのpythonパッケージにはpygameというモジュールがデフォルトでインストールされているそうです。それを利用して、猫の音声を再生する。 動作プログラム #!/usr/local/bin/python # -*- coding: utf-8 -*- import time import RPi.GPIO as GPIO import pygame.mixer # LEDのGPIOピンの番号、センサーのGPIOピンの番号 let_pin = 6 pir_pin = 26 sleeptime = 100000 led_light_up_time = 1 GPIO.setmode(GPIO.BCM) GPIO.setup(pir_pin, GPIO.IN) GPIO.setup(let_pin, GPIO.OUT) GPIO.output(let_pin, GPIO.LOW) pygame.mixer.init() pygame.mixer.music.load(“./Music/meow.mp3”) def motion_detected(pir_pin): print “検知” # 点灯 GPIO.output(let_pin, GPIO.HIGH) […]
4.2 Pi Temperature
今回は、温度と湿度センサー DHT22を利用して、温度と湿度を測定する。 githubからソースコードを取得し、インストールする $ git clone https://github.com/adafruit/Adafruit_Python_DHT.git $ cd Adafruit_Python_DHT $ sudo apt-get install build-essential python-dev $ sudo python setup.py install 実行例 chen@pi-top:~ $ cd Adafruit_Python_DHT/examples/ chen@pi-top:~/Adafruit_Python_DHT/examples $ sudo python ./AdafruitDHT.py 2302 22 Temp=21.6* Humidity=31.3% chen@pi-top:~/Adafruit_Python_DHT/examples $ sudo python ./AdafruitDHT.py 2302 22 Temp=21.9* Humidity=26.2% 参考: https://wiki.pieper.eu/luchtvochtigheid-sensor-raspberry-pi
4.1 Pi Led blink
いよいよIoT の内容へ 下の図は、LED点滅、温度と湿度のセンサー、人感センサーを付けた状態です。 まずLED点滅から、GPIO4にLEDと抵抗を付けて、下記のプログラムを実行 #!/usr/bin/env python import RPi.GPIO as GPIO import time GPIO.cleanup() GPIO.setmode(GPIO.BCM) GPIO.setup(4, GPIO.OUT) while True: GPIO.output(4, GPIO.HIGH) time.sleep(1) GPIO.output(4, GPIO.LOW) time.sleep(1) ~ $ sudo python led_blink4.py 下記のは、プログラムでLED点滅を示すビデオです。
Pi Remote login
Raspberry Pi はIoT研究によく使われる機材。 Raspberry Pi の内部はLinux 動く、遠隔管理するため、LinuxのCUIで管理を行う。 Raspberry Pi のSSHはデフォルト無効にされた。SSH接続しようとしたがエラーとなる。 raspi-configで有効化するか、ブートパーテーションにsshという名のファイルを作るだけでもOK。 ネットワーク接続した状態で、下記の作業へ進む。 ユーザー操作 ユーザuser1を対象とする。 ログイン、ログアウト、パスワード変更の他に、テキストファイルの作成、変更もよくあるので、テキストエディタviの基本操作を是非覚えてください。 ログイン user1をipのサーバにログインとする。 $ ssh user1@ip サーバの中身が入れ替わり、ログインできない場合、~.ssh/know_hostに該当する項目を削除してください。 ログアウト $ logout パスワード変更 $ passed user1 アドミン管理作業 SSHサーバーの有効化 ターミナルで、設定ツールを起動 $sudo raspi-config 8 Advanced Optionsを選択 A4 SSHを選択 [Enable]を選択 再起動を促されるので、再起動する 2016-11-25以降のISOイメージは、SSHはデフォルト無効にされた。SSH接続しようとしたがエラーとなる。 raspi-configで有効化するか、ブートパーテーションにsshという名のファイルを作るだけでもOK。 $ cd /boot $ sudo touch ssh $ sudo reboot 初心者向けターミナル用語集 Terminal […]
Pi Network Config
Raspberry Piホスト名変更 Raspberry Piのホスト名は、初期raspberrypiになり、一台以上のRaspberry Piを立ち上がると、Network上識別しつらい。 早速ホスト名変更しましょう。下記のコマンドで関連ファイルを開き、raspberrypiを好みの名前(例えばweatherstation)に変更しましょう。 $ sudo vi /etc/hosts $ sudo vi /etc/hostname 有線LANをRaspberry Piに接続 有線LANある環境で行う。 LANケーブルを用意し、有線LANをRaspberry Piに接続する 固定IPにする: sudo vi /etc/dhcpcd.conf interface wlan0 static ip_address=192.168.0.70/24 static routers=192.168.0.1 static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1 無線LAN子機をRaspberry Piに接続 無線LAN親機ある環境で行う。 Raspberry Pi3から、無線LAN内蔵になった。
Admin work
アドミン作業 アドミンの作業はユーザの追加と停止。 また機材の提案と購入作業もあるので、お薦め部品もリストする。 複数使う機材、またはインターネット上サービスを行う場合、ユーザの追加と、デフォルトユーザpiの停止が必要。 ユーザの追加 # adduser user1 # adduser user1 sudo ユーザの停止 # 追加情報 SDカードフォーマット OS書き込み後のSDカードは、パーティションが切られ、普通のパーティション削除はできなくなり、再インストールする際困る方が多いでしょう。 OS書き込み後のSDカードのフォーマットは、専用のツールが必要。 * SD Card Formatter – SD Association https://www.sdcard.org/downloads/formatter_4/ 使い方はインストールして、フォーマットするだけ。 機材の購入 機材を購入する場合、https://chenlab.net/amazon/ にお薦め部品も参照してください。 小型タッチパネルつきLCDを装着する様子 ディスプレイ付きPi-Top 参考書 [amazonjs asin=”480071138X” locale=”JP”] 「これ1冊でできる!ラズベリー・パイ 超入門 改訂第3版」 サポートページ(正誤表・ダウンロード): http://www.sotechsha.co.jp/sp/1138/