Cov txheej txheem:

Dataopsamling Af Tyverialarm IIOT 4.0: 8 Cov Kauj Ruam
Dataopsamling Af Tyverialarm IIOT 4.0: 8 Cov Kauj Ruam

Video: Dataopsamling Af Tyverialarm IIOT 4.0: 8 Cov Kauj Ruam

Video: Dataopsamling Af Tyverialarm IIOT 4.0: 8 Cov Kauj Ruam
Video: Лучшие страшные видео 2023 года [Mega Scary Comp. V3] 2024, Hlis ntuj nqeg
Anonim
Dataopsamling Af Tyverialarm IIOT 4.0
Dataopsamling Af Tyverialarm IIOT 4.0

Lub koob yees duab thiab lub koob yees duab IIOT yog nyob rau hauv videoreudvikling los ntawm

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 ntawm lave thiab brugerinterface. Cov ntaub ntawv bliver lagt hauv qab kuv cov ntaub ntawv, i en ລວມ med 3 kolonner, der fortæller tilstanden, hvor lang tid Arduinoen har kørt programmet og en tidsangivelse (timestamp) fra computeren. Tsis muaj kev ceeb toom ntxiv, skal der kunne xa cov av qeeg mus rau Arduinoen om ntawm qhov chaw skal tilbage til starttilstand.

Kauj ruam 1: Materialer

Arduino projekt tyverialarm

Arduino kov sensor

Arduino RGB teeb

Arduino trykknap

Ledning mellem Arduino og PC

Cov qhob cij

NODE-liab software

WAMP SQL neeg rau zaub mov

Kauj ruam 2: Software

Til kommunikation mellem database og Arduino, har jeg brugt programmet NODE-liab. Kuv paub qhov program kan man ved hjælp af blok programmering kommunikere med Arduinoen. Derfra kan jeg kommunikere med databasen.

Til lagring af cov ntaub ntawv, har jeg brugt WAMP SQL Server, som er en database, med thiab grafisk designinterface og thiab mySQL interface mus rau NODE-liab.

Tidligere txoj haujlwm

Kuv tau hais txog qhov teeb meem no nrog jeg lavet en tyverialarm på Arduinoen. Denne tyverialarm har jeg genbrugt. Tsis txhob hnov qab lub suab nrov ntawm lub suab ceeb toom lossis lub suab nrov kom txog thaum txhua yam tshwm sim. Hvis den er slået til og en touch sensor bliver aktiveret, vil alarmen gå i laib. Tsis pub dhau lub caij nyoog ntawm _ ved at trykke på en knap, som sætter den tilbage til starttilstanden.

Kauj ruam 3: Arduino

Arduino sender besked om hvor lang tid den har kørt og dens

tswb tswb 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 ntawm sende besked om, ntawm den er aktiv. Samtidig modtager den besked fra NODE-red om at alarmen er aktiv og skal resettes tilbage til normaltilstanden.

Kauj ruam 4: Database

Database
Database

Hver gang der sker en ringndring af tilstanden for alarmen

bliver følgende cov ntaub ntawv lagret thiab cov ntaub ntawv: Tsis pub dhau lub sij hawm ntev, hvor lang tid Arduinoen har kørt, samt thiab timestamp, der fortæller nuværende tidspunkt.

Der bliver kommunikeret nrog databasen nrog SQL-sproget mySQL. Jeg har lavet nyob hauv kab lus, som fortæller lub tswb nrov, hvor mange ms Arduinoen har kørt og thiab timestamp der fortæller tidspunktet det er blevet registreret. Rau ntawm skrive disse cov ntaub ntawv ind hauv databasen, har jeg i NODE-liab lavet en funktion, der inserter til queuelen. Rau ntawm undgå gentagelser, har jeg lavet en regel, ntawm 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 og sammenligner med alarmtilstanden fra Arduinoen.

Jeg bruger en inject til at finde den seneste aktivering af alarmen hvor den fortæller hvornår det skete. Nws tus bruger jeg igen xaiv til ntawm finde den seneste røde tswb.

Kauj Ruam 5: Node-red

Node-liab
Node-liab
Node-liab
Node-liab

Kuv NODE-liab styrer txiv neej kommunikation og databaseopdateringer.

Programmeringen foregår som javascripts.

Herunder ses mit NODE-red program, som består af 11 komponenter.

