t-yosh’s blog

元ソフトウェアエンジニアが、モノづくりについて学んでいるブログです。モノづくりに必要なハードウェア・ソフトウェア・デザインのことを書いています。

水漏れセンサーシステム作成 <その6 筐体設計 準備編>

水漏れセンサーシステム作成の続きです。

基板とパーツの実装が済んだので、これから楽しい筐体作成です。

Fusion 360を使って筐体を設計します。

ケースの設計を始める前に各パーツの3Dデータを作成します。

以下のモジュールのデータを用意します。

  1. WROOM-32-DevKit
  2. LCDモジュール
  3. Vol.Switch
  4. 圧電スピーカー
  5. SW

作成する前に、メーカーがCADデータを出していないか確認します。なければ寸法して作成します。

WROOM-32-DevKit

これはあるかなぁと探したんですが、DevKitの状態のデータは見つけられませんでした。自作しました。寸法を測ってデータ入力して3Dデータにする感じです。

メインモジュールのESP32部分は基盤のレイアウトデータから作成しました。microUSBはありもののデータを見つけて利用しました。

f:id:t-yosh:20170930170553p:plain

その他

仕様書を見て寸法から作成

f:id:t-yosh:20170930170613p:plain LCD。。。かなり張りぼて

f:id:t-yosh:20170930170652p:plain SW

f:id:t-yosh:20170930172927p:plain  Volume ツマミ

f:id:t-yosh:20170930173423p:plain 圧電スピーカー

 

結局のところ、全て作成する感じになってしまいました。

パーツを作成したので、筐体の設計に入っていきます。

f:id:t-yosh:20170930175150p:plain

 

レイアウトを決めていきます。

f:id:t-yosh:20170930181451p:plain

3面図風に

f:id:t-yosh:20170930181222p:plain  f:id:t-yosh:20170930181939p:plain

f:id:t-yosh:20170930181542p:plain

 

次回はパーツのレイアウトから筐体を設計していきます。

 

水漏れセンサーシステム作成 <その5 基板化と回路図>

基板化

f:id:t-yosh:20170928032716j:plain

ブレッドボードでのシステム動作確認できたので、基板にしました。結構時間かかりました。

I2Cのケーブルは心配だったのですが案の定少し手間取りました。

ブレッドボード上では、ボードと直結で動作していましたが、ケーブル6mだとそのままでは動きませんでした。I2Cはもともとそこまで長いケーブル向けには作られていないという話もありましたが、以下の記事を参考にして動きました。

I2Cのケーブルとプルアップ抵抗

https://japan.renesasrulz.com/cafe_rene/f/forum19/3619/i2c

結果的には、SDA, SCLに、2.2kΩのプルアップ抵抗で接続しまして、ソフトウェアでI2Cのクロックを10kHzに落とすと通信することができました。通常の100kHzですと、プルアップ抵抗ありでも通信できなかったです。

f:id:t-yosh:20170928033448j:plain

 

回路図

後で見返したときに自分のためになるので、簡単な回路ですが作成しておきます。私はeagleを使っています。

 

それぞれのモジュールのEagleライブラリをネットから探して、一部変更などして利用させてもらいました。作成してくれた方ありがとうございます。

ESP-32

https://github.com/a2retro/ESP32_Miscellany

GPIO expander 

https://componentsearchengine.com/PCAL9555APW%2C118/NXP

AQM0802A (LCD)

https://qiita.com/exabugs/items/9d1b66aa1d22805afbc8

SPとSWなどはデフォルトライブラリから回路図的に似ているものを使いました。

今回の回路

f:id:t-yosh:20170927142247p:plain

センサーの回路は、GPIOでH/Lを検知するだけなので省略しています。

espressifから取ってきたのですが、ESP-WROOM-03という名前になっているのは気になります。

 

 

 

 

水漏れセンサーシステム作成 <その4 モジュール動作確認>

雨水センサーを使った検知システムの各モジュールの動作を確認しました。

モジュール動作確認

f:id:t-yosh:20170924233558j:plain

  • 圧電スピーカーから音声発生
  • ブザー音量調整
  • LCDの文字列表示
  • GPIOエクスパンダデータ読み込み

