気の向くままに辿るIT/ICT/IoT
webzoit.net
IoT・電子工作

Arduinoで『鳥さんトリあえず距離トリたい装置』を作る

ホーム前へ次へ
サイト内検索
カスタム検索
Arduinoって?

Arduinoで『鳥さんトリあえず距離トリたい装置』を作る

Arduinoで『鳥さんトリあえず距離トリたい装置』を作る

2017/04/11

 Arduinoを使って鳥避け(除け)装置『鳥さんトリあえず距離トリたい』を自作してみるページ。

目的

 ベランダにヒヨドリからカラスまで鳥たちがよく遊びに来てくれ、とても、かわいいし、生態系上、食物連鎖上、致し方ないのですが、極小菜園の花や実を全部食べられたり、カーテンを開けるとガラス越しに間近にカラスと対面することが度々あると、ちょっと照れる?から関係を見直す?ためにも、もうちょっと距離をおいて冷却期間?をとりたい。

対策

 鳥避けは、Arduinoを使ったIoT・電子工作を1ヶ月前に始めようと思うに至った理由の1つでもあり、調べてみると鳥に限らず、鳥獣は、音に驚くのは人間も同じでわかりますが、なぜか青色LEDを嫌うらしい、また、カラスなど鳥は体内磁石を持っており、天候によっては外部の磁石で体内磁石が狂って方向音痴になったりもするらしいですが、巣を作られているわけではないので磁石は意味ないか。。。

 キーは、音、青色LED、磁石か。。。

試作・テスト

 ということで、まず、検証時、マイコンには、Amazonマーケットプレイス激安店HiLetgoのArduino UNO R3互換機を使い、ブレッドボード上に焦電(PIR/人体感知/人感)センサーHC-SR501で検知したら複数(とりあえず5個)の青色LEDがランダムに点灯する部分を作ってみました。

 どうも青いLED、色がうまく映らないな。。。(ちなみに自身初のYouTubeアップロード。)

 センサーの感度は、写真上部HC-SR501の上側にあるオレンジ色の左側のポテンショメータで最長範囲3m〜7m、右側のポテンショメータで持続時間を調整可能とのことで今回のバルコニーの場合は、3mあれば十分そうです。

const int pir = 2;
const int led1 = 13;
const int led2 = 12;
const int led3 = 11;
const int led4 = 10;
const int led5 = 9;
const int led_pins[] = {led1, led2, led3, led4, led5};
const int num_of_led_pins = sizeof(led_pins) / sizeof(led_pins[0]);
 
void setup() {
 pinMode(pir, INPUT);
 Serial.begin(9600);
 for (int i = 0; i < num_of_led_pins; i++) {
  pinMode(led_pins[i], OUTPUT);
 }
}
 
void loop() {
 int led_light = led_pins[random(num_of_led_pins)];
 
 if(digitalRead(pir)) {
   digitalWrite(led_light, HIGH);
   delay(100);
   digitalWrite(led_light, LOW);
 }
}

 作ったと言っても回路は、220Ωの抵抗と青色LEDを連ね、抵抗にプラス、LEDのカソードにマイナス、焦電センサーのOUTを任意のデジタル入力ピン、VCC、GNDをそれぞれプラス、マイナスにつないだだけ、スケッチも人感センサーが届いたので遊んだと趣向を凝らしたLチカ4桁7セグメントLEDで始めるArduinoの融合であり、ほぼそのまま使わせて頂きました(感謝)。

 とりあえずは、実装時には、Pro Miniを使い、フクロウがいるわけでもないので暗くなったら機能させないように後日届く予定の光センサーを加えて、ユニバーサルボードにハンダ付け、電池で動かし、100円ショップあたりでクリアケースを調達、これに収めようと思っていますが、まずは、ブレッドボードのまま試し、別途、Liveカメラ(Raspberry Pi/Raspbian+USBカメラ+motion)で日中撮っておいてLEDだけで十分か否か見極めてから実装したいところ。

 ということでPro Miniに置き換え、400穴ブレッドボードと電池ボックスとスリム化して仮設置して(ただ、置いて)みていますが、洗濯物を干したりすれば人にも反応してしまうものの、鳥がベランダ付近を飛んでいるとLEDもちゃんと光り、機能している様子、たまたまなのか、近くの木々は相変わらず賑やかなものの、目視できる限りにおいては、今のところベランダへの飛来はなく、カラスとのお見合いもありません(会えなきゃ会えないで寂しい!?)。

 ここまでの想定における費用は、個数・金額不問で送料無料の激安互換機ほかを使っている為、Pro Miniが265円、人体(・鳥獣)感知焦電・赤外線センサー145円、光センサー(フォトレジスタ)は単品でも安いが2000円の37センサーキットにあるものを使うと単純計算で50円ちょっと仮に60円として、LEDは3mmx100個130円(5mmx100個でも330円)だから5個使うとして1.3x5=約7円(3.3x5=約17円)、ユニバーサルボードは50mmx70mmx10枚で135円(70mmx90mmx5枚で260円)、1枚まるまる使うにしても約14円(52円)、人件費や器具使用、配線コードや微量なはんだほか雑費は無視するとして約491円〜539円+ケース+電池ボックス+電池、設置場所によってはプラス部材費。

 青色LEDは3.3Vだと微妙なので5V程度使うと仮定、この回路なら整流ダイオードは不要としてトランジスタ(アソートセット170個265円、仮に1個2円)を使えば、電池は1.5V(トランジスタの選定次第で充電池1.25Vでも可)の単3や単4x2本か3VのCR2302ボタン電池x1個、それ用の電池ボックスで済むと思われ、CR2302は100均で2個100円でもあるので50円、今回買ったCR2302用フタ付き電池ボックスは5個300円、1個60円、ということでこれらを使うと仮定すると約112円プラスで603円〜651円+ケース(あれば小さなフタ付きクリアボックスがベスト?)代+設置場所によって部材費と、これだけなら1000円以内に収まりそう。

 LEDだけでいければ、音は使うまでもありませんが、必要なら以下のように想定しています。

 やはり、後日届く予定の37種類のセンサーキットには、マイクロフォンモジュールやアクティブブザー、パッシブブザーもあるので、今時点、できるのか否か不明ですが、メロディだと近所迷惑だろうから鳥の声をそのままオウム返しが賢明と思いますが、音については、それから考えたいと思います。(SDカードを使う必要ある?もしくはラズパイZeroの方が無難?)

 磁石については、営巣しているわけではないし、方向音痴にさせるのも気の毒なので今のところ使うつもりはありません。

 夏場は輻射熱含め、暑さのあまり日除け(農業用遮熱)シートはするようになったものの、鳥除けネットは一年中となると、ちょっと目障りな気がするし、間違ってひっかかって羽を傷めたらかわいそう(なんてことはないか?)なので少なくとも今は考えない方向で。

 当初、屋外使用を想定しているので太陽光はもちろん、蛍光灯でも充電できる程度のソーラーパネルと電気二重層コンデンサかリチウムイオン電池などを使って自家発電・蓄電、なんなら二次電池も載せて放置しておけるようにした方がよいかなと思いましたが、よく考えてみたら、自然放電は別として常時ONじゃないわけだから電源は電池で十分か。

設置

2017/04/22

 あれ?鳥が。。。

 あれから3〜4日ほど試作品を外に置いた際、近くにたくさんいるものの、全く鳥がベランダまで来ない。

 ただ、その後、置くのをやめてみてもベランダまでは来ない。。。

 家に来るのに飽きたのか?効き目があったのか?よくわかりません。。。

再動作確認