Komponenten arduino Kuv tabtom txwv tsis pub mus txog Arduinoen. Hloov kho cov ntaub ntawv ntawm Arduinoen. Disse data er en alarmtilstand og antal ms Arduinoen har kørt adskilt af et komma og de bliver videresendt til både phua og tilsql.

Komponenten faib cov ntaub ntawv modtager fra arduino Kuv og opdeler dem efter komma, rau derefter ntawm sende dem videre til navn og pib dua.

Komponenten navn er thiab dashboard xav, som viser aktuel alarmtilstand.

Komponenten rov pib dua en en javascript funktion, som undersøger om der er kommet rød tswb. Kuv yog tus xa rov pib dua cov vis dis aus mus rau 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 og næste som tswb. Kuv denne funktion laves muligheden rau ntawm der kun bliver tso nye værdier når alarmtilstanden ændres. SQL fra denne funktion læser og opdaterer databasen ntawm tyven forbindelsen.

Komponenten tyven er en forbindelse til databasen, som tilsql udnytter til xaiv og insert.

Komponenten txhaj er en periodisk trigger med en periode på 15 sekunder, som læser tidspunktet rau sidste røde tswb ntawm databasen. Dette tidspunkt xa cov vis dis aus mus rau lub tswb ceeb toom.

Komponenten nodered er en forbindelse til databasen, som txhaj udnytter til xaiv.

Komponenten msg.payload bruges til ntawm debugge komponenterne og til ntawm tjekke om jeg får det rigtige resultat.

Komponenten rød tswb er thiab xav tias på dashboardet, som modtager tidspunktet fra inject.

Dashboard er thiab skærmbillede, hvor alarmtilstanden, som er defineret i komponenten navn, står på venstre sab og tidspunktet rau sidste røde alarm, som er defineret ved komponenten rød alarm, med det pågældende timestamp står på højre

Kauj Ruam 6: Xeem

Jeg har testet programmet ved at køre simulationer med

Arduinoen og kigge nyob rau hauv daim ntawv, om de rigtige data bliver logget. Desuden har jeg holdt øje med dashboardet, og konstateret at det viser den aktuelle alarmtilstand og tidspunktet for sidste røde tswb.

Teeb meem har været ntawm lub tsev sab sidste røde tswb bliver printet som kwv, hvor jeg ville foretrække at det var en tekst. Nyob rau hauv qhov tseeb, nyob rau hauv lub skal konverteres fra kwv mus rau hlua. Ua tsaug os phooj ywg pab txhawb nqa os.

Tsis txaus ntseeg ntawm resette Arduinoen på er ved ntawm deploy'e kuv NODE-liab. Der er ikke kodet en metode rau ntawm rydde hauv daim ntawv thiab cov ntaub ntawv thiab tom kawg ntawm gøre det manuelt.

Kauj ruam 7: Videreudvikling

Yuav ua li cas koj tuaj yeem khaws cia kom ruaj ntseg rau hauv cov ntaub ntawv thiab nyob hauv

daim ntawv qhia. Tus txiv neej tuaj yeem pom vixaj tus lej lossis lwm yam udtræk fra den på f.eks. Dashboard.

På dashboardet kan der være et skema hla tab laj, som viser de seneste inserts, og en lampe kuv stedet rau tekst rau tilstanden af alarmen.

Der kunne implementeres khawm rau rov pib dua lub tswb ceeb toom. En anden knap til ntawm tømme hauv daim ntawv rau cov ntaub ntawv. Der kunne være muligheder rau ntawm tjekke alarmen rau lis xaus eller helligdage. Hvor den skal kunne resette sig selv.

Kauj Ruam 8: Txuas ntxiv

Jeg har lavet en datalagring på en database der lagrer alarmtilstanden

kuv nyob hauv, hvorfra kan man tage seneste alarmtilstand. Der er lavet en grafisk brugergrænseflade, som viser nuværende tilstand samt tidspunktet rau seneste alarmtilstand. Disse ting er lavet ved hjælp af programmet NODE-red rau grafik og programmering mens WAMP SQL Server er blevet brugt til ntawm lave databasen.

Jeg har med dette projekt lært at lave en database, samt kommunikation mellem forskellige programmeringssystemer. Jeg har brugt NODE-liab mus rau kommunikere cov ntaub ntawv fra thiab Arduino projekt kom internettet og en kev sib raug zoo database. Databasen er anvendt til dataopsamling og som datagrundlag rau brugergrænsefladen. Jeg har brugt NODE-liab til ntawm lave et funktionelt layout af projektet og til tsim los ntawm brugergrænsefladen.

Pom zoo: