Gemaakt door Tinyfrog001 en Magnificenthawk737
Wat is een juichmeter?
Wij kregen de opdracht om een juichmeter te programmeren met een Arduino en dan te installeren aan een paar knoppen. Als een van die knoppen ingedrukt wordt gaat er een bericht naar een programma, die slaat de ingedrukte knop op. Vervolgens is er ook een website waarop deze opgeslagen data te zien is.
Hoe het werkt
Arduino
Een Arduino is een kleine mini-computer waarop kleine programma’s gedraaid kunnen worden. Een Arduino kan ook via allemaal bedrading verbonden worden met apparaten zoals knoppen of lampen, dat is hieronder ook te zien. Vervolgens is de Arduino ook verbonden met een computer zodat de computer iets kan uitvoeren zodra er op een knop wordt gedrukt.
Registeren van een ingedrukte knop
Als er op een knop gedrukt wordt moet dit worden opgeslagen zodat de verzamelde data later teruggekeken kan worden. Deze date wordt opgeslagen in een sqlite database, een sqlite database in een database in een normaal bestand (e.g. database.sqlite). Voor de interactie met deze database hebben wij een “node module” gebruikt genaamd prisma. Met prisma kan een schema gemaakt worden zoals hieronder:
// Dit is de " node module" die wij gebruiken om met deze database te interacteren
generator client {
provider = "prisma-client-js"
}
// De locatie van de sqlite database
datasource db {
provider = "sqlite"
url = "file:./main.db"
}
// De dag waarop de les heeft plaatsgevonden
model Day {
// Een unieke ID voor deze dag
id Int @unique @id @default(autoincrement())
date DateTime @unique
lessons Lesson[]
}
// De les waarop gestemd is
model Lesson {
// Een unieke ID voor deze les
id Int @unique @id @default(autoincrement())
// Het lesuur voor deze les
hour Int
// De stemmen die zijn uitgebracht voor deze les
votes Vote[]|
// De connectie met de dag waarop de les heeft plaatsgevonden
day Day @relation(fields: [dayId], references: [id])
dayId Int
}
// Een stem op een les
model Vote {|
// Een unieke ID voor deze stem
id Int @unique @id @default(autoincrement())
// Wat er gestemd is (1: slecht, 2: matig, 3: goed)
vote Int
// De connectie met de les waarop gestemd is
lesson Lesson @relation(fields: [lessonId], references: [id])
lessonId Int
}