// Func flg
const int sigWork = 6;
// Input Pin of PIR Sensor
const int pir = 2;
// LED Pins
const int led1 = 13;
const int led2 = 12;
const int led3 = 11;
const int led4 = 10;
const int led5 = 9;
const int led_pins[] = {led1, led2, led3, led4, led5};
const int num_of_led_pins = sizeof(led_pins) / sizeof(led_pins[0]);
 
void setup() {
 pinMode(pir, INPUT);
 pinMode(sigWork, INPUT);
 for (int i = 0; i < num_of_led_pins; i++) {
  pinMode(led_pins[i], OUTPUT);
 }
}
 
void loop() {
 int led_light = led_pins[random(num_of_led_pins)];
 
 if(!digitalRead(sigWork)) {
  if(digitalRead(pir)) {
    digitalWrite(led_light, HIGH);
    delay(100);
    digitalWrite(led_light, LOW);
  }
 }
}
2017/06/04

 鳥達のさえずり大合唱は相変わらずで心安らぎますね。

 一方、あれ以来、ベランダに鳥はすっかり来なくなって電池ももったいないしと放置していた、この装置。

 場所を移動したりした際などに配線を挿し間違えたのか、なんとなく電池をつないでみると、なぜか動かず。

 確認してみると、Pro MiniのLEDが慌ただしくなってきたのでマルチメータで電圧を測ると4.7V程度と5VのPro Miniに対し不足気味。

 しばしば電池ボックスごと他の検証で使うことも多々、というわけで電池も交換、というか、これが原因だったっぽい。

 ついでに37センサーキットにあったCDSを使ったフォトレジスタモジュールも追加。

 そのままだと暗くなると機能してしまうので逆に暗くなると機能しなくなるようにスケッチに追記・編集してみました。

 こんな感じだから今のところ、基板実装するほどでもなく、400穴ハーフサイズのブレッドボードのまま、微妙な位置関係からフォトレジスタはミニブレッドボードに追加。

 あと、先の動画から言うとUNOからPro Miniに置き換えたものとなっています。

 動画は、フォトレジスタモジュールを手のひらで覆うと機能しない様子を撮ったもの。

 微妙に薄暗くて見えづらいですが、自作アームスタンドの上段にHC-SR501 PIR・赤外線検知センサー、中段が白い400穴ブレッドボード上のPro Mini、5つの青色LED、その下が白いミニブレッドボード上のフォトレジスタモジュール、下奥が単3x4の電池ボックス。

 ちょっと大きくなってしまいますが、100均あたりで10cm四方程度のケースがあれば、それに収めることで一応、試作品完成と言えるでしょう。

アルミキャップ付きキャニスターに入れた鳥よけ試作回路

筐体収納・再設置

[2017/07/23]

 セミの大合唱も始まり、鳥が大好物な実が色づいてきたため、改めて設置してみることにしました。

 結局、ケースは防水、吊り下げ、直置きなどの可能性も考慮し、100円ショップSeriaで買ったアルミキャップ付きキャニスターにしてみました。

 ブレッドボード上の試作であり、ジャンパワイヤやワニグチクリップが外れないようにそっと入れています。

 中は雑然としていますが、機能するので問題なし。

 焦電センサーHC-SR501は、透明でも1枚噛ますと検知しなくなるようなのでキャニスターに半田ゴテを使って穴をあけ、センサーを出す窓を作ったのですが、とろけ具合で凸凹になり、やすりがけも結構手間なので適当に済ませ、雑さが残る中、隙間埋めに結束バンドの切れ端をグルーガンで糊付け、ひさし代わりにもよいかとグルーを盛り盛りにしてみました。

 予定変更で電源には、単3電池x4(6V)をPro MiniのRAWに入力、VCCから得られる5Vを使い、LEDは3mmではなく5mmを使うことにし、電池ボックスは単価50円、400穴ブレッドボード118円、ミニブレッドボード単価40円、CDSモジュール(2000円の37センサーキットの1つなので)単価60円弱、ジャンパワイヤは40本100円ちょっと、カーボン抵抗400本240円を5本、LED 5mm 100個250円を5個、ワニグチクリップx4で54円、ケーブル合わせて約60円で約100円として、キャニスター108円、Pro Mini 265円、焦電・赤外線センサー145円で締めて約886円。

 尤も400穴ブレッドボードも空いているため、CDSモジュールをそのスペースに載せれば、ミニブレッドボードは不要でキャニスターにも入れやすくなるし、約40円節約できますが、設置場所によっては、光センサーを分離しておくことによってある程度、柔軟に位置や向きを変更できるというのはメリットにもなり得ます。

 フォトレジスタであるCdS(硫化カドミウム)セルでなくともフォトダイオードや照度センサとも呼ばれるフォトトランジスタ、フォトダーリントンなどを使えば同じことができ、例えば、先日このフォトダイオードを買ってみたところ20個135円(単価約7円)だったので、これを使えば、更に50円ほどコストカットできることになります。

 ちなみに極めて僅かな差ながら、一時、大小/赤黒各2(8個)108円でダイソーの方が安価だったワニグチ・みのむしクリップ、先日、Amazon/HiLetgoで小型赤黒各10個(20個)280円だった同品が、150円に値下がりし、HiLetgoの方が安くなりました。

 sleepはさせていないものの、日中のみ、鳥などが3m内外に飛んできたときのみ作動であとは、Pro Miniの電源LED分含む待機電力、たぶん、数日くらいは(スリープ入れれば当然もっと)もつでしょう。

 ところで、あまり深く考えてないで(電気の素人である自身が電子工作を)やっているのですが、昇圧と降圧だとどっちが電池長持ちするんだろ?

 降圧だと余っている間、その分は熱として捨てられ、電源を要するデバイスの電源電圧仕様未満まで下がると電池交換を要することになる、一方、昇圧だと一貫して無駄はありませんが、ポテンショメータなどで調整が効くなら手作業ながら昇圧レベルを上げることも可能とはいえ、電池の消耗が早いと思われます。。。やっぱり、計算してみないとわからないって話か。。。

[2017/08/10]

 Pro Mini 5V版に単3x4で電圧残量5.3V程度だったかな?をつないだら1週間程度もちました(日中、鳥が近づいたときだけ機能)が、雨はともかく、直射日光の当たる場所に置いていたからか、センサー部取付時、いじり過ぎたからかセンサー感度がいまいちになり、一時撤去、検証も兼ねてセンサー他追加発注中で、今も到着待ち。

 鳥たちも「おい、あそこ、青いの光るから気をつけろよ」と警戒していたのか、それとも連日の猛暑についばむ気力もなかったのか、はたまたターゲットは緑 => 橙と色づくことをよく知った上で実が橙になるのを待っているのか、撤去後から今日まで実は無事でした。

 しかーし、橙に色づいた実がますます増えてきた今日この頃、可愛い鳥の襲来を目撃、1粒くらいよいよと言いたい思いをグッとこらえ、試作機を出してきて再検証してみるとなんのことはない、しばらく放置しておいて機嫌がよくなったのか、元気を取り戻したのか、はたまた電池の消耗具合が原因だったのか、ちゃんと機能することを確認したので再設置。

[2017/08/20]

 これ効いてるみたい...この植物、こんなにたくさん実がつくんだったんだ...っていうほど10日前にも増して橙の実がたわわ、鳥は相変わらず近くにたくさんいますが、今のところ全く被害はないようです。

スリープ機能を追加

#include <avr/sleep.h>
// pin num for outer interrupt are 2 and 3 on Uno.
#define sigLight 2
#define sigPIR 3
 
// LED pins
const int led1 = 13;
const int led2 = 12;
const int led3 = 11;
const int led4 = 10;
const int led5 = 9;
const int led_pins[] = {led1, led2, led3, led4, led5};
const int num_of_led_pins = sizeof(led_pins) / sizeof(led_pins[0]);
 
