おはようございます。じぇいかわさきです。
少しだけPythonを学び、十分ではないがなんとなく感覚はつかめた。
後は実戦で、いろいろとソースコードを自分で確認しながら経験するしかない。
と言う事で、いよいよIoTについて学んでいこうと思う。習うより慣れろ、そういう心構えだ。

IoT初歩の初歩
ラズパイでハードを動かす事は、この前Lチカで実験した。
あの実験で、基本中の基本動作である、ラズパイの外部との接続インターフェースであるGPIOの使い方の基礎を学んだ。
今回は、外部インターフェースに温湿度センサーを取り付けて、温湿度の観測をしてみようと言う事を最初の目標にした。
今回使用するセンサは、非常にコンパクトで簡単な物。

センサーがパッケージングされているので、センサーからのリードも3本のみ。
VCC(電源)、DATA、GNDの3種類ですね。
結線もこの3本のみですが、そのうち実際にラズパイと信号をやり取りするのはDATA線の1本なので、考え方は非常にシンプルだと思います。
と言う事で、まずはラズパイとの配線を行います。

配線はいたってシンプル。VCCと+3.3Vライン、GNDとGNDラインを接続。DATAラインは信号をプルアップするためにVCCから4.7KΩのプルアップ抵抗で接続します。
プルアップ抵抗(プルアップていこう、英: pull-up resistor)とは、電子論理回路において外部デバイスが切断されても入力端子が適切な論理レベルのままとなるよう使われる抵抗器である。また、電圧レベルの異なる2つの論理回路を相互接続する際にも使う。
そして、プルアップ抵抗とDATAラインがつながった場所を、GPIO4に接続します。
配線色はVCCの電源ラインが赤、DATAの信号線が黄色、そしてGNDが黒になります。
VCCラインを接続すると、既にラズパイで生成されている3.3Vと接続するので、温湿度センサーの電源ラインに電源が供給されていることを表示する赤いLEDが点灯します。
センサの動作確認
それでは温湿度センサーの動作を確認しましょう。
動作を確認するためには、今回使用している温湿度センサーのライブラリーを読み込ませる必要が有ります。
DHT11用のPythonは、GitHubと言う開発者向けのウェブサービスで公開されているようです。まずはそこからDHT11_pythonをダウンロードします。
まず、DHT11_pythonをインストールするには、gitというコマンドを使用してダウンロードします。
git clone https://github.com/szazo/DHT11_python.git
ターミナルウィンドウを開き、上記のコマンドを打ち込みリターンキーを押します。
ダウンロードが完了すると、DHT11_pythonというフォルダーができるので、そこをクリックして内部のファイルを確認します。
たくさんファイルがある内の、dht11_example.pyというファイルを見つけ、右クリックします。
そうすると、メニューが開きますので、その中からThonny ython IDEをクリックします。
サンプルプログラムのソースが表示されますので、その中からpin=14という部分を探して、pin=4に書き換えます。
なぜ書き換えたかの理由は、先の配線でGPIO4とDATAを接続してあり、このGPIO4がpin4だからです。
そうしたら、緑で白抜き三角のボタンを押し、プログラムを実行させます。

実際にプログラムが動けば、Shellに温湿度のデータが表示されるはずなんです。
しかし、表示されません。ハテ?何が問題なんでしょうか?
プログラムをチェックするにしても、書き換えた所はpin14 → pin4 の1ヶ所のみ。
こんな所は間違えようがありません。
チェックしていくと、pin4に接続したつもりのケーブルが、pin5に接続されていました。急いで接続したために、単純な配線ミスを発生させていたようです。
もう一度プログラムを動作させます。

今度は無事、温度と湿度が表示されるようになりました。
これで、DHT11の温湿度センサーを使用してデータの取得が可能です。
まずは、IoTの最初の一歩となる温湿度データの取得までが可能となりましたので、今度はこのデータを保存したり、グラフにしたりすることを考えたいと思います。
まとめ
ラズパイを使用して、本来の目的であったIoTを使用するための、基礎的な事を勉強しだした。
今まで、温湿度データを取ろうとすれば、いろいろとセンサーを作ったりから始まり、大掛かりなプログラムを作ったり、ハードウェアを設計したりしなければいけなかった。
しかし、ラズパイが普及したことにより、各種のセンサーがモジュール化されて販売されるようになり、それらを使用すると簡単にデータを取ることができるようになった。
これは、ラズパイだけでなくArduinoの普及も影響していると思う。
ラズパイにしろ、Arduinoにしろ、これらが普及したことにより、組込ハードが小型化、かつ製品化されてきたので、これらとセンサーの組合せで、ホント簡単にデータ取得ができるようになった。
これらを使用することで、素人のおじさんでもIoTが使えるようになるんじゃないか、そう感じています。
自分が少しづつやった実験など、これからも紹介していきたいと思います。
[twt]
