【後編】ゼロから学べるIoTのはじめ方~Lチカ&プッシュボタンでスマホ通知させよう~

「ゼロから学べるIoTのはじめ方」として、前回はIoTを取り巻く状態や各種ボード、クラウドサービスなどのご紹介をしました。後編では、IoTを具体的にどのようなことができるか、初心者にも取り組みやすい方法をご提案をしたいと思います。

目次

  1.  1. 何を買いそろえれば良い?
  2.  2. ブレッドボードってなに?
  3.  3. アナログポート,デジタルポートってなんだ?
  4.    ・デジタルとアナログのどちらを使うか
  5.  4. Lチカさせてみよう
  6.  5. プッシュボタンを押すとスマホ通知
  7.    ・準備
  8.    ・iftttでレシピを作成
  9.    ・ブレッドボード
  10.    ・プログラミング
  11.  6. おわりに

 
ここでは一切の電子工作用具や素子、ボードなどを持っていないことを前提として書いていきます。

何を買いそろえれば良い?

まったく電子工作をしたことが無い方にとっては、いったい何をどれぐらい必要なのか、いくら費用がかかるのか、どこで買う必要があるのかなど分からないことも多いでしょう。ちゃんとやろうとすると、様々な機器や工具などが必要になりますが、今回の記事では「IoTのお味見」を提案するものですので、予算4000円程度に抑えたいと思います。

そのため「はんだごて」や「テスター」のような、電子工作をする方なら当然持っているものを使わなくてもよい方法を紹介します。ハンダごてが無くても作れる構成で提案しますが、もしハンダごてを持っていたり、パーツも持っている場合はそれらを使用して頂いて問題ありません。

なお、下記の価格は変動している可能性がありますが、参考として筆者が執筆した時点の価格を記載しています。

ESP-WROOM-02開発ボード(ピンソケット実装済)  2,580円
ESP-WROOM-02をさらに扱いやすく1ボードに実装した開発ボードです。ピンソケットもハンダ付け済みなので、手に入ったらすぐに使えます。ハンダごてを持っている場合はピンヘッダをハンダ付けするタイプのものでも構いません。

みんなのRaspberry Pi 入門 基本キット 1,200円
下記のパーツ群を含んだお手軽セットです。商品名に「Raspberry Pi」と入っていますが、Raspberry Pi専門の道具ではなく、一般的に使用出来るパーツのセットですのでご安心ください。
▼含まれるパーツ
・ブレッドボード (ハンダ付け不要で素子を差し込めば電気回路を組むことができるボード)
・ジャンパワイヤ(ブレッドボードの穴やピンソケットに差し込むことで通電させて回路を組むワイヤ)
・プッシュスイッチ(ブレッドボードに挿して利用するボタン)
・赤色LED
・抵抗器

上記パーツがあればIoT開発を始められます!

ブレッドボードってなに?

ブレッドボードについて改めてご説明いたします。無数の穴がタテヨコにびっしり埋め尽くされている見た目に戸惑うかもしれません。様々な大きさのブレッドボードがありますので一概に言えないのですが、基本的な仕組みは同じで「縦方向に通電する」部分と「横方向に通電する」部分があります。

以下の画像をご覧下さい。赤線で囲んである箇所が通電方向です。赤枠領域を別の赤枠と繫げるには、ジャンパワイヤでつなげるか、素子をまたがるようにして挿すことで通電させることができます。

breadboard_02

Figure 1. ブレッドボードの通電方向

横いっぱいにつながっている赤枠は、通常は電力ソースとGND(グランド)をつなげて使用します。電池を使う場合であればプラス極とマイナス極として使い分けることができます。このように通電グループを理解した上で、ブレッドボードを利用することで、ハンダ付けが不要となります。

アナログポート,デジタルポートってなんだ?

ArduinoやESP-WROOM-02などには大抵「入出力ポート」と呼ばれる入出力のインターフェースが用意されています。Inputは入力、Outputは出力のために使用します。ポートは複数ありますので、0から1,2,3のように番号が振られています。特別な役割を持つポートもいくつかあり、そのポートは番号ではなく名前が付与されていることもあります。

