Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino Alarmsysteem:SERENA

Componenten en benodigdheden

Arduino Mega 2560
× 1
3.2" TFT LCD-touchscreen
× 1

Apps en online services

Arduino IDE

Over dit project

Ik heb al veel alarmsystemen gezien, bekeken, gezien hoe ze werken en ik besloot dat ik er zelf een wilde maken. Ik bedoel, waarom niet? Waarom niet iets nemen en het nog beter maken? Ik bedoel, ik ben tenslotte een computeringenieur (een bachelor, maar dat verandert snel).

En zo kwam dit project tot leven.

Ik heb veel systemen bekeken en wat ze eigenlijk kunnen bieden en ik dacht dat het een goed idee was om al deze functies (en sommige van mijn eigen) in een enkel Arduino-bord te plaatsen dat zal dienen als het bedieningspaneel van het alarm.

Niets lastigs hier, ik heb gewoon het bord zelf gekocht samen met een 3,2-inch touchscreen. Om het scherm te laten werken, had ik natuurlijk wat bibliotheken nodig. Dus een grote dank aan Henning Carlsen voor alle bibliotheken! Link naar zijn website in de aftiteling sectie.

Het programma

Nu kostte het me een tijdje om te voltooien. Laat je niet verwarren door de code, ik geef altijd commentaar als dat nodig is!

De belangrijkste functies van het alarm

Ik besloot om drie verschillende wachtwoorden op te nemen. Een 4-cijferige, een 5-cijferige en een 6-cijferige. Ik weet dat dit veel zijn, maar in een toekomstige update zal ik de gebruiker de mogelijkheid geven om de 4-cijferige code uit te schakelen.

  • De 4-cijferige pas wordt gebruikt om het alarm in te schakelen.
  • De 5-cijferige pas wordt gebruikt om het alarm gedeeltelijk uit te schakelen.
  • De 6-cijferige pas wordt gebruikt om het alarm volledig uit te schakelen.

Het alarm kan zichzelf ook automatisch inschakelen. Nadat u de 5-cijferige code hebt ingevoerd, begint het programma af te tellen (standaard 40 seconden). Nadat dit aftellen voorbij is, wordt het alarm automatisch ingeschakeld. Dit kan erg handig zijn als u meestal vergeet het systeem in te schakelen.

Optiemenu

In het optiemenu kunt u alle drie de wachtwoorden wijzigen, evenals de tijd voor automatisch inschakelen.

Toekomstige updates

Toekomstige updates omvatten datum-/tijdinstellingen, SD-kaartondersteuning (voor het geval er een stroomstoring is en we geen gegevens willen verliezen), de optie om automatisch inschakelen uit te schakelen, de optie om de 4-cijferige pas uit te schakelen en nog veel meer .

Showcasevideo

Code

  • SERENA v.1.01
SERENA v.1.01Arduino
Upload de code gewoon naar uw Arduino-bord.
Sommige opmerkingen zijn in het Grieks, dit zal binnenkort veranderen.
//////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////SERENA Alarmsysteem//Auteur:Michael Marinis//Copyright (C)2016 Michael Marinis. Alle rechten voorbehouden//Website:http://www.youtube.com/SauROnmiKE////Dit is het SERENA Alarmsysteem, een alarmsysteem met twee functies dat de gebruiker de mogelijkheid geeft om het alarm automatisch in te schakelen, of handmatig inschakelen wanneer de gebruiker dat wil.////Dit programma vereist de UTFT &URTouch-bibliotheken van Henning Karlsen en een compatibel LCD//-scherm met zijn schild.////////////// VERSIES////////////0.10a:Eerste build, basisfuncties//0.20a:Kleine verbeteringen//0.30a:Pass Input en Bevestiging voor een nieuw Manual-Arm Password is voltooid (12/11 /2016)//0.40a:Pass Input en Bevestiging voor een nieuw Auto-Arm Wachtwoord is gedaan (12/11/2016)//1.00a:Voltooid Inschakelen Wachtwoord Input &Check (12/11/2016, 19:16) //1.10a:Menu voltooid wanneer het systeem is ingeschakeld (zonder een signaal naar een relais of iets anders te sturen). De tijd en datum worden later toegevoegd. De knop Uitschakelen is alleen toegevoegd (13/11/2016, 13:04)//1.20a:De knop "UITSCHAKELEN" is geprogrammeerd. Het vraagt ​​om de 5-cijferige wachtwoordinvoer. Er wordt ook een wachtwoordcontrole uitgevoerd, waardoor het alarm wordt uitgeschakeld (zonder een signaal naar een relais of iets anders te sturen) (13/11/2016, 14:15)//1.21a:Probleem opgelost waarbij de gebruiker geen cijfers kon typen na de wachtwoordbevestigingscontrole. Als de gebruiker op "NEE" heeft gedrukt, kan hij/zij geen nieuw wachtwoord typen totdat de knop "WISSEN" is ingedrukt. Dit is nu opgelost (14/11/2016, 13:32)//1.22a:De afteltimer voor het automatisch inschakelen is nu voltooid (14/11/2016, 15:46)//1.30a:Auto-Inschakelen Menu is compleet. Het menu Auto-Arm geeft de resterende seconden weer voordat de arm weer automatisch wordt ingeschakeld. Het volledige uitschakelmenu zal toegankelijk zijn via een drukknop vanwege de beperkingen van de bibliotheek (14/11/2016, 21:42)//1.31a:Veranderde de "buf" variabele van "-1" in "0". Dit loste de bug op, waarbij de eerste druk op een cijfertoets niets zou doen (16/11/2016, 00:45)//1.40b:De knop "SET ARM PASSWORD" toegevoegd waarmee de gebruiker de 4 kan wijzigen -cijferig wachtwoord gebruikt om het alarm in te schakelen (16/11/2016, 14:33)//1.41b:De "BACK"-knoppen van de "SET AUTO-ARM PASS", verwijzen nu naar de tweede pagina van het optiemenu, in plaats van de eerste (16/11/2016, 16:21)//1.42b:Het derde optiemenu voltooid. Het bevat de knoppen "SET TIME" en "SET DATE" (16/11/2016, 16:37)//1.43b:Een bug opgelost waarbij de clear-knop op de ontwapeningspas-invoer de "autoinput" niet echt resette array (17/11/2016, 00:05)//1.44b:De "SET AUTO-ARM PASS"-knop zal de gebruiker nu naar het tweede optiemenu vragen wanneer het wachtwoord wordt gewijzigd, in plaats van het eerste (18 /11/2016, 10:02)//De wijzigingen worden gelogd tot de definitieve versie 1.00. Na 1.00 worden de wijzigingen vastgelegd in het SERENA_changelog.txt-bestand.//1.00:Ontwerp van de volledige uitschakelfunctie. De functie vereist het 6-cijferige wachtwoord en wordt gevraagd naar het hoofdmenu van het alarmprogramma. Er klinkt een zoemer bij elke klik op een knop (8/1/2017, 20:53)//////////TOEKOMSTIGE VERSIES//////////// *IDEEN VOOR NIEUWE VERSIES WORDT HIER GEPLAATST*///////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ///////////#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 maand =1; int dag =1; int jaar =2016;// AANGEPASTE FUNCTIES void alarmtitle(){ myGLCD.setFont(SmallFont); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.clrScr(); mijnGLCD.setColor(255, 255, 255); mijnGLCD.setBackColor(255, 0, 0); mijnGLCD.drawLine(0, 14, 319, 14); myGLCD.print("SERENA ALARM SYSTEM v.1.01", CENTER, 1);}void title()//GESCHEIDEN OMDAT DE NAAM SOMS NIET GEWENST IS{ alarmtitle(); myGLCD.print("BY 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); mijnGLCD.fillRoundRect (20, 180, 300, 220); mijnGLCD.setColor (0, 0, 0); mijnGLCD.setBackColor(192, 192, 192); mijnGLCD.setFont(BigFont); myGLCD.print("DISARM", CENTER, 193);}ongeldig nadeel(){ myGLCD.setColor(192, 192, 192); mijnGLCD.fillRoundRect (20, 180, 150, 210); mijnGLCD.setBackColor(192, 192, 192); mijnGLCD.setColor (0, 0, 0); mijnGLCD.setFont(SmallFont); myGLCD.print("BACK", 70, 190);}void Drawo(){ myGLCD.setColor(192, 192, 192); mijnGLCD.fillRoundRect (20, 180, 150, 210); mijnGLCD.setBackColor(192, 192, 192); mijnGLCD.setColor (0, 0, 0); mijnGLCD.setFont(SmallFont); myGLCD.print("NEE", 80, 190);}void drawyes(){ myGLCD.setColor(192, 192, 192); mijnGLCD.fillRoundRect(170, 180, 300, 210); mijnGLCD.setBackColor(192, 192, 192); mijnGLCD.setColor (0, 0, 0); mijnGLCD.setFont(SmallFont); myGLCD.print("JA", 225, 190);}void drawnext(){ myGLCD.setColor(192, 192, 192); mijnGLCD.fillRoundRect(170, 180, 300, 210); mijnGLCD.setBackColor(192, 192, 192); mijnGLCD.setColor (0, 0, 0); mijnGLCD.setFont(SmallFont); myGLCD.print("NEXT", 220, 190);}void drawbuttons(){ myGLCD.clrScr(); int z; mijnGLCD.setFont(SmallFont); for (z =0; z <3; z++) { myGLCD.setColor(255, 0, 0); myGLCD.fillRoundRect (20 + (z * 60), 15, 60 + (z * 60), 55); mijnGLCD.setColor(255, 255, 255); mijnGLCD.setBackColor(255, 0, 0); mijnGLCD.printNumI(z + 1, 37 + (z * 60), 30); } voor (z =0; z <3; z++) { myGLCD.setColor(255, 0, 0); myGLCD.fillRoundRect (20 + (z * 60), 70, 60 + (z * 60), 110); mijnGLCD.setColor(255, 255, 255); mijnGLCD.setBackColor(255, 0, 0); mijnGLCD.printNumI(z + 4, 37 + (z * 60), 85); } voor (z =0; z <3; z++) { myGLCD.setColor(255, 0, 0); myGLCD.fillRoundRect (20 + (z * 60), 125, 60 + (z * 60), 165); mijnGLCD.setColor(255, 255, 255); mijnGLCD.setBackColor(255, 0, 0); mijnGLCD.printNumI(z + 7, 37 + (z * 60), 140); } voor (z =0; z <3; z++) { myGLCD.setColor(255, 0, 0); myGLCD.fillRoundRect(190, 15 + (z * 55), 290, 55 + (z * 55)); } mijnGLCD.setColor(255, 0, 0); mijnGLCD.fillRoundRect (20, 175, 80, 205); mijnGLCD.setColor(255, 255, 255); mijnGLCD.setBackColor(255, 0, 0); mijnGLCD.printNumI(0, 48, 185); mijnGLCD.setColor(255, 255, 255); mijnGLCD.setBackColor(255, 0, 0); mijnGLCD.print("WISSEN", 221, 30); mijnGLCD.print("OK", 232, 85); myGLCD.print("BACK", 225, 140);}void optionsmenuend(){ myGLCD.clrScr(); mijnGLCD.setFont(SmallFont); mijnGLCD.setColor(255, 255, 255); mijnGLCD.drawLine(0, 14, 319, 14); mijnGLCD.setBackColor(255, 0, 0); alarmtitel(); mijnGLCD.setFont(SmallFont); mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); myGLCD.print("OPTIEMENU", CENTER, 20); tekenknop1(); tekenknop2(); nadeel(); mijnGLCD.setFont(SmallFont); mijnGLCD.setColor(255, 255, 255); myGLCD.setBackColor(255, 0, 0);}void optionsmenu(){ myGLCD.clrScr(); mijnGLCD.setFont(SmallFont); mijnGLCD.setColor(255, 255, 255); mijnGLCD.drawLine(0, 14, 319, 14); mijnGLCD.setBackColor(255, 0, 0); alarmtitel(); mijnGLCD.setFont(SmallFont); mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); myGLCD.print("OPTIEMENU", CENTER, 20); tekenknop1(); tekenknop2(); nadeel(); getekende tekst(); mijnGLCD.setFont(SmallFont); mijnGLCD.setColor(255, 255, 255); myGLCD.setBackColor(255, 0, 0);}void drawoptions(){ myGLCD.setFont(BigFont); mijnGLCD.setColor(255, 0, 0); mijnGLCD.fillRoundRect (20, 70, 300, 120); mijnGLCD.setBackColor(255, 0, 0); mijnGLCD.setColor(255, 255, 255); myGLCD.print("OPTIONS", CENTER, 90);}void drawarm(){ myGLCD.setFont(BigFont); mijnGLCD.setColor(255, 0, 0); mijnGLCD.fillRoundRect (20, 140, 300, 190); mijnGLCD.setBackColor(255, 0, 0); mijnGLCD.setColor(255, 255, 255); myGLCD.print("ARM", CENTER, 160);}void printmonth(int i){ myGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.setFont(BigFont); if (i ==1) { myGLCD.print("JANUARI", 95, 100); } if (i ==2) { myGLCD.print("FEBRUARI", 95, 100); } if (i ==3) { myGLCD.print("MAART", 95, 100); } if (i ==4) { myGLCD.print("APRIL", 95, 100); } if (i ==5) { myGLCD.print("MEI", 70, 100); } if (i ==6) { myGLCD.print("JUNI", 95, 100); } if (i ==7) { myGLCD.print("JULI", 95, 100); } if (i ==8) { myGLCD.print("AUGUSTUS", 95, 100); } if (i ==9) { myGLCD.print("SEPTEMBER", 95, 100); } if (i ==10) { myGLCD.print("OKTOBER", 95, 100); } if (i ==11) { myGLCD.print("NOVEMBER", 95, 100); } if (i ==12) { myGLCD.print("DECEMBER", 95, 100); }}//int bijgewerkte datum(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 armlengte) { if (armlengte <4) { if (armlengte ==0) { arminput [0] =i; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(arminput[0], 100, 185); //+35 gia kathe noumero meta digitalWrite (buzzerpin, HIGH); vertraging (50); digitalWrite (zoemerpin, LAAG); terug armingang [0]; } if (armlengte ==1) { arminput [1] =i; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(arminput[1], 135, 185); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); terug armingang [1]; } if (armlengte ==2) { arminput [2] =i; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(arminput[2], 170, 185); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); terug armingang [2]; } if (armlengte ==3) { arminput [3] =i; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(arminput[3], 205, 185); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); terug armingang [3]; } }}int autoarmupdate(int i, int timelength){ if (timelength <5) { if (timelength ==1) { timeinput[0] =i; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(timeinput[0], 100, 185); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); tijdinvoer terug [0]; } if (timelength ==2) { timeinput [1] =i; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(tijdinvoer [1], 135, 185); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); tijdinvoer terug [1]; } if (timelength ==3) { timeinput [2] =i; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(tijdinvoer [2], 170, 185); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); tijdinvoer terug [2]; } if (timelength ==4) { timeinput [3] =i; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(tijdinvoer [3], 205, 185); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); tijdinvoer terug [3]; } }}int autoupdate(int i, int autolength){ if (autolength <5) { if (autolength ==0) { autoinput[0] =i; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(auto-invoer[0], 100, 185); //+35 gia kathe noumero meta digitalWrite (buzzerpin, HIGH); vertraging (50); digitalWrite (zoemerpin, LAAG); auto-invoer terug [0]; } if (autolength ==1) { autoinput [1] =i; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(auto-invoer[1], 135, 185); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); automatische invoer terug [1]; } if (autolength ==2) { autoinput [2] =i; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(auto-invoer[2], 170, 185); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); automatische invoer terug [2]; } if (autolength ==3) { autoinput[3] =i; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(auto-invoer[3], 205, 185); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); automatische invoer terug [3]; } if (autolength ==4) { autoinput[4] =i; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(auto-invoer[4], 240, 185); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); automatische invoer terug [4]; } if (autolength ==5) { autoinput[5] =i; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(auto-invoer[5], 275, 185); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); automatische invoer terug [5]; } }}int manualupdate(int i, int manuallength){ if (manuallength <6) { if (manuallength ==0) { manualinput[0] =i; //handmatige lengte++; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(handmatige invoer[0], 100, 185); //+35 gia kathe noumero meta digitalWrite (buzzerpin, HIGH); vertraging (50); digitalWrite (zoemerpin, LAAG); handmatige invoer terug [0]; } if (handmatige lengte ==1) { handmatige invoer [1] =i; //handmatige lengte++; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(handmatige invoer[1], 135, 185); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); terug handmatige invoer [1]; } if (handmatige lengte ==2) { handmatige invoer [2] =i; //handmatige lengte++; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(handmatige invoer[2], 170, 185); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); terug handmatige invoer [2]; } if (handmatige lengte ==3) { handmatige invoer [3] =i; //handmatige lengte++; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(handmatige invoer[3], 205, 185); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); terug handmatige invoer [3]; } if (handmatige lengte ==4) { handmatige invoer [4] =i; //handmatige lengte++; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(handmatige invoer[4], 240, 185); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); terug handmatige invoer [4]; } if (handmatige lengte ==5) { handmatige invoer [5] =i; //handmatige lengte++; mijnGLCD.setColor(255, 0, 0); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.printNumI(handmatige invoer[5], 275, 185); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); terug handmatige invoer [5]; } }} ongeldige setup(){ myGLCD.InitLCD(); mijnGLCD.clrScr(); mijnTouch.InitTouch(); myTouch.setPrecision(PREC_EXTREME); pinMode (zoemerpin, UITGANG); pinMode (systeem, UITGANG); pinMode (serenapin, UITGANG); digitalWrite (zoemerpin, HOOG); vertraging (1000); digitalWrite (zoemerpin, LAAG); titel(); tekenopties(); drawarm();}void loop(){ while (true) {hoofdmenu:if (myTouch.dataAvailable()) { myTouch.read(); x =mijnTouch.getX(); y =mijnTouch.getY(); //OPTIEKNOP if ((x>=20) &&(x <=300) &&(y>=70) &&(y <=120)) {options:optionsmenu(); mijnGLCD.setBackColor(192, 192, 192); mijnGLCD.setColor (0, 0, 255); myGLCD.print("PASWOORD IN HANDMATIG INSTELLEN", CENTER, 73); myGLCD.print("STEL ARM PASWOORD IN", CENTER, 133); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); while (true) { if (myTouch.dataAvailable()) { myTouch.read(); x =mijnTouch.getX(); y =mijnTouch.getY(); // STEL HANDMATIGE WACHTWOORDKNOP IN als ((x>=20) &&(x <=300) &&(y>=60) &&(y <=100)) { title (); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.setColor(255, 0, 0); myGLCD.print("VOER 6-CIJFERIG WACHTWOORD IN", CENTER, 119); nadeel(); getekende tekst(); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); while (true) { if (myTouch.dataAvailable()) { myTouch.read(); x =mijnTouch.getX(); y =mijnTouch.getY(); if ((x>=20) &&(x <=150) &&(y>=180) &&(y <=210)) { digitalWrite(buzzerpin, HIGH); vertraging (50); digitalWrite (zoemerpin, LAAG); ga naar opties; } if ((x>=170) &&(x <=300) &&(y>=180) &&(y <=210)) //BUTTON MENU { for (int o =0; o <6; o++) { handmatige invoer[o] =0; }passinput:int buf =0; mijnGLCD.setFont(SmallFont); mijnGLCD.setColor(255, 255, 255); mijnGLCD.drawLine(0, 14, 319, 14); mijnGLCD.setColor(255, 255, 255); tekenknoppen(); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); mijnGLCD.setFont(SevenSegNumFont); mijnGLCD.setBackColor (0, 0, 0); // akolouthei to while (true) &drawbuttons (TICK!) while (true) { if (myTouch.dataAvailable()) { myTouch.read(); x =mijnTouch.getX(); y =mijnTouch.getY(); // KNOPPEN 1-3 if ((y>=15) &&(y <=55)) { if ((x>=20) &&(x <=60)) //1 { manualupdate(1, buf); buf++; vertraging (85); } if ((x>=80) &&(x <=120)) //2 { manualupdate(2, buf); buf++; vertraging (85); } if ((x>=140) &&(x <=180)) //3 { manualupdate(3, buf); buf++; vertraging (85); } }//TOETSEN 1-3 END if ((y>=70) &&(y <=110)) //TOETSEN 4-6 { if ((x>=20) &&(x <=60)) // 4 { handmatige update(4, buf); buf++; vertraging (85); } if ((x>=80) &&(x <=120)) //5 { manualupdate(5, buf); buf++; vertraging (85); } if ((x>=140) &&(x <=180)) //6 { manualupdate(6, buf); buf++; vertraging (85); } }//TOETSEN 4-6 END if ((y>=125) &&(y <=165)) //TOETSEN 7-9 { if ((x>=20) &&(x <=60)) // 7 { handmatige update(7, buf); buf++; vertraging (85); } if ((x>=80) &&(x <=120)) //8 { manualupdate(8, buf); buf++; vertraging (85); } if ((x>=140) &&(x <=180)) //9 { manualupdate(9, buf); buf++; vertraging (85); } }//BUTTONS 7-9 END if ((x>=20) &&(x <=80) &&(y>=175) &&(y <=205)) //0 { manualupdate(0, buf); buf++; vertraging (85); } if ((x>=190) &&(x <=290) &&(y>=70) &&(y <=110)) //OK KNOP { 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; } mijnGLCD.clrScr(); mijnGLCD.setFont(BigFont); myGLCD.print("PASS OK!" , CENTER , 100); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); vertraging (2000); titel(); mijnGLCD.setBackColor (0, 0, 0); mijnGLCD.setColor(255, 0, 0); myGLCD.print("VOER NIEUW PASWOORD IN", CENTER, 119); nadeel(); getekende tekst(); while (true) { if (myTouch.dataAvailable()) { myTouch.read(); x =mijnTouch.getX(); y =mijnTouch.getY(); intbuf =0; //EISAGWGH NEOU KWDIKOU if ((x>=170) &&(x <=300) &&(y>=180) &&(y <=210)) {newmanpassinput:myGLCD.setFont(SmallFont); mijnGLCD.setColor(255, 255, 255); mijnGLCD.drawLine(0, 14, 319, 14); mijnGLCD.setColor(255, 255, 255); tekenknoppen(); digitalWrite (zoemerpin, HOOG); vertraging (50); digitalWrite (zoemerpin, LAAG); mijnGLCD.setFont(SevenSegNumFont); mijnGLCD.setBackColor (0, 0, 0); while (true) { if (myTouch.dataAvailable()) { myTouch.read(); x =mijnTouch.getX(); y =mijnTouch.getY(); // KNOPPEN 1-3 if ((y>=15) &&(y <=55)) { if ((x>=20) &&(x <=60)) //1 { manualupdate(1, buf); buf++; vertraging (85); } if ((x>=80) &&(x <=120)) //2 { manualupdate(2, buf); buf++; vertraging (85); } if ((x>=140) &&(x <=180)) //3 { manualupdate(3, buf); buf++; vertraging (85); } }//TOETSEN 1-3 END if ((y>=70) &&(y <=110)) //TOETSEN 4-6 { if ((x>=20) &&(x <=60)) // 4 { handmatige update(4, buf); buf++; vertraging (85); } if ((x>=80) &&(x <=120)) //5 { manualupdate(5, buf); buf++; vertraging (85); } if ((x>=140) &&(x <=180)) //6 { manualupdate(6, buf); buf++; vertraging (85); } }//TOETSEN 4-6 END if ((y>=125) &&(y <=165)) //TOETSEN 7-9 { if ((x>=20) &&(x <=60)) // 7 { handmatige update(7, buf); buf++; vertraging (85); } if ((x>=80) &&(x <=120)) //8 { manualupdate(8, buf); buf++; vertraging (85); } if ((x>=140) &&(x <=180)) //9 { manualupdate(9, buf); buf++; vertraging (85); } }//BUTTONS 7-9 END if ((x>=20) &&(x <=80) &&(y>=175) &&(y <=205)) //0 { manualupdate(0, buf); buf++; vertraging (85); } // EDW THA MPEI NAAR OK. THA RWTAW AN O KWDIKOS EINAI ENTAKSEI (2 KOUMPIA, JA &NEE). EEN "JA", TOTE THA EPISTREFEI STO ARXIKO MENOU, EEN "NEE" THA EPISTREFEI STHN EISAGWGH KWDIKOY als ((x>=190) &&(x <=290) &&(y>=70) &&(y <=110) )//NEW PASS OK KNOP {buf =0; mijnGLCD.clrScr(); title();...Dit bestand is afgekapt. Download het om de volledige inhoud te zien.

Productieproces

  1. Fail-safe ontwerp
  2. Bewegingsdetectie-alarmsysteem
  3. DTMF-decoder met alleen Arduino
  4. Automatisch plantenwatersysteem met Arduino
  5. Alarmsysteembeveiliging op de proef gesteld
  6. Kelder/kruipruimte ventilatiesysteem
  7. Python3- en Arduino-communicatie
  8. Aanwezigheidssysteem op basis van Arduino en Google Spreadsheet
  9. Arduino-gebaseerd waarschuwingssysteem voor botsingsdetectie
  10. Arduino-gebaseerd beveiligingssysteem
  11. Eenvoudige wekker met DS1302 RTC