Meeseeks Box Wireless IoTコントローラー:13ステップ(写真あり)

Meeseeks Box Wireless IoTコントローラー:13ステップ(写真あり)

目次:

Anonim

"私はミスターミシクです、私を見てください!"

ショーRick and Mortyでは、Meeseeks Boxは与えられたタスクを完了するためにMeeseeks氏を召喚するのに使用される装置です。ショーのガジェットの多くと同様に、Meeseeks Boxは残念ながら現実とはかけ離れています。スミス家がミーシーズボックスを使用した結果としての出来事を考えると、これは必ずしも悪いことではありません。それにもかかわらず、Meeseeks Boxの精霊的なアイデアは魅力的なものです。

そこで、このInstructableでは、Meeseeks Boxを一歩現実に近づけていきます。私たちのバージョンでは、存在しない青いクリーチャーを召喚することはできませんが、無限の数の単純なタスクを実行することは可能です。このInstructableで構築するMeeseeks Boxは、接続された家庭用製品やその他のIoTデバイスを制御するために使用されます。

この装置は、粒子光子に接続されたボタンで構成されています。ユーザーがボタンを連続して何回押したかに応じて、PhotonはWiFi経由でクラウドにイベントをワイヤレスで公開することで、さまざまなIFTTTアプレットを起動します。 Meeseeks Box IoT Controllerは、接続されている家庭用製品(照明、サーモスタット、セキュリティシステム、音楽、ドアロック、灌漑システム、その他のIFTTT対応機器またはサービス)を制御することができます。

用品:

ステップ1:あなたの部品を集める

次のステップで3Dプリントする、実際のMeeseeks Box自体とは別に、ビルドを完成させるには、一握りの電気部品が必要になります。

粒子光子IoT開発ボード

Particle Photonはモノのインターネットのためのコネクテッドプロジェクトを作成するためのシンプルなWiFi開発モジュールです。ボード自体はBroadcom WiFiチップを搭載しています。これは実際にはNest Protectを含むいくつかの一般的なホームオートメーション製品で使用されているものと同じものです。このボードはパワフルなARM Cortex M3マイクロコントローラを持っており、Arduinoマイクロコントローラに慣れ親しんでいるのと同じライブラリを使ってウェブベースのIDEを使ってプログラムすることができます。このボードには、外付け部品を接続するためのデジタルおよびアナログGPIOピンもあります。

30mm照光アーケードボタン

Meeseeks Boxの上部には青いボタンが1つあります。ショーでは、ボタンを使ってMeeseeks氏にタスクを実行させます。 Meeseeks Boxは、ショーのものとは少し違った働きをします。ボタンが押された回数に基づいて、ボタンはあなたのホームオートメーションデバイス上でさまざまなアクションを引き起こします。 Meeseeks Box IoTコントローラーを実行するコードについては、後の手順で詳しく説明します。

アーケードボタン配線キット

アーケードボタン用に独自のワイヤーハーネスを作成することもできますが、誰かがすでに組み立てた一連のワイヤーを注文するだけの簡単な方法で作業することをお勧めします。

無はんだブレッドボード

Meeseeks Box IoTコントローラー内の電子機器用のカスタムPCBを作成する時間と費用を処理するのではなく、私たちは無はんだブレッドボードを使用します。これにより、プロジェクトのコストが削減され、組み立てが容易になり、プロジェクトの変更や機能強化が非常に簡単になります。

パネルマウントバレルジャック

電力は外部の安定化電源を介してプロジェクトに供給されます。電源を接続する場所を作るために、3DプリントされたMeeseeksボックスの側面にメスのバレルジャックコネクタを取り付けます。

5V電源

Meeseeks Box IoTコントローラに電力を供給することと言えば、プロジェクトを実行するために5Vの安定化電源を使用します。電源は3Dプリントボックスの側面に取り付けられたバレルジャックを介してMeeseeksボックスに接続します。

ジャンパー線

ボタンを接続するために使用されるアーケードボタン配線キットの上に余分な数ビットのワイヤが必要になります。これらの汎用ワイヤは、バレルジャックをブレッドボードに、そしてパーティクルフォトンを電源に接続するために使用されます。

オス圧着ピン

