Python
電子工作
ifttt
RaspberryPi
Alexa

大学生の初めての電子工作 スマートリモコン編

 電子工作初心者の大学生です。前々から電子工作には興味があったのですが、難しそうという理由からなかなか手に付けることが出来ずにいました。そんななか最近友達の勧めで、RaspberryPiによる電子工作に再び興味を持ち、色々調べてみるとRaspberryPiを使えば市販されている電子機器の大概のものは自作できることを知り、また、RaspberryPi自体も一番安いモデルで約2000円で買えるということなので、実際に電子工作をやってみることにしました。
 で、今回作るものなんですが、以前からあったら便利だなと思っていたスマートリモコンを作ることにしました。

搭載した機能

  • 外出先からスマホで家電を操作
  • Amazon Alexa を使って声で家電を操作
  • もともと家電のリモコンにはなかった機能をプログラムで作成

作成したスマートリモコンの概要

遠隔操作ネットワーク

    
raspberrypi_homeauto.jpg
  
  
遠隔操作の流れは上の図のような感じです。
外出先では、Googleアシスタントを使い下の図のように、声またはテキストを送ることで家のエアコンなどを操作します。
  

  
  
家にいるときは家にあるAmazon Echo Dotにしゃべりかけて家電を操作します。
(もちろんスマホのGoogleアシスタントでも操作できます)
  

プログラムによるリモコン機能拡張

 市販されているスマートリモコンにはない電子工作で自作したスマートリモコンならではの特徴として、”安い”ということ以外に、自分で家電のリモコンにはない機能をつけることができるというメリットがあります。
 今回は、エアコンを指定の時間に起動するというプログラムを作成します。もともと家のエアコンにタイマー機能はあるのですが、これは~時間後にエアコンをつけるまたは消すという機能であり、消したりつけたりする時間を逆算する必要があり少々面倒です。
 また、RaspberryPiに温度計をつけることで、指定した時間に温度を測定し、その温度によってエアコンを消すかつけるか選択するなどの機能をつけることが可能です。

購入したもの

image.png
RaspberryPi Zero WH
  
これはRaspberryPiのWi-Fiが搭載されているモデルの中で最も安いモデルでスイッチサイエンスというサイトで1814円で購入できます!
  
  
  

全て秋月電子で買えます。通販で買う場合は抵抗や赤外線LED、ジャンパーワイヤはセットでの購入となり、合計金額は970円です。
  
  

ラズベリーパイを単体で買った場合

  • ACアダプター 5V3A microUSBタイプの物
    スマホの充電用ケーブルでも代用可能だが、いろいろつけると電力不足になる可能性があるため、あると安心
  • SDカード 16Gb
    8Gbでも余裕で足りるが、値段もあまり変わらず、また、秋月の通販サイトでは16Gbしか販売されていないため、電子部品とまとめて買うならおすすめ。
  • HDMIメス⇔miniHDMIオス 変換コネクタ
    RaspberryPi Zero WHを購入する場合はHDMI端子はついてなく、miniHDMI端子しかついてないためディスプレイ表示する場合は必要
  • HDMIケーブル
  • USBメス⇔microUSBオス 変換コネクタ
    RaspberryPi Zero WHを購入する場合はUSB端子はついてなく、microUSB端子しかついてないためマウスやキーボードを接続する場合は必要
  • USBマウス
  • USBキーボード

 これらの変換アダプターを買うのが煩わしいなら一つ上のモデルのRaspberry Pi Model A+を買うのもあり。スイッチサイエンスで3240円で購入可能。
 また、RaspberryPiをセットアップする際にSSHの設定をすることも可能らしく、初めからSSH接続で接続できればディスプレイ表示やマウスやキーボードを使う必要もないので、その場合はこれらのHDMIやマウス、キーボード関連のものは必要ない。気になる方はこちらのサイトを参照。
  
  

必要に応じて購入すべきもの

赤外線LEDは、光を広範囲に照射したい場合は複数購入(2~4つほど)するとよい。
(上で載せた秋月電子の通販で買う場合は10個パックでの購入となるため問題ない)
 
  

  • DHT11(温度センサー)

image.png

自分は間違えてプラグや抵抗のようなものがあらかじめ内蔵されている何かのキットのオプション品を買ってしまい650円ほどかかってしまった。
キットではなくDHT11単体なら秋月電子で300円で買える。

  

シャットダウンボタンを作成するなら

  
  

作成手順

記事が長くなりそうなので、手順ごとに分割して記載します。
#以下の記事は現在作成中です。記事ができ次第更新していきます。

1. RaspberryPiのセットアップ

  1.1 OSインストール
  1.2 初期セットアップ
  1.3 SSH、VNCの設定
  1.4 ファイルサーバの設定

2. 回路設計

  2.1 赤外線学習回路
  2.2 赤外線発信回路
  2.3 温度測定回路
  2.3 ボタンシャットダウン回路

3. プログラム

  3.1 LED点灯確認用プログラム
  3.2 ボタンシャットダウンプログラム
  3.3 温度測定プログラム
  3.4 赤外線信号学習プログラム
  3.5 スマートリモコンプログラム

4. 外部サービスとの連携

  4.1 beebotte
  4.2 ifttt
  
  
  

参考サイト

格安スマートリモコンの作り方

https://qiita.com/takjg/items/e6b8af53421be54b62c9
 こちらにスマートリモコンの作り方がとても分かりやすく記載されています。
 しかし、このサイトに従い進めていったところ、hubotのインストールのところでつまずいてしまい(nodejsやnpmのversionの違い?)、hubotによる遠隔操作ではなく、下に記載させていただいた、Beebotteという外部サービスを用いるやり方により実現しました。

IFTTTとBeebotteを使ってGoogleHomeからRaspberryPiを操作する

https://qiita.com/msquare33/items/9f0312585bb4707c686b
hubotを用いた方法ではうまくいかなかったので、こちらのBeebotteを介した方法を採用させていただきました。

RaspberryPi電子工作入門

https://tool-lab.com/make-course/raspberrypi/
 電子工作は初めてだったので、こちらのサイトをRaspberryPiのOSのインストールやSSHなどの初期設定をする際の参考にさせていただきました。
 他にも電子回路における抵抗値の選び方やLEDの接続方法などの基礎知識について、詳しく記載されています。

赤外線LEDドライブ回路の決定版

https://vintagechips.wordpress.com/2013/10/05/%E8%B5%A4%E5%A4%96%E7%B7%9Aled%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96%E5%9B%9E%E8%B7%AF%E3%81%AE%E6%B1%BA%E5%AE%9A%E7%89%88/
 こちらのサイトにはLEDドライブ回路の回路図が載っています。このサイトではLED一つの場合の接続法が載っており、これを参考にして赤外線を広範囲に照射できるように、LEDを複数取り付けました。