Raspberry PI(ラズパイ)をIoTのHome server にする。
Raspberry Pi(ラズベリー パイ)は、ARMプロセッサを搭載したシングルボードコンピューターです。1万円以下で入手できます。IoTのホームサーバを構築するのに最適です。もちろん、python言語も標準で搭載されています。
ラズパイは、OSは、Raspbianが標準(unix風)で、PCが成り立つための周辺機器をつなぐためのインターフェイスを搭載している。
付属のsd-card(raspbian)を差しhdmiにモニターusbにころがっているK/Bを差し、ネットワークケーブルをつないで電源を投入するとインストールが始まる。
初期ユーザー名:pi
初期パスワード:raspberry
アップデートのおまじない「おいしくなーれ パイ」
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
$ sudo apt-get install -y rpi-update
$ sudo rpi-update
$ sudo reboot
環境整備としてvim(慣れているエディタ)のインストール
$ sudo apt-get install -y vim
最初の一歩 Hello world
hello.c
#include <stdio.h>
int main(){
printf("hello world\r\n");
}
cc hello.c
./a.out
hello world
c言語のコンパイル成功の確認 新しいドライバーを追加できる。
中華製arduino(ch340使用)リレーをテストする。
wget https://github.com/aperepel/raspberrypi-ch340-driver/releases/download/4.4.11-v7/ch34x.ko
cd /lib/modules/$(uname -r)/kernel/drivers/usb/serial
sudo insmod usbserial.ko
sudo insmod ch341.ko
sudo reboot
確認する
pi@raspberrypi:~ $ ls -al /dev/*USB*
crw-rw---- 1 root dialout 188, 0 1月 15 13:31 /dev/ttyUSB0
pi@raspberrypi:~ $
/dev/ttyUSB0が表示されれば大成功!!
pythonからオン・オフさせる。
シリアルドライバのインストール
pi@raspberrypi:~/src $ pip install pyserial
Collecting pyserial
Downloading https://files.pythonhosted.org/packages/0d/e4/2a744dd9e3be04a0c0907414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl (193kB)
100% |████████████████████████████████| 194kB 1.3MB/s
Installing collected packages: pyserial
Successfully installed pyserial-3.4
テストプログラムの作成
helloworld.py
print('hello world')
pythonも実行確認
pi@raspberrypi:~/src $ python3 helloworld.py
hello world
pi@raspberrypi:~/src $
リレーのon/off確認
onusb.py
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600,timeout=0)
ser.write(bytearray(b"\xA0\x01\x01\xA2"))
ser.close()
offusb.py
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600,timeout=0)
ser.write(bytearray(b"\xA0\x01\x00\xA1"))
ser.close()
pi@raspberrypi:~/src $ python3 onusb.py
pi@raspberrypi:~/src $ python3 offusb.py
pi@raspberrypi:~/src $ python3 onusb.py
pi@raspberrypi:~/src $ python3 offusb.py
LED チカチカ
onoff.py
from time import sleep
import serial
def on():
ser = serial.Serial('/dev/ttyUSB0', 9600,timeout=0)
ser.write(bytearray(b"\xA0\x01\x01\xA2"))
ser.close()
def off():
ser = serial.Serial('/dev/ttyUSB0', 9600,timeout=0)
ser.write(bytearray(b"\xA0\x01\x00\xA1"))
ser.close()
for i in range(20):
on()
sleep(0.3)
off()
sleep(0.5)
LEDチカチカ大成功
# つづく
気に入ったら「いいね」してね。