Inhoudsopgave:
Video: Wifs: 5 stappen
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Ik ben Stephanie Minne, ik studeer Nieuwe Media en Communicatie Technologie (NMCT) aan Howest (Kortrijk België). Op school kregen we de opdracht om een apparaatje te maken met een webpagina. U kunt een kijkje nemen in mijn portfolio.
Ik heb ervoor gekozen om een treinstoel te maken met een sensor erin. De sensor detecteert of er een persoon op de stoel zit.
Stap 1: Benodigde materialen
Voor dit project zijn verschillende materialen nodig.
Druksensor (fsr 400) = € 9,20/stuk
Raspberry Pi 3 = €37, 95
RGB-leds = €0,5 /eenheid
Weerstand (470 ohm) = € 0,10 /eenheid
LCD-scherm = €2,44 /eenheid
Mcp 3008 = €29, 00 /eenheid
Sn74hc595n = €1, 20 /eenheid
Potentiometer = €1, 15
Stap 2: Het circuit
De hardware is vrij eenvoudig.
Zoals op het schema te zien is, heb ik voor mijn leds een 74hc47 gebruikt. De reden daarvoor is dat mijn Raspberry Pi niet veel pinnen heeft. Het nadeel hiervan is dat je de led alleen rood of groen kunt maken. Je hebt geen pwm-signaal om verschillende kleuren te maken.
De Raspberry Pi heeft geen analoge ingangspinnen. Ik heb dus een mcp 3008 nodig. Deze zet een analoog signaal om naar een digitaal signaal. De drukzender wordt op de kanalen van de mcp 3008 gezet.
Stap 3: Maak een database
In dit project is een mysql gebruikt als database server.
De tafelbezetting heeft informatie over de sensoren. Het legt vast waar een persoon op een treinstoel zit. Vanaf het moment dat een persoon op de stoel gaat zitten worden de eerste gegevens in de tabel geschreven. Alle gegevens worden in de tabel geschreven met uitzondering van de datetimeEnd.
In de tabel route komen gegevens over de verschillende routes die een trein doet.
De tabel heeft twee waarden: een voor de normale datetime en een andere voor de echte datetime.
De datetime normal is de tijd dat de trein theoretisch stilstaat. De datetime real is de tijd dat de trein echt stopt. Deze tijd is inclusief de vertraging.
Elke trein heeft een duidelijke en unieke referentie, samengesteld uit letters (i.e. IC staat voor Intercity trein) en cijfers (i.e. 4565 is de trein van Brussel naar Antwerpen).
En elk type heeft zijn eigen accommodatie. Bijvoorbeeld tafels, vuilnisbakken.
Stap 4: Codeer het
De basiscode van de sensoren is geschreven in Python. Er zijn
2 soorten codes. De eerste is voor de sensoren. De tweede is voor de webpagina. De webpaginagegevens zijn geschreven in Python, Flask, JavaScript, HTML en CSS.
De sensor
Elk onderdeel heeft zijn eigen klasse. Alle verschillende klassen worden gebruikt in de test.py.
Het web
De webcode is geschreven in Python en Flask. Voor de header wordt een sjabloon gebruikt. Het andere deel van de pagina heeft een eigen html-pagina.
De bestandsstructuur
- Het testbestand is te vinden in de directory sensor.
- De klassen bevinden zich in de directorymodellen.
- De directory sql bevat de dump van de treindatabase.
- De directory web bevat de index.py. Dit is de Flask-pagina. Dit bestand moet worden uitgevoerd om de webpagina te kunnen uitvoeren.
- De templates directory bevat de html pagina's.
- De directory static bevat afbeeldingen, lettertypen en de css-bestanden.
Stap 5: Maak het mooi
Er zijn verschillende manieren om een mooie trein te maken. ik heb gekozen
om een 3D-print van een trein te maken.
De stoelen.
Er moet een klein gaatje in de zitting worden voorzien aangezien de sensor op de zitting moet worden geplaatst. De leds zijn bevestigd op de bovenkant van de stoel.
De wagen.
Er zijn een paar belangrijke kenmerken in de wagen. In eerste instantie moeten er kleine gaatjes in de vloer zitten waar de stoelen komen.
- De sensor en de kalibers van de leds moeten door deze gaten gaan.
- In het zijpaneel zit een gaatje om het LCD-scherm te bevestigen met de informatie over het IP-adres en het aantal vrije stoelen.
- De Raspberry Pi moet aan de achterkant uit het zicht worden geplaatst.
!Let op: de 3D print is wat kleiner geprint dus er moet 3 of 4 mm extra voor de gaatjes voorzien worden!