Hem Automation och säkerhet med 1Sheeld (2 / 2 steg)
Steg 2: kod:
* Detta är ett hem trygghet projekt med hjälp av Arduino UNO styrelsen och ammazing 1sheild * /
Ahmed ismail, Vibeke mohamed
Mido-ahlawy-92, Vibeke. G750
Arduino IDE
* Inkludera 1Sheeld bibliotek. */
#include < onesheeld.h >< /onesheeld.h >
#define CUSTOM_SETTINGS
#define INCLUDE_VOICE_RECOGNIZER_SHIELD
#define INCLUDE_LCD_SHIELD
#define INCLUDE_MUSIC_PLAYER_SHIELD
#define INCLUDE_TERMINAL_SHIELD
#define INCLUDE_CAMERA_SHIELD
#define INCLUDE_TWITTER_SHIELD
#define INCLUDE_SMS_SHIELD
#define pir A0
#define gas A1
#define vatten A2
#define led1 11
#define led2 12
#define led3 10
#define lampa 13
#define fan 5
#define summern 9
/ * Definiera vissa variabler. */
int pirv = 0;
int gasv = 0;
int waterv = 0;
booleska isMessageSent = false;
/ * Voice command in av användaren. */
CONST char openCommand [] = "öppna";
void setup() {
/ * Starta kommunikation. */
OneSheeld.begin();
/ * Fel kommandon handiling. */
VoiceRecognition.setOnError(error);
VoiceRecognition.start();
pinMode (led1, produktionen);
pinMode (led2, produktionen);
pinMode (lampa, produktionen);
pinMode (fläkt, OUTPUT);
}
void loop() {
LCD.begin();
pirv = digitalRead(pir);
gasv = digitalRead(gas);
waterv = analogRead(water);
om (pirv == 1) {
digitalWrite (led2, hög);
LCD.print ("säga lösenord");
Delay(5000);
om (VoiceRecognition.isNewCommandReceived()) {
/ * Jämför kommandot Öppna. */
om (! strcmp (openCommand, VoiceRecognition.getLastCommand())) {
digitalWrite (led2, låg);
digitalWrite (led1, hög);
LCD.print ("Välkommen hem");
MusicPlayer.play();
Delay(5000);
digitalWrite (led1, låg);
}
annat {
digitalWrite (Summer, hög);
Camera.setFlash(ON);
/ * Ta bilden. */
Camera.rearCapture();
/ * Vänta i 10 sekunder. */
OneSheeld.delay(10000);
/ * Posta bilden på Twitter. */
Twitter.tweetLastPicture ("unauthinticated person");
}
}
}
om (waterv > 300 || gasv > 200) {
om (! isMessageSent)
{
/ * Skicka SMS. */
SMS.send ("01094537336", "kök ALERT");
/ * Flaggan. */
isMessageSent = sant;
}
samtidigt (gasv > 200) {
digitalWrite (fan, hög);
}
}
}
/ * Felkontroll funktion. */
makulera fel (byte errorData)
{
/ * Växla vid fel och skriva ut det på terminalen. */
Switch (errorData)
{
fall NETWORK_TIMEOUT_ERROR: Terminal.println ("nätverk timeout"); bryta;
fall NETWORK_ERROR: Terminal.println ("Network Error"); bryta;
fall AUDIO_ERROR: Terminal.println ("ljud fel"); bryta;
fall SERVER_ERROR: Terminal.println ("ingen Server"); bryta;
fall SPEECH_TIMEOUT_ERROR: Terminal.println ("tal timeout"); bryta;
fall NO_MATCH_ERROR: Terminal.println ("ingen match"); bryta;
fall RECOGNIZER_BUSY_ERROR: Terminal.println("Busy"); bryta;
}
}