Inhaltsverzeichnis:
- Schritt 1: Materialer
- Schritt 2: Software
- Schritt 3: Arduino
- Schritt 4: Datenbank
- Schritt 5: Knoten-Rot
- Schritt 6: Testen
- Schritt 7: Videreudvikling
- Schritt 8: Konklusion
Video: Dataopsamling Af Tyverialarm IIOT 4.0 - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Dette projekt i faget IIOT er en videreudvikling af en
tyverialarm, som jeg har lavet på 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 long tid Arduinoen har kørt programt og en tidsangivelse (timestamp) fra computeren. Når alarmen tænder, skal der kunne sendet besked tilbage til Arduinoen om at the skal tilbage til starttilstand.
Schritt 1: Materialer
Arduino-Projekt tyverialarm
Arduino Berührungssensor
Arduino RGB-Lampe
Arduino trykknap
Ledning mellem Arduino und PC
Steckbrett
NODE-rote Software
WAMP-SQL-Server
Schritt 2: Software
Für die Kommunikation mit Datenbanken und Arduino, die mit NODE-red programmiert wurden. Ich kann das Programm kan man ved hjælp af blok kommunikere med Arduinoen programmieren. Derfra kan jeg kommunikere med databasen.
Für die Speicherung von Daten, unterstützt WAMP SQL Server, einige Datenbanken, med und grafische Designschnittstellen und mySQL-Schnittstellen für NODE-red.
Tidligère-Projekt
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 activeret, 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.
Schritt 3: Arduino
Arduino-Sender besked om hvor lang tid den har kørt og dens
Alarmtilstand. Så længe den ikke er activeret vil den sende besked, hver gang der skiftes tilstand. Hvis den bliver aktivret, vil den blive ved med at sende besked om, at den er aktiv. Samtidig modtager den besked fra NODE-red om at alarmen er active og skal resettes tilbage til normaltilstanden.
Schritt 4: Datenbank
Hver gang der sker en ndring af tilstanden for alarmen
bliver følgende data lagret i databasen: Den nuværende tilstand, hvor lang tid Arduinoen har kørt, samt et timestamp, der fortæller nuværende tidspunkt.
Der bliver kommunikeret med databasen med SQL-sproget mySQL. Jeg har lavet en tabel, som fortæller alarmtilstanden, hvor mange ms Arduinoen har kørt og et timestamp der fortæller tidspointt det er blevet registreret. Für at skrive disse data ind i databasen, har jeg i NODE-red lavet en funktion, der inserter til tabellen. Für at undgå gentagelser, har jeg lavet en regel, at 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 linje efter dato and sammenligner med alarmtilstanden fra Arduinoen.
Jeg bruger en inject til at find den seneste activering af alarmen hvor den fortæller hvornår det skete. Ihr bruger jeg igen select til at find den seneste røde alarm.
Schritt 5: Knoten-Rot
I NODE-red styrer man kommunikation und databaseopdateringer.
Programmieren für einige Javascripts.
Herunder ses mit NODE-red program, som består af 11 componentr.
Komponenten arduino I er en forbindelse til Arduinoen. Die Modtager-Daten für Arduinoen. Disse data er en alarmtilstand and antal ms Arduinoen har kørt adskilt af et komma and de bliver videresendt to både split and 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 Filz, som viser aktuel alarmtilstand.
Komponenten reset er en javascript funktion, som undersøger om der er kommet rød alarm. Ich så fald sendes reset videre til 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 forste bliver lagt ind som tid og næste som alarm. I dennne funktion laves muligheden für at der kun bliver eingefügt nye værdier når alarmtilstanden ændres. SQL bietet Funktionen zum Lser und Opdaterer-Datenbanken über tyven forbindelsen.
Komponenten tyven er en forbindelse til databasen, som tilsql udnytter til select og insert.
Komponenten inject er und periodisk trigger med en periode på 15 sekunder, som læser tidspointt for sidste røde alarm fra databasen. Dette tidspunkt sendet videre til rød alarm.
Komponenten werden für Datenbanken gebunden, som inject udnytter bis select.
Komponenten msg.payload bruges til at debugge komponenterne og til at tjekke om jeg får det rigtige resultat.
Komponenten rund um Alarm und Filz auf dem Dashboard, som modtager tidspointt fra inject.
Dashboard er et skærmbillede, hvor alarmtilstanden, Somer defineret i component navn, står på venstre side og tidspointt for sidste røde alarm, Somer defineret ved ved component rød alarm, med det pågældende timestamp øjrer.
Schritt 6: Testen
Jeg har testet programt ved bei køre simulationer med
Arduinoen und kigge und tabellen, om de rigtige data bliver logget. Desuden har jeg holdt øje med Dashboardet, og konstateret bei det viser den aktuellen alarmtilstand und tidspointt für sidste røde alarm.
Problemet har været bei den sidste røde alarm bliver printet som object, hvor jeg ville foretrække bei det var en tekst. Det betyder, at det skal konverteres fra object to string. Dette har jeg ikke fundet løsningen på.
Den eneste måde at resette Arduinoen på er ved at deploy’e i NODE-red. Der er ikke kodet en metode for at rydde tabellen i databasen andet end at gøre det manuelt.
Schritt 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. Armaturenbrett.
På Dashboardet kan der være et skema over tabellen, som viser de seneste inserts, og en lampe i stedet for tekst for tilstanden af alarmen.
Der kunne implementeres knap für Reset nach rød Alarm. En anden knap til at tomme tabellen for data. Der kunne være muligheder for at tjekke alarmen for week-end eller helligdage. Hvor den skal kunne resette sig selv.
Schritt 8: Konklusion
Jeg har lavet en datalagring på en database der lagrer alarmtilstanden
i en tabel, hvorfra kan man tage seneste alarmtilstand. Der er lavet en grafisk brugergrænseflade, som viser nuværende tilstand samt tidspointt for seneste alarmtilstand. Disse ting er lavet ved hjælp af programt NODE-red for grafik og programming 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 programringssystemer. Jeg har brugt NODE-red zu Kommunikationsdaten für Arduino-Projekte für das Internet und eine Beziehungsdatenbank. Databasen er anvendt til dataopsamling og som datagrundlag for brugergrænsefladen. Jeg har brugt NODE-red til at lave et funktionelt layout af projektet og til design af brugergrænsefladen.
Empfohlen:
UCL Embedded "tyverialarm": 7 Schritte
UCL Embedded "tyverialarm": ihr fortller jeg om min tyverialarm