GPIOはWROOM-32に直接でもできるのですが、ケーブル本数が多くなってしまうので、各センサー信号を受けるところで、GPIOエクスパンダを挟んで、1本のケーブルで本体までつなぎます。5m程度のケーブルになるので、I2C通信に変なことが起こらないか心配です。

各センサーからGPIOエクスパンダーまでのケーブルも5m程度になるのですが、こちらはセンサー基板についている可変抵抗で感度を変えることで対応可能なようです。

筐体の設計

基板のサイズが見えてきましたので、部品のレイアウトと本体部分のスケッチをしてみました。

すごい普通です。。。

 

 f:id:t-yosh:20170924233447j:plain

水漏れセンサーシステム作成 <その3 システム検討 WROOM-32 使用>

とある依頼で、雨水センサーを使った検知システムを作成することになりました。

前回、雨センサーモジュールの動作確認しました。追加で話を聞いたところ、オフラインで以下を達成すればよいとのこと。実現したい内容は以下です。

  1. 検知したいエリアが8箇所ある。(追加で後から2本つける)
  2. ブザーで知らせてほしい
  3. ブザーボリュームを付けてほしい

システムとしては、GPIOでセンサーの出力を監視して、水検知の出力があればブザーを鳴らすというシンプルなシステムです。メイン基板ですが、有線でのネット通信のためにNanoPiNeoにしようと思っていたのですが、ネットワーク不要になったので、WROOM-32でやることにしました。

WROOM32はGPIOが21あるので、センサーI/O で10, ブザー I/Oに2、 ボタンI/Oに1 で、13個+αくらいなので、入力の数は問題ないですね。

ブザーに関しては、Arduino のToneライブラリで圧電スピーカーを使います。

akizukidenshi.com

ボリュームは可変抵抗か切り替えSWで抵抗の値を変更することで実現します。

 

ここで追加で考えたのが

  • 反応したエリアがわかるようにする。

と水漏れを検知してから場所を特定できていいのではないか、ということで、通知の方法を考えました。

方法としては以下の二つを考えました。

  1. LEDをセンサー数分、並べる。
  2. LCDで通知する。

1のLEDを並べる方法ですが、センサーが10あるので、LEDとセンサーI/OでGPIOのポートが足りなくなりますね。

これでやる場合は、LEDコントローラーを使うか、、GPIOをまとめてI2C出力する GPIO expander を使う、という手があります。。ぱっと思い浮かんでスイッチサイエンスさんのボード(864円)を買ってきました。よくよく調べると秋月にも同じようなチップがあって、こちらはかなりお安い100円ですね。

www.switch-science.com

akizukidenshi.com

 

2のLCDの方はI2Cでこれまたスイッチサイエンスさんのボードがあるので、これを使えばよさそうです。

www.switch-science.com

 

ということでセンサー以外でシステムに使用するパーツとしては以下のものでシステムを組みます。

  • WROOM-32
  • 圧電ブザー
  • 可変抵抗 or 切り替えSW
  • ボタン
  • GPIOエクスパンダー
  • LCD

今回、基板は起こさないので、モジュールなど使用して生基板にまとめて作成しようと思います。

作成するシステム全体の構成としては、

  • コントローラ部は室内
  • センサーは室外

となる条件なので、センサーからのケーブルは一旦、中継のハブでまとめてからコントローラにつなぐことにします。

f:id:t-yosh:20170924113338j:plain

 

次回はソフトウェア関係のライブラリやシステム動作になりそうです。

分解ネタ -その1UVCカメラ-

ハードウェアは実際に手に入るという利点があります。分解はけっこう勉強になるところが多いので、分解ネタとして記録していこうと思います。あまり詳細な解説はできませんが、お付き合いください。

今回、中を開けてみたのはメジャーなUVCカメラです。

分解は簡単で、土台と裏側に見えているねじを外すと、基板が取り出せます。

f:id:t-yosh:20170915004359j:plain

筐体の内側

筐体は基板を挟み込むようになっており、基板は筐体にねじで固定してありました。また、ケーブルはコネクタになっているので、コネクタを外すことで基盤を取り出せました。

f:id:t-yosh:20170915004848j:plain

出てきた基板

f:id:t-yosh:20170915005017j:plain

裏側

基板は結構シンプルですね。表面にレンズ、マイクロフォン、メインぽいチップ、小さいチップ、裏側にコネクタ、チップ。部品点数はそれほどなく余っているエリアが目につきます。

