ラズベリーパイ-スマホ-スマート開閉-6サーボの設置工事とcronを使った定期実行

本来であればこの記事はスマートドアロックの最終章であるのでドアの鍵にサーボをどうやって取り付けたか説明しなければならないが残念ながらまだドアへの取り付けには至っていない。

そこで今回は前回までの設定をそのまま生かしてスマートスイッチとして活用した事例を紹介する。

この記事ではサーボを家の壁スイッチにとりつけてスマートスイッチとしてスケジュールでオンオフするやり方を説明する。

スポンサーリンク

これまでの記事

ラズベリーパイ-スマホ-スマートロックを開閉-1 プロジェクト概要
ラズベリーパイを介してスマホでスマートロックというプロジェクトを個人的に始める。 ラズベリーパイという超小型ワンボードマイクロコンピュータが随分昔からあるのは知っていたが、果たして自分のようなズブの文系人間が下手に手を出して太...
ラズベリーパイ-スマホ-スマートロックを開閉-2 ラズパイ初期設定
ラズベリーパイを使ったスマートロックをつくる工作の2話目。 今回はラズベリーパイを初期設定し、外部の端末(WindowsとかMacとか)からリモートで使えるようにする。 その他日本語入力できるようにとかWi-Fi接続とか...
ラズベリーパイ-スマホ-スマートロックを開閉-3 サーボを動かす
初心者だけどスマートロックを作ってみたい! そういう願望からラズベリーパイを買ってみて意外に難しい?いやいや思っていたとおり難しい。でもネットで情報を調べていくうちに何がわかってなにがわからないのかが見えてくる。 で、今回はスマ...
ラズベリーパイ-スマホ-スマートロックを開閉-4 blynk仮想ボタン設定
ラズベリーパイを使ってスマートロックを自作しようとしてブログ記事に起こしながらトライしている。 前回まででサーボを動かすまではできたが、今回はいよいよリモートで動かすわくわくする話だ。 リモートで動かすにはいくつも方法は...
ラズベリーパイ-スマホ-スマートロックを開閉-5 NFC仕込み
ラズベリーパイを使ってスマホからリモートで家の鍵を開けたり閉めたりしようというプロジェクトの第5話目。 今回はNFCタグにスマホを当てるだけでリモートで鍵を回して(まだサーボ単体の段階だが)で動かすという試みをする。 なにがなん...

一応スマートロックを物理的に作るのに参考にした記事

一番最初に謝辞もこめてこれまで参考にしつつ活用できなかったネット上の数多のスマートロック実現記事を下記に紹介しておく。

このほかにもいろいろあるかもしれず、もれもあるかと思うがすべて載せることもできないので容赦ねがう。

スマートロックを自作した。 | 好奇心は鯖をも殺す
【専業主婦のリノベ記録】夫が欲しいと言うので愛情込めてスマートロックを手作りした【差額:2万円→1500円】|よめ子|note
大学生の電子工作 ラズパイでスマートロックを自作してみた
帰宅したら自動で解錠するスマートロックを自作する①~オートロック編~ – 空飛ぶラズベリーパイ
はじめての自作スマートロック : 5 Steps – Instructables
スマートロックを自作したので難所をまとめる – Qiita

サーボを物理的に取り付ける手段

サーボ固定台

いろいろ考えたが、百均でいくらでも材料を買ってきてはトライしていてもいたずらに金がなくなるだけだ。

やみくもに金を使っていたらそもそも安く上げたいという目標が達成できない。市販を買ったほうが安かったなということになったら本末転倒である。

そこでまずはジャブとして百均で石鹸入れケースを買ってみた。これくらいならいいだろうという安易な考え。

▼条件としては加工のしやすさ、頑丈さ、大きさとしてそこそこ満足しているものだった。

ラズベリーパイドアへの仕込み

ラズベリーパイの体裁

▼それとラズベリーパイも裸のままなのでケースに入れることにした。セリアで売っていた蓋付きのケースでいささか大きすぎるがほかの小物も入れておきたいと思ったときに便利かな。といっても穴をあちこちに開けるので小物入れても落ちるが。

ラズベリーパイドアへの仕込み

