備忘録

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

Node-REDでセンサーの値をWebに出す

Node-REDを起動させて、
ブラウザアクセスをトリガとして、Webにセンサーの値を出してみたいと思います。

1.Node-REDを起動させます。
$node-red ./html.json

2.ブラウザからNode-REDにアクセスします
今回の場合は、Node-REDを立ち上げているラズベリーパイの
IPアドレスが192.168.0.8なので、ブラウザのURLに↓を入れます
http://192.168.0.8:1880/

3.ノードの作成
それぞれ以下のノードを作成しました。
テストのセンサー値取得

左から、それぞれ以下のように設定しました。
httpノード
 Method:GET
 URL:/bme280

execノード
 Command: $HOME/proj_python/bme280_sample.py
 Append: msg.payloadにチェック

functionノード
 Name:function
 Function:
  var m="";
  m=m+" ";
  m=msg.payload;
  m=m+"
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
";
  m=m+" ";
  msg.payload=m;
  return msg;

http responseノード
 特に何も設定なし

あとはそれぞれをつないであげれば良いですが、
execノードからfunctionノードへの接続は、
execノードの出力○の一番上と繋いでください、

execノードのinfoにも記載されていますが、
出力は、上から標準出力、エラー出力、戻り値になっています。
今回は、標準出力に出てくるものを次のfunctionに渡したいので、上のに繋ぎます。

httpのGETアクセスをトリガとして、
execのコマンドを実行して、コマンドの標準出力を
functionでHTMLの形にしてあげて、
最後にGETのレスポンスとして返す....という形です。

4.ブラウザでセンサーの値を取得

ブラウザから↓にアクセスしてみます
http://192.168.0.8:1880/bme280

temp : 29.79 ℃
pressure : 1016.28 hPa
hum : 45.22 %

とブラウザに表示されました。

テーマ:ハードウェア - ジャンル:コンピュータ

  1. 2016/06/20(月) 13:30:10|
  2. Raspberry Pi
  3. | トラックバック:0
  4. | コメント:0

BME280温湿気圧の取得

秋月電子通商や、スイッチサイエンスなどで販売されている
BME280モジュールで温度、湿度、気圧を取得します。
http://akizukidenshi.com/catalog/g/gK-09421/
https://www.switch-science.com/catalog/2236/

今回BME280は、ラズベリーパイのI2Cピンに接続します。
ジャンパーJP3をはんだ付けして、
SDA、SCL、GND、VCCをそれぞれ接続、SDOをVCCに繋げるかGNDに繋げるかで
アドレスが変わるらしいですが、今回はGNDへ接続します。
ラズベリーパイのi2c-1(3,5ピンのほう)を使えば、プルアップ抵抗も不要です。

i2c-toolsでちゃんと認識されていることを確認します。
$ sudo i2cdetect -y 1
   0  1  2  3  4  5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --

次にドライバですが、既にできているものは使います。
スイッチサイエンスさんのほうで、サンプルコードがありますので
今回はPythonのサンプルプログラムをダウンロードします。
https://github.com/SWITCHSCIENCE/BME280/tree/master/Python27

ダウンロードしてきましたら、
サンプルコードの頭に↓を追記
#!/usr/bin/python

次に実行権限を与えます。
シェルより↓
$chmod +x bme280_sample.py

あとサンプルコードは、python smbusを使うのでインストールしておきます
$sudo apt-get install python-smbus

そして実行です。
$./bme280_sample.py

temp : 30.64 ℃
pressure : 1016.12 hPa
hum : 46.81 %

のようにコンソールが出れば、ひとまず成功です。

テーマ:ハードウェア - ジャンル:コンピュータ

  1. 2016/06/19(日) 06:43:53|
  2. Raspberry Pi
  3. | トラックバック:0
  4. | コメント:0

Node-REDの起動

Node-REDを起動させるのは以下のコマンドで起動できます

$node-red ./html.json

html.jsonは、Node-REDで動かすファイルです。
初回や、ファイルがなければ自動で作成されます。

起動しましたら127.0.0.1:1880で起動したよ
っぽいメッセージがでますので、
好きなPCのブラウザから
http://:1880/
などでNode-REDのノードを組みましょう

テーマ:ハードウェア - ジャンル:コンピュータ

  1. 2016/06/19(日) 03:06:49|
  2. Raspberry Pi
  3. | トラックバック:0
  4. | コメント:0

Noderedのインストールから

raspberry piにNode-REDをインストールする方法です。
ってもapt-getなだけです

$sudo apt-get install nodered

ちなみに、最近のRasbian JESSIEには、Node.jsも含めて最初から入ってるっぽいです。
逆にnpmが入っていなかったりするので、必要があれば↓で入れましょう

$sudo apt-get install npm

テーマ:ハードウェア - ジャンル:コンピュータ

  1. 2016/06/19(日) 02:56:01|
  2. Raspberry Pi
  3. | トラックバック:0
  4. | コメント:0

i2c-0が見えない

いつの間にかi2c-0が見えなくなってました。

こちらの解決方法です。
https://learn.sparkfun.com/tutorials/raspberry-pi-spi-and-i2c-tutorial/i2c-0-on-40-pin-pi-boards

$ sudo nano /boot/config.txt,

でファイルを開いて

dtparam=i2c_vc=on

を追記します。

リブートした後、
$ sudo i2cdetect -y 0

などでi2c-0が確認できました。

テーマ:ハードウェア - ジャンル:コンピュータ

  1. 2016/05/20(金) 13:29:06|
  2. Raspberry Pi
  3. | トラックバック:0
  4. | コメント:0
前のページ 次のページ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。