void wakeUpNow(){
Serial.println("wake up!"); //復帰時にシリアルモニターに表示
delay(500);
}
 
void sleepNow(){
set_sleep_mode(SLEEP_MODE_PWR_DOWN); //スリープモードの設定
sleep_enable(); //スリープを有効にする
 
//attachInterrupt(1,wakeUpNow, RISING); //割り込み処理の設定
//attachInterrupt(digitalPinToInterrupt(sigPIR), wakeUpNow, RISING);
attachInterrupt(digitalPinToInterrupt(sigPIR), wakeUpNow, FALLING);
sleep_mode(); //指定したモードでスリープを開始
sleep_disable(); //割り込みによってスリープから復帰
detachInterrupt(1); //割り込み処理を解除する
}
 
void setup()
{
  Serial.begin(9600);
  pinMode(sigLight, INPUT_PULLUP);
  pinMode(sigPIR, INPUT_PULLUP);
 
  for (int i = 0; i < num_of_led_pins; i++) {
    pinMode(led_pins[i], OUTPUT);
  }
}
 
void loop()
{
  int led_light = led_pins[random(num_of_led_pins)];
  int light = digitalRead(sigLight);
  int pir = digitalRead(sigPIR);
 
//  if (light and pir) {
  if (!light and !pir) {
    Serial.println("Awake!"); //動作中の表示
/*
    Serial.print("sigLight : ");
    Serial.println(light);
    Serial.print("sigPIR : ");
    Serial.println(pir);
*/
    
    digitalWrite(led_light, HIGH);  // turn on Light
    delay(100);
    digitalWrite(led_light, LOW);   // turn off Light
    delay(100);
  } else {
    Serial.println("Goodnight!");
    delay(20);
    sleepNow(); //スリープモードにする
  }
}
[2017/08/29]

 この鳥よけ装置、他に先んじて日常的に使うようになってみると電池の消費量も高い(1週間程度ごとに電池交換するのも意外と面倒だし、省エネじゃない)ので重〜い腰を上げてArduinoのsleep機能を取り入れてみることにしました。

 つまり、明るくて(日中)、かつ、赤外線焦電センサーが反応した場合にのみ機能させ、暗い(夜間)か、赤外線焦電センサーが反応しないかの何れかの場合には、機能しないばかりでなく、スリープするようにスケッチを改良しました。

 ついては、下記リンク先を参考にさせていただき、コードについては、コメント含めてdeviceplusのものをそのまま流用させて頂きました。

 avr/sleep.hをインクルード、スリープを実行する関数sleepNow()、割り込みを行なうattachInterrupt()関数の第2引数用に割り込みが行われる際に実行する関数wakeUpNow()を用意、前者の関数では他にもいろいろ指定できるようですが、リンク先の設定をそのまま、後者の関数についても同様、今回はシリアルモニタ出力のみとしました。

 スリープ以外で前回からの変更と言えば、入力ピンの条件分岐で条件を1つにまとめたこと、入力ピンの変数名を変えたことと、pinMode()関数の第2引数をINPUT_PULLUPとしてArduinoボード内蔵のプルアップ抵抗を使ったこと。

 プルアップ、プルダウンの意味や、これを設定しないと入力ピンにおいて「初期の状態が不定になる」というのはわかるも、今ひとつ理解しきれておらず、つい、最近までは使ってこなかったこともあり、この認識が正しいのか不明ですが、「LEDを点灯させた(HIGHの)まま、スリープさせると消灯せずに点灯し続ける」といった情報もあり、なんとなく、スリープに関しては、割り込みピンの状態が不定で仮にLOWだった際には復帰できないんじゃないか?と思ったため、今回は意図して使ってみました。

 尚、本筋とは関係ありませんが、gammon.com.auを拝見させて頂いていて、確かにデジタルピン指定の宣言・定義では、intじゃなくてbyteで十分だよな...と思いました、が、巷ではintが多用されているようだ、C/C++界隈ではbyteは...っていう何か理由があるんだったっけ?別にないなら微々たるもんだろうけどArduinoの場合、特に変数領域節約になっていいよね。

 最初にUnoでテスト、初スリープも一発OKだったので鳥よけ装置のPro Miniにそのまま取り込もうと思ったら、なぜか、うまくいかず、もしかしてPro Miniって復帰に使えるピンが違うのか!?なんて一瞬思いつつ、なんだかんだと時間がかかりましたが、最終的に変更なく、そのまま取り込む形でPro Miniでもうまくいったので配線の接触とかそんなことだったのかもしれません。

 それにしても日差しにさらしておいたらジャンパワイヤの被覆も色褪せてきたな...。

 そういえば、雨風はしのぎつつ、せめて通気口になる程度の穴を空けておかないとボトル内の温度相当上がってるよな...。

 透明ボトルだから虫眼鏡状態になることだってありえるし。

 この猛暑・酷暑の中、よく耐えてるな...。

 となると電池が直射日光や虫眼鏡状態に何時間も晒されてるって相当危険でヤバイよな...。

 っていうか、露出部は人感・鳥獣センサーとして使っているHC-SR501のフレネルレンズのみ、ケース越しでも外から見える必要があるのは、青色LEDだけでよいんだよな...。

 雨ニモ負ケズ、風ニモ負ケズ、直射日光にも難なく耐え忍び、通気性が高く、熱波にあってもケース内はこの上なく涼しく...、そんな都合の良い、そして安価なソリューションに私は会いたい...って、そんなこと言ってないで早急にケーシングを再考せねば...。

[2017/10/12]

 相変わらず鳥はたくさんいますが、ベランダには来ないし、花や実も全く被害がないので、これは効果ありと言って間違いなさそうです。

 電源の方は、Pro Mini 5V 16MHzに単3乾電池x4本(電池容量約6.2V)、Arduinoのスリープモードの内、最も低消費電力と思われる[SLEEP_MODE_PWR_DOWN]でやってみたところ、ちょうど1ヶ月くらいもつようになりました。

 機能しなくなったと気づいた時の電池残量は、4本で約1.7V、個別には3本が約0.9V、1本がなぜか-8V。

 スリープさせない場合に比し、約4倍の持続とスリープモード([SLEEP_MODE_PWR_DOWN])の効果を実感はできたものの、数カ月もつことを期待していたのですが、難しそうで、より長時間持続させるならPro Mini 5Vで8MHzにするか、3.3V 8MHzにするしかなさ気。

[2017/12/03]

 鳥だけど、うぉぉおおお〜...トランジスタ使うの忘れてた...使えば、もっともつよね?

 入力が固定で出力がhfe倍じゃなくて、必要な出力に対してベース電流を抑制できるってことだもんね?違うんだっけ!?

 そうだとしたら、数カ月どころじゃなく、超長寿命になるんじゃない...?場合によっては電池の本数減らしてもよいのか!?

 更にPro Miniの3.3Vを使いつつ、LEDを外したり、動作電圧リミットを下げるべくfuse書き換えをしている方も...更に更に、いっそのこと、ATmega328にしちゃえば...期待通りならトランジスタで十分か、いや、やはり、極限まで...。

 1年以上持つなら、すっかり、さておいちゃってる時計も...。

 今更ながら、この植物、フユサンゴっていうらしい...そろそろ見頃も終わったから『鳥さんトリあえず距離トリたい装置』もトリ込んでみることに...実りの季節以前にカラスと間近で対面したら、また、お願いすることになると思うけど...。

[2018/01/07]

 トランジスタの増幅については誤解しているかも...。

 電池残量1.7Vについては、brown outだったか?「しない」を含めてArduinoボードの電圧チェックを3段階くらい変更できる模様。

