2021年6月15日火曜日

「イノシシ避けマシン」を作る。【前編(ハードウェア)】

近年、高頻度で出没するイノシシに対応すべく、「イノシシ避けマシン」を作ってみました。



機能としては、

・人感センサーが反応したら音声を流す。
・定期的に音声を流す。

の、2つになります。

音声データは、Raspberry Piから出力します。


野外での使用を想定しているため、防水対策をして、電源は太陽光発電で確保。そして、イノシシが驚くように、ある程度の大音量が出るようにしました。


▼ 部品一覧


金額は全て購入時点、税込です。

【Raspberry Pi関連】
・Raspberry Pi Zero WH(1,848 円)
・Raspberry Pi Zero ケース(660 円)
・microSDカード 32GB(690 円)
・人体赤外線感応モジュール(HC-SR501)(142 円)
・ジャンパーワイヤー(メス - メス)(990 円)



【電源関連】
・太陽電池モジュール(12W SY-M12W-12)(2,500 円)
・完全密封型鉛蓄電池(12V 7.2Ah LONG製 WP7.2-12)(1,800 円)
・ソーラーチャージャーコントローラー(ALLPOWERS 20A 12V/24V)(2,099 円)



【スピーカー関連】
・スピーカー(Herdio 100W HIFI 2-Way 防水型 4インチ)(4,599 円)
・アンプボード(Acouto 12-24V 100W*2)(1,799 円)
・変換アダプタ (micro USB オス - USB A メス)(699 円)
・変換アダプタ(USB A オス - オーディオ 3.5mm メス)(999 円)
・ステレオミニプラグ オーディオケーブル 3.5mm(オス - オス)(635 円)



【その他】
・ウオルボックス 屋根一体型<ヨコ型>(WB-11DM) ×2(1,821 円)
・コンバータ(DC12VからDC5V 変換モジュール USB充電器アダプター)(849 円)
・KIVケーブル(1.25SQ)(700 円)
・ファストン端子 ×2(10 円)
・台



費用は、送料等含めトータル2万5000円程度でした。

Raspberry Pi Zero WH、Raspberry Pi Zero ケースはスイッチサイエンス、太陽電池モジュール、完全密封型鉛蓄電池、ファストン端子は秋月電子通商、その他はAmazonで購入しました。ジャンパーワイヤーやKIVケーブルは、販売単位の関係で多めの購入になっています。台は、その辺にあった板と収穫箱を使いました。

ちなみに、イノシシ避けの役目を果たしたら分解して、部品はそれぞれ他の工作に転用する予定です。

もう少し価格を抑えたい場合、Raspberry Pi Zero ケースなんかはなくても大丈夫かと思います。また、Raspberry Pi Zeroのmicro USBからステレオミニプラグへの変換を、まどろっこしく3本のケーブルでつないでいますが、1本で変換できるケーブルもあります。今回は、後々転用しやすいように3本でつなぎました。(あと、micro USBからステレオミニプラグへの変換ケーブルは、説明に互換性云々書いてある製品が多く、どれがいいのかよく分かりませんでした。まぁ、micro USBがそもそも使われなくなってきていますし、マイナーな変換っぽいですね。)

部品以外には、ドライバー、電工ペンチ、テスター、固定用のテープ等が必要になります。


▼ 接続


接続は、いろいろと試した結果、この形になりました。

太陽光・ラズパイ・スピーカー_接続図


Raspberry Piとアンプの電源は、ソーラーチャージャーコントローラーからではなく、バッテリーから直接取ります。ソーラーチャージャーコントローラーから取ると、ノイズが発生します。


工作は、つなげていくだけなので省略。Raspberry Piと人感センサーの接続はこちら(ラズベリーパイに人感センサーを付けて音声を再生する)を参照。


実際に接続した様子がこちら。収まり良く整えたら、こんな感じになりました。



右ボックス。ソーラーチャージャーコントローラー、Raspberry Pi、人感センサー、アンプボード。



左ボックス。バッテリーとコンバータ。




▼ 固定と防水対策


今回は、分解前提なので、養生テープでペタペタ軽めに固定しました。ただ、スピーカーだけは、バランスが不安定だったので、ネジで台に固定しました。

それから、防水のボックスを使っていますが、寝かせて使っているので、念のため、ケーブル等の出ている穴は、養生テープで上下から挟んで貼り付けておきました。



また、人感センサーの穴のすき間は「ひっつき虫」で埋めました。(ひっつき虫、とても便利ですね。)







スピーカーはもともと防水のものなので、これで大丈夫なはず……です。あとは、意を決して雨にさらすしかありません。壊れませんように……。


ということで、「イノシシ避けマシン」のハードウェア面でした。

後編は、ソフトウェア部分、Raspberry Piの設定を行います。


・関連投稿

ラズベリーパイのスピーカーノイズ問題と、とりあえずの解決策


Twitter(@nkkmd)日々更新中です。

2021年6月8日火曜日

ラズベリーパイのスピーカーノイズ問題と、とりあえずの解決策

Raspberry Piと人感センサーを使って「イノシシ避けマシン」を作ってみました。無事に完成しまして、イノシシが多く出現し始めるもち米の乳熟期前から設置をしようかと考えています。

後ほど、「イノシシ避けマシン」の作り方も投稿しますが、まずは、いろいろ突っかかったポイントがあったので、備忘録として書いておこうと思います。


***

今回の工作の主な要件は3点。

・ラズパイから音声出力
・イノシシが驚く音量
・太陽光発電で電源確保

(ちなみに、恥ずかしながら、ほぼ無知の状態で作っているので、そういう人が書いているとご承知ください。図も雰囲気。)

予算も限られるため、(間違ったものを買わないように)慎重に調べ調べ、できる限り最小の構成を目指した結果、必要な部品とその接続は下図1のようになりました。

ソーラーチャージャーコントローラーは、USBの5V出力が付いているタイプのものです。

きれいにつながったので、意外とすんなり完成……してくれるかと思ったら、ノイズがひどく、かつアンプへの給電も安定しません

しかし、基礎知識がないので、なぜなのかが全く分かりません(笑)。こういう時は、考えつくパターンを全部試していくしかありまん。

ラズベリーパイのスピーカーノイズ問題01
図1


で、あれこれとつなぎ替えたところ、下図2の接続でノイズもなく、アンプも安定した状態になりました。しかし、そもそも野外での使用を想定して太陽光発電を電源としているため、ACアダプターによる給電は実際は不可。別の方法を探します。

それにしても、バッテリーとソーラーチャージャーコントローラーでは、同じ電圧の出力のはずなのですが、なぜなんでしょうかね(テスターで測定しても同じ)。

また、アンプをバッテリーに直接つないで安定させた状態でも、ラズパイをソーラーチャージャーコントローラーから給電すると、やはりノイズが発生します。

ラズベリーパイのスピーカーノイズ問題02
図2


ということで、あーだこーだやった結果、とりあえずの解決策は下図3。

ノイズは、完全にではないものの、実用可能なレベルに低減しました。

ラズベリーパイのスピーカーノイズ問題03
図3


対処として正しいのかどうか分かりませんが、何はともあれ、まずは動くことが大事です。今回は、これでいってみましょう。

(電気関係、少し勉強したいですね。)


Twitter(@nkkmd)日々更新中です。

2021年6月5日土曜日

systemdのuserモードでデーモン化をする。

Raspberry Piと人感センサーを使って「イノシシ避けマシン」を作ってみました。無事に完成しまして、イノシシが多く出現し始めるもち米の乳熟期前から設置をしようかと考えています。

後ほど、「イノシシ避けマシン」の作り方も投稿しますが、まずは、いろいろ突っかかったポイントがあったので、備忘録として書いておこうと思います。


***

Raspberry Piで、Pythonによる音声の再生に「pygame」、定期実行に「schedule」モジュールをそれぞれ使っているのですが、systemdによるデーモン化で突っかかりました。

端的に、原因としては、systemdをrootとして使っていたためで、userモード(--user)で使うのが正解でした。ただし、pygameとscheduleは別理由でした。

scheduleは、pipによるインストール時に、root権限で実行していなかったため、「home/pi/.local/lib/python3.7/site-packages」にインストールされていました。以前も同じミスをしていますね(笑)。なので、root権限でインストールすれば、systemdのuserモードでデーモン化をする必要はないです。

pygameに関しては、SDL(Simple DirectMedia Layer)という開発ライブラリ上に構築されているため、何たらかんたら……という理由でしたが(たぶん)、あまりよく理解していません(笑)。とりあえず、rootだと動かないようです。


▼ systemdのuserモードでデーモン化する方法


今回は、「/home/pi/」直下に「Python」フォルダを作成して、そこに「test_daemon.py」を作成している想定です。Pythonスクリプトには、シバン(shebang)を忘れずに。

デーモン化するPythonスクリプトに権限を付与。
$ sudo chmod 755 ./Python/test_daemon.py


次に、ユニットファイル「test_daemon.service」を作成して、「~/.config/systemd/user/」に配置(フォルダが無い場合は作成)。
[Unit]
Description = test daemon

[Service]
ExecStart = /home/pi/Python/test_daemon.py
Restart = always
Type = simple

[Install]
WantedBy = default.target

起動。
$ systemctl --user enable test_daemon
Created symlink /home/pi/.config/systemd/user/default.target.wants/test_daemon.service → /home/pi/.config/systemd/user/test_daemon.service.
$ systemctl --user start test_daemon

再起動後、確認して状態がActiveになっていれば成功です。
$ systemctl --user status test_daemon


systemdのuserモードの説明は、こちら →(systemd/User - ArchWiki)が詳しいです。英語ですが、まるっと翻訳すればだいたいわかります。


Python、入門書も読み切らず、とりあえず雰囲気で使い始めてしまったので、事あるごとに突っかかりますね(笑)。まぁ、別にプログラマーでもないので、その都度調べて、動けばいいやの精神で使っていきたいと思います。




Twitter(@nkkmd)日々更新中です。

2021年5月19日水曜日

ラズベリーパイで外付けストレージをファイルサーバー(Samba)にする。

Raspberry Piに挿した外付けストレージをファイルサーバーにしてみました。

Googleフォトの無制限バックアップが5月いっぱいで終わるため、フル解像度で無制限で写真を保存できるAmazon Photosへ引っ越しました。プライム会員であれば、追加費用もかからず使えるのですが、動画の容量が少なめなため(ベーシックストレージ5GBと追加ストレージ5GBの計10GB)、一応いざという時のために動画の保存先を作っておこうということですね。

VPNで接続しておけば、外出先からでもファイルを放り込めます。

VPNサーバーの作り方は以下より。

・Windows → テレワーク環境整備のためVPNサーバー(SoftEther VPN Server)を導入しました。



ファイルサーバーを作るにあたって、今回は、手持ちで余っていた128GBのUSBメモリを使いました。しばらく試してみて、それなりに使用頻度が高いようだったら、1〜3TBくらいの、容量の大きい外付けHDDかSSDにする予定です。特に持ち歩くわけでもないですし、HDDでいいですかね。



参考させていただいたサイトは以下です。そのまま、①→②の順番でやればファイルサーバーができあがります。


マウントするフォルダ作成時にパーミッションでひっかかったので、root権限で実行。あとはすんなりと。



ストレージのマウントは済んでいるので、「3:Sambaのインストール」から行います。


PCからだけでなく、スマホからもつなげるので、旅行の最中などに容量がなくなったときに助かりますね。その分、通信容量は消費しますけども。


本日、無事に田植え完了


Twitter(@nkkmd)日々更新中です。

2021年5月18日火曜日

Googleフォト有料化に向けた対応、とりあえずAmazon Photosへ

さてさて、2021年6月1日からGoogleフォトが有料化しますね。有料化というか、これまで無料で無制限だった、圧縮された「高画質」でのアップロードが使用容量にカウントされるようになります。なので、保存容量を超えるような場合は、追加で保存容量の購入が必要になります。これまで、完全に頼り切っていたので、代替手段を考えねばなりません。


これを機に、NASを導入するのもいいかなと思ったものの、改めて選んでみるとやはりそこそこのお値段……。じゃあ、ラズパイとOpenMediaVaultとかで自作するのはどうかと思い、手持ちの機材で作ってみたけれど、よく考えたら、ラズパイをNAS専用にしてしまうのも微妙にもったいない気が……。というか、新たにラズパイ本体やハードディスク等を準備すると、結局、まぁまぁのお値段になるし、専用機と比べたときに、安定性や耐久性はどんなものなのだろうか……。

欲しいか欲しくないかと聞かれれば、もちろん欲しい(笑)。


などなど考えた結果、とりあえず、ありきたりに「Amazon Photos」に移行することにしました。写真は、フル解像度で無制限。動画は、ベーシックストレージ5GBと追加ストレージ5GBの計10GBが使えます(Fireデバイスなら無制限)。家族で写真を共有できるファミリーフォルダも便利そうです。

すでにプライム会員なので、追加費用はかかりません(¥4,900年/年 or ¥500/月)。固定費は上げぬに限ります。


Googleフォトの方も完全に引き払ってしまうわけではなく、いらない写真や動画は削除しながら、常に整理して、アルバムで管理していく形にしようかと思います。GmailやBloggerで使うにはやはりGoogleフォトが便利ですからね。動画に関しては、YouTubeに非公開で置いておくのもいいかなと。そういえば、昔はこうしてました。

あと、おまけですが、ラズパイに挿したUSBメモリをファイルサーバー(Samba)にしておきました。VPN接続すれば、どこからでもファイルを放り込めるので便利です。(→ 作り方はこちら



Googleの空き容量を増やすために、DriveやGmailを整理していたら、なぜか見落としてしまっていたメールをちらほら発見……けっこうな期間空いてしまっているので今さらながら返信した方がいいものなのか、どうなのか……ううう。


Twitter(@nkkmd)日々更新中です。

2021年5月13日木曜日

ラズベリーパイでVPNサーバー(SoftEther VPN Server)を作る。

これまで動かしていたVPNサーバーは、WindowsでSoftEther VPN Serverを使っていたのですが、今後の運用等を考えて、改めてRaspberry Piで作ってみました。Raspberry Piは、Raspberry Pi OSのRaspberry Pi 4 Model Bを使用。


いつものことながら先人の知恵を借り、ひとまず完成。

参考にさせていただいたサイトはこちら。

Raspberry PiでのVPNサーバ構築 - Qiita


概ね、この通りでいけましたが、突っかかったポイントだけ補足。(環境にもよるかと思います。)


・「4. vpnserverのインストール」

vpnserverをrsyncで/usr/localディレクトリにコピーする際、パーミッションエラーが出たのでroot権限で実行。

sudo rsync -av vpnserver /usr/local


・「12. ブリッジ用の起動ファイル」

ローカルブリッジを有効にする起動ファイル(vpnserver.service)の実行時に、/usr/local/vpnserver/vpnserver_startスクリプトの実行権限がなく、"code=exited, status=203/EXEC"というエラーが出ていたので、権限を付与。

sudo chmod 744 /usr/local/vpnserver/vpnserver_start


これで、とりあえず無事に動き出しました。


***

データロガー人感センサーの工作を、より安価なRaspberry Pi Zero WHでやるようにしたので、余った4 Model Bを有効活用できてよかったです。

今後は、オープンデータ公開用のサーバーも構築できたらなと。


軽トラ好きキャット


・関連投稿
テレワーク環境整備のためVPNサーバー(SoftEther VPN Server)を導入しました。





Twitter(@nkkmd)日々更新中です。

2021年5月8日土曜日

読書記録(2021年・GW)

ふと、読書記録でもつけようかなと思い…そういえばこのブログ、「読書」ラベルも作ってあるので活用していければなと。


・ダチョウはアホだが役に立つ(塚本 康浩)


著者の方の回の情熱大陸をたまたま見かけて、おもしろかったので、読んでみました。

ダチョウって、走るでかい鳥くらいのイメージしかなかったのですが、まさか感染症等の抗体を作ることに役立っていたなんて露知らず。いつの日か1羽くらい飼いたいな…なんて。

また、著者がダチョウの研究に至るまでが非常に興味深いです。特に、大学院生時代から自分で商売で稼いで研究費に充てていたというエピソードは、ダチョウ並みのたくましさしか感じません。


・正直不動産

不動産屋のマンガなんですが、エピソードが具体的なので、おもしろいのですよね。別に不動産を買ったりなんだりという予定はないのですが、知識として知っておいても損はないように思います。

健康で文化的な最低限度の生活」とか、こういうマンガは、知らないけれど確実に身近にある世界を知れて勉強になりますね。


・百姓たちの江戸時代(渡辺尚志)

農業経営に関しては、今とたいして変わらいないというのが率直な感想。自給自足的な生活なのかと思いきや、すでに貨幣経済が浸透し、お金のない生活は考えられないという時代になっていたのですね。

「百姓は、自然との共生を目指す農業者であるとともに、経済感覚の求められる経営者でもありました。」(位置NO.918)

また、小百姓による兼業なども現代の農業の姿に通じるところがありますね。


***


ということで、読書記録でした。時々、投稿できればと思います。


Twitter(@nkkmd)日々更新中です。