Arduinoスマートホームは自分でやる. 家を「スマート」にできるのは何ですか? センサーとコントローラーの仕組み

科学技術が活発に発展する現代において、電子機器はますます人々の生活に浸透しています。 徐々に、人が自分の手で実行したすべての機能が機械の鉄の肩にかかり、機械はしばしばより良く、より速く、より良く機能します。 スマートカーはより身近になり、すべての家庭にスマートカーが入る時代が来ています。

タブレットなどを導入するだけでは、家が「スマート」になるわけではありません。 したがって、エンド ユーザーにとっては、自分のスマートフォンやタブレットを制御するチャンスにすぎず、家で何が起こっているかが重要になります。 特に、そのようなメカニズムが小規模または大規模な環境である作業構造に配置されている場合。

しかし明らかに、私たちはまだ発展途上にある市場について話しているのですが、明らかに初期費用がかかるためニッチであり、ほとんどの人に影響を与えていないようです. しかし、どうすれば家をスマートにできますか? 少額の投資で実現できる 上級シンプルで直感的な方法でエネルギーを節約し、リモート デバイスを管理します。 以下では、世界の主要なメーカーが、シンプルなボードと多くのインタラクションを使用して、リモートで制御できるスマート デバイスを作成する方法を示しています。

現在、特定の基本的な知識を持つほぼすべての人が、日常生活で役立つ電子機器を自分の手で組み立てる機会があります。 インターネットには、膨大な数のテーマ別フォーラム、詳細な推奨事項を含むサイト、既製の計画、経験豊富なデザイナーが共有するプログラム コードがあります。 基本的に、そのような自家製の開発は、自分の生活、家を容易にするために作成されます。 したがって、それらはさまざまなコントローラーになります。つまり、特定の情報を読み取り、それに基づいて特定の機能を実行できるデバイスです。 家(アパート、部屋)に、日常生活のさまざまな側面を制御できるセンサーが備わっている場合、そのような家は「スマート」と呼ばれます。

このデバイスは暖房システムの動作を登録し、あなたの習慣と一致させます。 この製品の可能性は、会社全体を追跡するために 32 億ドルを投資したことでも確信しています。 このアプリケーションは、暖房システム全体をリモートで制御するのに非常に役立ち、家をさらにスマートにします。

また、インターコムインターホンシステムに接続すれば、ビデオインターホンとして、通話、ドアの開閉、監視カメラとして使用できます。 GUI はシンプルで直感的で、提供される機能はさまざまで、それぞれにいくつかの手順でアクセスできます。

「スマート」ハウスのプロジェクトは現在、世界中で活発に議論され、実施されています。 原則として、これらはリソース効率の向上と日常生活で発生するすべてのプロセスの最大自動化の両方を備えた家です。 そのようなプロジェクトには、独自のコストと独自の適用条件があります。 自分の家を「スマート」にする方法を理解するために、「心」を与えるものをより詳細に理解してみましょう。

作物の成長は、温室内の環境要因によって決まります。この環境要因は、1 日を通して一定に保たれなければなりません。 完全な利点 自動化システム- それは多い。 もちろん、手作業の削減はありますが、さらに重要なことは、製品の品質を向上させる自信と、多くの情報が収集されるデータベースを持つ能力であり、利益の違いを生む可能性があります。または損失。 肥料の管理と灌漑の自動化、および環境要因のリアルタイム監視は、作物の問題を回避するための即時介入の可能性です。


「スマート」ホームとは?

最大の表現では、「スマート」ハウスは、人の日常生活のすべての領域が機械によって制御される構造です。 サイエンス フィクション映画では、コンピューターが人を起こしたり、仕事に連れて行ったり、朝食を用意したり、話しかけたりするような家の例がよく見られます。 残念ながら、マシンがまだ適切な開発レベルに達していないため、最新の野心的なプロジェクトはまだ実装されていません。 したがって、それらの機能は、家の中の光、エネルギー、湿度、温度などを制御することに限定されています。 原則として、プロのスマートホーム企業からのこのようなプロジェクトにはかなりの費用がかかり、幅広い消費者がアクセスできません. しかし、いつものように、「スマート」ホームを自分で組み立てる別の方法があります。

多くの人が個人的な庭のアイデアを気に入っていますが、多くの場合、これは同じままです. このプロジェクトでは、空間と時間という少なくとも 2 つの主な問題を解決する方法を見ていきます。 ただし、さらに経済的な方法があり、これは赤外線を介して行われます。 事実上すべてのオーディオおよびビデオ機器がこの方法で制御されるため、必要なコンポーネントは非常に安価であり、このシステムはロボット工学または自動化の分野での使用に最適です。

提案されたプロジェクトは、不可欠な実験ツールであり、任意関数のジェネレーターです。 サイズは小さいですが、あらゆる種類の信号を生成する能力があり、1 Hz 単位の周波数チューニングまたは 1% 単位のデューティ サイクルと同じくらいの精度で大きな可能性を秘めています。 機器のキャリブレーション読み出しやロボット サーボモーターに役立ちます。


どうやってするの?

