ラベル PIR の投稿を表示しています。 すべての投稿を表示
ラベル PIR の投稿を表示しています。 すべての投稿を表示

2018年11月16日金曜日

Arduinoでカラスを追い払う…1



ハト対策が一段落したので、ハト対策に使った装置(PIRで体温を検知すると2つのNeoPixelsが激しく点滅する、だけ)をゴミ集積場に設置してみたところ、いつもは朝7:30ぐらいには盛大なパーティーを開いているカラス2羽がゴミを荒らすことはありませんでした。

すぐに「危険性がない」と舐められるような気がしますが、とりあえずは1勝ですw



2018年11月16日
06:00ごろPIR検知のNeoPixelsを設置。被害ゼロ。

〜2018年11月27日
火曜と金曜に設置、被害ゼロ。近所にたくさん似たような集積所があるのでわざわざヤバいところに行かなくてもいいんじゃね?的な判断なのだろうか。なおご近所の散らかりっぷりは変わらず。

2018年11年30日
設置停止したが被害ゼロw とりあえず被害が再発するまで停止するわ。

2018年12月11日
被害再発しました。ただ、9Fから私が顔を出しただけでカラスが逃げる。装置ではなく私が危険認定されている可能性。




2017年9月23日土曜日

鳩対策:Arduino + サーボで振り払う

我ながら雑だ

■再来■

えー、また鳩害対策の話ですが……廊下側の給湯器排気筒の上に来て大量の糞を落とすようになってしまいました。

当初ぐるぐるまいた鉄条網を設置したらしばらく来なかったのですが、ある日ふと見ると上に鎮座してやがりました。鉄条網ぐらいの短い針じゃあんまり効果無いですね。



■検出して振り払う■

ということで、電子工作的に対応しました(キリッ


電源はダイソーのモバイルバッテリを使いました。ボタン押さなくても給電開始してくれるのでこういう用途にばっちりです。

別にカメラ付けなくても良いんですが、やっぱ「装置が働いたことによって排除することが出来た」ってのを確認したいじゃないですかw



今回使ったAdafruitのmini spy cameraは、micro SDカードをセットして電源をつなげば、あとは信号を0.5秒以下GNDに落とすと静止画、それ以上だと動画録画を開始しもう一度落とすと止まる……という仕様です。間違って買ってしまったんですが、イマイチ使いにくいっす。

サーボはSG90のパチ物です。本物は180度動くみたいですが、これは120度しか動いてくれないし安定性もイマイチです。でも1個100円なので、こういう用途には十分です。

ソフト的にはPIRが検知したら撮影を開始し、ちょっと待ってから数秒間サーボの腕(割り箸をサーボホーンにホットグルーで接着)をぶんぶん振り回し、撮影を止める……というたわいないものです。

サーボはタミヤのプラスチックアングルに固定し秋月のこれで給湯器に貼り付けました。以前にも書きましたが、コレの接着テープは非常に強力でキレイな面に貼るとちょっとやそっとでは剥がれません。ご注意下さい。ケースはレーザー加工したMDF箱が大量に余っているのでそれを流用し、ネオジム磁石のフックで吊りました。

我ながら雑です。

雑ですが、設置期間中は鳩の糞はありませんでした。そして、spy cameraにも鳩らしいものは写っていませんでした。ははははははorz

■そして物理障壁設置へ■

というわけで、一応効果のある装置でしたが、公団に文句を言い続けてたら対策してくれました。



物理障壁強い。横から入りそうで少し心配な形状ではありますが。

【追記2018年8月29日】
今日まで書き忘れていましたが、今年になってからまた来るようになりました。廊下全体にテグスが設置されているわけではないので、まぁ当たり前ですよね。糞を掃除するのにも疲れましたので、またぞろ対策します。

2016年12月21日水曜日

新しいPIR @秋月

PIRという素子が好きです。

焦電型赤外線センサーとか人感センサーと呼ばれているやつで、体温ぐらいの赤外線を発する物体が視野を横切ると検出してくれます。鳩撃退センサー、玄関先来客センサー、睡眠計、寝落ちスイッチ付き読書灯、などに使っています。

100円ぐらいから買えます。ただ、もっとも需要が多いのが防犯用と(夜住宅街を歩いていると急に明かりが点灯するのはコレね)いうこともあってか、大部分の製品は動きを検出した後に信号をラッチするものがほとんどです。「何か動いた」ことを検出するだけならそれでも良いんですが、「どのぐらいの頻度で動いているか」を検出したい場合、例えば睡眠計などに使うにはちょっと不都合なんですよね。

ほぼ唯一の例外だったのが、秋月で売ってるSE-10というタイプなのですが…「5-12v」と書いてあるにもかかわらず5v電源だと使っているうちに誤動作するという欠陥があります。内蔵しているレギュレータが5v出力なので、5vだと内部電圧が足りないんですよね。

さてどうしたもんか…と思っていたら、新しいのが出ました。
秋月のサイトから


仕様を見ると、検知時のみ出力してくれます。わーい。検知範囲は2mでちょっと狭いですけど、まぁそれはSE-10と同じ。消費電流もSE-10より少ないし、厚みも減るのでいろいろ組み込みやすいです。値段がもうちょっと…と思うけど、まぁ、そこは安くてラッチのついたやつとの使い分けで。

正月休みになる前に注文しておこうっと。

それにしても秋月さんは全角英数をいつになったらやめてくれるんかのぉ。

2016年8月17日水曜日

ESP+400円あれば10分で作れる睡眠計

ただし送料は別ですw

秋月電子通商のサイトから

これは毎度おなじみのPIRセンサー、赤外線を発する物体が動いたことを検出してくれるセンサーです。主に防犯用途で使われるものですが、安い割には高感度なので鳩の検出や来客の検出など便利に使えます。なお、このHC-SR501は安いんですが、動きを検出したあと信号を数秒〜数分間引き伸ばして出力する仕様です。侵入者を検知してランプを点灯するためのものなので。そういう意味ではSE-10というセンサーの方が正確に把握できるんですが、高いのと5V電源では正常に動作しないので、今回は見送ります。

今回はこの400円のセンサーと無料のThingSpeak.comを使って10分で睡眠記録デバイスを作ってみます。

当然ESP-WROOM-02のモジュールも必要です。それにはぜひ倉橋屋Board1をご検討ください:-)

