Innholdsfortegnelse:
- Trinn 1: Materialer
- Trinn 2: Programvare
- Trinn 3: Arduino
- Trinn 4: Database
- Trinn 5: Node-rød
- Trinn 6: Test
- Trinn 7: Videreudvikling
- Trinn 8: Konklusjon
Video: Dataopsamling Af Tyverialarm IIOT 4.0: 8 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Dette prosjektet i faget IIOT er en videreudvikling af en
tyverialarm, som jeg har laget på en Arduino i et tidligere prosjekt. Der er dette prosjektet blitt fokusert på lagring av data, jeg får fra min tyverialarm, samt at lave og brukerinterface. Data blir lagt til i databasen, og en tabell med 3 kolonner, der forteller tilstanden, hvor lang tid Arduinoen har et program og en tidsangivelse (tidsstempel) fra computeren. Når alarmen tenker, skal der kunne sendes besked tilbake til Arduinoen om at den skal tilbake til starttilstand.
Trinn 1: Materialer
Arduino prosjekt tyverialarm
Arduino berøringssensor
Arduino RGB lampe
Arduino trykknap
Ledning mellom Arduino og PC
Brødbrett
NODE-rød programvare
WAMP SQL Server
Trinn 2: Programvare
Til kommunikasjon mellom database og Arduino, jeg har brukt programmet NODE-red. Jeg kan bruke dette programmet til å programmere kommunikasjon med Arduinoen. Derfra kan jeg kommunikere med databasen.
Til lagring av data har jeg brukt WAMP SQL Server, som er en database, et grafisk designinterface og et mySQL-grensesnitt til NODE-red.
Tidligere prosjekt
I et tidligere prosjekt har jeg laget en tyverialarm på Arduinoen. Denne tyverialarm har jeg genbrugt. Den virker ved at alarmen er slået til eller fra. Hvis den er slått til og en berøringssensor blir aktivert, vil alarmen gå i gjengen. Den skal så kunne slås fra igjen ved at trykke på en knap, som sætter den tilbake til starttilstanden.
Trinn 3: Arduino
Arduino sender besked om hvor lang tid den har kørt og dens
alarmtilstand. Så lenge den ikke er aktivert vil den sende beskjeden, hver gang der skiftes tilstand. Hvis den blir aktivert, vil den bli ved å sende besked om, at den er aktiv. Samtidig mottager den besked fra NODE-red om at alarmen er aktiv og skal resettes tilbake til normaltilstanden.
Trinn 4: Database
Hver gang der er en endring av tilstanden for alarmen
blir følgende data lagret i databasen: Den nåværende tilstanden, hvor lang tid Arduinoen har kørt, samt et tidsstempel, der den aktuelle tiden er angitt.
Der blir kommunikeret med databasen med SQL-sproget mySQL. Jeg har laget en tabell, som forteller alarmtilstanden, hvor mange ms Arduinoen har kørt og et tidsstempel der informasjonen ble registrert. For at skrive disse dataene i databaser, har jeg i NODE-rød laget og funksjon, der innsetter til tabellen. For at ikke noen gentagelser, har jeg gjort en regel, at hvis alarmtilstanden er den samme som den forrige, blir der ikke tilføyde linjer. Den er laget ved å velge den siste tilfeldige serien etter dato og sammenligne med alarmtilstanden fra Arduinoen.
Jeg bruker en injeksjon for å finne den siste aktiveringen av alarmen hvor den forteller hvor lenge det skulle skje. Her kan jeg velge igjen for å finne den siste røde alarmen.
Trinn 5: Node-rød
I NODE-red styrer man kommunikation og databaseopdateringer.
Programmeringen foregår som javascripts.
Herunder ses med NODE-rødt program, som består av 11 komponenter.
Komponenter arduino Jeg har en forbindelse til Arduinoen. Den mottager data fra Arduinoen. Disse dataene er en alarmtilstand og antall ms.
Komponenter delt mottaker data fra arduino I og opdeler dem etter komma, for deretter å sende dem videre til navn og reset.
Komponentenavn er og dashbordfilt, som viser aktuell alarmtilstand.
Komponenter reset er en javascript -funksjon, som undersøger om der er kommet rød alarm. I så fald sendes reset videre to arduino Q.
Komponenter arduino Q er en forbindelse til Arduionoen, som resetter den.
Komponenter tilsql er en javascript -funksjon, som splitter de til beskeder, hvor den første blir lagt inn som tid og neste som alarm. I denne funksjonen kan vi sette inn nye verdier når alarmtilstanden endres. SQL fra denne funksjonen leser og oppdaterer databasen via tyven forbindelser.
Komponenter tyven er en forbindelse til databasen, som tilsql utnytter for å velge og sette inn.
Komponenter injiserer en periodisk utløser med en periode på 15 sekunder, som leser tidspunkt for siste røde alarm fra databasen. Denne gangen sender jeg videre til rød alarm.
Komponenter som er koblet til databaser, kan injiseres for å velge.
Komponenter msg.payload kan brukes til å feilsøke komponenter og til å tjekke om jeg får det riktige resultatet.
Komponenter rød alarm er et felt på dashbordet, som mottar tidspunktet fra injeksjon.
Dashboard er et skjermbillede, hvor alarmtilstanden, som er definineret i komponentnavn, står på venstre side og tidspunktet for siste røde alarm, som er defineret ved komponenter rød alarm, med det spesielle tidsstempelet står på høyre side.
Trinn 6: Test
Jeg har testet programmet ved at kjøre simulering med
Arduinoen og kigge i tabellen, om de riktige dataene blir logget. Desuden har jeg holdt øje med dashboardet, og viste at det viser den aktuelle alarmtilstanden og tiden for siste røde alarm.
Problemet har vært at den siste røde alarmen blir trykt som objekt, hvor jeg ville foreta rekkevidden at det var en tekst. Det betyr at det skal konverteres fra objekt til streng. Dette har jeg ikke funnet løsningen på.
Den eneste måten å resette Arduinoen på er ved at deploy’e i NODE-red. Det er ikke kodet en metode for at rydde tabellen i databasen annet end at gjøre det manuelt.
Trinn 7: Videreudvikling
Der kan være utvikling i forhold til databaser i at kunne
rydde tabellen. Man kan også vise tabellen eller uttræk fra den på f.eks. Dashboard.
På dashbordet kan det være et skema over tabeller, som viser de siste innsatsene, og en lampe i stedet for tekst for tilstanden av alarmen.
Der kunne implementeres knap for reset av rød alarm. En annen knap til at tømme tabellen for data. Der kunne være muligheter for at tjekke alarmen for weekend eller helligdage. Hvor den skal kunne resette sig selv.
Trinn 8: Konklusjon
Jeg har laget en datalagring på en database der lagrer alarmtilstanden
i en tabell, hvorfra jeg kan ta siste alarmtilstand. Der er laget en grafisk brukergrænseflade, som viser nåværende tilstand samt tidspunkt for siste alarmtilstand. Disse tingene er laget ved hjelp av programmet NODE-red for grafikk og programmering av WAMP SQL Server er blitt brukt til lave databaser.
Jeg har med dette prosjektet lært at lave en database, samt kommunikasjon mellom forskjellige programmeringssystemer. Jeg har brukt NODE-red til kommunikasjonsdata fra et Arduino-prosjekt til internett og relasjonsdatabase. Databasen er brukt til dataopsamling og som datagrundlag for brukergrænsefladen. Jeg har brukt NODE-red til at lave og funksjonelle layout av prosjekt og til design av brukergrænsefladen.
Anbefalt:
DIY lommestørrelse tyverialarm!: 3 trinn
DIY Pocket Sized Anti-Theft Alarm!: ER noen som klemmer tingene dine, og du finner ikke hvem det er? Vet ikke hvem den er? Så er denne instruksen for deg å fange dem på rødhendt! I denne instruksen vil jeg vise deg hvordan du lager en inntrengeralarm i lommestørrelse
Tyverialarm: 5 trinn
Tyverialarm: Bruk en fotoresistor for å finne ut at tingen er tatt eller ikke. Hvis tingen er på stedet, vil maskinen vedlikeholde normalt. Hvis tingen ikke er på stedet, lyser LED -en og høyttaleren vil lage støy for å la eieren merke det
UCL Embedded "tyverialarm": 7 trinn
UCL Embedded "tyverialarm": her forteller jeg om min tyverialarm
Brytealarm / tyverialarm: 17 trinn
Glassbryteralarm / innbruddsalarm: Denne kretsen kan brukes til å slå alarm for å oppdage at et glassvindu brytes av en inntrenger, selv når inntrengeren sikrer at det ikke høres lyd fra det knuste glasset
EAL-Industri4.0-RFID Dataopsamling Til Database: 10 Steps (with Pictures)
EAL-Industri4.0-RFID Dataopsamling Til Database: Dette prosjektet omhandler opsamling av v æ gtdata, registrering av identiteter vha. RFID, lagring av data i en MySQL database vha. node-RED, samt fremvisning og behandling av de opsamlede dataene i og C# -programmet i en Windows Form Application