▼あと、上記タッパーにラズベリーパイを固定するのに2×8のビスを買ったのと、2×8のビスだけだとビスがタッパーから出っ張りすぎるのでラズベリーパイを少し浮かせるためにスペーサーも買った。運良く近くのホームセンタービバホームで売っていた。いずれも100円〜200円ぐらいの価格。

ラズベリーパイドアへの仕込み

ドアへの取り付け試行

▼わが家のドアは親子ドアでありダブルロックになっている。鍵が2個だ。だがそんなことはどうでもよく1箇所でもいいからサーボがうまくつけられるかどうかだ。

ラズベリーパイドアへの仕込み

▼で、試しにトライしてみた(重言)結果、そもそもサーボのパワーが足りないということがわかった。

SwitchBotスイッチみたいにスケジュールでスイッチ入れるラズベリーパイ

サーボのパワーについての考察

購入したサーボはSG90というホビー用のもので大丈夫かなあと思っていたが、残念だった。
SG90サーボ

これの上のSG92というタイプなら回せそうらしいので今調達中であるが、SG90もいくつか買ってしまっている。

でSG90でまったくだめかというと必ずしもそうではないのだ。

それはSG90は180度旋回するサーボで、鍵は90度だけ回る。

つまりうまくギアをとりつけてサーボが180度回る力で鍵を90度だけまわせば倍の力をかけることができ回せるかもしれないのだ。

と、ここでギアのフリー素材でも載せようかと思ったが面倒なのでやめる。

だからまだ諦めてはおらずギアを開発してからまた取り付けに挑戦しようと考える。

スマートロックに代えてスマートスイッチとする

物理的な取り付け状態

スマートロックの機構以外は完成していたのでスマートスイッチにするのはそれほど難しくはない。

玄関の常夜灯と玄関灯にスイッチをとりつける。電源はまだ暫定でモバイルバッテリーから取るがいずれAC電源を引っ張ってきてUSBアダプターで常時電源とする。

SwitchBotスイッチみたいにスケジュールでスイッチ入れるラズベリーパイ

▼スイッチ部の近影はこんなかんじ。サーボのホームポジションは0度にしておいて±40度ほど回転させるとちょうどよくスイッチを押せることをトライアンドエラーでみつけた。

サーボそのもの固定は強力な両面テープが必要になる。またスイッチ台座が壁から浮いているのでサーボも下半身が浮いてしまって不安定なのでボール紙を挟み込みサーボを安定させた。

SwitchBotスイッチみたいにスケジュールでスイッチ入れるラズベリーパイ

 

▼ラズベリーパイの配置はというとこれもさきほどのケースに入れた状態で両面テープでスイッチ近くの壁に貼り付けた。家族から非難されそうだがそのときはそのとき。

SwitchBotスイッチみたいにスケジュールでスイッチ入れるラズベリーパイ

▼ついでといってはなんだがUSBカメラもラズベリーパイに装着して玄関の様子を常時監視できるようにした。外部からも見られる。その設定についてはルーターをちょこちょこっといじるだけなので知りたい方はググってほしい。

SwitchBotスイッチみたいにスケジュールでスイッチ入れるラズベリーパイ

▼でカメラで写している様子をスマホで見たのがこちら。玄関の下駄箱上から廊下とその奥のリビングルームを望んでいる。あまり意味はない。いずれモーションセンサー機能を付加して人がいるときだけ録画するようにすれば多少の意味はあるか。

SwitchBotスイッチみたいにスケジュールでスイッチ入れるラズベリーパイ

スイッチの作動についての設定

定期実行(cronサービス)を行わせるための設定を行うわけだが、▼こちらのサイトを参考にしてサクッと設定はできた。

定期実行をつかさどるcron

時刻指定実行の参考サイト
Raspberry Piでcronを使ってPythonを定期実行する – Raspberry Pi & Python 開発ブログ ☆彡

▼まずはcronサービスが動いているか確認。cron onと帰ってくればOK.

$ chkconfig cron
cron on

offの場合は以下のコマンドを打ってオンにさせる

$ sudo systemctl enable cron

もしもそれ以前にchconfigというコマンドが機能しなかったら以下でインストールする。

$ sudo apt-get install chkconfig

cronの定義ファイル編集

以下のコマンドで編集が始まる