ポートには大きく分けて「アナログ(A)」と「デジタル(D)」の2種類があります。「A0」と書かれているポートは「アナログの0番のポート」という意味で、「D3」とあれば「デジタルの3番ポート」という意味です。RaspberryPiのように、アナログポートが用意されていない場合もあります。

■デジタルとアナログのどちらを使うか

 
Input(入力)の場合
「ボタンが押されている・押されていない」という判定をする場合は、0か1が分かれば良いのでデジタルポートを利用します。一方、明るさセンサー(照度センサー)や距離センサーのような場合は、明るさや距離を数値として取得したいのでアナログポートが適しています。

Output(出力)の場合
LEDを「点けるor消す」という2つの状態しか無い場合はデジタルポートが向いています。ところが同じLEDでも明るさを調整したい場合は、アナログポートを使うことになるでしょう。

Lチカさせてみよう

電子工作の入門として必ずといって良いほど通る課題が、このLチカです。「LEDをチカッと光らせる」ということから、通称Lチカと呼ばれています。今回のLチカでは、一定間隔で点いたり消えたりするようにします。

どういうポートをInputまたはOutputすれば良いでしょうか?デジタルポートのOutputですね。

ESP-WROOM-02はArduinoの開発環境を使用できます。ここで、簡単に開発環境の構築の方法をご紹介します。

Arduino公式のダウンロードページからArduino IDEをインストール。
②Arduino IDEにESP8266ボードを追加。
Additional Boards Manager URLsに、以下のURLを入力。
http://arduino.esp8266.com/stable/package_esp8266com_index.json
③ボードを選択。
ツール>マイコンボード>ボードマネージャーで、esp8266のバージョンを選択してインストール。
Arduinoは事前にUSBケーブルでPCに接続しておきましょう。
④スケッチに書き込み。

 
環境構築ができたところで、実際にLチカさせてみましょう。Arduinoの開発環境にはBlinkというサンプルコードが用意されており、D13ポートを使用してLEDを1秒ごとに点滅させることがすぐにできます。

以下のコードです。

※//ではじまるコメントは割愛しました

以下の画像は実際に著者が動作させたときのものです。

led

Figure 2. LEDが1(1000ミリ)秒ごとに点滅します

以下が特筆次項です。
・ESP-WROOM-02開発ボードのGNDとブレッドボードのマイナス極をつなぐ
・LEDの足の長い方をブレッドボードのマイナス極につなぐ
・LEDの足の短い方と抵抗器(今回は330Ω)を同じ列に挿し、抵抗器をESP-WROOM-02開発ボードの13番ポートにつなぐ

著者はハンダごてを所有しているためESP-WROOM-02ボードはピンヘッダをつけるタイプのものを使用していますが、冒頭紹介したESP-WROOM-02開発ボード(ピンソケット実装済)でも使い方は同じです。

LEDは電流が流れすぎると、とても壊れやすいです。LEDは製品ごとに様々な「定格(ていかく)」と呼ばれるルールがあり、電流や電圧に下限や上限が設定されているので、その範囲内で使用しましょう。抵抗器は流れる電流を少なくする素子ですので、電流をLEDの定格電流の範囲に納めるために使用します。

「LEDを使用する時には抵抗器とワンセットで使用する」と考えておけば良いでしょう。抵抗器の抵抗値を何Ω(オーム)にすべきかは、オームの法則などを利用して計算すれば算出できますが、ごく一般的なLEDであれば100Ωから400Ωくらいの間の抵抗器を使えば良いと思います。
ただ抵抗値を高めすぎるとどんどんLEDの発光量が少なくなり暗くなりますので、それは考慮しておきましょう。

ソースコードの delay(1000)は、1000ミリ秒ごとに点灯と消灯をくりかえしています。この数値を小さくすると早く点滅し、大きくするとゆっくり点滅するようになります。

この記事を書いた人:ideomix

matsuo

2001年よりフリーランサーとしてWeb系システムの開発に従事。電子工学の教養が無いながらも、電子工作の楽しさに取り憑かれ、趣味として熱中。技術勉強会を主催したり、参加したりするのが大好き。2才児のおとうちゃんとして、育児や知育などにも関心がある。Twitter: @ideomix Facebook: @ideomix

関連する記事

facebook

案件情報や最新記事をお届けします。
ぜひチェックしてみてください。