このプロジェクトのためにいくつかのカスタムワイヤーハーネスを作成する必要があります。そうするために、私達はワイヤーがブレッドボードの外に差し込むことを可能にするオスの圧着ピンでワイヤーを終わらせるでしょう。まだ持っていない場合は、ピンを取り付けるための圧着工具も必要になります。

スプレープライマー

ショーのデバイスのように見えるようにMeeseeks Box IoTコントローラーをペイントします。下のアクリル絵の具を3Dプリントされたプラスチックに適切に接着させるためには、まずその部分にプライマーを塗る必要があります。

アクリル塗料

プライマーを塗布した後、Meeseeks Box IoT Controllerをペイントします。それ故に私達はペンキを必要とするでしょう。このプロジェクトでは、シンプルで安価なアクリル絵の具を使用します。あなたは本当にただ青、緑、白、そして黒を必要とするでしょう。

ステップ2:Meeseeksボックスを3D印刷する

Meeseeks Box自体は3Dプリントされ、次の手順で私達はボックスの内側に電子部品のコレクションをインストールします。 Meeseeks Boxは、ほとんどの3Dプリンタでワンピースで印刷でき、印刷が完了するまでに数時間かかります。このプロジェクトのGitHubリポジトリには、Meeseeks Box用の3Dデザインファイルと、プロジェクト用のコード、およびこのInstructable全体で使用するその他のリソースが含まれています。

あなたが3Dプリンタを所有していない場合は、3Dハブによって作られたあなたのMeeseeks Boxを手に入れることができます。 3Dハブは、あなたがあなた自身の3Dプリンタを持っていない場合や、私のように、あなたがそれのための時間を見つけるのが難しいと思った場合にあなたのためにあなたの部品を作るためにあなたの地域の3Dプリンタオペレータに支払うことを可能にする素晴らしいサービスです。数時間の印刷私はたくさんの3D Hubsで作られた部品を持っていました、そして、部品はすべて高品質で3D印刷されて、非常に速く届けられて、そして非常に手ごろな価格でありました。

ステップ3:PrieでMeeseeksボックスをペイントする

Rick and MortyのMeeseeks Boxは明らかに白だけではありません。ショーからのMeeseeks Boxデザインは青と青緑色の配色を特徴とします。このステップでは、ショーのデザインと一致するように3Dプリントパーツをペイントするプロセスを開始します。塗装工程には2つの主要な部分があります。このステップでは部品を準備し、次のステップではデザインを完成させるために着色塗料を使用します。

あなたが以前に3D印刷された部分をペイントしようとしたことがあるならば、あなたはそれが少しトリッキーかもしれないことを知っています。ほとんどの種類の塗料は、3Dプリントに一般的に使用されるプラスチックに特によく付着することを好みません。したがって、次のステップで使用するアクリル塗料から最良の結果を得るためには、まず部品にプライマーを塗布する必要があります。私はプラスチックに接着するように処方されているRust-Oleumの灰色のスプレープライマーを使用しています。プライマーはMeeseeksボックス上にアクリル絵の具にもっとなじみやすい表面を作ります。

あなたが何かをスプレー塗装に取り組んでいるとき、それはプロセスを急がないことが非常に重要です。ペイント作業全体を1回のパスで実行するのではなく、非常に薄いレイヤーを多数適用した場合に最良の結果が得られます。部品にスプレー塗料を塗りすぎると、塗装が不均一になり、したたりが生じることがあります。あなたがスプレー塗装技術の良いデモンストレーションを望むならば、私はYouTubeでAdam SavageのOne-Day Buildsのいくつかを見ることを勧めます。

あなたのMeeseeks Boxパーツにスプレープライマーを塗るのが終わる頃には、あなたはその作品の外側全体にグレーでさえ素敵なコーティングを施すべきです。

ステップ4:Meeseeksボックスをアクリルでペイントする

プライマーを塗布すると、Meeseeks Box Wireless IoTコントローラーをショーのMeeseeks Boxのように見えるように、青と青のカラースキームを適用するためにアクリル塗料を使用できます。プライマーはそれが裸のプラスチックの上に持っているであろうよりもアクリルのペンキがよりよく部品に粘着するのを許すでしょう。

