これを機に重い腰上げて再製作しようと思ってたら、丸ノブ錠から交換することにしたハンドルレバー錠にも自作スマートロックそのまま使えたよ。
いろいろあって、やっとのことで自作スマートロック/色々な方法で施錠・解錠の記事アップ。
モノは既に2024/02/13から稼働中。
できてみたら、すっかり気に入っちゃって以来1度も金属の鍵使ってないよ。
念の為、常備はしてるし、スマートロックの電源ONでもOFF(停電中)でも物理鍵も使えるんだけどね。
数年来、頭の片隅にはあった音声のみのインターホン、途中血迷ってWi-Fiドアベル使ったりしつつ、迷ってたんだけど、今日設置しちゃった。
と言っても自作中のテレビドアホンを断念したわけじゃないよ。
ただ、このインターホンには、入力はあるけど出力用のA接点がないっぽい。
汎用ってあって出力だと思ってマイコンつないでみたら警報鳴って、ちょっとビビりつつ、入力じゃーんみたいな。
インターホンの親機設置場所は、玄関の間近ってわけじゃないんだけど、導線からして、わざわざ、そこ行って応答するなら、出ちゃえって感じ。
というか、はなから自作テレビドアホン連携させる気満々だから、インターホンの親機はどこでもいいやって思って。
でも子機と子機のボタン、メロディは使わせてもらっちゃおっかなとか。
んでもってタッチパネルのディスプレイ付き親機とカメラ、音声通話、保存、外から云々とかは、自作中のテレビドアホン側でって感じで連携させちゃうべく、思案中。
自作テレビドアホン、ソフトもほぼできてて、構成もほぼ決まってて、できてるようなものとも言えるんだけど、うっかり、構造物がスイッチボックスのある壁の間口から入らないという、まさかまさかの致命的なミスを...ということで延期。
自作予定のなんちゃらカメラやドアホン風味。
映像は、複数デバイスに同時配信できるRTSP/RTPでマルチキャストなストリーミングが良いかなとやってみたよ。
音声は別件でBluetoothイヤホンのマイクを認識させてみよっかなとPulseAudioからPipeWireにしても使えたMurmur/Mumbleにしてみよっかなと。
映像は、これでマルチクライアントにすると、ほんのちょっとながら遅延がドアホンには、どうかなって感じで、マルチキャストをやめるか、もう少し改善できる方法がないか模索中。
USBカメラならustreamerとか、mjpg-streamerとかでマルチクライアントにしても、さほど遅延はないから、それでもよいっちゃ、よいんだけど、夜の暗視とか考えると手持ちのUSBカメラでは...。
ただ、RTPでもマルチキャスト+ユニキャストとかもできるみたいだし、運用方法見直しでなんとかしてみちゃおっかなとも。
市販スマート家電用の汎用スクリプトはそのままだけど、仕掛かりを解決する必要もあって同じく汎用のブラウザ操作パネルの方はサーバ側をFlaskからNode.jsに変更してみたよ。
=> スマート家電用ブラウザ操作パネルと操作スクリプトを自作
ついては、先週の記事から更に転載・編集・投稿してみた。
モバイルに関しては、レイアウト的にもうちょっと対応しなくちゃって感じだけどね。
あ、汎用って、そのままどのスマート家電でも使えるってわけじゃないよ。
この一連の方法を使えば、たいていのスマート家電にも対応できるはずだよ。
だとしたら、違うメーカーのスマート家電買っても専用アプリが乱立することもなく、統一できるよねって話。
先月27日に届いたダイキン加湿ストリーマ空気清浄機はスマホ専用アプリをリモコンにできたり、Amazon AlexaやGoogle Home対応で音声操作もできるスマート家電。
でも、室内操作さえもクラウド経由、専用スマホアプリへのログイン、会員登録必須という困った仕様。
だから、困った仕様を一掃、更にパソコンでも、ブラウザベースの自作操作パネルやJulius/Open JTalkスマートスピーカーからでも操作できるようにしてみたよ。
もちろん、スマホやタブレットからブラウザベースの操作パネルを使うようにすることだってできるよ。
結果、全部じゃないにしてもスマート家電を買う度にスマホやタブレットの専用アプリから(操作しても良いけど)操作しなくてもよくなったよって話。
ついては、ここに書いてあった関連の話、転載、編集してみた。
あと自作したいビデオドアフォンのために買ったI2SマイクとI2Sアンプ付きDACだと、どうもトランシーバ的な使い方しかできないっぽい。
フォーク除いて、これらとESP32使ってるものに限ればネット上に唯一と思われるWalkie-Talkieプロジェクトがあって、それがPlatformIOで書いてるんだって。
![GAFAM推し]だし、VS Codeも微妙だったんだけど、この組み合わせ、すごい人気みたいだから、試しにとりあえずね。
でも、そこまで推すほどかな?
ビルドが速いって話もあるみたいだけど、そんな変わるかな?
使ったことはないけど、PlatformIOならJetBeansのCLionの方が、見た感じスッキリさっぱり、わちゃわちゃしてなくて、わかりやすそうに見えるけど気のせい...?
一括とか、芋づる式とかじゃなく、プロジェクトごとにライブラリを使えるとか言うけど、そこで困ったこと、あんまりないし。
メニューから選べば良さげなものすら、汎用だからか、いちいち[Ctrl]+[Shift]+[p]で探さなくちゃいけないのとか、QUICK ACCESSメニューとか、PlatformIOホーム画面とか介して、デバイスやライブラリ検索するの面倒だし。
普段ダークテーマって使わないけど、VS Codeのライトテーマ、めちゃめちゃ眩しくてダークじゃないと無理、でもダークはダークでコントラスト的に見づらいし...。
まだ、いじって1日2日だし、ESP32、時々Raspberry Pi、稀にArduinoだからか、今のとこ、まだ、その良さがよくわからない...。
まぁ、ESP-IDFあんま使わないからあれだけど、唯一、便利かなと思うのは、ヘッダやソースファイルさえなんとかすれば、ESP-IDFのでも、Arduino IDEのなら、そのまま.inoファイルをインポートして使えちゃうとこかな...。
Waydroid使うためにいつしか好みから外れたGNOME(Waylandベース)と向き合ってみたよ。
アクティビティとかアプリ一覧にWaydroid内のアプリも表示されちゃって微妙に起動できるのもあればできないのもあって...消す方法ないのかな?
あとデフォルトのファイルマネージャ、変更できないのかな、というかデスクトップ絡みのとこは別として、それ以外の部分、CajaがいいけどMATE入れてないから、Nemoでもいいから変更したいんだけど。
スマホ・タブレット的なGNOME 3系、当時からパソコンで使うには違和感あったんだけど、GNOME Shell(≒GNOMEのGUI)には有志が作ったのも登録できる拡張機能があって、それ使うとめちゃめちゃアレンジできるんだね。
GNOME2系が好きでMATE、GNOME3系から早々に離れ、2系の香りを残しつつ進化したCinnamon(どっちもLinux Mintの成果物)を好む人がカスタマイズすると限りなく、GNOMEクラシック寄りになっていくと思うけど...ってか、もうなってるけど...。
その拡張機能も何をどうすればよいのか...まぁ、自由自在って見方もあるけど。
拡張機能用のGUI(gnome-shell-extensions?)どこいった?ブラウザにしたんだ、Chrome/Chromium/Firefox/Vivaldiとかで使えるんだ、ふむふむ、でブラウザで拡張機能入れてOSでchrome-gnome-shell入れればいいってあるけど、何がどうなるの?
今やその差はsearch機能の有無っぽい、とは言え、その違いは大きいけど、CLIのgnome-extensionsとpipでインストールできるgnome-extensions-cliの使い分けは?
こういうので入れられる拡張機能とOSのリポジトリにある拡張機能って連動してなさ気だけど、実は連動してるの?棲み分けがあるの?OSのリポジトリ内のは、今や意味ないの?
検索するにも、例えば、どんなのがあるのかとか、拡張機能の全貌を眺めるためには、CLIは使えなくて、やっぱり、GNOME Extensions眺めるの?とか。
CLIは、どっちも各種拡張機能の有効/無効切り替えられるけど、GUIだとTweaksが使えるんだね...なるほどなるほど。
Debianであまりにも快適だったから、オプション有効にするのにカーネルをビルドして今やメインのRaspberry Pi 400にWaydroid入れて使ってみることにしたよ。
DebianにWaydroidでAndroid(LinegeOS 18.xベースのAndroid 11)入れてみたよ。
ネイティブアプリ感覚の爆速具合で最高だね。
据え置き型の1号機、2号機に続き、今回は、浴室洗面台ハンドソープ用に壁掛けタイプの自作非接触センサー式ディスペンサー3号機作ってみたよ。
ダイソーのスウィング式ゴミ箱とワンプッシュで開閉できる保存容器、めっちゃ高見えするする、ちょっと小洒落たホテルみたい、加工が雑じゃなければ...。
据え置きでも良かったけど壁掛けの方がシンク回りの掃除も楽だし。
1号機に続き、自作非接触センサー式ディスペンサー2号機作ってみたよ。
ほぼ一緒だけど、キッチン用にアレンジ。
当然、キッチン用洗剤入れて使ってるよ。
浴室洗面台のハンドソープ用に3号機も壁掛けタイプとして着手済みで形はもうできてるよ。
結果、1号機はトイレのシンクのハンドソープ用に決定。
マイコン要らずで流体汎用のタッチレスセンサー式のオートディスペンサー作ってみたよ。
駆動は電池、電池ボックスは、ON/OFFスイッチ・カバー付き電池もたなすぎたからACアダプタ5V、主に錘として安定性を高める目的で土台にすべく、これを更にケーシングして防水性もちょっとアップ。
手持ち2個の内の1つチューブ内以外は流体に触れない蠕動式のチューブポンプを使ったおかげで液体タイプのハンドソープ、キッチン用洗剤、アルコール消毒液でも動作確認できたよ。
とりあえず、1個作ったけど、チューブポンプ3個買っておいたから、洗面所とトイレのシンクにハンドソープ、キッチン洗剤は2種類使ってて油がすごい時とかに使ってるボトルを振らなくて済む方にあと2つは作ろっと、外観違う感じにできれば、それはそれでいっかな。
手指消毒用のアルコール除菌スプレーは、帰宅時のうがいも、ハンドソープでの手洗いも必ずするし、たまの来客用に自宅に常設しておいても使用量的に微妙だから、とりあえず、なくても、いっかな。
流体によっては違うポンプで作らなくちゃかもなと、ふと頭をよぎったりもしたけど同じチューブポンプで思い描いていた液体、一通り、いけちゃった。
もう1種類のダイヤフラムポンプ何に使おっかな。
ついでにやっとこ...というわけでシーリングライトにもスマートプルスイッチ作って付けたよ。
天井とほぼ隙間のないシーリングライトだから電源用とアダプタ装着スペース用引掛けシーリングを挟む関係で何らかのスペーサーが必要。
100均のプラの3個100円のどんぶりでいけるかなと思って買っておいたんだけど、手で引く時、わずかに不安定かな?って気がしなくもない。
スポンジとか発泡スチロールでも足そっかな。
これも新規ページは起こさず、写真も載せたものの、追記のみ。
エイプリルフールだけど嘘じゃないよ。
デスクの上は、試作品や仮配線のものだらけで隙間もないくらい...。
どれも以降は脳内検証どまり、ちょっと悩ましい点があったり、モノが届いてなかったりで進んでなかったものの、とにかく、なんでもいいから動かなくちゃ...。
ということで新たにページは起こさず、写真含め、追記のみに留めたけど、自作スマートプルスイッチに続き、水平展開で2個め作ってみたよ。
もちろん取り付け済み。
2月しょっぱなから材料買い集めて、いくつかmyプロジェクト進行中。
DIY界隈の話だけだと思ってたら、今や、たくさん市販されてるっぽく、ずっと要らないよねと思ってたものの、スマートゴミ箱を自作してみたら健気に動く姿が何とも愛らしくて、もっと作っちゃおっかなって気になっちゃったよ。
試しに使ったのは100均のスイング式ゴミ箱、手動開閉・半自動(手動で開、自動で閉)・自動開閉できるのに加えて未実装だけど見守りにも使えるようにマイコンにはESP32を使ってみた。
あとね、使うのすら我が人生初の超音波式の加湿器作ってみたよ。
存在は知ってたけどその気にならなかったUSB超音波加湿器モジュールとフィルター・カートリッジ、AliExpressで合わせて数百円の買って100均のボトルに水入れて挿してみたら、連続・間欠運転選べて12時間で自動停止する立派な加湿器になったよ。
湿度が高い日以外は、寝る時、毎晩、加湿するようになっちゃった。
ビッチャビチャのグッショグショになるんじゃないの!?なんて思ってたけど、噴霧量すごく見えても全然そんなことないんだね。
それに自走式のスマートカーテンも作りたいし、1つ作って稼働中の手動・電動OKな蛍光灯の紐を引くスマートプルスイッチをあと2つ作ろっかな。
それと、タイマー付けるにしても、言ってもON/OFFだけ、IRリモコン非対応だと他の機能があっても手動でしか操作できない、まして家電のコンセント差し替えない限り、Wi-FiでのON/OFF限定になっちゃうって利便性の高い使いみちが思い浮かばず、仮組みに終わっている初代自作スマートプラグ。
これ完成させて、更にあと3つほど作ってみてもいいかなって、とは言え、勢いだけで具体的な用途はまだないんだけど、作っておけば使うかなって...。
それから、ESP32とMEMS I2S対応マイクINMP441で音源保存・再生してみたり、Raspberry PiとMAX98357AやESP32とMAX98357Aとかアンプ付きDACとスピーカー使って音源再生させてみたよ。
電子工作始めた数年前からインターフォンというか、VPN経由で外からスマホでも応対できるビデオドアホン作ってみたいなと思ってて、今までもいろいろやってみてるんだけど、その一環。
マイコンにESP32、マイクにINMP441、アンプ付きDACにMAX98357A、映像用にディープスリープ+外部復帰できるESP32-WROVER+OV2640カメラがあってネット環境とVPN環境もあるわけで、できるよね、むしろ、筐体や取り付け方法、電源のとり方の方が悩むかも?みたいな。
それとは別に監視カメラ的にESP32-WROVER+OV2640カメラ使うのもありだよねとか、在宅中や外出中もスマホやパソコンから任意の時点で、もしくはライブでドアの外を確認できるみたいな。
ハッキングされないように気をつけなきゃだけど、ライブなら何をすることなくサンプルスケッチを自分好みにアレンジしてアップ、USBケーブルつなぐだけで、というか既にスケッチアップ済みのESP32-WROVER+OV2640ライブカメラ1つあるから、それこそ、あとは筐体と取り付け場所と取り付け・電源の配線方法が決まれば、即できちゃう状態。
あと手指消毒用アルコールとかハンドソープとかのセンサー式オートディスペンサーも作ってみようかと、ポンプも2種類は入手済みなんだけど、それがベストなのか、ベターなのか、他に探したほうがいいのかなとか選定に悩み中。
この2種は比較的安価だったけど、他っていうと思いの外、結構高いんだよね、ポンプって...、あんまりにもコスパ悪いと、それはそれでできても嬉しくないというか、ネット上でお披露目するのもこっ恥ずかしいというか。
加湿器の超音波噴霧器を流用できないかなって意味もあっていくつか買ったんだけどスプレーとしては、やっぱり微妙かな、こういうのもアリっちゃアリかなとか。
完成品のスプレーボトルやプッシュボトル使う手もあるけど、特にプッシュ式のはサーボにしてもステッピングモーターにしても意外と悩ましいし。
解決すれば尚更だけど、あれこれ悩むのもDIYの楽しみの1つだけどね。
今更ながら、ドメインをwww.webzoit.netからwebzoit.netにしてみたよ。
前は、http => httpsは、.htaccessで、ドメインは悩んだ挙句、頑なにあえてサーバの設定でwww付きにしてたんだけど、それやめて、どっちも.htaccessでドメインは逆にwwwなしにすることに。
やっぱり、すっきりするよね。
今更ながら、ダークモード/ダークテーマに対応してみたよ。
CSSで@media (prefers-color-scheme: dark) {}内にダークモード/ダークテーマ用の設定を羅列しただけ。
Android(スマホ・タブレット)については、[設定] => [ディスプレイ] => [ダークテーマ]でON/OFFし、Firefox 108.2.0、Edge 108.0.1462.76、Chrome 109.0.5414.85、Opera 72.5.3767.69342、Brave 1.46.154、Fennec 108.1.1、DuckDuckgoブラウザ 5.145.4で動作確認済み。
ただし、当該バージョンのEdgeとOperaについてはダークテーマONで起動後、ダークテーマをOFFにしたところ、ブラウザアプリが落ちた。
また、Fennec、DuckDuckgoブラウザでは、なぜかトップページのみ効いたり効かなかったりする、OFFの際は何事もないものの、ダークテーマをONにした場合、各種ページに初回アクセスする際、ページの任意の場所をタップしないとダークテーマが反映されないこともあるというバグらしき現象に遭遇。
検証で入れただけのFennec、DuckDuckgoブラウザ以外、不本意ながら、ちょっとした事情でアンインストールできないChromeは無効化、他はアンインストール。
PCについては、ベンダー間で統一されていないどころか、対応が進んでいないというか、Linuxだからかな?Firefox以外は、ダークモードOFFが前提のようでパネル設定項目さえないっぽい。
Raspberry Pi OS/ラズパイパソコン上のFirefox 102.6.0 esr、Chromium 104.0.5112.105で確認、前者はブラウザの設定からON/OFF、後者は、端末からオプション指定(chromium-browser --force-dark-mode URL_OR_FILE_PATH)し、ダークモードを強制ONしてOSではなくブラウザによるダークモード設定において、いずれも対応していることを確認。
以前からダークモードの存在は知ってたけど、スマホ利用頻度も高くないからか、あまりメリットを感じず、また、なんとなく馴染まない感もあり使っておらず、申し訳ないことに自前のサイトに実装するという発想も浮かびさえしなかったんだよね。
が、自作スマートホームガジェットの操作パネルを今風の小洒落たスマホっぽいデザインにしてみようかと久々にCSS仕様について調べている内、ふと、そう言えば、ダークモードってCSSで割と簡単にできるんじゃ?と思うに至る。
ダークモードって眼にも優しいって言うし、特に昼夜、時間関係なくイジることがあるスマホやタブレットにおいては、需要もあるのかってことで、やってみた次第。
だからなのかな?スマホ・タブレットとパソコンでベンダーの対応が大きく異なるのは。
ちなみに抜き打ちチェックはしたものの、中には対応漏れページもあるかも。
あと、これ後でページ起こしてリンクに代えるかも。
100均ダイソーの550円 温湿度計付きデジタル時計の数値をOpenCV/Tesseractで解読してみたい衝動に駆られ、デジタル記号・数字の学習済みデータ使って、やってみたよ。
で、その後、OCRソフトTesseract自体の精度確認もしてみた。
前にmotionで動体検知したり、AIでもやってみよっかなってノリになってChainerCV/YoloとWebカメラでリアルタイム物体検出デモとか、ChainerCV Object Detection/対象検出サンプルの実行もしてみたことはあった。
つい、この間、Processing/OpenCVとWebカメラで動体検知・追跡してみたり、Raspberry Pi/Python/OpenCVでストリーム映像/画像の表示・保存やIPカメラから映像配信通知を受信・動画/画像としてサーバに保存してみたりもしてた。
でも、これはこれで、また、面白かった。
また、やってみよっと。
固定電話1台で併用しようと思ったら、勘違いしててひかり電話と050IP電話で固定電話2台体制になったけど超満足。
今更ながら、無料通話対象提携先に電話する必要があって本来スマホ用の050 plus+VoIPアダプタ+固定電話で050IP電話機(電話番号内緒、提携先特定番号への発信専用)で通話料無料にしてみたよ。
ひかり電話(スマホ電話かけ放題プランだから常時、留守電で着信専用)も健在。
というか、LNPしているNTT加入電話番号、ほぼ要らないんだけど、何だかんだ言っても、なかなか切り捨てられないんだよね。
断捨離しきれないついでにONU/ひかり電話対応ルーター(ホームゲートウェイ)に内線登録したVoIP|IP|ソフトフォンLinphoneを入れたスマホ、Raspberry Pi 400パソコン、dynabookでひかり電話の外線着信、ひかり電話機で出た通話を内線でスマホやパソコンに転送できるようにもしてみたよ。
結構な頻度でかける050IP電話機は通話料を無料化できたし、子機が壊れていた古いひかり電話機もスマホやパソコンでハンズフリー通話もできるようになって快適。
あれこれやってて余ったラズパイ3B+を、なんちゃらカメラ専用にしようかとgstreamerやmjpg-streamerとかもチラ見しつつ、やっぱり、一途にZoneMinder。
そう思ってRaspbian/Debian bullseyeにZoneMinderをインストールしたら、ちょっとハマったけど、リンク先の通り、無事、解決。
めでたし、めでたし。
初期設定の手間すら省いてくれるし、なんと言っても、狐につままれたような誰も味わったこともないほどの、驚異の書き込み完了までの爆速ぶりからもRaspberry Pi Imagerは、ラズパイユーザー全ての人々が使ってもきっと納得の素晴らしい出来だし。
コロナ禍、それもあっての世界的な半導体不足の中、次は4B RAM4GB/8GBと思っても買えない、欲しさ募って、ラズパイ3B+をサブパソコン化してたわけだし、これに替えるのもありかと売り切れることなく在庫があったラズパイ4B RAM4GBベースだけど、ちょっぴりクロック周波数の高いRaspberry Pi 400を買って使ってみたら、最高だし。
@1.8GHz クアッドコア(1.8GHz x4) RAM4GBは、RAM容量こそ同じも、CPUクロック周波数、コア・スレッド数は、@1.6GHz デュアルコア(1.6GHz x2) RAM 4GBという自身のメインPC超えてるし。
ってか、スマホは、オクタコア(2.3 GHz x4 + 1.8 GHz x4)、RAM4GBだから...
どれがメインだかわかんなくなっちゃうよ!(明白?
もちろん、GAFAM製品は極力避ける方向性でワイヤレスHDMIことMiracast非対応AndroidスマホとAnyCastデバイスを接続したテレビでミラーリングに成功してみたら、また、Bluetoothに対応していないテレビやカセットデッキ、ラジオ、有線のスピーカー、100円の有線イヤホン・ヘッドホン等々をBluetoothトランシーバー・レシーバーで無線化できてみたら楽しい!
実用的かどうかは、既存の機器環境や人それぞれのやりたいことと実現度合いの程度次第だけど。
ダイソーの1000円のBluetoothスピーカーWS001、Bluetoothスピーカー自体初めて使ったけど結構良いよ!
自作スマートスピーカーの音源を湯船でも聴きたくなって防水じゃないし、そもそも微妙に電波届かないから浴室近くに設置。
そこは、扉を開けて湯船に静かに浸かっていれば、今まで微かにしか聴こえなかったお風呂場でも、スマートスピーカー設置場所でも十分に聴こえる絶妙な場所。
なぜか、自動接続後、即切断される症状があったんだけど、リンク先の通り、スクリプト&cronで対処したら、バッチリ解決。
本来当たり前なんだろうけど?スマートスピーカーのスピーカーで再生中、Bluetoothスピーカーの電源を入れるとBluetoothスピーカーに、電源を落とすとスマートスピーカー側のスピーカーに自動で切り替わるようになったから、すごく便利。
Python/pip/websocket周り仕様変更!?にハマるなんてこともありますが、楽しいよ、IoT。
壊れかけリモコンの代用、鑑賞を楽しみにしてる赤い実狙いの鳥よけ作り目的で始めた電子工作歴3年半のいわゆる文系のおじさん、いや、おじーさんからの一言。
電子工作、めっちゃ楽しいよ。
だって今や家の中のいろんなものが、自作品のスマートリモコン、スマートプラグでスマホやタブレット、PCのブラウザから無線操作、自作のラズパイスマートスピーカーやパソコンから音声操作できちゃってるんだから。
エアコンとか、テレビとか、壁スイッチの照明とか、紐で引っ張るペンダントライトとか、カーテンとか、はたまた自作のロールカーテンとか...。
最初、鳥除けやリモコンの代用を作ろうと思って始めた電子工作たけど、やり始めてみたら、それより、無線や音声操作のほうが、めっちゃ便利って気づいちゃった。
ちなみにスマートスピーカーは、AI搭載のAmazon AlexaとかGoogle Home/Google Assistantとかも実質、無償公開されているから、Raspberry Pi(通称ラズパイ)で自作して使うこともできる。
だけど、じーさんは、あえて非AIながら何れも日本製でオープンソースの音声認識ソフトJuliusと音声合成ソフトOpen JTalkを使わせてもらってラズパイで作った。
あれこれ学習して賢くなっていくわけじゃなく、シナリオ通りにしか動かないけど、シナリオの書き方が良過ぎるのか、超便利だよ。
家電操作だけじゃなくてYoutubeの邦楽、洋楽、ICECASTストリーミングのジャズ、クラシック、ブルース、自分でリッピングしてローカルサーバに上げてあるCDコレクションの6択だけど音楽も、ラジコのおかげで自分の地域のラジオ放送も、ニュースや天気予報を聴くことも、日付、曜日、時刻を確認することも、タイマー・アラームを設定することも...できたりするからね。
もちろん、自作なわけだから、機能を増やすのも減らすのも自由自在だけどね。
と言うか、Amazon、Google、LINE、Appleとかのクラウドサービス使っちゃって個人特定されないまでも使用履歴、行動履歴や音声識別とかだと誰が、家にいる・いないとか、時間帯とか、GPSあったら家とか居場所とかも保存されちゃったり、把握されちゃって、利用サービス提供会社の社員だとしても、自分からしたら、どこの誰だかわからない人に、いや知人でも嫌だけど、知られる可能性がゼロじゃないのって超気色悪いなんてもんじゃないし。
まぁ、何れにしても、自分で作ることができて、自分の意思で使うものを選択できるっていいよね。
スマホやタブレット、パソコンから使えるブラウザの操作パネルの他、Gtkより微妙に情報が多かったQtでパソコン用デスクトップアプリとしての操作パネルも作っちゃった。
パソコンからラズパイスマートスピーカーを操作することもできるし、音声操作じゃちょっと厳しい細かい操作もできるから。
これって電子工作っていうより、その延長線上にあると言ってもいいIoTなんだけど、IoTじゃない便利グッズも作ったよ。
人感センサー+LEDテープライト自動点灯するベッド下照明、スイッチ付きコンセントに挿したACアダプタから電源をとったLEDテープライトのデスク下照明やちょっとした間接照明、電池式でスイッチ付きのLEDテープライトとか。
今どき市販品買ったほうが安いけど温湿度計付きArduino時計や温湿度計付きのESP32時計とかもあるか。
もちろん、電子工作をはじめたきっかけの1つ、鳥よけも今や2個稼働中、追加でテープ状のNeoPixel使ったやつを1個試作・検証中。
どれも超便利で快適だから当たり前に毎日のように使ってる。
とは言え、実用上全く困ってないけど、完成品でも間違ってるところもあれば、改善の余地も多分にあるとは思うけどね。
なんたってまだ始めて3年半だし、今もあんまり成長してないけど、右も左もわからない幼気な1〜2年目の頃に作ったのもあるし。
いたいけってこんな字なんだ、生まれて初めて使ったよ。
さっき言ったLEDテープライトのやつとか、IoTガジェットじゃないものなら、どれもマイコンがなくても作れるからお手軽。
プラスアルファ機能を追加したいなとか、もっと複雑なことやりたいぞってことになるとマイコン(マイクロコントローラーやマイクロコンピュータ)ってものが必要になるけどね。
マイクロコントローラは、制御用の電子機器で、マイクロコンピュータは、パソコンの頭脳部と一緒、共に一般に裸の基板状態で、どっちもハードウェア。
文系じーさん、マイクロコントローラというものを知って探した時、最初、PICとかFPGAとか目に入って、まじか!?ハードル高すぎっ!!って思ったけど、しばらくしてArduinoっていうの見つけて、それそれ!求めてたのは、そういうの!!って飛びついちゃった。
マイクロコンピューターには、IchigoJam(いちごジャム)やRaspberry Pi(ラズベリーパイ)とかがある。
どれも見た目は、基板。
だけどIchigoJamは「こどもパソコン」とも呼ばれていて、プログラミング言語の中でも比較的シンプルでコマンド数も少ないBASICっていうものでプログラムを作ることができて、こどもでも覚えやすいように工夫されているみたい。
大人でもプログラミングをはじめてみたいけど、おっかなびっくりみたいな場合は、電子工作もできるみたいだし、IchigoJamから入るっていうのも良いかもね。
Raspberry Piは、そういう意味では、大人向けって感じかな。
Arduinoには、OSは不要だけど、Raspberry Piは、Wi-FiやBluetooth通信もできてパソコンの頭脳としても使えるコンピュータそのもの。
だからWindowsやLinux、*BSDなどのOSをインストールして使うんだ。
まぁ、最先端、最新の最上位やミドルレンジパソコンほど贅沢スペックってわけじゃないこともあるし、ラズベリーパイでよく使われるのは、Linuxだから、Linuxがおすすめだけど。
何かわからないことを調べる場合の情報量からしても、特に限りなく標準に近いDebian GNU/Linuxのラズベリーパイ版Raspbianを使うのが賢明だと思う。
ってなわけでラズベリーパイを使うならLinuxを知っている、というか、使えるのが前提だね。
仮に今、Linuxって何?状態だったとしても知っておいて損はない!というより得がある!いや、知らないのは損!って、じいさんは、いつになっても常々、そう思わされるシーンに出くわしているよ。
あー、こんな便利で万能なもの、ちょっとだけでも知っててよかった!ってね。
それとラズベリーパイ自体は基板だから、これをいじるにしてもコンピュータとして使うにしてもOSを入れたり、保存するためのMicroSDカード(かバリエーションによっては、USBメモリ、HDD、SSDでも可な場合も)、モニタやキーボード、マウス、ACアダプタも必要になる。
それらを備えたパソコンを持っていれば、sshっていうコマンド、もしくはVNCっていうリモート仮想デスクトップ環境を使ってパソコンから遠隔操作できるからモニタやキーボード、マウスは要らないけどね。
って、以後含め、ここで言うパソコンは、それでも使える場合もあるけどChromeブックとかのブラウザOSのやつじゃなくてWindowsやmacOS、Linux/*BSD/PC-UNIXが入ったコンピュータね。
ただ、電子工作、IoTガジェット作りで使う分には、ハイスペックである必要はないから激安PCでも十分。
とは言え、ゲーム含め、ヘビーなことはしない前提であっても、電子工作以外のことも考えるとCPUは、64ビット、Celeronデュアルコア以上、RAMは4GB以上、ストレージも容量はともかく、できれば、HDDよりもSSDの方が良いとは思うけどね。
とりあえず、パソコン上で体験してみたい!という希望も今は叶う。
まず、プログラミングなら、Scratch。
MIT(米マサチューセッツ工科大学)のプロジェクトから生まれたScratchは、プログラミングなんてよくわからないという人でもこどもでも馴染みやすいブロックを並べる感覚でゲームやアニメを作ることができるソフトウェア。
Thinkercadは、3Dデザイン、電子機器シミュレーション、コーディングなどができるブラウザ完結のウェブアプリ。
Arduinoを含む電子工作の回路をウェブ上でフルカラーでグラフィカルに配置、配線して実際にどう動くのかとか、値の計測・表示といったシミュレーションもできる。
だから、Arduinoを買わなくても練習することができちゃう。
ただ、このThinkercadは、以前は、Autodesk Circuits、その前は、123D Circuitsなんて名称だったんだけど、名称やホームページをコロコロ変えるので使わせたいのか使わせたくないのか謎。
Arduinoは、OSはないから必ずしもLinuxを使える必要はないけど、知っているに越したことはなく、スケッチっていうC言語やC++ベースながら、これを簡略化したプログラムを書いて転送して書き込むにあたってパソコンが必要。
スケッチは、寄付もできるし、無料でもダウンロードできるArduino専用のArduino IDE(統合開発環境)を使うんだ。
これには、Web版とダウンロード版がある。
少なくともLinuxでは、1つのバージョンならインストールしても、複数バージョン使いたいとかインストールしたくないならインストールせずにダウンロード・展開して使うこともできる。
他にも使えるIDEはいくつかあるけどね。
だから、Arduinoを使うなら見様見真似でもなんとかならなくもないけど、初歩の初歩の文法だけでもC言語やC++を知っているに越したことはない。
Arduinoはオープンハードウェアっていう形態をとっていて誰でもArduinoを作ることができるんだ。
おかげで正規品もあるけど互換品もたくさんあって特に中国製は、基本的に機能は同じなんだけど値段は数千円の正規品と比べ物にならないくらい安く数百円で手に入るっていうのもArduioの魅力の1つ。
2005年イタリアからデビューしたArduinoにもいろいろバリエーションがあるんだけど、Arduino UNO(その前身はDuemilanove)っていう基本形みたいなモデルがあって、これが手始めには、一番おすすめ。
UNOには、USBポートがあってUSBケーブルでパソコンとつないでスケッチっていうプログラムを転送してあげるとその通りに動いてくれるから手軽。
そんなUNOには、ピンソケットっていう先端がピンになった配線コード(ジャンパワイヤー)の差し込み口がたくさんあって5Vや3.3Vの電源をとったり、電気信号の送受信に使ったりできるから、これを利用して、いろんなセンサーをつなげて遊ぶことができるようになっている。
Arduino UNOとセンサーをピンやピンソケット付きの配線コードで直接つなぐこともできるし、最近ではブレッドボードっていうハンダ付けしなくても通電・配線できるピンを挿す穴がいっぱいあいた板状のものがあるから、それを介してつなげることもできる。
Arduinoに対応したセンサーほか各種モジュール(ピンや配線をつなぐだけで使える状態の基板)もたくさんある。
対応って言っても一般的な3.3V出力もできる入力電圧5V版のArduinoボードと同様に3.3Vや5Vで動作するっていうだけで専用っていうわけではないけど。
更にArduinoには、Arduino用に作られたシールドと言われる機能を追加・拡張することができるものがあってUNO用が一番多くてUNOのピンソケットにそのまま挿すだけで使えるようになっている。
有線でインターネットにつなぐためのイーサネットシールドっていうのもあるし、この機能を持ったArduinoボードもある。
話題のIoT(モノのインターネット)ガジェットを作るなら、ネットワークにつなげるのは大前提だしね。
ただ、無線ネットワークを介して通信する場合、日本には、技適というものがあって、これをクリアしている通信モジュールを使う必要があるんだけど、Arduinoで使える技適をクリアした無線モジュールは限られ、それらはオープンハードウェアでもなかったりして結構、高価なのが、ネックだったりするんだよね。
そんな中、Arduinoよりも性能が高い上にWi-Fi接続できるESP8266やESP-WROOM-02、この後継でWi-Fiに加えてBluetooth通信できるESP-WROOM-32が中国から登場したんだ。
これが、激安なArduino互換品とイーサネットシールドよりも安くて、Arduino互換品単品と比べても同程度の値段、わずか数百円で買えるという驚きの価格設定だからIoT向けはもちろん、仮にそうじゃなくても大人気。
これもOSは要らないから、その辺の知識や経験は不要。
ESP-WROOM-02やESP-WROOM-32は日本の技適を通っているものもあるから、日本では、それを使わなければならない(それを使っておくのが安心)、だけど、それはたいした制約ではない。
プログラムは、C/C++ベース、より玄人向けでプログラムの作成や書き込みに端末(ターミナル)を使う専用のESP-IDFっていうのもあるけど、なんとArduino IDEでもArduino的に書けて転送して書き込むことができるし、Arduinoと同じような使い方もできるから、別にArduinoを用意する必要もなく、既にArduinoに馴染んでいる人も使いやすくなっているんだ。
それとESP-WROOM-02やESP-WROOM-32はICチップでブレッドボードで使うにも使い回すにもピッチ変換基板にハンダ付けしておいた方が使い勝手がよい。
だけど、例えば、ESP32ならUSBポートとか必要となりそうな(それ以上のもの)一切合切載っかりつつ、もはや、ICチップ+変換基板と価格もほぼ同じくらいのDevKitCやDEVKITといった開発ボードもあって、そっちの方が何かと楽。
ICチップ+ピッチ変換基板には、プログラムを書き込むのに安価とは言え、FTDIモジュールっていうものも必要になるけど、開発ボードならUSBケーブルがあればOKだしね。
IoTガジェットを作るならコスパからしてもESP32一択と言って良いと思う。
ESP32内蔵で技適もクリアしてモニタから何から一通り搭載したM5StackとかそのままウェブカメラになるM5Cameraとかもある。
中国産に抵抗がなければ、だけど。
まさにアメリカが、おめーらなんかやってるだろ!って怒ってるし、GoogleやAmazonに情報抜かれるのも抵抗があってクラウドなんて...って引き気味に見てるじーさんももちろん気にはなるところだけど、なんだかんだ言っても、今どき中国産、避けて通れないしね。
まさかESP32に超ナノサイズのGPSとか、マイクとか、カメラとか、広域通信網でキャッチできるデータ通信機能が内蔵されているわけもないだろうし、いっかなと。
IchigoJamは、日本からデビューしたものでオープンハードウェアではなく、正規品が1500円程度みたい。
これは、基板だけの価格であり、モニタやキーボード、必要ならマウスもいるみたい。
使うまでにハンダ付けを要するバージョンとハンダ付けの要らないブレッドボード版があるらしい。
また、Linuxはちょっと...という人向けにRaspberry Pi用のOSとしてIchigoJam BASIC RPi/RPi+もリリースしている。
Raspberry Piは、2012年イギリスからデビュー、ラズベリーパイも完全なオープンハードウェアではなく、RCコンポーネンツ(英国)製、RCコンポーネンツ(日本)製、element14(中国)製などの正規品がある。
バリエーションは、CPU性能やRAM容量512MB、1GBと変遷はありつつも25ドルから始まって後の35ドルの基本モデルの他、Pi Zeroや現時点最新のModel 4BのRAM1GB、2GB、4GB、8GBなど5ドル〜75ドルまでいろいろ。
ドル表記したけど、日本でも買えるよ。
前に言ったように単なる基板だから、モニタやキーボード、マウス、ACアダプタはない、PCから操作する分には、モニタ/キーボード/マウスは不要、でもラズベリーパイの電源(基本ACアダプタ)とかOSを入れておく、データを保存するためのMicroSDカード(モデルによっては併用、もしくはUSBメモリ、HDD、SSDだけでも可)は必須。
それにホコリ対策や見栄えのため、また、安定稼働のためにも基板というかICの放熱対策としてヒートシンクとか、ファンとかもあった方がよくて、これを固定するためにもケースとか、その分の費用も必要だけどね。
電源をとったり、センサーと通信できる各種ピンもあってIoTガジェットを作るのにも使えるんだけど、コンピュータだから、ArduinoやESP32にできないこともできるよ。
特にOSがLinuxならコマンド含め、OS機能全般使えるし、Perl、Python、Rubyとかスクリプトも使えて、必要ならソフトウェアとの連携なんかもできるし、ArduinoやESP32と連携することだってできる、しかも完成品のパソコンに比べて圧倒的にコンパクトで汎用的に使えるようになっているから使いみちもいろいろ。
例えば、ESP32で作ったスマートリモコンやスマートコンセントをラズベリーパイで作ったスマートスピーカーから操作するとかね。
スマートスピーカーを機能させるにあたっても、いろんな追加機能にしてもLinuxコマンドやPerlとかPythonなんかのスクリプトが活躍してくれているんだ。
ただ、じーさんは、電子工作を始める1年くらい前に最初サーバとしてラズベリーパイを買って、今も運用中たけどね。
2台めがスマートスピーカー、3台めがサブパソコンの頭脳として。
どれもOSはRaspbian。
Raspberry Pi 4BもRAM1GB以外にも2GB/4GB/8GBもリリースされたけど、microSDレス起動の標準化、性能、目新しさ、コスパ...何か物足りない、もう一声ってとこかな...と様子見中。
ブラウザ操作パネルにしてもデスクトップアプリの操作パネルにしても、ソフト使うにも基本、制約はなくて作るのも使うのもWindowsよりLinuxの方が、圧倒的に簡単だから、ESP32を使う場合もLinuxに慣れていた方が、より活用できると思うよ。
ちなみにスマホやタブレットのOSであるAndroidもLinuxの派生だから、実は知らず知らずにでもLinuxを使っている人は多いんだけどね。
macOSも少なくともMac OS Xシリーズの一部は正統派UNIXなわけでUNIXコマンドに慣れている人も多いだろうからLinuxに抵抗はないだろうし、Windowsユーザーでもdockerとかのコンテナもあるし、VirtualBoxとかVMWareとか仮想化ソフトウェアもあるし、Windows10には、WSL/WSL2もあってLinux使えるから、Windowsユーザーでも手軽に試せるし、覚えられるよね。
まぁ、仮想とかじゃなくて普段使いのOSとして物理的なコンピュータに直接入れた方が、より、その快適さがわかるけどね。
そのプロセスは学びも多いし。