f:id:t-yosh:20170915004922j:plain

レンズを外したところ

カメラのレンズは基板にねじ止めされているので、ねじを外すと取れました。

気になる搭載チップなどですが、アップして確認してみます。

f:id:t-yosh:20170915005436j:plain

表側の基板アップ

メインのチップは、REALTEK RTS5822とあり、検索するとすぐ出てきます。

チップのページ(Realtek)を見るとカメラ用のCPUであることがわかります。Chip上にカメラコントローラ、UVCカメラコントローラー、LEDドライバーなどが搭載されているようです。対応のCMOSセンサーの型番が載っていますので、そのうちのどれかのCMOSセンサーを使っていそうですね。

横にあるもう一つのチップは、AL33G 15468 と書いてあり、AL33Gで検索するとレギュレータのようですね。

f:id:t-yosh:20170915005448j:plain

裏側

裏側には小さなレギュレータ、コネクタ、もう一つチップが目につきます。左上のチップはMXIC25L5 まで読めるので、調べると[MX25L5121E]だろうと思います。フラッシュメモリです。

全体としては、こんな感じかと思います。部品点数も少なく、onChipでほとんどの機能が入ってしまっている感じですね。

カメラ用のコントローラとCMOSセンサーがあれば、割と簡単に設計できるのではないかと思っていしまいますね。

 

参考ですが、分解ネタで詳しく書いていらっしゃる方のブログも面白いので紹介します。こちらはアクションカメラの分解されてます。

TYE's Tech. Lab. – TYE's Technology Laboratory

People design 万人のためのデザイン

people design 万人のためのデザイン

ユーザー中心設計に焦点をあてた、ビューティフルユーザーズ展という展示に関する本です。人間中心設計の歴史(黒電話の進化)や、色々な人に合わせてインターフェースを改善する例など、実際に何をどうやって人間中心に設計するのかの例がたくさん見れます。アラジンの魔法のランプを人中心に設計するとどうなるか、とかは若干笑えたりもするのですが、考え方として新鮮でした。

第三章からは、ハンドル、モビリティ、インターフェースに特徴のある先進的なプロダクトの製作の過程が紹介されていて、このあたりの章が興味深いところでした。

製品アイディアの着想からラフスケッチ、何種類ものプロトタイプ、製品化された商品が紹介されていて、色々な製品の開発過程が少しずつですが垣間見えます。中には、OXOのグットグリップスのシリーズなどの知っている製品があり、髭剃り、スプーンなどの試作過程、最近のNestなんかの事例も紹介されていて、とても参考になりました。

スプーンなんかは厚紙を使って試作していたり、色々な素材でサンプルとずらーっと並べていたり、色々な持ち手の形状を並べて試していたり、さすが一線の人たちの取り組みだなぁ、と感心しました。

 

役に立ちそうなリンクがあったので、メモっておきます。

・オープンストラクチャー - オープソースの組み合わせ部品 -

http://beta.openstructures.net/

 

 ・ザ ナウンプロジェクト - 著作権フリーのアイコン集 - 

thenounproject.com

 

水漏れセンサーシステム作成 <その2Nano pi Neo 検討>

とある依頼で、雨水センサーを使ったメール通知のシステムを作成することになりました。

雨滴センサーが届きましたので、試してみました。使用する予定のセンサーは

「Myoffice 検出モジュール レインセンサー雨水モジュールの雨検出モジュール  3, 3V-5V」

amazon で買えます。

https://www.amazon.co.jp/dp/B074VZYC67?psc=1

今回は早めに手に入れたかったのでヤフオクで買いました。

モジュールになっているので、センサー部分を基盤につないだら、電源VCCを3.3Vに接続すると、センサーが反応したときに、DOに3.3Vが出力されます。

下の写真のように、センサーの出力をブザーに入力しているので、水を検知したときにブザーがなります。

 センサー部分に水を垂らすと反応し、ティッシュでふき取ると反応が終わります。

今回、水につかるような状況があるので、それを想定して水に漬けてみましたが、きちんとブザーが鳴りました、水から出すと鳴りやむので水につけるような水位計としても使用できそうでした。

 次回はNano Pi に接続して、センサーの状態を監視できるようにする予定です。

f:id:t-yosh:20170908030450j:image