1Sheeldを使用したスマートホームオートメーションおよびセキュリティシステム
コンポーネントと消耗品
> ![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
![]() |
| × | 2 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 2 | ||||
![]() |
| × | 1 |
必要なツールとマシン
> ![]() |
|
このプロジェクトについて
概要
物語はここから始まります。
<図>
このようなすべてのものを一緒に構築するのは素晴らしい動きだったので、このプロジェクトを作成することにしました。このプロジェクトは、多くの概念を理解するのに役立ち、良い経験を積むことができるので、このクールなものを構築する方法を学び始めましょう:)
プロジェクトの仕組み:
このプロジェクトにより、音声コマンドまたはSMSですべての家の照明を制御できるようになります:)、これだけでなく、セキュリティシステムでもあり、眠っているときや家の外にいるときに見知らぬ人が家に入ると、メールが送信されます見知らぬ人があなたの家に入って、警報システム(ブザー)があなたの家で働くとあなたに言います、またあなたがライトをオンまたはオフにするためにあなたがSMSを送るときそれはあなたに注文があったことをあなたに知らせるためにあなたに電子メールを送ります実行され、Tmpセンサーがその温度を検知した場合も同様です。 35を超えていますアラーム(ブザー)はあなたの家で動作し、システムはあなたに電子メールを送信します。 35より高かった。
注:与えたいコマンドの前にJarvisと言うことを忘れないでください:)システムがコマンドを聞くことができるようにするため。
注:システムにコマンドを送信すると、Jarvisが応答します:)実際のアシスタントと話しているように。
注:セキュリティシステムをオンにするには、スマートフォンに音声コマンドを与えます(セキュリティをオンにします)。セキュリティシステムをオフにするには、言います(セキュリティをオフにします)
1sheeldについてもっと知りましょう:
1Sheeldはスマートフォンを40種類のArduinoシールドに変えます。そのため、スマートフォンにシールドがあるので、Arduino用のシールドを購入する必要はありません。
これが、1Sheeld Boardを使用する理由です。すでにスマートフォンにセンサーが搭載されているため、センサーを購入する必要はありません。
1Sheeldの使用を開始する方法について詳しく知りたい場合は、ここをクリックしてください
まず、アップロードしたCADファイルをレーザー切断機で切断する必要があります。
<図>
- 次に、このようにドアに磁気ドアスイッチセンサーを配置する必要があります
- これはデジタルセンサーだったので、デジタルValuo0または1を返します
- センサーを使用する前にセンサーを調整して、開いたときと閉じたときの読み取り値を知る必要があります。

ACランプ
- 次に、ランプを特定の場所に配置するために壁を切り取る必要があります。
- すべてのランプワイヤーを並列に接続します。

温度センサー
- 3本の脚を持つLM35DZを使用しているIam

- + VはArduinoの5Vに接続されています
- Arduinoの地面へのGND
- ArduinoのピンA0への出力。これにより読み取り値が得られます
1sheeldの使用方法は?
1- Arduinoボードの上に1Sheeldをスタックし、1Sheeldライブラリを使用してコードを記述します。
2-Arduino IDEを使用してArduinoにコードをアップロードします(ここからArduino IDEをダウンロードできます)
3-注:UARTスイッチがアップロードモードになっていることを確認してください。
<図>
4-コードのアップロードが終了したら、スイッチを操作モードに戻します
<図>
注:忘れないでください! UARTスイッチを動作モードに戻さないと、1SheeldとArduinoボード間の通信がないため、プロジェクトは正しく機能しません。
1Sheeldアプリケーション:
- ここからダウンロードできる1Sheeldアプリケーションを開きます

- 次に、アプリケーションを開いてボードに接続する必要があります。ペアリングコード(デフォルトのペアリングコードは1234)を入力し、Bluetooth経由で1Sheeldに接続する必要があります。

- 次に、使用するシールド(SMS、音声認識、テキスト読み上げ、時計、電子メール)を選択します。
- 今すぐあなたの仕事を試してみてください:)
注:私たちは独自の女性ジャービスを作りました:D
あなた自身のジャービスを作りなさい。
コード
- スマートホームオートメーションおよびセキュリティシステム
スマートホームオートメーションおよびセキュリティシステム Arduino
/ **スマートホームオートメーションおよびセキュリティシステムチームSADEE *メール:[email protected] * FBページのようなその他のプロジェクト:https://www.facebook.com/Scientific-%D9%90Association-of- the-Department-of-Electrical-Engineering-At-ACU-260274217766395 / * /#define CUSTOM_SETTINGS // Arduinoメモリを保存するために使用する特定のシールドを定義するために使用されます#defineINCLUDE_VOICE_RECOGNIZER_SHIELD // 1音声コマンド付きシールドボード#defineINCLUDE_TEXT_TO_SPEECH_SHIELD #define INCLUDE_CLOCK_SHIELD#define INCLUDE_SMS_SHIELD#define INCLUDE_EMAIL_SHIELD #include#include int minutes、hours; //時間と分を節約する変数Stringstrh; //この行を使用して、クロックが読み取るInt値をStringStringに変換しますstrm; char h [4]; char m [4]; LiquidCrystal lcd(2,3,4,5,6,7);#define receiveLamp A1 //これはレセプションリレーです#definebedRoomLamp A2 //これはベッドルームです#definepathRoomLamp A3 //これはバスルームです#definebalaconyLamp A4 //これはキッチンですconstchar timeCommand [] ="何時ですか"; // Taskconstを実行するために1Sheeldに送信するコマンドcharreceptionCommandOn [] ="reception on"; const char receiveCommandOff [] ="reception of"; const char whatsUp [] ="good morning"; const char pathRoomCommandOn [] ="bathroom on"; const char pathRoomCommandOff [] ="bathroom off"; const char balaconyCommandOn [] ="kitchen on"; const char balaconyCommandOff [] ="kitchen off"; const char bedRoomCommandOn [] ="bedroom on"; const char bedRoomCommandOff [] ="bedroom off"; const char LightsOn [] ="on"; //これはSMSを送信するときのSMSシールド用です含まれています(ライトがオン)ライトがオンになりますconst char LightsOff [] ="off"; //これはSMSを送信するときのSMSシールド用です含まれています(ライトがオフ)ライトがオフになります// ************************** ************************************************** **************************** const char securityModeOn [] ="security on"; //これはセキュリティシステム用です(セキュリティオン)次にセキュリティシステムをトリガーしました誰もがシステムを壊しますアラームは機能しますconst char securityModeOff [] ="security off"; //セキュリティシステムをオフにする誰もがセキュリティシステムを壊すアラームは機能しません// ********************************* ************************************************** *********************** const char mainCommand [] ="jarvis"; //音声コマンドの前にjarvisと言って、システムに文字列の正午を聞いてもらいます; //#define tmp A0 // TMPセンサーにはLM35DZを使用します// int Voltage、degree; //温度の変化中にさまざまな電圧を含む変数、および単純な数学的EQ後のセリサスの次数。 byte smile [] ={//液晶画面に笑顔のシンボルを作成するB00000、B01001、B01001、B00000、B00000、B10001、B01110、B00000、};#define MagneticReception 8 //受信用の磁気スイッチ#definemagneticBalacony 9 // Balaconyintブザーのマグネティックスイッチ2 =10; //温度センサー用のこのブザーiS // D11は無料でした; intbuzzer1 =A5; //このブザーは磁気スイッチ用です誰かがセキュリティシステムを壊した場合これはブザーが機能しますmagnetreceptionState; // 1または0の場合、変数にはマグネティックスイッチの読み取り値が含まれますint MagneticBalaconyState; int state =0; //これはJarvisboolセキュリティ用です。 //これはセキュリティシステムの場合voidsetup(){noTone(buzzer1); noTone(buzzer2); // analogReference(INTERNAL); // TMPセンサーが正確であるためのリファレンス1.1VoltagedigitalWrite(receptionLamp、HIGH); digitalWrite(bedRoomLamp、HIGH); digitalWrite(pathRoomLamp、HIGH); digitalWrite(balaconyLamp、HIGH); // passState =false; lcd.begin(16 、2); // LCDを開始OneSheeld.begin(); // OneSheeld BoardpinMode(receptionLamp、OUTPUT);を開始しますpinMode(bedRoomLamp、OUTPUT); pinMode(balaconyLamp、OUTPUT); pinMode(pathRoomLamp、OUTPUT); pinMode(buzzer1、OUTPUT); //磁気switchpinMode(magneticReception、INPUT_PULLUP);の場合// BoardpinMode(magneticBalacony、INPUT_PULLUP); // pinMode(tmp、INPUT); pinMode(buzzer2、OUTPUT);に組み込まれているPULLUP抵抗を使用します//温度センサー用lcd.createChar(0、smile); lcd.clear(); lcd.setCursor(0,0); lcd.print( "Welcome To The"); delay(4000); lcd.clear(); lcd.setCursor(0,0); lcd.print( "Smart Home"); lcd.setCursor(0,1); lcd.print( "Automation And"); delay(4000); lcd.clear(); lcd .setCursor(0,0); lcd.print( "Security System"); delay(4000); lcd.clear(); lcd.setCursor(0,0); lcd.print( "CALIBRATING ...."); delay(10000); if(!VoiceRecognition.isNewCommandReceived())//音声コマンドがない場合Print This WOrds {lcd.clear(); lcd.setCursor(1,0); lcd.print( "We Are Here To"); lcd.setCursor(4,1); lcd.print( "HELP You"); } security =false;} void loop(){Clock.queryDateAndTime(); // OneSheeld Boardのクロックシールドを使用して日付と時刻を照会するためのこの関数SMS.setOnSmsReceive(&MyFunction); // SMSのこの関数minutes =Clock.getMinutes(); hours =Clock.getHours(); if(hours> 12)//これを実行して時刻を24時間制から12時間制に変更します。 AMまたはPM {時間-=12; noon ="P M";} else {noon ="A M"; } strh =String(hours); strm =String(minutes); strh.toCharArray(h、4); //文字列に変換する時間をCharArraystrm.toCharArray(m、4); VoiceRecognition.start();に変換します。 //音声認識を開始しますShieldOneSheeld.delay(8000); //注文を遅らせてから開始Agaimif(VoiceRecognition.isNewCommandReceived()){if(!strcmp(mainCommand、VoiceRecognition.getLastCommand()))//最後の音声コマンドを「Alexa」であるメインコマンドと比較する{TextToSpeech .say( "yes sir"); //この関数は、テキスト読み上げシールドにそのタスクを実行するように命令しますlcd.clear(); lcd.setCursor(8,0); lcd.write(byte(0));状態=1; } if(!strcmp(receptionCommandOn、VoiceRecognition.getLastCommand())&&state ==1)//最後に受信した2つの文字列と、前に作成した文字列を比較します{TextToSpeech.say( "okサーランプがオンになっています"); OneSheeld.delay(2500); digitalWrite(receptionLamp、LOW); lcd.clear(); lcd.setCursor(0,0); lcd.print( "ホールランプは"); lcd.setCursor(8,1); lcd.print( "ON");状態=0; } else if(!strcmp(receptionCommandOff、VoiceRecognition.getLastCommand())&&state ==1){TextToSpeech.say( "受信のokサーランプがオフです"); OneSheeld.delay(2500); digitalWrite(receptionLamp、HIGH); lcd.clear(); lcd.setCursor(0,0); lcd.print( "ホールランプは"); lcd.setCursor(7,1); lcd.print( "OFF");状態=0; } else if(!strcmp(bedRoomCommandOn、VoiceRecognition.getLastCommand())&&state ==1){TextToSpeech.say( "寝室のランプがオンになっています"); OneSheeld.delay(2500); digitalWrite(bedRoomLamp、LOW); lcd.clear(); lcd.setCursor(0,0); lcd.print( "The BedRoom"); lcd.setCursor(0,1); lcd.print( "lamp Is:ON");状態=0; } else if(!strcmp(bedRoomCommandOff、VoiceRecognition.getLastCommand())&&state ==1){TextToSpeech.say( "寝室のランプがオフになっています"); OneSheeld.delay(2500); digitalWrite(bedRoomLamp、HIGH); lcd.clear(); lcd.setCursor(0,0); lcd.print( "寝室"); lcd.setCursor(0,1); lcd.print( "lamp Is:OFF");状態=0; } else if(!strcmp(pathRoomCommandOn、VoiceRecognition.getLastCommand())&&state ==1){TextToSpeech.say( "バスルームのランプがオンになっています"); OneSheeld.delay(2500); digitalWrite(pathRoomLamp、LOW); lcd.clear(); lcd.setCursor(0,0); lcd.print( "The Bathroom"); lcd.setCursor(0,1); lcd.print( "lamp Is:ON");状態=0; } else if(!strcmp(pathRoomCommandOff、VoiceRecognition.getLastCommand())&&state ==1){TextToSpeech.say( "バスルームのランプがオフになっています"); OneSheeld.delay(2500); digitalWrite(pathRoomLamp、HIGH); lcd.clear(); lcd.setCursor(0,0); lcd.print( "The Bathroom"); lcd.setCursor(0,1); lcd.print( "lamp Is:OFF"); } else if(!strcmp(balaconyCommandOn、VoiceRecognition.getLastCommand())&&state ==1){TextToSpeech.say( "キッチンのランプがオンになっています"); OneSheeld.delay(2500); digitalWrite(balaconyLamp、LOW); lcd.clear(); lcd.setCursor(0,0); lcd.print( "キッチン"); lcd.setCursor(0,1); lcd.print( "Lamp Is:ON");状態=0; } else if(!strcmp(balaconyCommandOff、VoiceRecognition.getLastCommand())&&state ==1){TextToSpeech.say( "キッチンのランプがオフになっています"); OneSheeld.delay(2500); digitalWrite(balaconyLamp、HIGH); lcd.clear(); lcd.setCursor(0,0); lcd.print( "キッチン"); lcd.setCursor(0,1); lcd.print( "ランプは:オフ");状態=0; } else if(!strcmp(whatsUp、VoiceRecognition.getLastCommand())&&state ==1){lcd.clear(); lcd.setCursor(0,0); lcd.print( "おはようございます:)"); lcd.setCursor(0,1); lcd.print( "Its A Good Day"); TextToSpeech.say( "おはようございます"); OneSheeld.delay(1500); TextToSpeech.say( "カイロでの時間は"); OneSheeld.delay(1500); TextToSpeech.say(h); OneSheeld.delay(1000); TextToSpeech.say(m); OneSheeld.delay(1000); TextToSpeech.say(正午);状態=0; } else if(!strcmp(timeCommand、VoiceRecognition.getLastCommand())&&state ==1){lcd.clear(); lcd.setCursor(0,0); lcd.print( "Time In Cairo Is"); lcd.setCursor(0,1); lcd.print(h); lcd.print( ":"); lcd.print(m); lcd.print( ""); lcd.print(noon); TextToSpeech.say( "カイロでの時間は"); OneSheeld.delay(1500); TextToSpeech.say(h); OneSheeld.delay(1000); TextToSpeech.say(m); OneSheeld.delay(1000); TextToSpeech.say(正午);状態=0; } // *********************************************** ************************************************* それ以外if(!strcmp(securityModeOn、VoiceRecognition.getLastCommand())&&state ==1){lcd.clear(); lcd.setCursor(0,0); lcd.write( "OK、Sir Feel Safe"); lcd.setCursor(0,1); lcd.write( "セキュリティモード"); delay(200); TextToSpeech.say( "セキュリティシステムがトリガーされました"); security =true;状態=0; } else if(!strcmp(securityModeOff、VoiceRecognition.getLastCommand())&&state ==1){lcd.clear(); lcd.setCursor(0,0); lcd.write( "OK、Sir Security"); lcd.setCursor(0,1); lcd.write( "is OFF"); delay(200); TextToSpeech.say( "セキュリティシステムがオフになりました"); security =false;状態=0; }} // ********************************************** ************セキュリティシステム************************************ *********************** MagneticReceptionState =digitalRead(magneticReception); MagneticBalaconyState =digitalRead(magneticBalacony); if(security ==true){if(magneticReceptionState ==HIGH || MagneticBalaconyState ==HIGH)//セキュリティシステムが機能しているときに誰かがドアを開けると、アラームが鳴ります{tone(buzzer1,1500); Email.send( "[email protected]"、 "ホームセキュリティシステム"、 "誰かがあなたの家に入った、気をつけて"); OneSheeld.delay(3500); } else if(magneticReceptionState ==LOW || MagneticBalaconyState ==LOW){noTone(buzzer1); }} else if(security ==false){noTone(buzzer1);} / *電圧=analogRead(tmp);電圧=電圧* 1100/1024;度=電圧/ 10; if(degree> =35){tone(buzzer2,1500); Email.send( "[email protected]"、 "ホームセキュリティシステム"、 "キッチンの温度が45を超えている、注意してください"); OneSheeld.delay(5000); } else if(degree <25){noTone(buzzer2); } * /} // ******************************************** ************************************************** ********************************* void MyFunction(char * phoneNumber、char * messageBody)// SMS関数() {if(!strcmp(lightsOn、messageBody))//「ライトオン」をSMSとして送信すると、すべてのライトがオンになります{digitalWrite(receptionLamp、LOW); delay(500); digitalWrite(pathRoomLamp、LOW); delay(500); digitalWrite(bedRoomLamp、LOW); delay(500); digitalWrite(balaconyLamp、LOW); delay(500); TextToSpeech.say( "すべてのライトがオンになりました"); lcd.clear(); lcd.setCursor(0,0); lcd.print( "すべてのライトがオンになっています"); delay(300); Email.send( "[email protected]"、 "ホームセキュリティシステム"、 "すべてのライトがオンになりました"); OneSheeld.delay(3500);} else if(!strcmp(lightsOff、messageBody))//「ライトオフ」をSMSとして送信すると、すべてのライトがオフになります{digitalWrite(receptionLamp、HIGH); delay(500); digitalWrite(pathRoomLamp、HIGH); delay(500); digitalWrite(bedRoomLamp、HIGH); delay(500); digitalWrite(balaconyLamp、HIGH); delay(500); TextToSpeech.say( "すべてのライトがオフになりました"); lcd.clear(); lcd.setCursor(0,0); lcd.print( "すべてのライトがオフになっています"); delay(300); Email.send( "[email protected]"、 "ホームセキュリティシステム"、 "すべてがオフになりました"); OneSheeld.delay(3500);}}
カスタムパーツとエンクロージャー
drawing_lasser_cutting_lvvsN9X9Xg.dwg 回路図


製造プロセス
- ホームオートメーションのアプリケーション
- スマートホームおよびビルディングオートメーション接続ソリューションを紹介するSiliconLabs
- SensorflareとRaspberryPiを備えた433MHzスマートホームコントローラー
- カメラとPIRセンサーを備えたRaspberryPiホームセキュリティシステム
- PythonでArduinoとRFIDを使用した出席システム
- Arduino、1Sheeld、Androidを使用したユニバーサルリモコン
- IOT-ESP8266、Arduino、超音波センサーを使用したスマートジャー
- arduinoを使用したソナーと処理IDEでの表示
- Arduinoを使用したシンプルでスマートなロボットアーム
- シンプルでスマートな空気清浄機システム
- スマートフォンを使用してライトシステムを制御する