[2018/06/07]

 ようやく、電源を100均のアルカリ乾電池からエネループに変更。

マイナーチェンジ/筐体+ブレッドボード => ユニバーサルボード

[2020/01/22]
ユニバーサルボード版への変更に伴い筐体ケースを小型化したArduino鳥よけ装置

 ユニバーサルボード(ユニバーサル基板)にはんだ付けし、小ぶりになったため、ケースも小型に。

 筐体は、100均で買った高さがあって上半分がガルウィングのように開くフタを兼ねた半透明(淡い乳白色)のトレカケースとして売られていたもの。

 キャンドゥでも見かけたものの、確か買ったのは、セリア。

 収めることだけを考えれば、もっと小さなケースで十分も人感センサー取り付け位置や電池交換を考慮しつつ、100均の既成品からのチョイスでピッタリを求めるわけにはいかない上での結果、これくらいが妥当かと。

 構想では、ユニバーサル基板用とは別に電池ボックスがちょうど収まる程度の片開きでパチっと止まる蓋付きケースがあれば...と思っていました。

 そうであれば、配線穴をあけつつ、面同士接着、基盤や配線への負荷を考えることなく、電池交換を容易にすると同時に基板側も人感センサの取付はあるにしてももっと小さなケースにできたはずなので。

 また、青の発色や反射具合などから本来は、無色透明のクリアケースの方が、好ましいと思ったものの、ちょうど良さげなものがなかったので妥協しましたが、シーズン真っ盛りではないこともあってはっきりしないものの、それなりに効果はありそう。

 人感・焦電センサー部は、やはり、グルーガンで適当に固定、ちょっと盛りすぎた感があり、削ぎたいところですが、とりあえず、前方方向、上下左右ともに感度良好っぽいのでよしとしました。

[2020/01/25]

 気づけば、キャンドゥの別店舗に良さげな無色透明ケースが複数ありました...。

マイナーチェンジ/LDRモジュール => CdSセル

[2020/07/04]

 07/01、浸水、ショートで壊れたこの装置、センサーも赤外線からマイクロ波レーダーに変更したものを、新たに作りつつ、フユサンゴの置き場をバルコニーから玄関に変更したのでそちらに設置、バルコニーには、鳥よけ装置がない状態でした。

 が、バルコニーの方もかわいく感じなくもないものの、カラスとの直面は避けたい、あわよくば、(かなりでっかい)ハチも、色覚があるとすれば、もしかすると避けられるかも?とArduino Pro Mini+PIRセンサー+ユニバーサル基板バージョンの鳥獣よけを設置することに。

 ただ、玄関に置いたほうというか1作め(改)は、フォトレジスタ/37センサーキット光センサー3ピン光センサー4ピンの内、3ピンでデジタル入力のCdSセルが載ったフォトレジスタモジュールを利用していたのですが、37センサーキットの1個が壊れ、4ピンの1個はどこかさまよっているのか見当たらず(あった、とある試作品に1個、更にベッド下照明に1個使用してた、となると3ピン1個はどこに...)、2作めの今回は、アナログ入力となるCdSセル単体 GL5539を使うことにした為、回路とスケッチが若干異なります。

 ちょっとわかりにくいのですが、要は、バルコニーに設置していた1号機は、ケースと感知センサーをマイクロ波レーダーセンサーに変更、リニューアルし、玄関に設置、新たに作った2号機は、1号機の筐体とPIRセンサーを使いつつ、光センサーをモジュールからCdSセル(LDR)に変更の上、バルコニーに設置することにしました。

 とは言え、自分でもこんがらがるので以後、バルコニーに設置してあるものを1号機、玄関に設置してあるものを2号機と認識することにします。

 また、バルコニーだと室内の動きも感知してしまうRCWL-0516では、都合がよくないので鳥獣センサーには、1作め同様、PIRセンサーHC-SR501を、RCWL-0516と違い、センシング部となるフレネルレンズ部分を外だしする必要があるのでケースには、筐体として2代目のガルウィングっぽいトレカケースをそのまま使うことにし、今度は浸水しないように入念にグルーで固めました。

VCC---10k ohm---CdS---GND
              |
              A0

 CdSセルGL5539には、10kΩの抵抗が良さげ、ということでこんな風につなげました。

 この簡易回路をブレッドボード上で仮組み、ArduinoボードのA0の入力をanalogRead()で受けて0-1023のアナログ値でしきい値を探して程よい値を以て明るい・暗いを判断、結果、今回は、場所により、400〜600くらいで良さげです。

#include <avr/sleep.h>
// pin num for outer interrupt are 2 and 3 on Uno base board.
//#define sigLight 2
int sigLight = A0;
#define sigPIR 3
 
// LED pins
const int led1 = 13;
const int led2 = 12;
const int led3 = 11;
const int led4 = 10;
const int led5 = 9;
const int led_pins[] = {led1, led2, led3, led4, led5};
const int num_of_led_pins = sizeof(led_pins) / sizeof(led_pins[0]);
 
void wakeUpNow(){
Serial.println("wake up!"); //復帰時にシリアルモニターに表示
delay(500);
}
 
void sleepNow(){
set_sleep_mode(SLEEP_MODE_PWR_DOWN); //スリープモードの設定
sleep_enable(); //スリープを有効にする
 
attachInterrupt(1,wakeUpNow, RISING); //割り込み処理の設定
//attachInterrupt(digitalPinToInterrupt(sigPIR), wakeUpNow, RISING);
//attachInterrupt(digitalPinToInterrupt(sigPIR), wakeUpNow, FALLING);
sleep_mode(); //指定したモードでスリープを開始
sleep_disable(); //割り込みによってスリープから復帰
detachInterrupt(1); //割り込み処理を解除する
}
 
void setup()
{
  Serial.begin(9600);
//  pinMode(sigLight, INPUT_PULLUP);
//  pinMode(sigPIR, INPUT_PULLUP);
  pinMode(sigPIR, INPUT);
  digitalWrite(sigPIR, LOW);
 
  for (int i = 0; i < num_of_led_pins; i++) {
    pinMode(led_pins[i], OUTPUT);
  }
}
 
void loop()
{
  int led_light = led_pins[random(num_of_led_pins)];
//  int light = digitalRead(sigLight);
  int light = analogRead(sigLight);
  int pir = digitalRead(sigPIR);
 
//  if (light and pir) {
//  if (!light and !pir) {
  if (light < 500 and pir) {
    Serial.println("Awake!"); //動作中の表示
/*
    Serial.print("sigLight : ");
    Serial.println(light);
    Serial.print("sigPIR : ");
    Serial.println(pir);
*/
    
    digitalWrite(led_light, HIGH);  // turn on Light
    delay(100);
    digitalWrite(led_light, LOW);   // turn off Light
    delay(100);
  } else {
    Serial.println("Goodnight!");
    delay(20);
    sleepNow(); //スリープモードにする
  }
}

 それを踏まえ、他の条件を替えなければ、スケッチは、基本、フォトレジスタの入力をデジタル値で判断していた部分をアナログ値での判定に変える必要があるので、これに関する部分を変更するだけです。

 ただ、今回、なぜか、Arduinoのプルアップがうまくいかないっぽかったのでsetup()内でPIRセンサー用のピンにおいてpinModeのINPUT_PULLUPをINPUT、直後にdigitalWriteでLOWとしました。

 また、これまた、なぜか、スリープ復帰ピン指定digitalPinToInterrupt()だとうまくいかないっぽかったのでD3とした今回は、1(D2なら0)としました。

 今回もPro Miniを使ったのですが、なぜか、不思議とPro Miniに関しては、超初心者の頃、ショートさせた、今回の浸水でショートした鳥よけ用各1個含め、これまで何個も壊しており、一応使えるものも、電源LEDがつかない(これは初期不良だったかな?)、いくらハンダをやり直してもRAWからの電源入力が取れないなんてものもあって鬼門だったりします。

 NanoもUnoもMegaも持っており、Nanoはあえてピンヘッダ未ハンダのものも結構買っていますが、壊したことはないんですけどね。

 逆に言うとUno-Pro Mini-Nanoの順に使い始めた自身は、鳥よけをはじめとして、こぶりなPro Miniを実装品用に気に入って多用したいと思っていただけに、電子工作においてもハンダ付けにおいてもPro Miniでの失敗を糧に成長させてもらったということなのかもしれません。

[2020/08/21]

 バルコニー用の鳥よけ装置、Pro MiniのBODを2.7Vから1.8Vに変更して電池の持ちを検証してみることにしました。

 スタートは、8/22朝からということで。

 というか、この作業に伴い、リンク先にある通り、鬼門、壊れていたかに思われたPro Miniが3年越しに壊れていなかったことが判明したというか、直りました。

[2020/09/14]

 朝、電池切れを確認、長持ちするかと思いきや逆に1週間程度短い、しかも、4本中2本が過放電状態(DMM計測時マイナス表示など)...。

 電池が1本なら良いのかもしれませんが、4本となると特定の電池に負荷がかかることがあってBOD下げると尚更なのかも?というわけでBODは、2.7Vにしておいた方が電池には優しそうです。

 そもそも2.7Vでも電池切れの際、4本中3本が1V程度でも1本だけ0.6〜0.8Vとかいうことも日常茶飯事で、そう言えば、時には1本だけ過放電状態になったこともあったような...。

 そう考えるとBODを下げたからと言って必ずしも電池の持ちがよくなるわけではなく、むしろ、電流消費が1本に集中したりして悪化することがあっても不思議じゃないのかも?

[2020/09/15]

 予備の充電池はあるも、いろいろあってBODは元に戻して満充電で今朝設置。

 ちなみにPro Miniをどこで断線しているのか未確認も購入当初から電源LEDが点灯しない他の個体と変更。

赤外線からマイクロ波レーダーへセンサーを変更した2号機

[2020/07/01]

 4月だったか、いや5月だったか、あれから、豪雨に見舞われ、グルーで埋めたはずの人感ならぬ鳥獣センサーとして使用中のHC-SR501のフレネルレンズ部露出用のケースの穴の隙間から内部に浸水、Arduinoボードがショートしました。

 コロナ禍でAliexpressでも買い控えていることもあり、しばし放置していましたが、フユサンゴもオレンジに色づき始め、旬が近づいてきたので仕方なく、Amazonで購入することに。

 PIRセンサーHC-SR501も買いましたが、浸水の件があるのである程度の壁越しでも密閉した筐体越しでも360度検知可能なドップラー効果を利用したマイクロ波レーダーセンサーRCWL-0516も併せて購入。

100均キャンドゥのPUSH POT 500を筐体に鳥獣センサーとしてPIRセンサーHC-SR501からドップラーレーダーセンサーRCWL-0516に替えたArduino鳥よけ装置

 このマイクロ波レーダーセンサ、単に人感センサと入れ替えるだけで鳥よけ装置のセンサーとして機能しました。

 と言っても熱感知ではないのでちょっとした壁越しであっても動くものがあればなんでも反応してしまうのですが、鳥に反応する現場は未確認です。

 冬サンゴの置き場をバルコニーから玄関先ドア脇に変え、室内の動きにも反応しないことは確認済み。

 よってHC-SR501からRCWL-0516(今回ではなく、以前買ってピンヘッダ オスをはんだ付けしてあったもの)に替えることに。

 また、これに合わせ、筐体も前回妥協してケーシングした直後に見つけた100均キャンドゥのPUSH POT 500(700や900じゃなくても収まった)に替えてみることに。

 センサーの特性から密閉できるし、PUSH POT自体も密閉度が高いはずなので風で飛ばされない限り、豪雨などの過酷な環境下でも大丈夫でしょう(とは言え、底とかに放熱穴はあけた方がよいんでしょうね...)。

 ただ、玄関付近の往来はもちろんのこと、360度感知ということもあり、玄関ドアの開閉時にも反応してしまうため、電池の消耗が気になるところで検証を兼ねて今日、設置。

 ちなみにケース内では、LEDを正面の良き位置をキープすべく、電池ケースを背もたれにして傾斜を付けて基盤を載せたいので電池ケースが倒れない(ペタンと寝ない)ように底面角とケース底面を最近超お気に入りの傷も汚れも付けず、何度でもはってはがして繰り返し使える粘着ラバーブルタックで貼り付けて固定しました。

[2020/07/13]

 バルコニーでは1ヶ月もつ鳥よけ、今朝電池切れだったので昨日までとして玄関用は12日でした...ドアの開閉時にも反応するので単純に稼働回数が多いからでしょう。

[2020/07/26]

 今朝電池切れを発見、昨日は動いていたので、今回玄関用は、朝からなので13日を含め、25日まで丸13日。

[2020/08/25]

 あれから、新品のはずなのに充電の度に過放電状態だったこを示すセンシング充電となる怪しすぎる燃費の悪いアマループに替え、初期充電量が少なかったこともあり、3回充電切れを迎え、今3回めの充電中。

 そもそものアマループの電池もちの微妙さはさておき、バルコニーにある1号機(改)同様、Pro MiniのBODを2.7Vから1.8Vに変更して電池の持ちを検証してみることにしました。

[2020/09/06]

 あれ!?、今朝充電切れ、26日からとして11日...。

 BOD下げても変わらないってどういうこと!?

 っていうか、Arduinoの電源LEDも消えていた...。

 が、BQ-CC85で充電してみると、この、いわくつきのアマループ、充電時、常に過放電状態だったことがある電池ということでセンシング充電にはなるものの、わずか1分程度で黄点灯になったので今回については、それなりの残電圧もあり、過放電になったわけではなさ気...。

 実は、3号機の代わりに、しばらく花壇に置いていたのですが、ある日見に行ってみると、さすがマイクロ波レーダーセンサーというべきか、なぜか検証時以上に、あらゆる角度から、生け垣越しでも結構な距離でも感知し、ほぼ光っている状態、これで数日そのままだったので単純に稼働回数が多かったのかも...?

 とは言え、奇しくも電池切れまでの日数が、(微妙に電池切れが早すぎるアマループだと)以前と同じ11日というのが気になりますが...。

 とりあえず、もう1回、玄関先のみに置いて確認してみよう...。

[2020/09/18]

 今朝、最初に見た時は、まだ動作しており、その後、充電切れ、6日からとして12日。

 微妙に延びましたが、DMMで見ると1本が過放電状態、やはり、そこそこの電圧という意味では3.7Vのリチウムイオン電池1本を昇圧して使うような場合は、BODを下げた効果が出そうですが、1.2Vゆえ4本だと往々にして均等に電流消費しないので、あまり、効果は出ないんじゃないかと自分なりの結論に至っていますが、どうなんでしょうね。

 ATmega328PのICで実装したら、だいぶ変わるのかな?

[2020/09/30]

 やはり、2号機の電池のもちは、約11〜12日ですね。

 RCWL-0516が電流食いなのかな...違うか、HC-SR501より検出範囲が広いから、その分稼働時間が長いってことか。

WS2812B LEDテープを採用した3号機

[2020/07/11]

 先日、筐体と露出するPIRセンサー部周囲にグルーを塗り直し、防水加工しなおしたベランダにある鳥よけ初号機、連日の比較的強い風雨に晒され、これまでになく、毎日、ずぶ濡れのビッショビショですが、浸水もなく、バッチリ機能しています。

 それはさておき、今秋設置を予定していた庭と言うか花壇にある、赤い実がなるセンリョウとナンテン用の鳥獣よけ装置。

 コロナ禍でAliexpressへの発注も控えており、今秋の設置は諦めようかとも思っていましたが、発注してみることに。

 というわけで、それなりの広さもあり、点滅させるのは、砲弾型LEDじゃなくてNeoPixelで有名な個別にLED操作できるWS2812BタイプのLEDテープライトでIP67防水にしてみようかと。

 バルコニーでの効果を見る限り、砲弾型でもいけそうな気もしなくもないものの、NeoPixelタイプに興味もあったので。

 防水を考慮した装置からの配線となると数十cmのを複数本というのもなんですし、LED30球も要らないと思いつつ、1mくらいの1本を縦、横、斜めの何れかに這わせておけばよいかなと。

 配線部などの防水を考慮してシリコンコーキング剤透明の熱収縮チューブも追加で買ってみました。

 実がなる植物は秋のそれらだけなので真夏含め、冬・春・夏の季節は装置を回収すれば良いとは言っても秋は残暑の季節も重なりますし、事前検証は夏となると防水のためシリコンチューブに入ったLEDテープ、やっぱり、放熱用にアルミステーみたいなものもいるでしょうね。

 自動ON/OFFタイマー付きLEDテープライトスイッチ式デスク下照明PIRセンサーによるベッド下照明、電池式スイッチ付きハンディ照明など非防水の3528 LEDテープライトで作ったものは、念の為、アルミアングルバーを放熱用に使っています。

 が、ON/OFFタイマー付きもそうでもないですが、それ以外は、尚の事、長時間つけっぱなしということがないので、アルミバーはなくてもよさそうな気がしなくもないかなーと思う一方で12V用で昇圧してあるということもあり、光量を見るとやっぱり要るかなという気分にもなります。

 まぁ、入力5Vとは言え、これらと違って相応の厚さのシリコンチューブで厚着してるわけですし、WS2812/WS2812Bなどの個別制御可能なもののLEDも3528と異なり、サイズも大きい光源3チップの5050でしょうから、やはり、あったほうがよさそうなので念の為サイズを確認すべく、LEDテープが届いてから近所のホームセンターででも買ってくることにしようと思います。

 そうなるとケーシングと配線、防水を考慮しつつ、物理的に余計な負荷がかからず、無理なく柔軟に配置できるつくり...対象植物の植生と装置の目的からしてアルミステー付きLEDテープを地べたに這わせると効果が薄そうなのでそういうわけにはいかないとなると防水加工が必要な配線部を結構長くとる必要が出てきそう...、どうしたらよいものか...。

 買ったLEDテープ、IP30/IP65は両面テープ付きもIP67には両面テープはないらしいので両面テープかなんらかの代替も用意する必要がありますが。

 あとセンサーは、赤外線センサーか、ドップラーレーダーか...、1面は壁、2面は道路に面し、内1面は生け垣越し、もう1面も一部は生け垣並の植物があり、残る1面は言う慣れば鑑賞側、マイクロ波レーダーだとどこを通っても反応してしまう、とすれば、PIRセンサー一択か...。

 が、PIRセンサーの防水も考えなくてはならなくなる、LEDテープライトを使う場合の設置を考えると広範にセンシングできた方が良い気もするとなると密閉できるマイクロ波レーダーセンサーに歩がある...。

 それと電源、鳥よけは設置場所からしても単3エネループ4本での電池駆動、ただ、LEDテープライトの球数によっては、追加で単3エネループ4本とか別電源が...、でも点滅させるわけだし、1m30球、1度に光らせるのがLED1〜3個程度なら、Arduinoと共用でも十分いける気がする...。

 が、個別操作できるWS2812なのか、WS2812Bなのか、これについては、1球(と言っても5050は50mmx50mmのスペースにLED3つ)の消費電流50mAとかいう噂も...それが本当ならArduinoだと2球も危うい?届いたら確認してみよう...。

 それにしても、いろいろ考えると結局、密閉できる砲弾型LED+マイクロ波レーダーセンサーが簡単...真夏もとなると装置自体の熱も無視できなくなってきますが...。

[2020/07/23]

 前掲のリンク先に記載した通り、一昨日、LEDテープライトが届いたところで早速、動作確認を行いました。

 十分な明るさだったのでスケッチ上で照度を0-255の内、8まで落として30球(1m)でLEDを2個ランダムに点滅させ、しばらく放置しておきましたが、Arduinoでも2個ならいけそうです。

 また、シリコンチューブも密着しているわけではなく、内部に余裕もあるので屋根のない室外とはいえ、植物の茂みに配置、常時点灯させるわけではなく、感知した時だけ一時的に点滅という自身の使用方法においては、むしろ、ちょっとだけチップが熱くなるArduino側にはいるかもしれませんが、LEDテープ側の放熱対策は要らなさそうです。

 配線部防水用に用意した熱収縮チューブでしたが、当たり前のように何も考えずに買った内径10mmでは細かったので改めて内径12mm/15mm/20mmの透明の熱収縮チューブを調達しました。

 花壇でのLEDテープは、向きはともかく、天地方向に配置、一端は制御部、他端は、立ち上げるにしても、ぶら下げるにしてもセンリョウの幹か枝に軽く縛る恰好にしようかと。

 あとは、センシングをPIRセンサーHC-SR501にするか、マイクロ波レーダーRCWL-0516にするか。

 併用という選択肢もあるにはありますが、あまり意味がなさそうなので除外。

Arduino/WS2812B LEDテープ/HC-SR501版鳥よけ装置回路 by Fritzing

 手間がないのは、マイクロ波レーダーなので検知状況をテストして問題なければ、これにしようかと。

 電池の消耗(通信できなくなった=電池切れとか)も知りたいし、Wi-Fiが届けば、Arduinoではなく、ESP32を使うところですが、Wi-Fi電波範囲外、やるならLoRaWanでしょうが、とりあえず、さておいてArduinoで。

 電源は、これまで同様、エネループ単3x4をVIN/GNDに配線、どのくらいの期間もつのかはさておき、動作することは確認しました。

 Fritzing用パーツがないのでRCWL-0516ではありませんが、RafaGS / Fritzing 提供のHC-SR501と自身のは30球/mですが、LEDテープライトにzebradog / fritzing-pololu-led-60を使わせて頂くとこんな感じでしょうか。

 LEDテープは、1m程度のものを1本でいけそうなのでスケッチは、動作確認時のものをLED30球に、1度に1つ間隔をあけた2つのLEDをランダムに点滅させるよう変更(テスト済み)、これに加え、RCWL-0516、CdSセル(LDR/Light DecreasingDependent Resistance)の条件を入れたものにする予定です。

 ちなみにFritzingを久しぶりに起動したら、警告が多発、その中で、どうも/usr/share/fritzing/partsが存在しないことが問題なようです。

 たまたまだとは思いますが、起動前にパーツリストにないパーツ群を大量に提供してくれていたとあるgithubのプロジェクトから拝借しようとダウンロード・展開したあとのことです。

 自身が使っているDebianのリポジトリには、fritzing、fritzing-data、fritzing-partsがあり、アンインストール/インストール含め、何をどうしても症状が変わりませんでした。

 それでもlsしてみると確かに/usr/share/fritzing/partsどころか、/usr/share/fritzingもありませんし、以前そこにそれがあったのかどうかも覚えていません(/usr/share/doc/fritzing/partsはありますが、docなので文書でしょう)。

 そこで本家サイトに行ってみると有償(有料・寄付必須)になったようですが、もしかしてこれに起因?

 一方、githubで配布されているfritzing / fritzing-appの右ペインの[Releases]下、(現時点では[CD-498])[Latest]となっている開発版と謳っている方は、無料でダウンロード・展開できました。

 そこで/usr/share/にfritzingディレクトリを作成、ダウンロード・展開した開発版の中にあったfritzing-partsディレクトリをpartsディレクトリと改名してコピー、Fritzingを起動したところ、警告も一切なく、普通に起動するようになりました。

 よく見るとfritzing / fritzing-partsを発見、開発版全て落とすまでもなく、これさえあれば良かったということですね。

 有料化した影響でDebianリポジトリにfritzing-partsパッケージはあるものの、中身がなくなったのかも?