$ crontab -e

俺が定義したスイッチの作動を例に説明すると

00 07 * * * python3 /home/pi/servo_turn_right.py
00 16 * * * python3 /home/pi/servo_turn_right.py
00 06 * * * python3 /home/pi/servo_turn_left.py
30 23 * * * python3 /home/pi/servo_turn_left.py

パラメータ間の区切りはスペースで。

1番目2番目3番目4番目5番目6番目移行
分(00-59)時(00-23)日(1-31)月(1-12)曜日(0-6)実行内容

1行目だけ例に説明すると毎日朝7時00分にサーボを右に回すという定義だ。*はワイルドカード。

これのほかにも時間やら日付の定義方法はもっと複雑にできるので興味があればググってください。

定義ファイルが保存できたらちゃんと定義されているか以下のコマンドで確認する。間違ってたら再度編集しよう。

$ crontab -l

定義ファイルに入れておきさえすればあとは勝手に時間になったら実行してくれる。

【追記】

時間になっても実行してくれないことがままあり、考えられる原因は電源の容量不足だった。だから電源をちゃんと3A供給できるやつに変えるんだけど、一応暫定措置として以下のコマンドをcrontabに挿入したらちゃんと時間に動くようにはなった。

55 06 * * * python3 sudo reboot
00 07 * * * python3 /home/pi/servo_turn_right.py
ここにも上記sudo reboot入れて開始時刻を1行下の5分前に設定する
00 16 * * * python3 /home/pi/servo_turn_right.py
以下おなじものを入れる
00 06 * * * python3 /home/pi/servo_turn_left.py
ここにもおなじく5分前にrebootするコマンド
30 23 * * * python3 /home/pi/servo_turn_left.py

ということでサーボ作動命令の5分前に再起動する予定を入れておくとちゃんと動いた。

【実行予定のcronタブの記述について追記】

クローンタブっていちいちテキストで設定しなきゃならなくて面倒くさいなあと思うし、スマホでやりたかったらどうするんだよなんて思ってなにげに調べてみたらiPhoneアプリでcrontabの設定ができるのがあったから紹介しておく。

設定できるといっても文法を学習できるぐらいでiPhoneからラズパイに書き込めるわけじゃないんだけどタスク予定つくってて「あれ??」ってわからなくなったときにチートとして活躍できそうなアプリだった。世の中にはcrontabの編集を業務としている人がいるっぽいのでこういうの知ってると多少助かるかも。

crongen - crontab generator

crongen – crontab generator
開発元:Ryan LaLiberty
無料
posted withアプリーチ

まとめ

スマートロックをつくるつもりが最後はスマートスイッチに落ち着いてしまったが、まだ諦めてはいない。

買ってしまえば簡単であるがラズベリーパイの面白さにいまドハマリしているので「出来た」というところまで到達してから市販品に買い替えてもいいと思っている。

そんなわけでしばらくこのブログはラズベリーパイ関連の記事がつづくと思う。熱しやすく冷めやすい性格なのでいつまでつづくかわからんが。

そして翌日になったが壁の反対側にあるコンセントから天井を這わせて常時電源とした。非常にケーブルがウザぎみだけどそのうち暇を見て整理する。

ラズベリーパイでスマートスイッチ常時電源

B01NHEBAN5
I-O DATA Raspberry Pi メインボード Bluetooth(R) Wi-Fi対応モデル Raspberry Pi 3 model B 安心の1年間ハードウェア保証 UD-RP3

¥5,778(2021/11/03 22:03時点の価格)
平均評価点:5つ星のうち4.3
>>楽天市場で探す
>>Yahoo!ショッピングで探す

B016FKJJ8M
デジタル・マイクロサーボ SG90 (1個)

¥440(2021/11/03 22:05時点の価格)
平均評価点:5つ星のうち4.2
>>楽天市場で探す
>>Yahoo!ショッピングで探す

▼ちょっと強めのこちらのほうが確実かも

B00WQWZXKW
マイクロサーボ SG92R (1個)

¥550(2021/11/04 11:53時点の価格)
平均評価点:5つ星のうち4.1
>>楽天市場で探す
>>Yahoo!ショッピングで探す

タイトルとURLをコピーしました