LoginSignup
5
0

More than 1 year has passed since last update.

【電子工作】IoT玉ねぎチェッカーを作成しました!

Posted at

20180512175914.jpg

はじめに(自己紹介)

筆者は、HottyDBという全文検索エンジン+機械学習ランキング+レコメンデーションの機能を搭載したRDBMSを個人開発しています!
本記事とは関係ないですが、HottyDBを解説した記事もあるので、是非そちらも見てみてください!

玉ねぎチェッカー作りました!

ずいぶん前(5年くらい前)になりますが、大作「玉ねぎチェッカー」を作りましたのでその作成過程を紹介したいと思います。

イメージは上図の通り。
玉ねぎの重さや個数をIoT機器でネット上に送り、スマホからチェックできるようにしました!

用途

仕事帰り、スーパーに寄った時、こんなことを思うことないですか?
「あれー、家にまだ玉ねぎあったかなー?」と。
玉ねぎチェッカーは、それを解決してくれます!
外にいながらにして、家に玉ねぎが何個あるか分かるようになります!!

作り方

1. まず重さセンサーを用意する

ロードセルセンサーとHX711というセンサーモジュールを購入しておきます。

次に、ロードセルを取り付ける板を用意します。

20180512184631.jpg

ロードセルセンサーは、下のように重量がかかったら曲がるようにベニヤ板に取り付けます。

image.png

上の写真はベニヤ板とロードセルの間にナットを挟んでスペースを作りましたが、スペーサーとかを使った方がよかったです。(とんでもなく苦労しました・・・。)

ちなみにロードセルはM4とM5の二種類のネジ穴が空いているので注意してください。

上からみるとこんな感じ。
image.png

これ見てわかるように、ネジはできるだけフラットな頭の方がいいです。

2. 重さセンサーとIoT機器を繋げる

だいたいこんな感じで作っていきます。
image.png

用意するもの

1. NodeMCUというIoT機器。家のWiFiに繋げてインターネットに接続できます。

2. 16x2のLCDディスプレイ(HD44780)。玉ねぎの重さなど表示させます。

3. HD44780のLCDをI2Cに変換するモジュール。上記LCD単体でも機能しますが、配線の節約のためにこのモジュールが必要になります。

4. タクトスイッチ4つ。「ZEROボタン」「ONEボタン」「OFFボタン」「ONボタン」用に。

ブレッドボードで構築するとこんな感じになります

image.png

この右側に伸びてる赤、緑、黒、白の配線とロードセルの配線を繋げます。

3. ハードウェアを完成させる

ブレッドボードの配線の通りにプリント基盤を発注

上のブレッドボードの配線で、プリント基盤を発注しました!
image.png

Seeed Studio というところで発注しましたが、
基盤10枚で400円と激安でした(送料が2000円かかりましたが・・・)。

作成したのは5年ほど前でその当時の価格です

ちなみに基盤の設計は Fritzing というソフトを使いました。
ブレッドボードに配線をポチポチ繋げるだけで設計ができるのでとても簡単!

半田付けしていく

あとは、NodeMCUやタクトスイッチ、HX711などを基盤に半田付けしていきます。

image.png

半田のノリも良いです。

image.png

こんな感じになりました。めっちゃ簡単です!

実は最初、ユニバーサル基盤でやろうとしましたが、その時はめっちゃ時間かかって結局失敗しました・・・。

image.png
↑は失敗したやつです。配線の半田は難しい・・・。

全て繋げる

出来上がった基盤と重みセンサー、LCDディスプレイなどを繋げていきます。

image.png
重さセンサーの中に機器を入れていきます。

image.png

最終的にこんな感じになりました!良い感じです!

image.png

4. ArduinoIDEでソフトウェアを開発

ただ機械を繋げただけでは、玉ねぎは測れません。

玉ねぎを測定し、ネット上にデータを送るプログラムを書いていきます。

AmbientというIoTデータ可視化サービスを使います

玉ねぎのデータをネット上のどこかに保存しておかなければいけません。
そこで、IoTのデータを貯めて置けるサービスを利用します。

というサービスを使って玉ねぎの重さと個数をインターネット上に保存します。

AmbientにはArduinoIDE用のライブラリがあるので、それをインストールしておきます。

プログラムの概要(設定モード)

設定モードでは、IoT機器が自宅のWiFiと接続できるように設定します。

  • OFFボタンを押しながら起動すると、このモードが始まります
  • このモードでは、NodeMCUをWiFiアクセスポイントとして起動
  • WEBサーバーを起動し、自宅のWiFiと繋げるための設定ページ(SSIDやパスワードを登録するページ)を配信
  • 設定したWiFi設定情報をファイルに保存する処理

プログラムの概要(通常モード)

通常モードでは、1時間に1回起動し玉ねぎの重さをAmbientに送る処理を実行します。

  • 設定したWiFi情報をファイルから読み込み、自宅WiFiに接続します
  • 重みセンサーから重さを読み取り、LCDに表示する
  • 「ZEROボタン」を押すと、現在の重さを0としてセットします
  • 「ONEボタン」を押すと、現在の重さを1個の重さとしてセットします
  • 「OFFボタン」を押すと、現在の重さと個数を計算してAmbientにデータを送り、1時間Sleepします
  • 起動後90秒経つと、「OFFボタン」を押した時と同じ処理を実行します
  • 「ONボタン」を押すとプログラムがリスタートされます

5. Ambientアプリから玉ねぎの個数を確認

Ambient に格納されたデータをスマホから閲覧するために、専用のスマホアプリも開発しました!

かつては iOS 版もありましたが、お金を払っていなかったのでアプリストアからは姿を消してしまいました。

6. 完成!

以上で玉ねぎチェッカー完成しました!

実際に動かしてみた動画がこちら↓です。

これでいつでも玉ねぎの個数を確認できます!

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0