…他にオス - メスのジャンパワイヤとかブレッドボードが必要ですが、それはさておき。

まず、PIRとESP-WROOM-02を接続します。PIRの電極は、ドームを上、ピンを手前にした状態で左からGnd, Signal, Vccです。GndとESPのGnd、SignalとIO12、Vccと電源(5v以上…Board1をUSBにつないでいる場合はVin、ESPrなどではVOUT)を接続します。Signal出力は約3vなので、ESPと直結しても大丈夫です。なお、PIRによってはもっと電圧の高いものやオープンコレクタのものもあるので、その場合は仕様に従ってください(コメント欄に書いていただければ、わかる範囲でお答えします)。

接続はこれでおしまいです。HC-SR501はボリュームが2つ付いていて、それぞれ感度調整と持続時間調整です。感度はその通り感度で時計回りに回すほど敏感になります。持続時間は一度動きを検出した時にその後何秒出力HIGHを維持するかを設定できます。睡眠計として使うのであれば、感度は最低(時計回り目一杯)+持続時間最小(時計回り目一杯)で良いと思います。あとジャンパが一箇所ありますが、基板の端の方にするとHIGHになっているときに次の動きを検出してもLOWになるタイミングは延長されませんが、基板端から離れた方に挿すと動きを検出した時点でHIGHが延長されます。これ、どっちが良いでしょうね。

ThingSpeak.comのアカウントを登録します。ThingSpeak.comは「チャンネル」という単位で送信されてくるデータを管理します。一つのチャンネルは最大8個までのデータ列を記録することができます。New Channelで新しいチャンネルを登録し、Nameは適当に、Field1に「movement」というタイトルを付けチェックします。下の方の「Save Channel」をクリックすればOKです。次にAPI Keysというタブをクリックし、「Write API Key」の値をコピーしておきます。

あとは、以下のソースをArduino IDEで開き、お使いのWiFiのSSIDとパスワード、それからさっきコピーしたWrite API KeyをapiKeyにセットすればOKです。

