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

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

　[こちら](https://jorublog.site/)に[PS4も操作できるようにする方法](https://jorublog.site/alexa-googlehome-control-ps4/)や、RasberryPiで作成した[スマートロック](https://jorublog.site/electronic-work-smart-lock/)や[玄関モニター](https://jorublog.site/electronic-work-entrance-monitor/)についての記事も書きました。

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

#作成したスマートリモコンの概要
###遠隔操作ネットワーク
　　　　
![raspberrypi_homeauto.jpg](https://qiita-image-store.s3.amazonaws.com/0/276761/6512174f-a8e1-cd54-0952-b4634c89eb0c.jpeg)
　　
　　
遠隔操作の流れは上の図のような感じです。
外出先では、Googleアシスタントを使い下の図のように、声またはテキストを送ることで家のエアコンなどを操作します。
　　
<img src="https://qiita-image-store.s3.amazonaws.com/0/276761/0d2f28ab-8865-ed24-9174-4e941388c2dc.png" width=30%>
　　
　　
家にいるときは家にあるAmazon Echo Dotにしゃべりかけて家電を操作します。 
（もちろんスマホのGoogleアシスタントでも操作できます）
　　
###プログラムによるリモコン機能拡張

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


#購入したもの
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276761/858aa1b3-0679-1784-c8a9-86a6317acddc.png)
RaspberryPi Zero WH
　　
これはRaspberryPiのWi-Fiが搭載されているモデルの中で最も安いモデルで[スイッチサイエンス](https://www.switch-science.com/catalog/3646/)というサイトで<span style="color: red; ">1814円</span>で購入できます！
　　
　　
　　
<img src="https://qiita-image-store.s3.amazonaws.com/0/276761/b42ec3df-a225-4c1e-1e1d-1df3bf6bf95b.jpeg" width=60%>

- [リモコン受信モジュール](http://akizukidenshi.com/catalog/g/gI-04659/)　(１つ)　　OSRB38C9AA
- [赤外線 LED](http://akizukidenshi.com/catalog/g/gI-12612/)　　　　　　　(１つ)　　OSI5LA5113A
- [ミニブレッドボード](http://akizukidenshi.com/catalog/g/gP-05156/)　　　(１つ)　　ＢＢ－６０１
- [ FET ](http://akizukidenshi.com/catalog/g/gI-06026/)　　　　　　　　　　(１つ)　　IRFU9024NPBF
- [ FET ](http://akizukidenshi.com/catalog/g/gI-09723/)　　　　　　　　　　(１つ)　　2N7000
- [抵抗 4.7kΩ 1/2W ](http://akizukidenshi.com/catalog/g/gR-07831/)　　　　(１つ)
- [抵抗 27Ω 1W](http://akizukidenshi.com/catalog/g/gR-07960/)　　　　　　(１つ)
- [ジャンパーワイヤ](http://akizukidenshi.com/catalog/g/gC-08932/)　　　　(１つ)　　(オス―メス)
　　

全て秋月電子で買えます。通販で買う場合は抵抗や赤外線LED、ジャンパーワイヤはセットでの購入となり、合計金額は970円です。
　　
　　
####ラズベリーパイを単体で買った場合
- [ACアダプター  5V3A](http://akizukidenshi.com/catalog/g/gM-12001/)　microUSBタイプの物<br>スマホの充電用ケーブルでも代用可能だが、いろいろつけると電力不足になる可能性があるため、あると安心
- [SDカード 16Gb](http://akizukidenshi.com/catalog/g/gS-13002/)<br>8Gbでも余裕で足りるが、値段もあまり変わらず、また、秋月の通販サイトでは16Gbしか販売されていないため、電子部品とまとめて買うならおすすめ。
- [HDMIメス⇔miniHDMIオス 変換コネクタ](http://akizukidenshi.com/catalog/g/gC-13431/)<br>RaspberryPi Zero WHを購入する場合はHDMI端子はついてなく、miniHDMI端子しかついてないためディスプレイ表示する場合は必要
- [HDMIケーブル](http://akizukidenshi.com/catalog/g/gC-13433/)<br>
- [USBメス⇔microUSBオス 変換コネクタ](https://www.amazon.co.jp/iBUFFALO-microB-%E5%A4%89%E6%8F%9B%E3%82%A2%E3%83%80%E3%83%97%E3%82%BF%E3%83%BC-%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF-BSMPC11C01BK/dp/B005WNBLN0/ref=sr_1_3?ie=UTF8&qid=1533475106&sr=8-3&keywords=microusb+%E5%A4%89%E6%8F%9B)<br>RaspberryPi Zero WHを購入する場合はUSB端子はついてなく、microUSB端子しかついてないためマウスやキーボードを接続する場合は必要
- USBマウス
- USBキーボード
  
　これらの変換アダプターを買うのが煩わしいなら一つ上のモデルの[Raspberry Pi Model A+](https://www.switch-science.com/catalog/2101/)を買うのもあり。[スイッチサイエンス](https://www.switch-science.com/catalog/2101/)で<span style="color: red; ">3240円</span>で購入可能。
　また、RaspberryPiをセットアップする際にSSHの設定をすることも可能らしく、初めからSSH接続で接続できればディスプレイ表示やマウスやキーボードを使う必要もないので、その場合はこれらのHDMIやマウス、キーボード関連のものは必要ない。気になる方は[こちら](https://qiita.com/eup42/items/58bf6c336d325eba3ee2)のサイトを参照。
　　
　　
####必要に応じて購入すべきもの
- [LED(確認用)](http://akizukidenshi.com/catalog/g/gI-01318/)<br>赤外線LEDは目では見えずカメラでも確認しづらいので、色付きのLEDもあると便利
- [LED拡散キャップ](http://akizukidenshi.com/catalog/g/gI-00641/)<br>LEDには指向性があるので[LED拡散キャップ](http://akizukidenshi.com/catalog/g/gI-00641/)があると照射距離は多少短くなるが精度はあがる。

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

- [DHT11](http://akizukidenshi.com/catalog/g/gM-07003/)(温度センサー)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/276761/85eb343c-0c7d-88b9-34ed-327964d7d185.png)

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

　　

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

- [タクトスイッチ](http://akizukidenshi.com/catalog/g/gP-03646/)
- [ジャンパーワイヤ　オス-オス](http://akizukidenshi.com/catalog/g/gP-02933/)

　　
　　
#作成手順
記事が長くなるので、手順ごとに分割して記載します。

####1. [RaspberryPiのセットアップ](https://qiita.com/joru/items/92ab2d684104a51095b8)
　　1.1 OSインストール
　　1.2 初期セットアップ
　　1.3 SSH、VNCの設定
　　1.4 ファイルサーバの設定
####2. [回路設計](https://qiita.com/joru/items/e4d4e12e8800743cc0bf)
　　2.1 赤外線学習回路
　　2.2 赤外線発信回路
　　2.3 温度測定回路
　　2.4 ボタンシャットダウン回路
####3. [プログラム](https://qiita.com/joru/items/fc9eebc58d4ba08f7e0e#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB)
　　3.1 LED点灯確認用プログラム
　　3.2 ボタンシャットダウンプログラム
　　3.3 温度測定プログラム
　　3.4 赤外線信号学習プログラム
　　3.5 スマートリモコンプログラム
####4. [外部サービスとの連携](https://qiita.com/joru/items/b5ceb56bf9a4fd31c015)
　　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を複数取り付けました。