「スマート」ホームは、情報を読み取り、それに基づいて特定のコマンドを実行するセンサーが接続された一連のコントローラーにすぎないことを理解する必要があります。 たとえば、加熱コントローラー。 一定温度以下の温度低下を検知すると、部屋への熱供給をオンにします。 自動エアコンはこの原則に基づいて動作します。 そして、「スマート」ホームでは、センサーを備えたこのようなコントローラーがいたるところにあるため、最大数のタスクを制御できます。 当然のことながら、「スマート」な家を作るためには、まず頭の中で小さなプロジェクトを作成し、生活のどの領域を改善したいのか、そのために何が必要なのかを考慮します。

率直に言って、テレビ広告は本当に耐え難いものです。 そして、彼が興味深いプログラムや美しい映画、または難しいことを中断したからだけではありません ドキュメンタリー、そして何よりも、広告主がそれを知っているためです。ボリュームがすべてです. このため、テレビ放送は、ヘイト広告よりも低い音量で送信されます。 そして、この問題の解決策があったとしたら? 実際、コマーシャルの場合は、音量を下げてから自動的に映画を流し始め、一定の音量を一定に保ちます。

したがって、家をより自給自足にするためには、使用できるコントローラーが必要です。 事実は、それらを購入するだけでは十分ではありません - あなたはまだそれらをプログラムし、外部の情報源に接続し、それらを設定する必要があります 正しい仕事. これらのデバイスの多くは操作が非常に難しく、操作できる人が多くないため、特定の分野に関する知識が不足しているという問題があります。 しかし、需要がある場合 (動作する電子デバイスを自分の手で組み立てたくない人はいないでしょうか?)、対応するオファーもあります。 ある会社は、現時点で、使いやすくわかりやすい電子機器のサプライヤとして圧倒的に人気があります。 Arduino社です。

プロジェクトは、ハードウェアとハ​​ードウェアの両方で完全にオープンです。 ソフトウェア. これは単なる気象観測所ではなく、それ以上のものです。 その機能のおかげで、スキャンした値をデータベースに保存できます。 この記事は、特定の地域の気候値を追跡することに興味がない人に機会を強調することを目的としています. スマートフォンを購入した場合は、携帯電話の電源を切らなくても、そうしないとアラームが機能しないため、この投稿はあなたのものになります。

地図の音声で測定値がわかるのに、なぜ電圧値や温度をディスプレイに表示する必要があるのでしょうか。 この記事では、Arduino に音声を与える方法について説明します。 このプロジェクトは何千もの開発の機会を提供しており、私たちはそれを私たちのニーズに適応させました。 コードはオープンソースなので、誰もが信じる限り自由に変更できます。

このシステムの検討を開始する前に、このシステムにはユニバーサル スマート ホーム プロジェクトがないことを考慮する必要があります。 各ユーザーは、独自の技術ソリューションを使用して、独自の方法で実装する独自の特別なプロジェクトを作成します。 これは、以下で検討するシステムの利点の 1 つです。

Arduinoシステムとは?

このプロジェクトには、次のコンポーネントが必要です。 制御メカニズムは非常に簡単です。たとえば、ランプを点灯させたいとします。 それ リモコン、解体され、キーの横とRCレシーバーレシーバーの横にあるケーブルで溶接されました。

家を「スマート」にできるのは何ですか?

このプロジェクトの主人公の 1 人は、著名な SF 作家で未来派のブルース スターリングであり、「サイバー パンク」ジャンルの父の 1 人であり、プロジェクトの名前を挙げた妻のジャスミナ テサノビッチと共に「家主」となります。 結局のところ、目標は、「スターリングの悲観的な予測が正当化されるかどうかを確認するために」、最も革新的な国内技術との人間の相互作用を時間をかけて実験することである.

Arduinoシステムとは?

Arduinoは現在、便利な電子設計者であり、理解しやすいプログラミング環境であり、一般的に、初心者と専門家の両方にとって独自の設計を作成するための便利なツールです. Arduinoプラットフォームの人気は、それがシンプルでわかりやすい言語でプログラムされているという事実によるものであり、プログラムはUSB経由で転送されます(プログラマー、つまりプログラム送信機は必要ありません 希望のデバイス)、オープンソースコード(プラットフォームが作成される基礎、そのソフトウェアコア、そのすべての助けを借りて) 希望のプログラム). オープンソース Arduino自体が提供するものを使用するだけでなく、それに基づいて独自の「自家製」プログラムを作成できるという点で、ユーザーにとって便利です。

メーカー: デジタル職人の活躍

世界の巨大なテクノロジー企業は、一般大衆のニーズを満たすために、よりスマートで複雑な統合型アプライアンスを製造できるように多額の投資を行っていますが、これは彼らだけではありません。 このアイデアは、学生がインタラクション デザインを学ぶのを助けるためにこのプラットフォームを最初に開発したエレクトロニクス エンジニアである大学教授 Massimo Banzi の全イタリア人の創意工夫の結果です。 そして、これらの機会は、家庭部門で自然な岸辺を見つけました.家庭は、日常の小さなハードルから始めて、人々の生活を改善できる解決策を見つけるための特に盛んな環境であるためです.


