Indholdsfortegnelse:
- Trin 1: Materialer
- Trin 2: Software
- Trin 3: Arduino
- Trin 4: Database
- Trin 5: Knude-rød
- Trin 6: Test
- Trin 7: Videreudvikling
- Trin 8: Konklusion
Video: Dataopsamling Af Tyverialarm IIOT 4.0: 8 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
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 data, jeg får fra min tyverialarm, samt at lave og brugerinterface. Data bliver lagt ind i databasen, og en tabel med 3 kolonner, der fortæller tilstanden, hvor lang tid Arduinoen har et kørt program og en tidsangivelse (tidsstempel) fra computeren. Når alarmen tænder, skal der kunne sendes besked tilbage til Arduinoen om at den skal tilbage til starttilstand.
Trin 1: Materialer
Arduino projekt tyverialarm
Arduino touch sensor
Arduino RGB lampe
Arduino tryknap
Ledning mellem Arduino og PC
Brødbræt
NODE-rød software
WAMP SQL Server
Trin 2: Software
Til kommunikation mellem database og Arduino, jeg har brugt programmet NODE-red. Jeg kan bruge dette program til blokprogrammering af kommunikation med Arduinoen. Derfra kan jeg kommunikere med databasen.
Til lagring af data har jeg brugt WAMP SQL Server, som er en database, med grafisk designinterface og et mySQL-interface til NODE-red.
Tidligere 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 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.
Trin 3: Arduino
Arduino sender besked om hvor lang tid den har kørt og dens
alarmtilstand. 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 og skal resettes tilbage til normaltilstanden.
Trin 4: Database
Hver gang der sker en ændring af tilstanden til alarmen
bliver følgende data lagret i databasen: Den nuværende tilstand, hvor lang tid Arduinoen har kørt, samt et tidsstempel, der fortæller nuværende tidspunkt.
Der bliver kommunikeret med databaser med SQL-sproget mySQL. Jeg har lavet en tabel, som fortæller alarmtilstanden, hvor mange ms Arduinoen har kørt og et tidsstempel, der angav, at tiden blev registreret. For at skrive disse data ind i databasen, har jeg i NODE-red lavet en funktion, der kan indsættes til tabellen. For at undgå gentagelser, har jeg lavet en regel, at hvis alarmtilstanden er den samme som den forrige, bliver der ikke tilføjede linjer. Den er lavet ved at jeg vælger den seneste tilføjede linje efter dato og sammenligner med alarmtilstanden fra Arduinoen.
Jeg bruger og injicerer, at den seneste aktivering af alarmen, hvor den fortæller, hvor længe det skete. Her kan jeg igen vælge til at finde den seneste røde alarm.
Trin 5: Knude-rød
I NODE-red styrer man kommunikation og databaseopdateringer.
Programmering foregår som javascripts.
Herunder ses med NODE-rødt program, der består af 11 komponenter.
Komponenter arduino Jeg har en forbindelse til Arduinoen. Den modtager data fra Arduinoen. Disse data er en alarmtilstand og antal ms Arduinoen har kørt adskilt af et komma og bliver videresendt til både split og tilsql.
Komponenter delt modtager data fra arduino I og opdeler dem efter komma, for derefter at sende dem videre til navn og reset.
Komponenter navn er et dashboard filt, som viser aktuel alarmtilstand.
Komponenter reset er en javascript funktion, som undersøger om der er kommet rød alarm. I så fald sender jeg nulstilling videre til arduino Q.
Komponenter arduino Q er en forbindelse til Arduionoen, som resetter den.
Komponenter tilsql er en javascript funktion, som splitter de til beskeder, hvor den første bliver lagt ind som tid og næste som alarm. Denne funktion laves muligheden for at der kun bliver indsat nye værdier når alarmtilstanden ændres. SQL fra denne funktion læser og opdaterer databasen via tyven forbindelser.
Komponenter tyven er en forbindelse til databasen, som tilsql udnytter til select og insert.
Komponenter injicerer en periodisk trigger med en periode på 15 sekunder, som læser tidspunktet for sidste røde alarm fra databasen. Dette tidspunkt sender videre til rød alarm.
Komponenter, der er registreret, er en forbindelse til databasen, som kan bruges til at vælge.
Komponenter msg.payload bruges til at debugge komponenter og til at tjekke om jeg får det rigtige resultat.
Komponenter rød alarm er et felt på dashboardet, som modtager tidspunktet fra injicering.
Dashboard er et skærmbillede, hvor alarmtilstanden, som er defineret i komponentnavn, står på venstre side og tidspunkt for sidste røde alarm, som er defineret ved komponenter rød alarm, med det særlige tidsstempel står på den rigtige side.
Trin 6: Test
Jeg har testet programmet ved at køre simulationer med
Arduinoen og kigge i tabellen, om de rigtige data bliver logget. Desuden har jeg holdt øje med dashboardet, og viste at det viser den aktuelle alarmtilstand og tidspunktet for sidste røde alarm.
Problemet har været at den sidste røde alarm bliver printet som objekt, hvor jeg ville foretrække at det var en tekst. Det betyder, at det skal konverteres fra objekt til streng. 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 til at rydde tabellen i databasen andet end at gøre det manuelt.
Trin 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 nyeste indsatser, og en lampe i stedet for tekst for tilstanden af alarmen.
Der kunne implementeres knap for reset af rød alarm. En anden knap til at tømme tabellen for data. Der kunne være muligheder for at tjekke alarmen til weekend eller helligdage. Hvor den skal kunne resette sig selv.
Trin 8: Konklusion
Jeg har lavet en datalagring på en database der lagrer alarmtilstanden
i en tabel, hvorfra jeg kan tage nyeste alarmtilstand. Der er lavet en grafisk brugergrænseflade, der viser nuværende tilstand og tidspunkt for sidste alarmtilstand. Disse ting er lavet ved hjælp af programmet NODE-red til grafik og programmering af WAMP SQL Server er blevet brugt til lave databaser.
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 og Arduino projekt til internet og relationsdatabase. Databasen er anvendt til dataopsamling og som datagrundlag for brugergrænsefladen. Jeg har brugt NODE-red til at lave og funktionelt layout af projekter og til design af brugergrænsefladen.
Anbefalede:
DIY lommestørrelse tyverialarm!: 3 trin
DIY Pocket Sized Anti-Tyveri Alarm!: ER nogen klemmer dine ting, og du kan ikke finde ud af hvem det er? Ved ikke hvem den er? Så er denne instruktive for dig at fange dem rødhændede! i denne instruktive vil jeg vise dig, hvordan du laver en indbrudsalarm i lommestørrelse
Arduino push -advarsler til dørklokke, tyverialarm, røgalarmer osv.: 8 trin
Arduino push -advarsler til dørklokke, tyverialarm, røgalarmer osv.: IoT -meddelelser fra din dørklokke, tyverialarm, røgalarmer osv. Ved hjælp af en Arduino Uno og et Ethernet -skjold. Fuld detaljer på mit websted herOm Arduino Push Alert Box Bruger en Arduino Uno og Ethernet Shield baseret på Wiznet W5100 -chippen til
Tyverialarm (enkel og uden kodning): 3 trin
Tyverialarm (enkel og uden kodning): Niveau 1 IR -baseret tyverialarm.Dette er det mest grundlæggende og meget lette projekt, alt hvad du behøver, er en flok elektronik og ledninger.Projektet har til formål blot at opdage objekterne i sit område og bamse der går summer og slukker efter et par sekunder
UCL Embedded "tyverialarm": 7 trin
UCL Embedded "tyverialarm": her fortæller jeg om min tyverialarm
EAL-Industri4.0-RFID Dataopsamling Til Database: 10 trin (med billeder)
EAL-Industri4.0-RFID Dataopsamling Til Database: Dette projekt omhandler opsamling af v æ gtdata, registrering af identiteter vha. RFID, lagring af data i en MySQL database vha. node-RED, samt fremvisning og behandling af de opsamlede data i et C# program i form af en Windows Form Application