Inhoudsopgave:
- Stap 1: Materialer
- Stap 2: Software
- Stap 3: Arduino
- Stap 4: Database
- Stap 5: Knooppunt-rood
- Stap 6: Testen
- Stap 7: Videreudvikling
- Stap 8: Konklusion
Video: Dataopsamling Af Tyverialarm IIOT 4.0 - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Dette projekt i faget IIOT er en videreudvikling af en
tyverialarm, som jeg har lavet op en Arduino i et tidligere projekt. Der er i dette projekt blevet fokuseret på lagring af de data, jeg får fra min tyverialarm, samt at lave et brugerinterface. Data bliver lagt ind i database, i en tabel med 3 kolonner, der fortæller tilstanden, hvor lang tid Arduinoen har kørt programmat og en tidsangivelse (timestamp) fra computers. Geen alarmen tnder, skal der kunne sendes besked tilbage til Arduinoen om at den skal tilbage til starttilstand.
Stap 1: Materialer
Arduino project tyverialarm
Arduino aanraaksensor
Arduino RGB-lamp
Arduino probeerknap
Ledning mellem Arduino en PC
Breadboard
NODE-rode software
WAMP SQL-server
Stap 2: Software
Til kommunikation mellem database en Arduino, har jeg brugt programt NODE-red. Ik dette programma kan man ved hjælp door blok programmering kommunikere met Arduinoen. Derfra kan jeg kommunikere med databasen.
Tot achterblijvende gegevens, har jeg brugt WAMP SQL Server, een aantal databases, med en grafisk designinterface en mySQL-interface tot NODE-red.
Tidligere project
I et tidligere projekt har jeg lavet en tyverialarm på Arduinoen. Denne tyverialarm har jeg genbrugt. Den virker ved at alarmen er slået til eller fra. Hvis den er slået til og en touch sensor bliver aktiveret, vil alarmen gå i gang. Den skal så kunne slås fra igen ved at trykke på en knap, som sætter den tilbage til starttilstanden.
Stap 3: Arduino
Arduino-afzender wordt gevraagd om een lange tid den har kørt og dens
alarmstand. Så længe den ikke er aktiveret vil den sende besked, hver gang der skiftes tilstand. Hvis den bliver aktiveret, vil den blive ved med at sende besked om, at den er aktiv. Samtidig modtager den besked fra NODE-red om at alarmen er aktiv en skal resettes tilbage til normaltilstanden.
Stap 4: Database
Hver gang der sker en ændring af tillstanden for alarmen
bliver følgende data lagret in databasen: Den nuværende tilstand, hvor lang tid Arduinoen har kørt, samt et timestamp, der fortæller nuværende tidspunkt.
Der bliver kommunikeret met databasen met SQL-sproget mySQL. Jeg har lavet en tabel, sommige fortæller alarmtilstanden, hvor mange ms Arduinoen har kørt en et timestamp der fortæller tidspunktet det er blevet registreret. For at skrive disse data ind i databasen, har jeg i NODE-red lavet en funktion, der inserter til tabellen. Voor bij undgå gentagelser, har jeg lavet en regel, bij hvis alarmtilstanden er den samme som den forrige, bliver der ikke tilføjet linjer. Den er lavet ved at jeg selecter den seneste tilføjede efter dato en sammenligner me alarmtilstanden fra Arduinoen.
Jeg bruger en inject til at finde den seneste aktivering af alarmen hvor den fortæller hvornår det skete. Haar bruger jeg igen select til at finde den seneste røde alarm.
Stap 5: Knooppunt-rood
I NODE-red styrer man kommunikation en databaseopdateringer.
Programmering voor sommige javascripts.
Herunder ses mit NODE-red programma, een van de beste uit 11 componenten.
Komponenten arduino I er en forbindelse til Arduinoen. Den modtager data van Arduinoen. Disse data er en alarmtilstand en antal ms Arduinoen har kørt adskilt door et komma en de bliver videresendt til både split en tilsql.
Komponenten split modtager data fra arduino I og opdeler dem efter komma, for derefter at sende dem videre til navn og reset.
Komponenten navn er et dashboard felt, so viser aktuel alarmtilstand.
Komponenten reset er en javascript funktion, som undersøger om der er kommet rød alarm. Ik s fald stuurt een reset naar arduino Q.
Komponenten arduino Q er en forbindelse til Arduionoen, som resetter den.
Komponenten tilsql er en javascript funktion, som splitter de to beskeder, hvor den første bliver lagt ind som tid en næste som alarm. I denne funktion laves muligheden for at der kun bliver inserted nye værdier når alarmtilstanden ændres. SQL fra denne funktion is gebaseerd op de databasen via tyven forbindelsen.
Komponenten tyven er en forbindelse til databasen, som tilsql udnytter til select en insert.
Komponenten injecteren en periodisk trigger med en periode på 15 sekunder, som læser tidspunktet for side røde alarm fra databasen. Dette tidspunkt stuurt video tot het alarm.
Komponenten nodered er en forbindelse til databasen, som inject udnytter til select.
Komponenten msg.payload brugge til at debugge komponenterne en til at tjekke om jeg får det rigtige resultat.
Komponenten rød alarm er en vilt op dashboardet, som modtager tidspunktet fra inject.
Dashboard is uitgerust met alarmtilstanden, een aantal gedefinieerde onderdelen van het navigatiesysteem en een bericht aan de zijkant van het alarm, een aantal gedefinieerde onderdelen van het alarm, med det pågældende tijdstempel aan de zijkant.
Stap 6: Testen
Jeg har testet geprogrammeerd bij køre simulationer med
Arduinoen og kigge i tabellen, om de rigtige data bliver logget. Desuden har jeg holdt øje med dashboardet, en konstateret at det viser den aktuelle alarmtilstand en tidspunktet for side røde alarm.
Problemet har været at den sidste røde alarm bliver printet som object, hvor jeg ville foretrække at det var en tekst. Det betyder, at det skal konvertes fra object til string. Dette har jeg ikke fundet løsningen på.
Den eneste måde bij resette Arduinoen på er ved bij deploy'e i NODE-red. Der er ikke kodet en metode for at rydde tabellen i databasen andet end at gøre det manuelt.
Stap 7: Videreudvikling
Der kan være udvikling i forhold til databasen i at kunne
rydde tabellen. Man kan også vise tabellen eller udtræk fra den på f.eks. Dashboard.
På dashboardet kan der være et skema over tabellen, som viser de seneste inserts, en lampe i stedet for text for tilstanden af alarmen.
Der kunne implementeres knap voor reset af rød alarm. En anden knaptil at tømme tabellen voor data. Der kunne være muligheder voor bij tjekke alarmen voor weekend eller helligdage. Hvor den skal kunne resette sig selv.
Stap 8: Konklusion
Jeg har lavet en datalagring på en database der lager alarmtilstanden
i en tabel, hvorfra kan man tage seneste alarmtilstand. Der er lavet en grafisk brugergrænseflade, som viser nuværende tilstand samen met tidspunktet for seneste alarmtilstand. Disse ting er lavet ved hjælp af programmet NODE-rood voor grafik en programmering mens WAMP SQL Server er blevet brugt til at lave databasen.
Jeg har med dette projekt lært at lave en database, samt kommunikation mellem forskellige programmeringssystemer. Jeg har brugt NODE-red til at kommunikere data fra et Arduino projekt til internettet en en relationsdatabase. Databases zijn beschikbaar voor dataopsamling en som datagrundlag voor brugergrænsefladen. Jeg har brugt NODE-rood naar een lave en funktionelt layout van projektet en til design van brugergrænsefladen.
Aanbevolen:
UCL-IIoT-Drivhus: 5 stappen
UCL-IIoT-Drivhus: Het doel van dit project was om een tuinhuis te bouwen met Arduino. Daarom besloten de 3 studenten in de groep om een automatische kas te maken, we besloten om datalogging te maken op de informatie die door de kas wordt gegeven, via Wamp-server, node-re
UCL-IIoT kleurensorteerder: 7 stappen
UCL-IIoT Kleursorteerder: InleidingIn deze instructie zullen we proberen uit te leggen hoe we gaan programmeren en hoe we een kleursorteermachine verzamelen. Het zal worden geprogrammeerd in een Arduino Uno, via Arduino Software. Dit project is een keuzevak op onze studie. De betekenis