Inhoudsopgave:

Slim alarm: 6 stappen
Slim alarm: 6 stappen

Video: Slim alarm: 6 stappen

Video: Slim alarm: 6 stappen
Video: Het 6 Stappenplan van de Plenda 2024, November
Anonim
Slim alarm
Slim alarm

Van school kreeg ik de opdracht om een project te maken. Ik heb voor een Slimme wekker gekozen omdat ik altijd door mijn wekker heen slaap en dan school mis. Je kunt je wekker alleen uitschakelen als er licht, geluid en beweging is, zodat je niet weer in slaap kunt vallen of hem kunt snoozen zonder je ogen te openen. Er is ook een website waar je je slaappatroon kunt bekijken, alarmen kunt instellen en nieuwe alarmen kunt maken.

Benodigdheden

Om het project te bouwen zijn er enkele materialen nodig. een lijst vind je hieronder. je kunt ook alles terug vinden in de stuklijst inclusief de prijs.

  1. Frambozenpi 3
  2. T-cobbler breakout board
  3. PIR-sensor
  4. Licht sensor
  5. Geluidsdetectiesensor
  6. Zoemer
  7. LCD scherm
  8. Knop

Stap 1: Hardware

Hardware
Hardware

Voordat ik begon met het bouwen van alles, heb ik 2 schema's (1 elektrisch en 1 op het breadboard) gemaakt op fritzing en heb ik ze gecontroleerd om er zeker van te zijn dat er geen fouten in zaten. Toen ik zeker wist dat alles in orde was, begon ik met het project. Allereerst begon ik met de zoemer en de knop omdat dit de gemakkelijkste onderdelen waren. Daarna heb ik mijn display aangesloten op de raspberry pi. Uiteindelijk heb ik mijn sensoren aangesloten. de lichtsensor en de bewegingssensor zijn gemakkelijk omdat je niets anders nodig hebt, maar de PIR-sensor heeft iets extra's nodig. Om ervoor te zorgen dat de PIR geen kortsluiting maakt, moet u een spanningsbrug gebruiken. Het betekent dat je een extra weerstand van 1k ohm en 2k ohm moet gebruiken om er zeker van te zijn dat alles goed gaat. Het exacte gebruik van de pinnen en hoe je alles op de pi aansluit, vind je in de schema's.

Stap 2: Database

Database
Database

Om alle gegevens op te slaan had ik een database nodig.

Mijn database bestaat uit 6 tabellen.

  1. Sensor
  2. Geschiedenis_sensoren
  3. Persoon
  4. Alarm_persoon
  5. Slaappatroon
  6. Alarm

er zijn 2 delen in de database. 1 voor de sensoren en 1 voor de persoon en al zijn statistieken.

De sensortabel bevat een ID en een naam. Deze tabel is verbonden met de History_sensors die een ID, waarde, Sensor_id en een naam heeft. de sensor_id is nodig om te weten welke sensor een waarde heeft en de datum is nodig om te weten wanneer de sensor deze heeft gemeten.

De tafelpersoon bevat een ID, een naam en een wachtwoord. Het wachtwoord en de naam zijn nodig om in te loggen zodat niemand anders een alarm voor u kan instellen. Deze tabel is verbonden met de tabel sleep_pattern en de tabel Alarm_person. De tabel Sleep_patern bevat een ID, Hours_sleep, Date, Person_id, Bedtime en Wake_up_time. Dus hier zijn de gegevens die zijn opgeslagen om een afbeelding te maken over je slaappatroon.

De tabel Alarm_person bevat een Person_id, Alarm_id en de tijd. Deze tafel is nodig omdat verschillende mensen tegelijkertijd gebruik kunnen maken van een wekker en 1 persoon meerdere wekkers kan gebruiken. De laatste tafel is de alarmtafel. Deze bevat een ID en een beschrijving.

Stap 3: Back-end

Back-end
Back-end
Back-end
Back-end

In de back-end moest ik verschillende functies schrijven.

  1. vraag naar de tafelsensoren
  2. vraag naar de tafel history_sensors
  3. vraag naar het slaappatroon
  4. zet een nieuw alarm
  5. vraag om het tafelalarm
  6. registreer gebruiker
  7. Log in
  8. zet de waarden van de sensoren in de tabel history_sensors

Ik gebruikte pycharm en schreef de code in python.

voor alle functies gebruik ik de @app.route en vervolgens het adres. elke keer moet je een ander adres gebruiken omdat het anders niet werkt. Hierna schrijf ik een if-functie met de methode als waarde, dus als dit waar is, voert hij de code uit. in de if-waarde is er een try-catch en een sql-instructie om de gegevens op te halen of op te bergen.

Voor de functies met de sensoren is dat anders. Hier heb ik de @app.route niet gebruikt, maar een functie voor de sensor gemaakt. hier declareer je je pinnen en maak je een callback-functie. op deze manier wordt elke keer dat de sensor iets detecteert, de functie uitgevoerd. In de callback-functie heb ik een if gebruikt die werkt als de sensor iets detecteert. In de if staat de code voor het plaatsen van de gegevens in de tabel met een sql-instructie. Er zit ook al slaap in omdat het anders veel te veel waarden in de tabel zou zetten voor slechts 1 detectie.

In mijn github vind je de volledige code voor het project.

Stap 4: Website

Website
Website
Website
Website
Website
Website

Voor mijn website heb ik gewerkt met html en css mijn website bevat 11 html pagina's.

Er zijn zoveel pagina's omdat alles via de website werkt. u kunt een alarm instellen, een alarm toevoegen en een alarm verwijderen. Op de instellingenpagina kunt u uw wachtwoord en e-mailadres wijzigen. Je hebt een pagina voor je slaappatroon. Je kunt ook het moment toevoegen waarop je ging slapen en wanneer je wakker werd. Het positieve is dat elke pagina hetzelfde uiterlijk heeft en grotendeels dezelfde dingen gebruikt, dus de css is vaak hetzelfde op elke pagina.

Stap 5: Front-end

De front-end is in javascript geschreven.

Stap 6: zaak

Geval
Geval
Geval
Geval

Voor mijn geval heb ik ervoor gekozen om hout te gebruiken. Het is niet zo moeilijk om te snijden, het ziet er mooi uit. Mijn kast is 26cm op 14 cm met een hoogte van 7,5 cm. Het is zo groot omdat alles erin moest passen. Ik heb gaten gemaakt voor de sensoren, de knop en het lcd zodat de tijd zichtbaar is en de sensoren beweging of licht kunnen detecteren. Om deze te maken heb ik een lasercutter gebruikt. In de koffer zit mijn breadboard en Raspberry Pi.

Aanbevolen: