Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Arduino-Alarmsystem:SERENA

Komponenten und Verbrauchsmaterialien

Arduino Mega 2560
× 1
3,2" TFT-LCD-Touchscreen
× 1

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Ich habe schon viele Alarmsysteme gesehen, sie überprüft, konnte sehen, wie sie funktionieren, und ich entschied, dass ich meine eigenen machen wollte. Ich meine, warum nicht? Warum nicht etwas nehmen und es noch besser machen? Ich meine, ich bin schließlich Informatiker (Bachelor, aber das ändert sich bald).

Und so entstand dieses Projekt.

Ich habe mir viele Systeme angesehen und was sie tatsächlich bieten können, und dachte, dass es eine gute Idee wäre, all diese Funktionen (und einige meiner eigenen) auf einem einzigen Arduino-Board zu packen, das als Alarmzentrale dient.

Nichts kniffliges hier, ich habe mir nur das Board selbst zusammen mit einem 3,2" Touchscreen gekauft. Damit der Bildschirm funktioniert, brauchte ich natürlich einige Bibliotheken. Ein großes Dankeschön an Henning Carlsen für all die Bibliotheken! Link zu seiner Website im Abspann Abschnitt.

Das Programm

Jetzt hat es eine Weile gedauert, bis ich fertig war. Lass dich vom Code nicht verwirren, ich kommentiere immer wenn es nötig ist!

Die Hauptfunktionen des Weckers

Ich beschloss, drei verschiedene Passwörter hinzuzufügen. Ein 4-stelliges, ein 5-stelliges und ein 6-stelliges. Ich weiß, das sind viele, aber in einem zukünftigen Update werde ich dem Benutzer die Möglichkeit geben, den 4-stelligen Code zu deaktivieren.

  • Der 4-stellige Pass wird verwendet, um den Alarm zu aktivieren.
  • Der 5-stellige Pass wird verwendet, um den Alarm teilweise zu deaktivieren.
  • Der 6-stellige Pass wird verwendet, um den Alarm vollständig zu deaktivieren.

Der Alarm kann sich auch selbst aktivieren. Nach Eingabe des 5-stelligen Codes startet das Programm einen Countdown (standardmäßig 40 Sekunden). Nach Ablauf dieses Countdowns wird der Alarm automatisch aktiviert. Dies kann sehr praktisch sein, wenn Sie normalerweise vergessen, das System zu aktivieren.

Optionsmenü

Im Optionsmenü können Sie alle drei Passwörter sowie die Auto-Scharf-Zeit ändern.

Zukünftige Updates

Zukünftige Updates umfassen Datums-/Uhrzeiteinstellungen, SD-Kartenunterstützung (falls es einen Stromausfall gibt und wir keine Daten verlieren möchten), die Option zum Deaktivieren der automatischen Scharfschaltung, die Option zum Deaktivieren des 4-stelligen Passes und vieles mehr .

Showcase-Video

Code

  • SERENA v.1.01
SERENA v.1.01Arduino
Laden Sie einfach den Code auf Ihr Arduino-Board hoch.
Einige Kommentare sind auf Griechisch, dies wird sich bald ändern.
//////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// ////////////////////SERENA Alarm System//Autor:Michael Marinis//Copyright (C)2016 Michael Marinis. Alle Rechte vorbehalten//Website:http://www.youtube.com/SauROnmiKE////Dies ist das SERENA-Alarmsystem, ein Zwei-Funktions-Alarmsystem, das // dem Benutzer die Möglichkeit gibt, den Alarm automatisch scharfzuschalten, oder manuell scharf schalten, wenn der Benutzer möchte.////Dieses Programm erfordert die UTFT- und URTouch-Bibliotheken von Henning Karlsen und einen kompatiblen LCD//Bildschirm mit seinem Schild.////////////// VERSIONEN////////////0.10a:Erster Build, Grundfunktionen//0.20a:Kleinere Verbesserungen//0.30a:Passeingabe und Bestätigung für ein neues Manual-Arm-Passwort ist abgeschlossen (12/11 /2016)//0.40a:Eingabe und Bestätigung für ein neues Auto-Scharf-Passwort ist abgeschlossen (12.11.2016)//1.00a:Eingabe und Prüfung des Scharf-Passworts abgeschlossen (12.11.2016, 19:16) //.10a:Das Menü wurde abgeschlossen, wenn das System scharfgeschaltet ist (ohne ein Signal an ein Relais oder etwas anderes zu senden). Uhrzeit und Datum werden später hinzugefügt. Die Unscharf-Taste wird nur hinzugefügt (13.11.2016, 13:04)//1.20a:Programmiert die „UNSCHARF“-Taste. Es fordert zur Eingabe des 5-stelligen Passworts auf. Es wird auch eine Passwortprüfung durchgeführt, die den Alarm deaktiviert (ohne ein Signal an ein Relais oder etwas anderes zu senden) (13.11.2016, 14:15)//1.21a:Ein Problem wurde behoben, bei dem der Benutzer keine Zahlen eingeben konnte nach der Passwort-Bestätigungsprüfung. Wenn der Benutzer "NEIN" gedrückt hat, konnte er kein neues Passwort eingeben, bis die Schaltfläche "LÖSCHEN" gedrückt wurde. Dies ist nun behoben (14.11.2016, 13:32)//1.22a:Der Countdown-Timer für die automatische Scharfschaltung ist nun abgeschlossen (14.11.2016, 15:46)//1.30a:Auto-Scharfschaltung Menü ist fertig. Das Auto-Scharf-Menü zeigt die verbleibenden Sekunden für die erneute Auto-Scharfschaltung an. Das vollständige Unscharf-Menü wird aufgrund der Einschränkungen der Bibliothek über eine Drucktaste aufgerufen (14.11.2016, 21:42)//1.31a:Die Variable "buf" wurde von "-1" auf "0" geändert. Dadurch wurde der Fehler behoben, bei dem das erste Drücken einer beliebigen Zahlentaste nichts bewirkte (16.11.2016, 00:45)//1.40b:Die Schaltfläche "SET ARM PASSWORD" wurde hinzugefügt, mit der der Benutzer die 4 . ändern kann -stelliges Passwort zum Scharfschalten des Alarms (16.11.2016, 14:33)//1.41b:Die "BACK"-Tasten aus dem "SET AUTO-ARM PASS", leiten jetzt zur zweiten Seite des Optionsmenüs weiter, statt des ersten (16.11.2016, 16:21)//1.42b:Das dritte Optionsmenü wurde abgeschlossen. Es enthält die Schaltflächen "SET TIME" und "SET DATE" (16.11.2016, 16:37)//1.43b:Es wurde ein Fehler behoben, bei dem die Clear-Schaltfläche bei der Eingabe des Unscharf-Passes den "Autoinput" nicht wirklich zurücksetzte. array (17.11.2016, 00:05)//1.44b:Die Schaltfläche "SET AUTO-ARM PASS" führt den Benutzer jetzt zum zweiten Optionsmenü, wenn das Passwort geändert wird, anstatt zum ersten (18 /11/2016, 10:02) //Die Änderungen werden bis zur finalen Version 1.00 protokolliert. Nach 1.00 werden die Änderungen in der Datei SERENA_changelog.txt protokolliert.//1.00:Gestaltung der vollständigen Unscharffunktion. Die Funktion erfordert das 6-stellige Passwort und führt zum Hauptmenü des Alarmprogramms. Bei jedem Tastenklick ertönt ein Summer (01.08.2017, 20:53)//////////KÜNFTIGE VERSIONEN//////////// *IDEEN FÜR NEUE VERSIONEN WIRD HIER EINGESTELLT*/////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// ///////////#include #include UTFT myGLCD(ITDB32WC, 38, 39, 40, 41);URTouch myTouch(6, 5, 4, 3, 2);extern uint8_t SmallFont[];extern uint8_t BigFont[];extern uint8_t SevenSegNumFont[];int x;int y;int armpass[4] ={1, 2, 3, 4};int autopass[5] ={ 1, 2, 3, 4, 5};int manualpass[6] ={1, 1, 1, 1, 1, 1};int timeinput[4];int arminput[4];int autoinput[5];int manualinput[6];int autolength =0;int manuallength =0;int Buzzerpin =8;int systarm =9;int serenapin =10;int buttonpin =13;int autoarmtime =40;int autoarmtimemem =autoarmtime;int month =1; int day =1;int year =2016; // BENUTZERDEFINIERTE FUNKTIONEN Void alarmtitle () { myGLCD.setFont (SmallFont); myGLCD.setBackColor(0, 0, 0); myGLCD.clrScr(); myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(255, 0, 0); myGLCD.drawLine(0, 14, 319, 14); myGLCD.print("SERENA ALARM SYSTEM v.1.01", CENTER, 1);}void title()//SEPARATED WEIL DER NAME MANCHMAL NICHT GESUCHT WIRD{alarmtitle(); myGLCD.print("VON MICHAEL MARINIS", CENTER, 30);}void drawbutton1(){ myGLCD.setColor(192, 192, 192); myGLCD.fillRoundRect(20, 60, 300, 100);}void drawbutton2(){ myGLCD.setColor(192, 192, 192); myGLCD.fillRoundRect(20, 120, 300, 160);}void drawdisarm(){ myGLCD.setColor(192, 192, 192); myGLCD.fillRoundRect(20, 180, 300, 220); myGLCD.setColor(0, 0, 0); myGLCD.setBackColor(192, 192, 192); myGLCD.setFont(BigFont); myGLCD.print("DISARM", CENTER, 193);}Void Nachteil () { myGLCD.setColor(192, 192, 192); myGLCD.fillRoundRect(20, 180, 150, 210); myGLCD.setBackColor(192, 192, 192); myGLCD.setColor(0, 0, 0); myGLCD.setFont(SmallFont); myGLCD.print("BACK", 70, 190);}void drawo(){ myGLCD.setColor(192, 192, 192); myGLCD.fillRoundRect(20, 180, 150, 210); myGLCD.setBackColor(192, 192, 192); myGLCD.setColor(0, 0, 0); myGLCD.setFont(SmallFont); myGLCD.print("NEIN", 80, 190);}void drawyes(){ myGLCD.setColor(192, 192, 192); myGLCD.fillRoundRect(170, 180, 300, 210); myGLCD.setBackColor(192, 192, 192); myGLCD.setColor(0, 0, 0); myGLCD.setFont(SmallFont); myGLCD.print("YES", 225, 190);}void drawext(){ myGLCD.setColor(192, 192, 192); myGLCD.fillRoundRect(170, 180, 300, 210); myGLCD.setBackColor(192, 192, 192); myGLCD.setColor(0, 0, 0); myGLCD.setFont(SmallFont); myGLCD.print("NEXT", 220, 190);}void drawbuttons(){ myGLCD.clrScr(); int z; myGLCD.setFont(SmallFont); für (z =0; z <3; z++) { myGLCD.setColor (255, 0, 0); myGLCD.fillRoundRect(20 + (z * 60), 15, 60 + (z * 60), 55); myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(255, 0, 0); myGLCD.printNumI(z + 1, 37 + (z * 60), 30); } für (z =0; z <3; z++) { myGLCD.setColor (255, 0, 0); myGLCD.fillRoundRect(20 + (z * 60), 70, 60 + (z * 60), 110); myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(255, 0, 0); myGLCD.printNumI(z + 4, 37 + (z * 60), 85); } für (z =0; z <3; z++) { myGLCD.setColor (255, 0, 0); myGLCD.fillRoundRect(20 + (z * 60), 125, 60 + (z * 60), 165); myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(255, 0, 0); myGLCD.printNumI(z + 7, 37 + (z * 60), 140); } für (z =0; z <3; z++) { myGLCD.setColor (255, 0, 0); myGLCD.fillRoundRect(190, 15 + (z * 55), 290, 55 + (z * 55)); } myGLCD.setColor(255, 0, 0); myGLCD.fillRoundRect(20, 175, 80, 205); myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(255, 0, 0); myGLCD.printNumI(0, 48, 185); myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(255, 0, 0); myGLCD.print("LÖSCHEN", 221, 30); myGLCD.print("OK", 232, 85); myGLCD.print("BACK", 225, 140);}void optionsmenuend(){ myGLCD.clrScr(); myGLCD.setFont(SmallFont); myGLCD.setColor(255, 255, 255); myGLCD.drawLine(0, 14, 319, 14); myGLCD.setBackColor(255, 0, 0); Alarmtitel(); myGLCD.setFont(SmallFont); myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.print("OPTIONSMENÜ", MITTE, 20); drawbutton1(); drawbutton2(); Nachteil(); myGLCD.setFont(SmallFont); myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(255, 0, 0);}void optionsmenu(){ myGLCD.clrScr(); myGLCD.setFont(SmallFont); myGLCD.setColor(255, 255, 255); myGLCD.drawLine(0, 14, 319, 14); myGLCD.setBackColor(255, 0, 0); Alarmtitel(); myGLCD.setFont(SmallFont); myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.print("OPTIONSMENÜ", MITTE, 20); drawbutton1(); drawbutton2(); Nachteil(); gezeichnetext(); myGLCD.setFont(SmallFont); myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(255, 0, 0);}void drawoptions(){ myGLCD.setFont(BigFont); myGLCD.setColor(255, 0, 0); myGLCD.fillRoundRect(20, 70, 300, 120); myGLCD.setBackColor(255, 0, 0); myGLCD.setColor(255, 255, 255); myGLCD.print("OPTIONS", CENTER, 90);}void drawarm(){ myGLCD.setFont(BigFont); myGLCD.setColor(255, 0, 0); myGLCD.fillRoundRect(20, 140, 300, 190); myGLCD.setBackColor(255, 0, 0); myGLCD.setColor(255, 255, 255); myGLCD.print("ARM", CENTER, 160);}void printmonth(int i){myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.setFont(BigFont); wenn (i ==1) { myGLCD.print ("JANUAR", 95, 100); aufrechtzuerhalten. Wenn (i ==2) { myGLCD.print ("FEBRUAR", 95, 100); } if (i ==3) { myGLCD.print ( "MÄRZ", 95, 100); aufrechtzuerhalten. Wenn (i ==4) { myGLCD.print ("APRIL", 95, 100); aufrechtzuerhalten. Wenn (i ==5) { myGLCD.print ("MAI", 70, 100); } if (i ==6) { myGLCD.print ("JUNI", 95, 100); } if (i ==7) { myGLCD.print ("JULI", 95, 100); } if (i ==8) { myGLCD.print ("AUGUST", 95, 100); } if (i ==9) { myGLCD.print ("SEPTEMBER", 95, 100); aufrechtzuerhalten. Wenn (i ==10) { myGLCD.print ("OKTOBER", 95, 100); aufrechtzuerhalten. Wenn (i ==11) { myGLCD.print ("NOVEMBER", 95, 100); aufrechtzuerhalten. Wenn (i ==12) { myGLCD.print ("DEZEMBER", 95, 100); }}//int updateate(int d, int m, int y)//{// if (y % 4 ==0)//DISEKTO ETOS// {// if ((m>=0) &&(m <=13))// {// if (m ==1 || m ==3 || m ==5 || m ==7 || m ==8 || m ==10 || m ==12)// {// if ((d>=0) &&(d <=32))// {// if (d ==0)// {// d =31;// }// // if (d ==32)// {// d =1;// }// }// }// }// }//DISEKTO ETOS END//}int armupdate(int i, int armlength) { Wenn (Armlänge <4) { Wenn (Armlänge ==0) { Arminput [0] =i; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(arminput[0], 100, 185); //+35 gia kathe noumero meta digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); Rückkehr arminput[0]; aufrechtzuerhalten. Wenn (Armlänge ==1) { Arminput[1] =i; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(arminput[1], 135, 185); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); Rückkehr Armeingang[1]; aufrechtzuerhalten. Wenn (Armlänge ==2) { Arminput [2] =ich; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(arminput[2], 170, 185); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); Rückkehr Armeingang [2]; aufrechtzuerhalten. Wenn (Armlänge ==3) { Arminput [3] =ich; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(arminput[3], 205, 185); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); Rückkehr Armeingang [3]; } }}int autoarmupdate (int i, int timelength) { if (timelength <5) { if (timelength ==1) { timeinput [0] =i; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(timeinput[0], 100, 185); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); Rückgabezeiteingabe[0]; } if (timelength ==2) { timeinput[1] =i; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(Zeiteingabe[1], 135, 185); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); Rückgabezeiteingabe[1]; } if (timelength ==3) { timeinput[2] =i; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(Zeiteingabe[2], 170, 185); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); Rückgabezeiteingabe[2]; } if (timelength ==4) { timeinput[3] =i; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(Zeiteingabe[3], 205, 185); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); Rückgabezeiteingabe[3]; } }}int autoupdate (int i, int autolength) { if (autolength <5) { if (autolength ==0) { autoinput[0] =i; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(autoinput[0], 100, 185); //+35 gia kathe noumero meta digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); autoinput[0] zurückgeben; aufrechtzuerhalten. Wenn (AutoLänge ==1) { Autoinput[1] =i; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(autoinput[1], 135, 185); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); autoinput[1] zurückgeben; } if (autolength ==2) {autoinput[2] =i; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(autoinput[2], 170, 185); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); autoinput[2] zurückgeben; } if (autolength ==3) {autoinput[3] =i; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(autoinput[3], 205, 185); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); autoinput[3] zurückgeben; } if (autolength ==4) {autoinput[4] =i; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(autoinput[4], 240, 185); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); automatische Eingabe zurückgeben[4]; } if (autolength ==5) {autoinput[5] =i; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(autoinput[5], 275, 185); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); automatische Eingabe zurückgeben[5]; } }}int manualupdate (int i, int manuallength) { if (manuallength <6) { if (manuallength ==0) { manualinput [0] =i; //manuelle Länge++; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(manuelle Eingabe[0], 100, 185); //+35 gia kathe noumero meta digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); Rückgabe manuelleingabe[0]; } if (manuallength ==1) {manualinput[1] =i; //manuelle Länge++; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(manuelle Eingabe[1], 135, 185); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); manuelle Eingabe[1] zurückgeben; } if (manuallength ==2) {manualinput[2] =i; //manuelle Länge++; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(manuelle Eingabe[2], 170, 185); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); manuelle Eingabe[2] zurückgeben; } if (manuallength ==3) {manualinput[3] =i; //manuelle Länge++; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(manuelle Eingabe[3], 205, 185); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); manuelle Eingabe[3] zurückgeben; } if (manuallength ==4) { Manualinput[4] =i; //manuelle Länge++; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(manuelle Eingabe[4], 240, 185); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); manuelle Eingabe zurückgeben[4]; } if (manuallength ==5) {manualinput[5] =i; //manuelle Länge++; myGLCD.setColor(255, 0, 0); myGLCD.setBackColor(0, 0, 0); myGLCD.printNumI(manuelle Eingabe[5], 275, 185); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); manuelle Eingabe zurückgeben[5]; } }}void setup () { myGLCD.InitLCD (); myGLCD.clrScr(); myTouch.InitTouch(); myTouch.setPrecision(PREC_EXTREME); pinMode (Summerpin, AUSGANG); pinMode (System, AUSGANG); pinMode (Serenapin, AUSGANG); digitalWrite (Summerpin, HIGH); Verzögerung (1000); digitalWrite (Summerpin, LOW); Titel(); Zeichenoptionen(); drawarm();}void loop(){ while (true) {mainmenu:if (myTouch.dataAvailable()) { myTouch.read(); x =myTouch.getX(); y =myTouch.getY(); //OPTIONS-TASTE if ((x>=20) &&(x <=300) &&(y>=70) &&(y <=120)) {Optionen:optionsmenu(); myGLCD.setBackColor(192, 192, 192); myGLCD.setColor(0, 0, 255); myGLCD.print ("SET MANUAL-ARM PASSWORD", CENTER, 73); myGLCD.print("SET ARM PASSWORD", CENTER, 133); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); while (true) { if (myTouch.dataAvailable()) { myTouch.read(); x =myTouch.getX(); y =myTouch.getY(); // TASTE MANUELLES PASSWORT EINSTELLEN if ((x>=20) &&(x <=300) &&(y>=60) &&(y <=100)) { title(); myGLCD.setBackColor(0, 0, 0); myGLCD.setColor(255, 0, 0); myGLCD.print("6-STELLIGES PASSWORT EINGEBEN", MITTE, 119); Nachteil(); gezeichnetext(); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); while (true) { if (myTouch.dataAvailable()) { myTouch.read(); x =myTouch.getX(); y =myTouch.getY(); if ((x>=20) &&(x <=150) &&(y>=180) &&(y <=210)) { DigitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); Goto-Optionen; } if ((x>=170) &&(x <=300) &&(y>=180) &&(y <=210)) // BUTTON MENU { for (int o =0; o <6; o++) { manuelle Eingabe[o] =0; } passinput:int buf =0; myGLCD.setFont(SmallFont); myGLCD.setColor(255, 255, 255); myGLCD.drawLine(0, 14, 319, 14); myGLCD.setColor(255, 255, 255); Drawbuttons(); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); myGLCD.setFont(SevenSegNumFont); myGLCD.setBackColor(0, 0, 0); // akolouthei zu while (true) &drawbuttons (TICK!) while (true) { if (myTouch.dataAvailable()) { myTouch.read(); x =myTouch.getX(); y =myTouch.getY(); //TASTEN 1-3 if ((y>=15) &&(y <=55)) { if ((x>=20) &&(x <=60)) //1 { Manualupdate (1, buf); buf++; Verzögerung (85); } if ((x>=80) &&(x <=120)) //2 { Manualupdate(2, buf); buf++; Verzögerung (85); } if ((x>=140) &&(x <=180)) //3 {manualupdate(3, buf); buf++; Verzögerung (85); } } // BUTTONS 1-3 END if ((y>=70) &&(y <=110)) //TASTEN 4-6 { if ((x>=20) &&(x <=60)) // 4 { manuelles Update (4, buf); buf++; Verzögerung (85); } if ((x>=80) &&(x <=120)) //5 { Manualupdate(5, buf); buf++; Verzögerung (85); } if ((x>=140) &&(x <=180)) //6 {manualupdate(6, buf); buf++; Verzögerung (85); } } // BUTTONS 4-6 END if ((y>=125) &&(y <=165)) //TASTEN 7-9 { if ((x>=20) &&(x <=60)) // 7 { manuelles Update (7, buf); buf++; Verzögerung (85); } if ((x>=80) &&(x <=120)) //8 { Manualupdate(8, buf); buf++; Verzögerung (85); } if ((x>=140) &&(x <=180)) //9 { Manualupdate (9, buf); buf++; Verzögerung (85); } } // BUTTONS 7-9 END if ((x>=20) &&(x <=80) &&(y>=175) &&(y <=205)) //0 { manualupdate(0, buf); buf++; Verzögerung (85); } if ((x>=190) &&(x <=290) &&(y>=70) &&(y <=110)) //OK BUTTON { bool flag =true; for (int t =0; t <6; t++) { if (manualinput[t] !=manualpass[t]) { Flag =false; } } if (flag ==true) // swstos kwdikos { for (int i =0; i <6; i++) { manualinput[i] =0; } myGLCD.clrScr(); myGLCD.setFont(BigFont); myGLCD.print("PASS OK!" , CENTER , 100); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); Verzögerung (2000); Titel(); myGLCD.setBackColor(0, 0, 0); myGLCD.setColor(255, 0, 0); myGLCD.print("NEUES PASSWORT EINGEBEN", CENTER, 119); Nachteil(); gezeichnetext(); while (true) { if (myTouch.dataAvailable()) { myTouch.read(); x =myTouch.getX(); y =myTouch.getY(); int buf =0; //EISAGWGH NEOU KWDIKOU if ((x>=170) &&(x <=300) &&(y>=180) &&(y <=210)) {newmanpassinput:myGLCD.setFont(SmallFont); myGLCD.setColor(255, 255, 255); myGLCD.drawLine(0, 14, 319, 14); myGLCD.setColor(255, 255, 255); Drawbuttons(); digitalWrite (Summerpin, HIGH); Verzögerung (50); digitalWrite (Summerpin, LOW); myGLCD.setFont(SevenSegNumFont); myGLCD.setBackColor(0, 0, 0); while (true) { if (myTouch.dataAvailable()) { myTouch.read(); x =myTouch.getX(); y =myTouch.getY(); //TASTEN 1-3 if ((y>=15) &&(y <=55)) { if ((x>=20) &&(x <=60)) //1 { Manualupdate (1, buf); buf++; Verzögerung (85); } if ((x>=80) &&(x <=120)) //2 { Manualupdate(2, buf); buf++; Verzögerung (85); } if ((x>=140) &&(x <=180)) //3 {manualupdate(3, buf); buf++; Verzögerung (85); } } // BUTTONS 1-3 END if ((y>=70) &&(y <=110)) //TASTEN 4-6 { if ((x>=20) &&(x <=60)) // 4 { manuelles Update (4, buf); buf++; Verzögerung (85); } if ((x>=80) &&(x <=120)) //5 { Manualupdate(5, buf); buf++; Verzögerung (85); } if ((x>=140) &&(x <=180)) //6 {manualupdate(6, buf); buf++; Verzögerung (85); } } // BUTTONS 4-6 END if ((y>=125) &&(y <=165)) //TASTEN 7-9 { if ((x>=20) &&(x <=60)) // 7 { manuelles Update (7, buf); buf++; Verzögerung (85); } if ((x>=80) &&(x <=120)) //8 { Manualupdate(8, buf); buf++; Verzögerung (85); } if ((x>=140) &&(x <=180)) //9 { Manualupdate (9, buf); buf++; Verzögerung (85); }} // BUTTONS 7-9 END if ((x>=20) &&(x <=80) &&(y>=175) &&(y <=205)) //0 { manualupdate(0, buf); buf++; Verzögerung (85); } //EDW THA MPEI ZU OK. THA RWTAW AN O KWDIKOS EINAI ENTAKSEI (2 KOUMPIA, JA &NEIN). EIN "JA", TOTE THA EPISTREFEI STO ARXIKO MENOU, EIN "NEIN" THA EPISTREFEI STHN EISAGWGH KWDIKOY if ((x>=190) &&(x <=290) &&(y>=70) &&(y <=110) ) // NEUES PASS OK TASTE { buf =0; myGLCD.clrScr(); title();...Diese Datei wurde gekürzt, bitte laden Sie sie herunter, um ihren vollen Inhalt zu sehen.

Herstellungsprozess

  1. Ausfallsicheres Design
  2. Alarmsystem zur Bewegungserkennung
  3. DTMF-Decoder, der nur Arduino verwendet
  4. Automatisches Pflanzenbewässerungssystem mit Arduino
  5. Alarmsystemsicherheit auf dem Prüfstand
  6. Keller-/Kriechraum-Lüftungssystem
  7. Python3- und Arduino-Kommunikation
  8. Anwesenheitssystem basierend auf Arduino und Google Spreadsheet
  9. Arduino-basiertes Kollisionserkennungs-Warnsystem
  10. Einfacher Wecker mit DS1302 RTC