LoginSignup
7
5

More than 3 years have passed since last update.

温度センサーから取得したデータをAWS IoT→DynamoDB経由でAmazon ESにデータを送信する<1/2>

Last updated at Posted at 2019-04-08

はじめに

PCからサンプルデータをAWS IoT経由でDynamoDBへ送信するまでは、前回の記事で試しましたが、実際にIoTといえば、デバイスからの生データを処理するもの。ということで、生データ(温度データ)を定期的に取得し、データを保存するまでを実際にやってみたいと思います。

データを保存して終わりではつまらないので、データ分析や、グラフ化がツールと連携が可能なAmazon Elastic Searchに生データを送信し、Kibanaでグラフ表示するまでを最終的には実装します。(全2回)

システム構成図

img.jpg

準備するもの

・Raspberry Pi3 Model B 一式(本体、電源ケーブル、microSD)
・温度センサー
・ジャンパーワイヤー
・抵抗器
・ブレッドボード

どれを買えばいいのかわからない人のために、自分が買ったものを載せておきます。(ラズパイ以外 Amazonで購入)

SODIAL(R) 2xDS18B20 18B20 TO-92温度計温度センサ
https://www.amazon.co.jp/gp/product/B0746CMDSL/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1

ELEGOO 50 PCS オスメスジャンパーワイヤ200mm (無料 170 タイポイント ブレッドボード)
https://www.amazon.co.jp/gp/product/B06ZZXH4XT/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1

uxcell カーボン抵抗 炭素皮膜抵抗器 アキシャルリードタイプ 1/4W 250V 10K Ohm 50 本入
https://www.amazon.co.jp/gp/product/B01149WW1K/ref=ppx_yo_dt_b_asin_title_o01_s01?ie=UTF8&psc=1

※ラズパイ一式を合わせても、1万円ちょっとくらいでした。

↓届いた部品
img.jpg
※ブレッドボードはジャンパーワイヤーの箱の中に入ってます。

設定、手順

では、実際に設定していきますが、設定はラズパイの起動までは完了している体で、紹介していきます。(ここも記載するともっと長くなるので割愛。)

※起動まではこちらの記事が写真も多く、分かりやすかったです。
https://qiita.com/Higemal/items/c817b96c3806f23b35f6

★参考サイト(記事の下部に記載)を参考に
今回使う「DS18B20」温度センサの特徴を学びながら、以下画像の様にラズパイに部品を設定していきます。

・DS18B20温度センサの特徴 参考サイトより抜粋

今回は「DS18B20」という温度センサを使用します。「DS18B20」は、「1-Wire」というインターフェースを使用した部品で、ラズベリーパイには1-Wire用のモジュールがあらかじめインストールされています。設定を有効にするだけですぐに使用できます!

1-Wire – マキシム
1-Wire – Wikipedia
1-Wire はマキシム・インテグレーテッドの登録商標であり、接地線と一本の信号線(兼電力供給線)だけで低速なデータ転送を行うバス規格である。

・配線画像
img1.png

配線が完了するとこんな感じです。
img2.jpg

配線が終わったら、「DS18B20」センサの「1-Wire」を有効化。
ターミナルを開いて以下の順で設定を追加します。

nano /etc/modules

※「nano」はラズパイの標準エディタです。

以下2行を追加します。
w1-gpio
w1-therm

保存します。

次に、Raspbian 2015-01-31(NOOBS 1.3.12)以降のOSを使用している場合に必要な作業で、設定手順は先程と同じ、/boot/config.txtファイルに1行追記。

nano /boot/config.txt

追記するのは以下。
dtoverlay=w1-gpio-pullup,gpiopin=4

すべて完了したら、以下手順で、再起動。
menu → Shutdown → Reboot → OK

※今回はラズパイをモニタに映します。
img-3.jpeg

上記、画像のように、以下のファイルをテキストエディタで開いてください。

「 /sys/bus/w1/devices 」にファイルが生成され、「28-031868f200ff」というフォルダができており、「w1_slave」とうファイルに温度データが入っています。

中身のデータの「t=」のあとが温度データです。
※値は1000倍されているため、「24.375℃」ということになります。

ここまでほぼ★参考サイトの通りになります。

1-wireで通信しているのでプロトコルの詳細はWikipediaで確認しておくと良いと思います。
https://ja.wikipedia.org/wiki/1-Wire

ちなみに、
■■■■■ ssh 接続で行う場合は以下の通り START ■■■■■

まず、ターミナルを開き、ip addr コマンドでIPを確認。控えておく。

menu → Raspberry Piの設定 → インターフェイスタブで
SSHを有効にチェック。
img-4.jpg

ラズパイを再起動します。

同じネットワーク内であれば、以下で接続が可能。

 ssh pi@<ラズパイのIP>

※パスワードが聞かれると思いますが、デフォルトは「raspberry」になります。
img-5.JPG
※接続できれば、温度センサデータを取得するまでの設定は同じです。

■■■■■ SSHの接続 END ■■■■■

温度センサーが本当に機能してるか、
途中で、「DS18B20」センサを指で抑えてみます。
img-6.JPG
上記の通り、温度が上昇し、指を離してみると温度が下がりました。
t=24500

t=24500 ※センサーを抑える

t=29375 ※指を離す

t=27000 

t=25500 
※だいたい2~3秒で定期的に表示

センサーデータを取得できたので、
次の記事で、AWS IoT → DynamoDB → Lambda → Amazon ESとデータを流していきます。
https://qiita.com/0_1geek311/items/fa92823b35b892a899ca

★参考サイト
https://deviceplus.jp/hobby/raspberrypi_entry_018/

7
5
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
7
5