Arduino技術の本質とは? それは、いわば普通のコンピューターが実空間に「出て」「感じ」始めることを可能にします。 これは、何らかの手段 (ほとんどの場合ワイヤレス) を使用して情報を送信するセンサーによって実現されます。 環境そしてそれに基づいて、彼はいくつかの制御デバイスの管理について独立した決定を下すことができます。 したがって、このテクノロジーの操作をほとんどすべてに対して構成できます。 同時に、Arduino 製品はユニバーサルであり、パーソナル コンピューターとモバイル デバイスの両方で多数のシステムとやり取りできます。 小さなボードからの充填自体とそれに追加されたもので、特定のユーザーは既製のバージョンを購入するか、必要なコンポーネントから自分で組み立てることができます。 Arduino ボードのすべてのコネクタは可能な限り標準化されているため、サードパーティ メーカーは互換性のある部品を簡単に作成できます。 すべてのソフトウェアが無料でダウンロードできるため、ウェブ上での Arduino の人気がさらに高まります。

センサーとコントローラーはどのように機能しますか?

私たちが到達した技術レベルにより、適切な情熱、好奇心、忍耐力を備えたほとんどの人が、自宅でホームオートメーションを作成したり、より複雑なものを開発したりするために独立して作業することができます. そして、これらの介入はコンピューターの専門家に限定されているわけではなく、家庭での日常の小さな問題を解決することに本当に興味があり、やる気がある人に向けられています. ネットワーク共有は、地図を作成するためのグラフィックスを提供するだけでなく、プログラムがマニュアルを簡単に見つけられるようにするソフトウェアも提供します。 学習ガイドソフトウェアルーチンをすばやく学習し、可能な限り短時間で適用して、独立したホームオートメーションの可能性に徐々に慣れていきます。

さまざまなフォーラムやコミュニティで、経験豊富なホーム エンジニアが、「Arduino の多用途性により、お金、時間、神経を節約できます。3 つで 1 つになります。 実際、「スマート」ホームのプロジェクトは、機能に劣らないシンプルで安価な部品を幅広く選択できる高価な希少部品を購入する必要がないため、はるかに簡単になります。 さらに、システムの人気もあなたに役立ちます-そのため、既製のコード、計画、およびプロジェクトが今日活発に開発されており、プロとアマチュアの両方によって行われています. これらはすべて、あらゆる好みの機能を見つけることができる巨大なライブラリに結合されています。

最初のテクニックへようこそ。 この方向では、基本的にオフです。 「 スマートホーム"。 最初の部分では、使用する周辺機器に焦点を当てます。各周辺機器は、複雑さと使用の必要性に応じて、できるだけ多くのポイントを獲得できます。 以下を利用すると、最大10ポイント獲得できます。

繰り返しますが、それらの使用は正当化されます。 . 以下を使用すると、最大5ポイントを獲得できます。

  • 制御アプリケーション、シリアル通信による通信。
  • そして、私はそれが本当に好きです。
関係のないものを使用したい場合は、お尋ねください。 持っていないものを使用したい場合は、別のコンポーネントに置き換えないでください。 たとえば、電気錠の代わりにダイオードを使用しますが、もう一度尋ねることを忘れないでください。


家を「スマート」にできるのは何ですか?

独自の「スマート」ホームを作成するという点で、arduino は長い間一般的な名前になりました。このテクノロジーを使用して自分の生活を自動化し、リモートで制御することは非常に人気があります。 すでに、この技術に基づいた「ホーム」ユーザーの膨大な数の開発が行われており、その目的は、ライトの単純なオンとオフの切り替えから、コンピューターの駆動などの複雑なシステムまでさまざまです。

BTモジュールによる制御

コードの明確さと意味のあるコメントには特に注意が払われます。 複雑な精子コミュニケーションに必要なライブラリを利用できます。 使いやすくするために、ピンにかかる圧力を利用して、ピンが自立するようにします。 このマスターの性質の既製のソリューションに焦点を当てたライブラリを使用することは禁じられています。 そしてわからないことがあれば聞いてください。

プロジェクトに簡単なドキュメントを添付してみてください。 一見してあなたが感じることは、もちろんあなたが書いたものですが、必ずしもそうであるとは限りません。 - 最大 5 ポイント。 編集したフォルダは、共有アーカイブ ファイルの概要になります。 これは、フォルダが存在することを意味します。


まず第一に、サイエンスフィクションを脇に置いた場合、「スマート」ホームが持つべき特性と持つことができる特性を決定する必要がありますか? 結局のところ、あなたの家のプロジェクトでは、実際にはほとんど実現できないようなものを提供することができます. 仕事用の服を選ぶシステムを見つけることができる可能性は低いです。 フォーラムやサイトを調査した結果、そのような家には次のことができるはずであるという結論に達することができます。