あなたが以下のビデオで見るように、私は今では決してプロの画家ではありません。色を正しく表示するために、ショーのスクリーンショットの色をサンプリングして簡単なカラーパレットを作成しました。画像の左側には、上から下に、内側の正方形、中央の八角形/外側のフレーム、外側の正方形、および内側のフレームの色に対応する色見本があります。塗料を混ぜ合わせるときは、色見本をこれらの見本に塗りつぶして、塗料の色をショーの色にできるだけ近づけることができます。

そのため、カラーパレットをミキシング塗料のガイドとして使用し、3D印刷および下塗りを施したMeeseeks Boxの外観をRick and Mortyのデザインに合わせて塗装します。

ステップ5:電源線とボタン線の準備

Meeseeks Box自体が完成したので、このInstructableのエレクトロニクス部分に移りましょう。このプロジェクトで使用されている回路はかなり単純です。私達は外部の調整された電源を通してMeeseeks箱の中のParticle Photonに電力を供給します、そして、Particle PhotonはMeeseeks箱の上のボタンに接続します。 Particle PhotonはWiFiを介して外界と通信します。

回路の組み立てを始める前に、簡単な準備作業をする必要があります。ボタンとバレルジャックコネクタの両方にクイックコネクト端子があります。 Adafruitは、組み立て済みのクイックコネクト配線キットを販売しています。一方の端にクイックコネクトプラグがあり、ボタンとバレルジャック端子の両方に適合します。ただし、もう一方にはJSTプラグが付いています。このステップでは、ブレッドボード用のJSTプラグをオスピンに交換します。

このプロセスはかなり簡単です。最初に3つの配線キットからJSTプラグを外します。あなたは片側がクイックコネクトプラグで終わっている6本のワイヤーで終わるでしょう。次に、ワイヤの端から約2 mmの絶縁体を取り除きます。第三に、圧着工具を使用して、オスのヘッダーピンを各ワイヤに取り付けます。最後に、ピンハウジングを取り付けます。

各ワイヤーにオスヘッダーピンを取り付けたら、ワイヤーをボタンとバレルジャックに取り付けることができます。ボタンの配線は簡単です。クイックコネクトワイヤーを4つの端子のそれぞれに取り付けるだけです。

バレルジャックはもう少し複雑です。バレルジャックには3つの端子があります。 1つはバレルの中心のピンに接続します。 1つはバレルの側面のピンに接続します。バレルの内側を注意深く見ると、側面からバレルの中に突き出している接点が見えます。もう一方の端子はバレル自体に接続します。これら3つのコネクタのうち最初の2つにワイヤを接続するだけで済みます。どの端子がどこに接続されているかは、バレルジャックを慎重に調べることでわかります。それ以外の場合は、端末の接続方法がわからない場合は、マルチメータを使用してさまざまな端末の導通をテストできます。

手順6:ボタンとバレルジャックをMeeseeksボックスに取り付ける

ボタンとバレルジャックコネクタのワイヤを組み立てて2つの部品に接続したら、このステップでボタンとバレルジャックをMeeseeksボックスに取り付ける作業を行います。

バレルジャックは箱の側面にある小さな穴に取り付けます。バレルジャックは、ロックワッシャーとナットを使用して取り付けます。だから、Meeseeksボックスの外側から、ナットに続いて穴にロックワッシャーを挿入します。次に、Meeseeks Boxの内側からバレルジャックを穴に挿入し、ナットにねじ込みます。

ボタンは、部品に含まれている大きなプラスチック製ナットを使用してMeeseeks Boxの上部に取り付けます。 Meeseeksボックスの上部から穴を通してボタンを下に挿入し、ボタンの裏側に大きなプラスチック製のナットを通します。

ステップ7:ブレッドボードを組み立てる

ボタンとバレルジャックを除いて、他のすべての電気部品(他の部品はParticle Photon、10kΩの抵抗、およびいくつかのワイヤ)がブレッドボードに組み立てられます。ブレッドボードの後半は、Meeseeks Boxの内側に取​​り付けられます。

下の配線図は、ブレッドボード上に構築する回路を示しています。 Particle Photonはブレッドボードの電源レールから切断され、電源レールはバレルジャックに接続されます。パーティクルフォトンのD5ピンは10kΩの抵抗を通してグランドに接続されます。 Meeseeks Box内にブレッドボードを取り付けた後、ボタンは10kΩの抵抗とD5ピンの間に接続します。

ボタン接続の回路は、Arduinoの状態変化検出チュートリアルに基づいています。ボタンを押さないと、D5ピンは10kΩのプルダウン抵抗を介してグランドに接続されます。 D5ピンのデジタル読取りはLOWに戻ります。ボタンを押すと、D5ピンは3.3Vに接続されます。このピンは依然としてグランドに接続されていますが、抵抗のため、電流に対する最小抵抗の経路は3.3Vになります。ボタンを押すと、D5のデジタル表示はHIGHに戻ります。パーティクルフォトンで実行されているコードは、LOWとHIGHの間の変化を検出します。

ステップ8:ボタンとバレルジャックをブレッドボードに接続する

Meeseeks BoxワイヤレスIoTコントローラ用の電子機器を組み立てる最後のステップは、ボタンとバレルジャックをブレッドボードに接続することです。バレルジャックとボタンはすでにMeeseeks Boxの内側に取​​り付けられているので、これは少しトリッキーです。ただし、ブレッドボードがMeeseeksボックスのすぐ外側に配置されている場合は、それらの部品がブレッドボードに接続するのに十分なワイヤのたるみがあるはずです。

バレルジャックはブレッドボードの電源レールに接続します。 Particle Photonがショートしないようにするために、使用している電源の極性を常に確認することが重要です。すべての電源には、ピンとバレルの極性を示すステッカーが貼られています。ほとんどの電源装置では、バレルはアースされているため、ブレッドボードの青いレールに配線されます。このピンは通常正極性なので、赤い+レールに接続します。ただし、バレルジャックをブレッドボードに接続する前に、電源のステッカーを確認してください。

ボタンには4本の線があります。これらのうちの2つはボタンの内側の青いLEDを点灯させ、他の2つは実際のボタン自体のためのものです。ボタンハウジング内の灰色のプラスチックブロックに接続されている2つの端子はスイッチ用のもので、他の2つはボタン内のLED用です。 LED端子は直接電源レールに接続します。 LED端子の上に灰色のブロックがあるボタンを見ている場合、左側のLED端子はアース用、右側のものは5Vレール用です。 Meeseeks Boxを接続したばかりのバレルジャックを介して電源に接続することで、LEDが正しく接続されていることを常に再確認できます。 LEDが点灯しない場合は、単にワイヤを交換してください。

最後に、ボタン自体を接続する必要があります。ボタンの極性は関係ありません。ボタンのための1本のワイヤーは粒子光子の3.3Vピンに接続します。もう一方の線は10kΩ抵抗とアースにつながる線の間を接続します。

ステップ9:Meeseeksボックスにブレッドボードを取り付ける

これですべてがブレッドボードに接続されたので、ブレッドボードをMeeseeks Boxの内側に取​​り付ける必要があります。ブレッドボードには、それをMeeseeks Boxの内側に取​​り付けることができるようにする粘着性の裏材があります。裏紙をブレッドボードの接着パッドから剥がし、ブレッドボードをバレルジャックの反対側のMeeseeksボックスの内側に貼り付けるだけです。

ステップ10:粒子フォトンに接続する

この時点で、Meeseeks Boxは完全に組み立てられています。よくできました!それではパーティクルフォトンのプログラミングに移ります。最初のステップは、Particle PhotonをあなたのParticleアカウントに接続することです。このプロセスは非常に簡単で、Particle Webサイトにすでに十分に文書化されています。

Meeseeks Box IoTコントローラのバレルジャックにまだ接続されていない場合は、まず5V電源アダプタを差し込みます。次に、パーティクルフォトンのLEDライトが青色に点滅するまでセットアップボタンを押し続けます。

お使いのデバイスが点滅する青いLEDとペアリングモードになったら、Getting Startedガイドに記載されている手順に従って、Particle PhotonをParticleアカウントに追加します。プロセスは、Photonをアカウントに接続するために使用しているプラ​​ットフォーム、Android、iOS、またはbuild.particle.ioによって多少異なります。

ステップ11:コードをフォトンにフラッシュする

Meeseeks Box内のParticle PhotonがあなたのParticleアカウントに追加されたので、ParticleのオンラインIDEを使ってボードをプログラムすることができます。プロジェクトのコードはGitHubリポジトリにあります。開く Meeseeks_Box.ino ファイルをコピーしてその内容をParticle IDEにコピー&ペーストします。

Particle IDEの左側にあるメニューで、 デバイス。デバイスメニューでは、ファームウェアをフラッシュするボードを選択できます。パーティクルフォトンの名前の横にある星型のアイコンをクリックして、Meeseeksボックス内のパーティクルフォトンをターゲットにします。

ボードを選択した状態で、 フラッシュ 画面左上のボタンをクリックします。これはあなたのParticle Photonにコードを書きます。画面の下部に、点滅プロセスの進行状況を示すさまざまなメッセージが表示されます。

コード説明

興味のある人のために、このサブセクションではコードがどのように機能するのかについて説明します。コードの内部動作に興味がない場合は、次のステップに進んでください。

まだここ?良い。 Meeseeks Box IoTコントローラー内のParticle Photon上で実行されるコードは非常に簡単です。コードは、いくつかの変数を初期化することから始まります。

  • int buttonPushCounter = 0; この変数は、ボタンが押された合計回数のカウンタです。
  • int buttonState = 0; この変数はボタンの現在の状態を追跡します。 に または オフ.
  • int lastButtonState = 0; この変数はボタンの前の状態を追跡します。 に または オフ。 この変数と上記のbuttonState変数は、ボタンの状態が変化したときにそれを検出するために使用されます。それ以外の場合、ボタンが押されたままになっていると、コードはボタンの押し続けます。
  • int previousTime = 0。 この変数は、プログラムの実行時間に関して、最後のボタンが押された時間を追跡します。この変数とそれに伴う機能については以下で詳しく説明します。

コードの中身は58行目で始まります。ループ()を通過するたびに、PhotonはピンD5でデジタル読み取りを実行してボタンの状態を判断します。 buttonState = digitalRead(ボタン); .