一晩走らせてみた結果がこちら。

会社のIoT勉強会で使ったThinkSpeakを流用したのでArkの名前がw

そのままグラフにすると細かすぎてわからないので10分ごとの平均を480分表示させています。SE-10で取得したデータほどすっきり分離されないですが、xx時にベッドに入り、xx頃入眠、xxにトイレに起きてxx時起床というのが(言われれば)おわかりいただけるかと思います。

私は初老なので睡眠導入剤などを使っていますが、とりあえずこういうグラフがあれば「どの食事/運動/薬/サプリが有効なのか」を客観的に知ることができるかなー…と思っています。昼間部長とメールバトルした日などはドキドキして眠れないので、なかなか客観的な評価は難しいのですが(笑)。

小心者指数を計れるデバイスが出たら買います。買うべきです。ま、買っても役に立ちませんががが。

2015年10月24日土曜日

鳩対策2号機(動きモノ


学習能力のあるカラスは電撃一回で来なくなったようですが、鳩は電撃で対策した柵には寄りつかなくなったものの今度は室外機の上に来るようになりました。

ということで、今度は、光り物と動き物で脅かす作戦にしました。やつら「実害」がないとダメなので、当初は電極を振り回そうかと思ったのですが、製作中に私が「実害」を受ける未来しか浮かばないので保留。

■仕様■

まず使用機材:
  • 動作状況をモニタできるようにESP8266を使用
  • 動きモノはサーボモータSG90
  • 光りモノは赤色LEDを直接接続
  • 鳩検出はPIR
  • 動作状況の記録にはThingSpeakを使用
動作仕様:
  • PIRで何かを検出したら時計をセット
  • 時計がセットされていたらサーボ腕を振り回しつつLEDを点滅させる。5秒経ってもどかなければ、LEDの点滅を激しくする
  • 何かがいなくなったら、サーボとLEDを止めてから何秒とどまっていたかをThingSpeakに送信
  • それとは別に1分ごとに気温と湿度をThingSpeakに送信する

■ハードウェア制作■

ESP8266/ESP-WROOM-02の電源を甘く見てはいけません。最終的に毎度お馴染みの「超高効率DC-DCコンバーター(3.3V0.5A) M78AR033-0.5」を使い、アルミ電解コンデンサ470uF + タンタル4.7uF + 積層セラミック1uをブレッドボードの3.3v電源ラインに並べ、ESPモジュールの上、Vcc - GND間に直接積層セラミック0.1uをハンダ付けして、安定動作させることができました。VccとGNDが離れているのでパスコン付けにくいんですよね…。ロットでの差異や個体差もあると思いますが、ここまでやれば起動直後にドーンと電流食われてもだいたい安定します。

サーボモータはIOピン直結、LEDはVfの実測値1.8vだったのでESPのIO定格値12mAを超えないよう150Ωの抵抗を入れて制限します。

HDC1000は秋月のプルアップ抵抗内蔵モジュールを使いますので、電源とI2Cを接続するだけでOKです。

PIRはHC-SR501を使いました。アマゾンでも秋月でも入手できます。このPIRは4.5vから使うことができます。秋月では5-12vと書いてありますが、他サイトでは4.5-12vになっていて、実際に試しても5vで問題ないようです。SE-10のように5vって書いてあるけど5vで使うとしばらくして不安定になる、ということはありません。以下配線表です。


ESP-WROOM-02モジュール接続先
1Vcc3.3vライン
2EN10kΩを通して3.3vラインへ(プルアップ)
3IO14HDC1000のSCLへ
4IO12150Ωを介してLED1へ
5IO13150Ωを介してLED2へ
6IO15N.C.(無接続)
7IO2プルアップ
8IO0プルアップ
スイッチを通してGNDへ
9GNDGNDへ
10IO4HDC1000のSDAへ
11RxDFTDIのTxへ
12TxDFTDIのRxへ
13GNDGNDへ
14IO5N.C.
15RSTプルアップ
スイッチを通してGNDへ
16TOUTN.C.
17IO16SG90の信号線(オレンジ色)
18GNDGNDへ


この他、各モジュールには電源を接続します。HDC1000はモジュールに書いてある通り、PIRはここがわかりやすいです。サーボはこちらを参考にしました。

PIRは感度と出力秒数をボリュームで、ジャンパで出力モードを指定できます。感度ボリュームは検知範囲の指定ですが、人間よりも小さい鳩が対象なので最大(7m程度)にします。出力秒数は動きが検知されなくなった後何秒ぐらい出力HIGHをキープするかを設定します。よくある侵入警告灯などで使う機能ですね。これは居なくなったらできるだけ早く消えて欲しいので最小にします。ジャンパは信号出力中に動きを検知した場合に点灯時間を延長するか最初の検知から指定時間を経過したらその間動きがあってもOFFにするかを切り替えます。内側は動いている間はずっと出力、外側は指定時間でOFF。今回は鳩の滞在時間を調べたいので、内側にします。上記の通り出力が延長されてしまうので正確な記録にはならないのですが…まぁ傾向はわかるかなと。

■ThingSpeakすげえ■

今回、ThingSpeak初めて使ったのですが、こういうWebサービスの中では今までで一番簡単でした。開発中、「そろそろThingSpeakへの書き込みコードを用意しておこう」と思ってコピペしてAPI KEYや変数などを書き換えてそのまま放置していたんですが、画面の隅で何か動いているものがあるなと思ったらThingSpeakのグラフでした。これだけでグラフになっちゃったのは初めてです。いやー、恐ろしい。

なお、ThingSpeakへの書き込みコードはここからコピーしました。ありがとうございます。Particleも良いんだけどね…I2Cが動かないのと何よりも技適がないのでどうにもなりまへん。

■ESPをArduino IDEで使う場合のピン番号■

動かしたヒトならみんなご存じだと思うのですが、探しても明記しているページが出てこなかったので書いておきます。

Arduino IDEでpinmode, digitalOutなどを使い場合に指定するピン番号は、ESPのIO4, IO5などと書いてある数字を使います。物理的なピン番号ではありませんのでお間違いのないように。

■ハマり所■

  • 上にも書きましたが、ESP8266の電源はちゃんとインピーダンスを下げないと暴走します。それもArduino IDEが書き込み終わった直後に暴走(電解コンデンサ追加で改善)、動作するけど数分で止まる(タンタル4.7uF追加)、数十分で止まる(パスコンを基板上に直接ハンダ付けで改善)…と対策をすれば良くなりますので、安定して動作しないとお悩みの方はお試しあれ。
  • Arduino HDC1000ライブラリはそのままでは動きません。Wire.beginでSDL, SCLのピン番号を指定する必要があります。HDC1000.cppのコンストラクタでWire.begin(); を Wire.begin(4,14); にします。
  • 存在しないIO番号、例えば6を指定すると、Arduino IDEではエラーになりませんがpinmodeなどを実行した際にExceptionが出ます(シリアルコンソールにメッセージが出ます)。
  • サーボモータを使うのはこれが初めてです。サーボモータは0-180度で動作するとのことなんですが、激安サーボとして有名なSG90は45-135度ぐらいしか動作しませんでした。その範囲外を指定すると唸り始めます。5個買ったうちの2個が同じ状態だったのですが、そういうもの?
  • サーボモータをつないだままにしておくと信号が一定でもピクピクもぞもぞ動いていますが、これを止めるにはdetachします。使う時にまたatachします。消費電力の節減にもなります。

■ソース■

より高い威嚇効果を求めて複雑な動きをさせたら腕の動きが激しくなったときにサーボがモゲそうになったので、単純な動きにしていますが…RTOSあたりをつかって、ちゃんと加速度制御を考えた上で複雑な動きをさせたいものです。


2015年10月16日金曜日

ものすごく久しぶりにユニバーサルボード使った

ほこりが…。
PIRでMOSFETをスイッチして、別に作った高圧発生回路の電源をon / offしているだけですけどね。

裏面
なお、PIRだけだと消費電流が少なすぎてモバイルバッテリが勝手に切れてしまうので、赤LEDを付けました。モバイルバッテリを寝かさないためには5mA程度流さないといけないのですが、今時の赤色LEDは5mAも流すととても眩しい。

困ったことに、動作確認用のランプ(青)がまったく目立たなくなってしまいました…。