3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IoT 家中の赤外線リモコン製品をpythonから操作する。Raspberry 編

Last updated at Posted at 2019-01-15

Raspberry PI(ラズパイ)をIoTのHome server にする。

image.png

Raspberry Pi(ラズベリー パイ)は、ARMプロセッサを搭載したシングルボードコンピューターです。1万円以下で入手できます。IoTのホームサーバを構築するのに最適です。もちろん、python言語も標準で搭載されています。

image.png
ラズパイは、OSは、Raspbianが標準(unix風)で、PCが成り立つための周辺機器をつなぐためのインターフェイスを搭載している。
付属のsd-card(raspbian)を差しhdmiにモニターusbにころがっているK/Bを差し、ネットワークケーブルをつないで電源を投入するとインストールが始まる。
image.png
初期ユーザー名: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言語のコンパイル成功の確認 新しいドライバーを追加できる。
image.png
中華製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チカチカ大成功

20190115-01.gif

# つづく
気に入ったら「いいね」してね。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?