3号機設置

[2020/07/31]

 花壇に自身3つめとなる鳥よけ装置を設置してみました。

 結果、回路は、LDRの閾値以内、ドップラーレーダーセンサーが感知した時に作動、青色LEDが一度に1つおきに2つ、ランダムに点灯(点滅)、それ以外はスリープ。

 材料は、WS2812B LEDテープライト(5V) 1m、Arduino Nano、RCWL-0516、CdSセル(LDR)、抵抗10kΩ、単3x4電池ケースをユニバーサル基板に実装、電池はエネループx4本、キャンドゥの(無色透明でカチッと締り、フタの特定の場所を押すとカチッと音がして簡単に開く不思議で便利な)PUSH POT 500に格納。

 LEDテープライトの放熱対策はせずに様子見することにしました。

 制御部は数日前に作って動作確認済みなので、残るLEDテープの接続・加工。

 VCC/Din/GND配線はんだ済みのLEDテープですが、ちょっと短いので手持ちのケーブルをつないでハンダで継ぎ足し、100均の熱収縮チューブで絶縁・補強。

 内径12mmの熱収縮チューブに配線側であるシリコンキャップ付き、(たぶん材質は)シリコンで補強済みで届いた幅13mm、厚さが3mmほどのIP67防水のシリコンチューブ入りWS2812B LEDテープライトを入れ、一方、切断し、シリコンキャップのない他端は内径10mmの収縮チューブに入ったので差し込んだ状態で、両端共にシリコンコーキング剤バスボンドQ クリヤーを隙間に多めに注入、熱収縮チューブをライターで炙り、シリコン剤ごと収縮しつつ、後者については、ピンセットで厚み方向から挟み込み密封(熱接着?)。

 制御部を入れるPUSH POTの側面にハンダゴテで穴あけ、配線側を差し込み、ユニバーサルボードに配線、動作確認後、バスボンドQでケースに差し込んだLEDテープ周りの隙間を穴埋め、シリコンコーキング剤が相応に固まるまで時間がかかるようなので念の為、一晩放置。

 写真を撮っていませんが、外観は、玄関バージョンの2号機にLEDテープがニョキっと出ているイメージです。

 翌日、手触りは、ヒンヤリしてフニフニで柔軟な感じもバスボンドQが固まった様子であることを確認、フタをしたケースに、特にLEDを差し込み、穴埋めした箇所を重点的に水道の水をこれでもかっ!というほど、たっぷりとジャージャー、ざっぱーんとかけまくり、防水テスト万全であることを確認。

 現地?現場?である花壇において制御ボックスは、土壌に置いた裏返した植木鉢の上に制御ボックスを載せ、LEDテープはそこから上方向に立ち上げ、センリョウの枝に紐で軽く縛り、設置しました。

 実際に設置してみると壁側の1面も生け垣状態の2面からも人通りがあっても反応しないので余計なセンシングをすることなく、良い感じ。

 鑑賞側は、少々の壁があっても感知するRCWL-0516、設置前や設置時、見通しの良い場所で行った事前検証でも5m程度は、検知するものの、植物の茂みに配置してみると1mくらいと割と近くまで寄らないと機能しませんが、手入れ時や、鑑賞時でも常に感知するわけではない、ということは、電池の消耗を抑制でき、むしろ、それが程よさそう。

 あとは、光の入射強度が強く(明るく)なるほど抵抗値が下がるCdSセル、スケッチ上の抵抗値0-1023の範囲において閾値として900未満(結構、暗くなっても機能する)に設定した光センサーの感度調整と言うか、スケッチ修正が必要か否かと電池のもち、制御部の放熱対策の要否の検証です。

 どうも、この周辺の?鳥たちは、この時期、早朝〜17時や18時(冬場は-1〜2時間)あたりまでが活動時間帯のように見受けられ、既に鳥よけ装置を設置している北側の玄関と南側のバルコニーは、共にしきい値500未満でそのプラス1時間くらいになります。

 が、花壇では、想定していたより陽がさす場所に設置することにしたので茂みとは言え、さすがに900はやりすぎかな...、暗闇で光るのはそれはそれで綺麗かもしれませんが...。

 と思ったら、バッチリで19時時点でどんなに動いてもスリープから復帰せず、強力ライト(100均の5LEDライト)をLDRに当てると復帰したので一発OKな感じです。

 あと、ちょっと気になっているのは、もう少しLEDテープを長くしても良かったかなという点とLEDが点滅しても、やや薄く見え、青色の光度をもっと上げてもよかったかなという点ですが...。

 前者は、てっぺんの方は、どうぞ召し上がれ、後者は、確認しながら必要なら対応するということで。

 それは、ともかく、残るは、電池における稼働日数と放熱対策の要否、これで、ある程度広範囲になる実を全部食べられてしまって鑑賞できないという事態を回避できるかの確認。

 稼働日数については、砲弾型LEDを使ったバルコニー設置のものが約1ヶ月、玄関に設置のものが約2週間、今回の花壇用は、光量を落としたとは言え、WS2812Bで3LEDチップ搭載5050で消費電流も多いと言われている、1度に2個をランダムに光らせている一方で玄関ほどには稼働しない?淡い期待としては、これらが相殺されて2週間くらいもってくれたら...というところですかね。

 放熱対策の要否については、まさに夏真っ盛りを迎えるこれから、屋根もひさしもない一方、木陰はあり、緑に囲まれているのでかえって暑さ対策になっているのではないかと思いつつ、Arduinoが壊れないかどうかを見守っていくことで確認としようと思います。

 これについては、先日作った玄関に設置したものも気になりますが、南側のベランダに設置のものが3年以上稼働していることから、玄関は北側なので大丈夫かなと。

 割と広い範囲となる花壇でも効果があるのかについては、センリョウやナンテンの実はなり始めてはいるものの、色づくのは、まだ先なので実際、鳥よけとして機能しているか否かの検証は、残暑、いや、秋になってからですかね。

 一方、玄関先にあるフユサンゴは、いつの間にか、既に橙に色づき、実もたわわなので、今のところ、鳥獣被害はないようです。

[2020/08/01]

 昨夜19時にはスリープしていることが確認できていますが、今日、18時過ぎには稼働していることを確認したので19時前まで稼働している模様、というわけで、やはり、閾値900でよさそうです。

