2016年8月27日土曜日

arduino+Sharp GP2Y1010AU0FでPM2.5モニター

1500円程度と比較的安価なシャープ製ダストモニターで遊んでみたわけです。

↓を参考にGP2Y1010AU0Fをarduinoに接続。

http://lafudo.blogspot.jp/2013/12/arduino-gp2y1010au0fpm25.html


あとは参考サイトのスケッチを試した所そのまま動作した。
しばらく数値をみていたが20から30ug/m3ってところのようだ。

利用したスケッチ(参考サイトほぼそのまま)
https://gist.github.com/izumogeiger/0136c538cb220f283a1cbbd841611706

あとはこれをxivelyにアップすればモニターになる。

ということで以前試したENC28J60を利用してセンサーの値を返すWEBサーバにすることにした。
ついでに温湿度センサーDHT11とHMMC5883を繋いでこれらの値も返すように。


WEBサーバのスケッチは↓
https://gist.github.com/izumogeiger/f0b03e789c72e7053c6241d07f3c76fb


3秒毎にWEBサーバにアクセスして60サイクル毎にxively.comにアップロードするスクリプトは以下。
https://gist.github.com/izumogeiger/c000a91a77161acb3365d22f48d6c83c

でxively.comで以下のようにグラフ化で終了。



2016年8月14日日曜日

arduino+MAX7219+8x8マトリクスLEDでbitman再び

arduino用のMAX7219を使った8x8マトリクスLEDのキットで遊んでみた。

基盤にピンソケット、抵抗、コンデンサをハンダ付けしてICとLEDをはめ込んで完成。


マトリクスLEDは上下2通りの差し込みが可能だけど、以下のように基盤のシルク文字に対して下面にマトリクスLEDの型番表示がくるようにハメるので正解だった。


arduinoと基盤を以下のように接続。

[board] - [arduino]
VCC - 5V
GND - GND
DIN - D2
CLK - D3
CS  - D4

次にソフトウェアだけどLedControlというライブラリを使用した。

http://wayoda.github.io/LedControl/

後は以前作成したbitmanを移植。

無事動作を確認。

https://youtu.be/Ik9oMRhhzxs

作成したスケッチは以下。

https://gist.github.com/izumogeiger/1f4c0a5bd6c45d0b27e8ba3af0a2df8a



2016年8月13日土曜日

ENC28J60でarduinoをLANに接続

arduinoにセンサーつないでUSBシリアル通信でPCやラズパイでデータロギングでもいいんだけども、arduinoを直接LANにつないでWEBサーバにしてネットワーク越しにデータ取得できた方がなにかと便利であろうということでENC28J60を使ってarduinoをLANに繋いでみた。

ENC28J60


2枚目の写真なんだけどシルク文字がどう見ても間違っていて少しハマったわけです。
上から

5V  GND
LNT CLK
SO  WOT
SCK ST
RST CS
Q3 GND

と読めるんだけど、本当はたぶん以下。

5V  GND
INT CLK
SO  WOT
SCK SI
RST CS
Q3 GND

LNT -> INT
ST -> SI

ST=STATUS?、LNT=????、そんなのデータシートにもないぞ、SIはどこ???という具合で数分考え込んでしまった。
(中華ぱちもん?)

ENC28J60+ARDUINO でIoT製作 (テスト編)

を参考に

[ENC28J60] - [ARDUINO]
SCK - D13
SO - D12
SI - D11
CS - D8

とピン接続。
本来は3.3v駆動らしいが5vでも動いた(いいんだろうか。。。それで)。

あと基盤のネジ固定穴は3mmネジは入らない。2mmネジなら入ったのでそれで固定。


後はethercardライブラリをgithubから取得して導入して
https://github.com/jcw/ethercard

サンプルスケッチを書き込んで動作確認。

https://gist.github.com/izumogeiger/117f37a40167cf964d0264dd1e0b0f6d

DHCPでIPアドレス取得してwww.google.comにping
静的IPアドレスを設定、webサーバで起動時間を表示

webサーバのリクエスト処理で各種センサーの値を取得してクライアントに返してやるようにすればarduinoによるセンサーサーバになるわけ。

こりゃ便利。


2016年8月12日金曜日

ポケットガイガーType5+arduino+TM1638

以前ポケットガイガーType5+arduinoで簡易モニタリングポストを作成したのだが、それだけだと寂しいのでTM1638を使って数秒毎にcpm表示するようにしてみた。

8桁8セグに小数点2桁までのcpmと上部LEDに2進でCPMの整数値を表示している(あまり意味ないけど)。やはり表示があるとわかりやすい。


スケッチ


2016年8月11日木曜日

arduino+HC-SR04+LCD1602

超音波距離センサモジュール HC-SR04で遊んでみた。





近くだと10cmから20cm、離れるともっと誤差がありそうだけど一応距離っぽい感じではあるようだ。

スケッチは以下を参考にLCD表示を追加。

https://www.switch-science.com/catalog/1606/

最終スケッチは以下。

https://gist.github.com/izumogeiger/67dc31c313433b8c3821156e96a1c528


arduino+DHT11+LCD1602

以前にチャレンジして失敗した温湿度センサーDHT11をarduinoで再挑戦してみた。

adafruitのサイトを参考にDHT11のoutピンに2.2kΩをプルアップしてarduinoのD2に接続。
https://learn.adafruit.com/dht/using-a-dhtxx-sensor


サイトのライブラリのサンプルであっさり動作。

そのままでは物足りないので16x2のLCDをつないで表示してみた。

LCDはarduino editor標準のサンプルスケッチで普通に動作。

安い割にはキレイで簡単。ナイス。




最終的なスケッチは以下。
https://gist.github.com/izumogeiger/510d9908c911c518db7632dcdf8223a2




amazonアソシエイト