次に、スケッチは、前回のループ以降にボタンのステータスが変化したかどうかを判断します。 ifステートメント if(buttonState!= lastButtonState){ 、は、現在のボタンのステータスと前のループのステータスを比較するために使用されます。 2つの状況が異なる場合は、変更が発生しました。ボタンの状態に変更が発生したと判断されると、スケッチは変更の方向を決定します。ボタンが押されたことを示す、オフからオンへの変更にのみ関心があります。そのため、変更が検出され、ボタンのステータスが現在の場合 高い 状態の変化は 低 に 高い, if(buttonState == HIGH){ .

新しいボタンが押されたことが検出されると、スケッチは2つのことを行います。まず、 buttonPushCounter 変数は、プレスをカウントするために増分されます。 buttonPushCounter ++; 。次に、ボタンが押された時間が previousTime 変数、 previousTime = millis(); .

したがって、スケッチはボタンの状態の変化を検出し、オフからオンへの変化を検出してボタンが押されたことを示し、最後に押された時間とともにボタンが押された回数を追跡できます。しかし、スケッチは、いつカウントを止めるべきかをどうやって知るのでしょうか。スケッチは、最新のボタンが押されてから0.5秒が経過するのを待って、ボタンを押さずに0.5秒以上経過した場合、ユーザーは押されたと見なします。ボタンの押下がいつ終了したかを判断するために使用されていたifステートメントは、29行目にあります。 if(millis() - previousTime> 500 && buttonPushCounter!= 0){ .

ボタンが半秒遅延するまでに何回押されたかに応じて、Particle PhotonはさまざまなイベントをParticle Cloudに発行します。

//ボタンが1回押された場合、次のようにしてクラウドにメッセージを送信します。(buttonPushCounter == 1){Particle.publish( "MeeseeksCount1");それ以外の場合(buttonPushCounter == 2){Particle.publish( "MeeseeksCount2");それ以外の場合(buttonPushCounter == 3){Particle.publish( "MeeseeksCount3");それ以外の場合(buttonPushCounter == 4){Particle.publish( "MeeseeksCount4");それ以外の場合(buttonPushCounter == 5){Particle.publish( "MeeseeksCount5");それ以外の場合(buttonPushCounter> 5){Particle.publish( "MeeseeksCount5 +"); }

最後に、イベントがParticle Cloudに発行された後、スケッチはボタンを押すカウンタをゼロにリセットします。 buttonPushCounter = 0; 前のボタンを押すと時間がゼロになり、 previousTime = millis(); .

ステップ12:IFTTTアプレットを作成する

Meeseeks Box IoTコントローラが完全に稼働しました。ボタンを押すと、ボタンを何回押すかに応じて、Particle PhotonはイベントをParticle Cloudに発行します。 Particleアプリを使用してクラウド機能が機能していることがわかります。

足りない部分は、Meeseeks Box IoT Controllerによって公開されたイベントを、接続されているホーム製品にリンクする方法です。このインターフェイスはIFTTTを使用して作成します。基本的なプロセスは、Meeseeks Boxコード内の各トリガーに対して1つのアプレットをIFTTTで作成することです。デフォルトでは6つのトリガーがあります。

IFTTTアプレットを設定するための最初のステップは、すでにIFTTTアカウントにサインインしていると仮定して、 + の右上隅にあるアイコン 私のアプレット 画面。アプレットはトリガー(この)とアクション(それ)私たちのトリガーは、Meeseeks Box IoT Controllerによって発行されたイベントになります。タップ この そして、画面上部の検索バーを使って、 粒子.

トリガーの種類として、 新しいイベントが公開されました。以下のダイアログボックスでトリガーを設定することができます。の中に If(イベント名) field、コードからイベント名の1つを入力します。 MeeseeksCount1 。ダイアログボックスの下部で、複数のParticleデバイスがある場合は、正しいデバイスが選択されていることを確認してください。

トリガーを受信したときに実行されるアクションは、接続されているほとんどすべてのホーム製品で実行できます。をタップ それ アクションを追加するためのフィールド。検索バーをもう一度使用して、商品やサービスを見つけることができます。たとえば、私のMeeseeks Box IoT Controllerは、私のオフィスの照明のオン/オフ、正面扉のロックの解除、スペースヒーターのオン/オフの切り替え、ファンのオン/オフの切り替え、クローゼットの照明のオン/オフの切り替えなどができます。他のものの間で、私のHTC Viveシステムのオンとオフ。

Meeseeks Box IoT Controllerは十分に柔軟であり、IFTTTは十分強力であるため、接続されているあらゆるデバイスを制御できるはずです。

ステップ13:Meeseeks Box IoTコントローラを使用する

おめでとうございます。これで、ボタンを数回押すだけで、接続されているすべての家電機器を制御できるようになる、完全に機能するMeeseeks Box IoTコントローラが手に入りました。デバイスを使用するのは簡単です。 Meeseeksの上部にあるボタンを数回押すだけで、ボタンを何回押すかに応じて、Meeseeks Box IoTコントローラはさまざまなIFTTTアプレットを起動します。

上のビデオでは、私はパーティクルのデバイスインスペクタを使用して、Meeseeks Boxがさまざまなボタン押下に対してさまざまなイベントをどのようにパーティクルクラウドに発行するかを示しています。 IFTTTはこれらのイベントを拾い上げ、あなたのホームオートメーションシステム上でさまざまなアクションを引き起こすためにそれらを使用します。

新しいイベントを追加する

このプロジェクトのGitHubリポジトリにあるコードは、Meeseeks Box IoT Controllerが6つの異なるイベントを発行することを可能にします。イベント名 MeeseeksCount1 スルー MeeseeksCount5 対応するボタン押下数に使用される、イベント MeeseeksCount5 + ボタンが6回以上押されると、がトリガーされます。

Meeseeks Boxにデフォルトの6つ以上のイベントを公開してもらいたいと思うかもしれません。コードに新しいイベントを追加するのは簡単です。そうするためには、新しいを追加します そうでなければ 29行目のラッパーifステートメント内のステートメント そうでなければ 文は次のような構造になります。

それ以外の場合(buttonPushCounter == 6){Particle.publish( "MeeseeksCount6"); }

理論的には、必要に応じてさまざまなトリガーを追加できます。