フォルダー内に制御アプリケーションがない場合は、スキーマを作成しないでください。 他の図やコメントが合うかもしれないという印象がある場合は、ここに追加してください。 他の。 プロジェクトがどのフォルダーにも属さないものであるべきだという印象を受けている場合は、ここにあります。

  • この決定には30ポイントがあります。
  • ドキュメンテーション。
  • この短いフォルダーは、このフォルダーにあります。
合計で 135 ポイントを獲得できます。 成功したソリューションは、40 ポイント以上を受け取ると見なされます。 35を獲得できるのは2番目の部分だけなので、アクセサリーがなくても勝つことができます.

  1. ライトのオン/オフを制御する必要があります。 最も進歩的な開発ベクトルでは、リモコンからの信号または音声信号 (拍手) によって電球をオフにすることは容易ではありませんが、たとえば、家に誰もいないときや、自動的にライトをオフにすることです。家のみんなが寝ているとき。
  2. 家の中の温度管理。 これは、自動化されたコンピューターと換気、暖房、および同様のシステムとの相互作用です。 ここでの動作原理は非常に単純です。センサーを固定する温度が変化すると、システムは自動的にオンまたはオフになります。 必要な器具. ここにも見通しがあります。たとえば、就寝後は温度がゆっくりと下がり(涼しい部屋で深い段階で眠る方が快適です)、目覚めた後(アラーム信号)、逆に上昇します(暖かい部屋で目覚める方が快適です)。
  3. モニタリング 外部環境. これらの科学用語の背後には、街路温度の定義、雨や雪などの表示があります。 原則として、すべての気象情報はいずれかの画面に送信する必要があります。 音声信号. 設計者の 1 人は、雨が降ると荷物をまとめるのが遅くなり、仕事や学校に行くのに時間がかかるため、雨が降っているときは早く起きるというアイデアを提案しました。
  4. ドアと出入りのコントロール。 このカテゴリには、次のようなかなり幅広いさまざまなデバイスが含まれます。 セキュリティシステム(多くの場合、これは超音波と 赤外線センサー、そこにいるべきではないときに敷地内の人々の存在を記録する)、自動ドアロック、さまざまな変更の電子ロック(たとえば、指紋読み取りに基づく)、および人がいるときに自動的にドアを閉めるなどのかなり単純なデバイス閉じるのを忘れたあなたと一緒に暮らしてください。
  5. さまざまな漏れ、漏れに対する警告システム。これには、室内の煙や直火を検出する機能も含まれています。 このようなシステムは、消防署に通報するところまで変更できます。
  6. その他のシステム。非常に多様です。 頻繁に使用されるものの中から、機器の制御(たとえば、楽器の自動スイッチオン、テレビ)、さまざまなデータ収集システム(たとえば、装置は水槽内の水の温度に関する情報を数回ごとに表示するなど)を選択できます。分)。


アプリケーションをインストールして機能を確認する

そして、よく調整されたアラームは、物事の半分が機能しない場合でも、すべてを完全に制御できる以上のものであることを忘れないでください. 何か問題が発生した場合は、絶望せずに質問してください。 スマートホームのヒントを見てみましょう。 実験では、このモジュールとリレーのペアを使用しました。 アプリケーションを実行するには、次の手順に従います。

モバイルアプリ右上隅の「設定」ボタンをクリックします。 ここで、設定を正しく設定してみてください。 ラズベリーでは、アプリ ターミナルを実行したままにして、同時にモバイル アプリを起動し、[接続] をクリックします。 上のいずれかのコントロール ボタンを押すと、 モバイル機器、文を端末に書き込む必要があります。

これらのシステムはすべて、一見複雑でかなり素晴らしいように見えますが、ユーザーによって、 Arduinoシステム. スマホ全盛の今、家を管理するという発想は、 携帯電話、そしてほとんどの場合、そのようなシステムは、開発者にとって最もオープンで便利なAndroidモバイルオペレーティングシステムに基づいて作成されます. したがって、たとえば、電話をかけるだけで、Twitterを使用して動物に餌をやったり、到着前に部屋の暖房をオンにしたりできます。

アプリケーションの自動起動

問題が発生した場合は、モバイル アプリケーションの設定を確認してください。 すべてが正常に機能している場合は、ラズベリーを起動するたびにアプリが起動するように設定します。 「出力0」タイプの前の行。 これで、raspberry が起動するたびにアプリが起動するはずです。 これを行うには、コマンドを入力します。 今、私たちは何を意味するかを説明します 個々の要素構成ファイルで。

デフォルトのパスワード以外のパスワードを使用してアプリケーションに接続する場合は、元のパスワードを削除して、独自のパスワードを作成する必要があります。 パスワードを変更したら、モバイル アプリでパスワードを更新する必要があります。 0 を選択すると、すべての連絡先が 1 によってトリガーされます。それ以外の場合は、すべての連絡先が無効になります。

したがって、Arduinoを使用すると、人生のほぼすべての改善プロジェクトを実装できると言えます。 幅広い可能性と、最も重要なこととして、さまざまなソフトウェア製品と対話できるシステムの柔軟性は、アイデアを実現するための優れたツールとして機能します。

「実際、Arduinoはあなたのプロジェクトや夢を実現するための理想的なツールです」とフォーラムの経験豊富なデザイナーは言います。そして自分自身を実装しました。


なぜアルドゥイーノ?

論理的な問題が発生します。そのようなシステムをすべて購入し、インストールに加えて、そのようなシステムを美しく設計できる専門家にインストールを注文することができます(たとえば、同じワイヤを隠す)。 なぜArduinoで自作するのですか? 答えは簡単です。価格と利便性です。 原則として、そのようなシステムのインストールに専門的に従事している企業は、コンポーネントと同様のデバイス自体の価格と、それらのインストールのコストの両方に非常に大きな値上げを行います。

もちろん、彼らはあなたのためにすべてを行い、それは十分に速いでしょうが、まず、あなたの好みに合わせて何かを変更する機会を失い、これに伴い、何らかの故障が発生した場合に何かを修復する機会を失います(これらのように)企業は他のシステムを使用しており、標準化と統合が便利に行われておらず、使いやすいとは言えません)。 Arduinoボードとそのアクセサリ、および必要な追加部品のコストははるかに低くなります。必要に応じて、それがどのように機能するかを理解するだけでよいので、故障を修正して目的の部品を交換して調整することができます自分のためのシステム。


同時に、Arduinoプラットフォームには、その正当な人気により、膨大な数のさまざまなライブラリがあり、経験豊富なユーザーが必要な適切に変更されたプログラムコードをすでに追加しているため、あらゆる種類の問題の解決が間違いなく容易になります。これらのシステムを「スマート」プロジェクトに配置する過程で発生する問題。

そしてこんにちは、Habrozhites! Habrを毎日読んでいると、Arduinoとそれに基づくDIYプロジェクトに関する記事に繰り返し出くわしました。 私が電子機器とは何の関係もなかったことは注目に値します。私の経験はすべて、10代のクラブ「スパーク」(ペトロザボーツク)に基づくラジオクラブを訪れたことです。 ある日、Arduinoでスマートフォン(BT通信)用のセンサー(温度・圧力・脈拍)付きのブレスレットを作ろうと思い立ったのですが、注文を間違えてArduino本体と圧力センサーしか届きませんでした。 ボードをテストするために、近くの LED のラジオ部品店に行ったところ、ドアが閉まる磁気センサーが目に留まりました。 彼は、部屋での生活を少し改善することができるという考えを私に与えました(アパートと混同しないでください)。 時間を無駄にすることなく、アリに大量のセンサーを注文し、 アルドゥイーノ・メガ.

紳士用のセンサー セット (温度、湿度、リレー、StarterKit、BT、時計、距離計、IR センサー) を注文した後、他のセンサーがどのように機能するかを調べることにしました。 スマートハウス. ほとんどは、シャンデリアの管理と 暖かい床、本当にクールな記事がありましたが。 アパートによくある機能のいくつかは、室内では単純に不要なものでした。たとえば、ガス漏れや漏れセンサーなどです。 スマート ルームに必要な機能を自分で作成することにしました。

  • 光制御
  • 温度管理
  • さまざまな方法で管理する
  • ドア制御
  • 温度監視
  • 気象モニタリング

必要なセンサーはすべて注文済みで、あとは待つだけです。 そして今、すべてのセンサーが到着しました!

最初の一歩

すでに LED を点滅させていて、スマート ホームを構築することに決めたとき、部屋の照明を点滅させることは論理的なステップでしたが、初期の暑さにより、温度制御に注意する必要がありました。 手始めに、StarterKita から dht11 を接続しようとしました。 インターネットにたくさんの指示があれば、何が簡単になるでしょうか? 結局のところ、dht11 を接続するためのライブラリは多数あり、それらのすべてが互換性があるわけではありません。 最新バージョン IDE ですが、数時間後、コンソールに表示される温度に感心し、数分後にそれに応じて LED が点滅しました。 (センサーを外して、冷蔵庫に入れて、冷蔵庫から取り出して、コンセントに差し込んで・・・)

最初の問題は、選択した dht11 の精度が低いことでした。両方向に 2 ~ 3 度ずれていました。交換する必要がありました (その後、いくつかのバージョンでセンサーを注文しようとしました)。

それからリロイ・マーリンに行き、そこで一番シンプルな扇風機を買いました。 ワイヤーとプラグを数分間いじった後、ファンが組み立てられました。 隣人と一緒に、彼らは窓を取り外し、空いている席に(隣人ではなく扇風機)を取り付けました。 プラグを差し込むと... ファンが回転し始めました。 ゆっくり。 とても遅いです。
言うまでもなく、プラグの取り付け方が間違っていて、風でファンが回っていたのでは?


もちろん、手動電流遮断も可能です。 しかし、リレーを介してファンを制御する最良の方法は何ですか? ファンに直接接続しますか? ソケットを介してファンをリレーに接続することにしました。これにより、システムに柔軟性がもたらされます (ファンを別のものに置き換えることができます)。

換気試験

そしてこちらがLEDからリレーに書き換えたコードです。 ファームウェアがロードされ、開始に必要な温度を見越して温度を監視します-そして今がその瞬間です! リレーがカチッと鳴り、COM ポートが消えます。 どうやら、切り替えの瞬間にUSBの負荷が高くなり、データ干渉が発生するようです。 最初は220V配線の干渉かと思いましたが、基板から十分離れています。 後で、これにより多くの問題が発生しました。新しいスケッチをアップロードしようとすると、Arduinoが再起動し、リレーが切り替わり、COMポートが取り出され、更新プロセスが行われます。 私はこの問題を克服できませんでした。

リモコン

もちろん、ファンの絶え間ない動作はすぐに退屈になり、スイッチでオフにするのはクールではありませんでした! ということで、そこからスターターキットとリモコンを取り出しました。 実際、その瞬間から問題が始まりました。受信機がどのように見えるかわかりませんでした。 しかし、数分間グーグルで検索しただけで、それを見つけることができ、1 時間後にはすでにリモコンからファンを操作するのが楽しくなりました。

最初はいくつかのフラグを持つ複雑なアルゴリズムでしたが、最終的に小さな

タイマーアルゴリズム

もし (信号が来た) (
time_manual_control = 1800;
ファンモード =! ファンモード;
}
If (manual_time!= 0)(
time_manual_control--;
)それ以外は(
もし(温度< 26){
ファン モード = false;
)それ以外は(
fan_mode = true;
}
}


しかし、ここでもいくつかの問題がありました。ワイヤを更新し、DATA に 5V を適用すると、すぐに受信機が失われました。 これが次の一歩を踏み出すきっかけになりました...

BTモジュールによる制御

すぐに HC-06 BT モジュールを接続し、そこに出力をリダイレクトして、コマンド読み取りを追加しました。 もっと難しいと思っていましたが、ロボクラフトの記事のおかげです。

起こりました



ご近所さんとファン

近所の人にスマホから操作を教えてあげれば、「寒いなぁ」という悩みも解消できると思っていたのですが… 窓を閉めてスイッチで扇風機の電源を切るのも我慢できれば…ただ私を怒らせた。 なんで? ファンは数センチの距離でガラスに吹き込み、ひどくハミングしました。 幸いなことに、磁気センサーが転がっていたので、システムを作成するきっかけになりました。 閉じたセンサーは、ファンをオンにしてはならないことを Arduino に通知します。 残念ながら、時々干渉があったので、簡単なチェックをしなければなりませんでした: 閉じる信号が連続して数回来る場合、窓は本当に閉じています.


光制御

今こそ、光をコントロールする時です。 ファンの後には複雑なものは何もありません: ボックス、一対の端子台 - そしてライトはすでに Arduino 経由で制御されています (もちろん、古いスイッチを使ってオフにすることができます)。 私の唯一の懸念は、リレーが電球を制御する最良の方法ではないということです.

音の問題

さて、ポップのないライトコントロールとは? マイクを注文しました。 だから私は思った… 経験不足を覚えていますか? 実際、手動でしきい値を設定できるサウンド ディテクターを注文しました。 私の目的のために働くようですか? しかし、いくつかの「しかし」がありました。
  • 小さな作用半径: 綿は数十センチからしか加工されません
  • 短い信号持続時間: コードの実行時間が長いため、センサーからの信号を Arduino が修正する時間がありませんでした。

リモコンの返品

少しグーグルして、店に足を運びました-そして、燃え尽きたVS1838Bの代わりに、より信頼性の高いTSOP1836を購入しました。 今回はインストールが成功し、すべてがすぐに機能しました。


通りに出る

窓は分かったけど、後ろに何があるの? はんだごてを使って、雨センサーと別の dht11 を 5 メートルの VGA ケーブルにはんだ付けしました。 いくつかの U 字型の留め具、黒い電気テープ、コケ、そしてシステムが戦闘任務に就きます。


また、ロシア語のテキストを表示できることも知りました。

となりました



ちょっと便利

スマホはいつも手元にあるようですが、見つけるまで、繋ぐまで…スイッチでライトや扇風機を消した方が早い場合もあるのですが、これではArduino経由での制御ができなくなります(パルスリレーは高すぎる)ので、普通のボタンを2つ追加しました。

少しセキュリティ

技術者向けのホステルで火災報知機がない場所はどこですか? 経験不足から、煙探知機ではなく、火災探知機を購入しました。 もちろん、最大 30 cm の距離でバーニングマッチを判断するのはクールですが、十分ではありません。 だから今のところ私はそれなしでやった。

寮の火災報知器といえば…


  • 時々サイレンや死者の喘鳴を発するスピーカー
  • ローカル煙探知機
  • ネットワーク煙感知器 (セキュリティ コンソールに接続)

一般形







コンピュータケースへの配置には、短絡を引き起こす可能性があるという大きな欠点があります。 したがって、ボードはすぐに個人の棚に移動し、段ボール箱の代わりにHDDケースから自家製のケースが登場します。

スケッチコード

現在の状態

#含む
#含む
#含む
#含む
#define DHT_PIN 2 // 温度計ピン...
#define DHT2_PIN 52 //屋外温度計ピン...
#define RAIN_PIN 53 // 雨センサーピン
#define RECV_PIN 3 // IR レシーバー接続ピン
#define FAN_PIN 4 //リレー接続ピン
#define LAMP_PIN 5 //リレー接続ピン
#define SOUND_PIN A0 // マイク接続ピン
#define WINDOW_PIN A1 //ウィンドウ ピン

#define LAMP_BUT_PIN 50 // マイク接続ピン
#define FAN_BUT_PIN 51 //ウィンドウ ピン

#define DHTTYPE DHT11

#定義 TIMER_FAN 0
#定義 TIMER_WINDOW 1

IRrecv irrecv(RECV_PIN);
デコード結果;
int タイマー;
bool FAN_FLAG = false;
bool LAMP_FLAG = true;
int WINDOW_VAL = 0;

bool WINDOW_OPEN = false;
bool WINDOW_FLAG = false;
bool RAIN_FLAG = false;

Char 受信バイト;

DHT dht(DHT_PIN, DHTTYPE);
DHT dht2(DHT2_PIN, DHTTYPE);

DS1302 rtc(49, 46, 48);
ボイドセットアップ()(
Serial1.begin(9600);

rtc.halt(偽);
rtc.writeProtect(偽);
//rtc.setDOW(日曜日); // 曜日を FRIDAY に設定
//rtc.setTime(0, 37, 40); // 時刻を 0:37:00 (24 時間形式) に設定します
//rtc.setDate(25, 5, 2014); // 日付を 5 月 25 日に設定

タイマー = 0;
タイマー = 0;

PinMode(RAIN_PIN、入力);
pinMode(LAMP_BUT_PIN, INPUT);
pinMode(FAN_BUT_PIN, INPUT);

PinMode(FAN_PIN,OUTPUT);
pinMode(LAMP_PIN,OUTPUT);

DigitalWrite(FAN_PIN,LOW);
errecv.enableIRIn(); // 受信機の電源を入れます

Dht.begin();
dht2.begin();
}
int ボリューム;
空ループ() (
WINDOW_VAL = analogRead(WINDOW_PIN); //磁気センサー
if(WINDOW_VAL > 950)(
if(WINDOW_FLAG)(
タイマー++;
if(タイマー>10)(
WINDOW_OPEN=false;
}
)そうしないと(
WINDOW_FLAG=真;
}
)そうしないと(
WINDOW_OPEN = 真;
WINDOW_FLAG=false;
タイマー=0;
}

If(digitalRead(RAIN_PIN)==HIGH)(
RAIN_FLAG=真;
)そうしないと(
RAIN_FLAG=false;
}

ボリューム = analogRead(SOUND_PIN);
if(ボリューム<40){
ランプ_フラグ = !ランプ_フラグ;
}

If(digitalRead(LAMP_BUT_PIN)==HIGH)(
入力信号 (1);
}
if(digitalRead(FAN_BUT_PIN)==HIGH)(
入力信号 (0);
}

If (irrecv.decode(&results))
{
if (results.value == 16750695) //ボタンのコード
{
入力信号 (0);
}
if (results.value == 16756815) //ボタンのコード
{
入力信号 (1);
}
errecv.resume(); // 次の値を取得
}
//Serial.println(rtc.getTime().hour);
//Serial.println(rtc.getTime().min);
Serial1.print(rtc.getDOWStr());
Serial1.print(" ");
Serial1.print(rtc.getDateStr());
Serial1.print("-");
Serial1.println(rtc.getTimeStr());

If (Serial1.available() > 0) (
着信バイト = Serial1.read();
if(incomingByte == "0") (
Serial1.println("手動モード無効");
入力信号 (0);
)else if(incomingByte == "1") (
Serial1.println("手動モード有効");
入力信号 (0);
)else if(incomingByte == "2") (
入力信号 (1);
}
}

フロート = dht.readHumidity();
float t = dht.readTemperature();

If (isnan(t) || isnan(h)) (
Serial1.println("内部温度計からの読み取りエラー");
) そうしないと (
if(タイマー<=0){
もし (t<26){
FAN_FLAG=false;
)else if (t>26)(
FAN_FLAG = 真;
}
)そうしないと(
タイマー - ;
}
Serial1 印刷 (h);
Serial1.println(" %\t");
Serial1.print(t);
Serial1.println("*C");
}

if(タイマー>0)(
Serial1.print("手動モードは機能しません: „);
Serial1.print(タイマー);
Serial1.println(" 秒");
)そうしないと(
Serial1.println("手動モード無効");
}
if (FAN_FLAG && WINDOW_OPEN)(
digitalWrite(FAN_PIN,HIGH);
Serial1.println("ファンはオン");
)そうしないと(
デジタル書き込み (FAN_PIN、LOW);
Serial1.println("ファンオフ");
}

If(WINDOW_OPEN)(
Serial1.println("ウィンドウが開いています");
)そうしないと(
Serial1.println("ウィンドウを閉じました");
}

If(LAMP_FLAG)(
digitalWrite(LAMP_PIN、HIGH);
)そうしないと(
digitalWrite(LAMP_PIN、LOW);
}

H = dht2.readHumidity();
t = dht2.readTemperature();
Serial1.println("窓の外:");
if (isnan(t) || isnan(h)) (
Serial1.println("屋外温度計からの読み取りエラー");
) そうしないと (
Serial1.print("湿度: ");
Serial1 印刷 (h);
Serial1.println(" %\t");
Serial1.print("温度: ");
Serial1.print(t);
Serial1.println("*C");
}
もし (RAIN_FLAG) (
Serial1.println("雨が降っていません");
)そうしないと(
Serial1.println("雨");
}

Serial1.println("*****");
遅延 (100);
}

Void input_signal(int シグナル)(
スイッチ(信号)(
ケース 0:
if(rtc.getTime().hour> 1 && rtc.getTime().hour< 8){
タイマー = 1800;
)そうしないと(
タイマー = 18000;
}
FAN_FLAG = !FAN_FLAG;

Serial1.println("ファン切り替え");
壊す;
ケース 1:
ランプ_フラグ = !ランプ_フラグ;
Serial1.println("ライトスイッチ");
壊す;
}
}

コードに不具合がある場合はどうなりますか?

ノーマルクローズリレーを使用しています。 つまり、すべてがデフォルトでオンになっています。Arduino をネットワークから切断して、簡単なスイッチを使用できます。

開発計画

私が挙げたものは、真にスマートな部屋の基礎にすぎません。 結局のところ、すべての AI が温度に応じてファンのオンとオフを切り替えています。 部屋をより快適に「自律」させるために、次のことを計画しています。
警報
システムに時計を追加したら、次は目覚まし時計です。 信号として、ピエゾツイーター、ライトの点滅、ファンのオンを想定しています。 そしてもちろん、外で雨が降っている場合は早起きしてください (移動速度-10)。

このモジュールを使用して、アラームを SD カードに保存するシステムを追加します (停電の場合)。

パソコン・スマホアプリ+ウィジェット
スマホやパソコンからコントロールできないスマートホームとは?

私はこのようなものを推測しています:


なぜWiFiではないのですか? 高過ぎ。

Arduino自身の電源を出力
コメントは不要だと思います。USB を燃やす危険性と、他のデバイスとの絶え間ない干渉です。 また、ボードから専用アダプタに電源を移したい。
コンセントからルーターを制御する
古き良きAsus RT56Uは、特に夏に暖かくなるのが大好きです. したがって、夜間に数時間自動シャットダウンして冷却したいと考えています。
プレゼンス監視を追加する
今、私はいくつかの古き良き焦電赤外線センサーといくつかの超音波距離センサーを持っています。 これは、最も単純なプレゼンス コントロールには十分な場合があります。

部屋には2人が住んでいます。 それぞれに次の 4 つの状態があります。

  • パソコンで
  • 費用
  • ベッドに横たわっている
  • ない

赤外線センサーが部屋の存在を判断し、ゾーン(ベッド/テーブル)の超音波の存在を判断し、着信/発信の数を監視します。

これにより、最も単純なシナリオを実装できます。

  • 私は夕方に来ました、そして隣人は寝ていません:電気をつけてください
  • 全員外出: 明かりを消して
  • 誰もが横になって動かない:電気を消してください
感光性抵抗器を追加
ジャンルの古典: 部屋の「コンピューターで」ゾーンに誰かがいて、部屋が暗い場合、自動的にライトをオンにします。
電気機械式ロックとドアクローザを追加
あなたのことはわかりませんが、私は怠け者でいつも鍵を探すのは苦手なので、近接カードリーダーまたは指紋センサーと組み合わせた電気機械式ロックを取り付けたいと思っています。 ホステルへの入り口は電子バッジです - 頻度は私にはわかっていて、Arduinoリーダーを簡単に注文できますが、カードは非常に簡単に複製できます(私自身がこのためのデバイスを持っています)ので、その時が来たら、私はほとんどの場合、指紋の指で解決します。

隣人はよくキッチン・トイレ・風呂に行き、ドアを閉めない。 私は玄関の前に座っていて、通りすがりの人が私のショーツを見て、部屋の気質を熟考するのが好きではありません. 制御されたクローザーは、このような状況に最適なソリューションです。

ウィンドウをアップグレードする
すでに書いたように、温度が一定の限界を超えると、ファンがオンになります。 しかし、部屋に誰もいなくて、気温がすでに 20 度を下回っている場合はどうでしょうか。 窓の開閉をシステムに追加したい。 おそらく、単純なモーター + 釣り糸になるでしょう。

電球を冷やして点灯させると、高確率で爆発することが知られています。 したがって、神経と電球も節約できます。

温度制御システムに対応していない電球


DHT11を交換
既に書いた通り、センサー等が分かりません。 そこで、最初に見つけた温度センサー dht11 を購入しました。 ここで、それらを部屋の dht22 と通りの dht21 に置き換えたいと思います。 dht22 はエラーが小さく、dht21 は負の温度と保護されたケースをサポートしており、これはストリートにとって重要です。 ストリート dht11 は、すでに時々迷子になり始めています。
学生 タグを追加