[2020/08/04]

 08/01 18時過ぎ以降未確認ですが、本日16時には電池切れを確認しており、Arduinoボードの電源LEDも点いていなかったのでエネループ、過放電状態かもしれません...。

 過放電電池を回復させる機能も持つ急速充電池BQ-CC85で充電してみたところ、確かに赤2回連続点滅を繰り返しましたが、赤点灯後、30秒するかしないかで黄点灯になったので目安とは言え、20〜80%程度残量はあったのかもしれません。

 ただ、LEDテープの制御には、電圧が不足していただけかと思いきや、Arduinoボードの電源LEDが消灯していたことを考えると、やっぱり、過放電状態だった可能性もある?

 あ、2本で約1.5時間を謳う充電器で4本充電に約3時間かかったので、ほぼカラだったっぽい。

 何れにせよ、エネループ4本を満充電後、だいぶテストをしたとは言え、実稼働時間帯4〜19時ほどで、07/31正午頃から、昨日までとして3日〜3日半程度...これじゃ、とても実用的とは言えない...。

 さて、どうしたものか...。

 そこでFastLEDライブラリに節電モードとかないかなと探してみるとPower management functionsを発見。

 使用電圧と最大の電流値を指定できるらしき、void set_max_power_in_volts_and_milliamps (uint8_t volts, uint32_t milliamps)が使えそう。

 いろいろやってみるとFastLED.setBrightness()と併用する場合には、set_max_power_in_volts_and_milliamps()を先に書かないと意味がない模様。

 FastLED.setBrightness()と併用せず、set_max_power_in_volts_and_milliamps()のみ指定した場合は、ライブラリ標準の光量となる?ような、併用が前提なような...自身には、よくわかりませんでした。

 とりあえず、鳥よけとしてはさておき、この対策がどこまで有効で電池のもちにどの程度影響するものなのかを確認すべく、極限まで光量を絞った状態と思われるset_max_power_in_volts_and_milliamps(5,1)、FastLED.setBrightness(1)、なおかつ、30球/mの点滅は同様も1度に点灯させるLEDは1つとして検証してみることにします。

[2020/08/07]

 set_max_power_in_volts_and_milliamps(5,1)、FastLED.setBrightness(1)として24時間、人の居る環境においてみると単3エネループx4で丸2日、つまり、約48時間。

 4時〜19時までとして15時間とすると、やはり、3日しかもたない模様...。

 人でも動物でもモノでもカーテンでもちょっとした動きにも反応するので、そういう意味では、本番以上にスリープをほぼしない過酷な場所に置いてあったのを差し引いたとしても、どうでしょう、もって4日、5日はもたないでしょうね...。

 だとすると、この設定をしたところで電池のもちに影響がない!?いや、先日は逐一確認しなかったので2日で電池切れだったのかも?それにしてもこの対策で1日しか変わらないとなると焼け石に水...。

 しかも日中の屋外では、この設定だとLEDの点灯が見えませんでした...、ほんの少し陰になるところでは見えるので光量を上げないとと試してみるとFastLED.setBrightness(15)でギリギリ見える程度。

 それにしてもset_max_power_in_volts_and_milliamps()の電流値か、FastLED.setBrightness()の何れかを上げるとしたら、どっちが省エネになるのだろう...?

 何れにしてもたいして変わらなそう...、NanoをPro Miniに替えれば、USBの分、多少は、電流抑制できるらしいですが、ArduinoボードのBODを2.7Vから1.8Vや0Vにしてみたところでたいして変わらないんでしょうね...。

 WS2812Bは、3.3VでもいけるらしいのでPro Miniの3.3V版を使えば...、って、ある程度電流は必要なわけで、あまり効果ないか。

 そうなると電流抑制、電池保持期間の延伸はおいておいてソーラー電源と電気二重層コンデンサにすれば、比較的安全で充電池も必要なく、よいんでしょうけど...。

 妥当な容量計算や選定については、今の自身には、ちょっとハードルが高そうだし、場所的に興味本位で持ち去るなどの盗難リスクもなくもないため、仮にそんなことがあるとしたら今の状態もエネループだけでも結構痛いが、他の仕組みにしても、あまりコストはかけたくない...。

 んー、1号機や2号機じゃ小ぶりすぎて1つじゃカバーできないだろうし、2つ3つ置くっていうのも同時に8本、12本電池切れになるし、芸がない、というか、釈然としない...さてどうしよう...。

[2020/08/10]

 とりあえず、今朝から、set_max_power_in_volts_and_milliamps(5,1)、FastLED.setBrightness(15)として、やはり、4時から19時位に稼働するように、前回よりは、やや機能しにくい場所に置いてみることにしました。

[2020/08/12]

 今朝時点で機能せず、まる2日でした...。

雑に扱い配線ごとランドがもげたWS2812B LEDテープ
[2020/08/14]

 うはっ、LEDテープライトの銅箔ランドが、ケーブルごと、もげちゃいました...。

 原因は、悪い癖でユニバーサル基板をケースに固定していなかったから。

 Arduinoボードのリセット、スケッチのアップロード、電池交換、なぜか感度がイマイチになった時の配置換え...などの際、知らず知らずLEDテープライトの先端部もねじってしまっていたようです。

 ケースへの挿入部も中も外もシリコンコーキング剤をたっぷり塗って固定したこともあって先端のねじれについては、気に留めていませんでしたが、それがゆえに先端だけねじれてしまったようです...。

 あれ、1つのめのLEDの色やスケッチに対して反応・感度がなんか変だな...と思い、シリコンで埋まって見えづらい中、どうも接触不良になっている模様...シリコンを剥いでみるとハンダ部がとれている様子、更にむき出しにしてみると、もげていた次第、シリコンでがっつり固定していた分、もげつつも微妙に接触不良状態だったというオチです。

 ちなみに、そのためのシリコンコーキングで効果絶大だったわけですが、シリコンチューブと同化状態で境目もわからず、綺麗には剥がして分離するには無理があり、カッターで切り込みを入れつつ、むしり取り、最終的には、中身を残し、シリコンキャップの付いたシリコンチューブを切断せざるを得ませんでした。

 それにしてもディープスリープ入れてもこれってことは、WS2812B NeoPixelの電池駆動は、非現実的なのかな...。

[2020/09/17]

 鳥よけにWS2812B LEDテープライトを採用するのは諦め、砲弾型LEDとすることにし、検知はPIRセンサーとしたものを1号機の初代筐体であるキャニスターに入れることに。

 結果、これをバルコニー、筐体を半透明ボックスにしたマイナーチェンジバージョンを花壇、RCWL-0516+砲弾型LEDの2号機を玄関に設置しています。

[2020/10/08]

 あれ、1号機同様、1ヶ月もつかと思いきや、約20日、稼働回数多かったのかな...QC-CC85で充電してみたら、過放電状態だったことを示すセンシング充電に...複数本電池使った場合、平均して消費するのは無理っぽい?とすると持続時間は、それに左右される気もする...。

備考

[2020/12/14]

 ん?ここに来て少なくとも1種類、この鳥よけが効かないようで平気で?命がけで?実を食べていく鳥を玄関先で発見...にぎやかにキュルキュル?鳴く黒っぽい鳥、いや濃茶か濃いグレーなのかな?一瞬で飛んでいくのではっきりわかりませんが...。

 他の2箇所は、実は無事なのですが...、近所で鳥に餌をあげている人がいていろんな鳥が集まってきている模様...。

 そろそろ、見頃も終わったし、まぁ、いっか、ぜひ、食べて行ってね。

[2021/03/07]

 お?数日後のゴミ出し前にプランターにみかんの薄皮と外皮を入れておいたら、たびたび襲来、食い荒らしていく...。

 慣れたのか?うまそうなモノがあれば、危険を顧みずやってくるのか?はたまた、片付けたのを確認するたび散らかす、お遊びか?

 それとも怖いもの知らずの新人類、いや新鳥類か...、じっちゃん!ばっちゃん!先祖代々、青い光、怖うぇー、あぶねーって言ってたけど大丈夫じゃんか!みたいな...。

[2021/05/09]

 巣を作り始めた鳩には、全く効果なし...。

ホーム前へ次へ