Introduction: LightSource - Dutch/Nederlands

Als schoolopdracht moest ik een toestel maken dat minstens de volgende zaken bevat:

  • Raspberry Pi
  • SQL database
  • Webserver
  • Sensor

Ik koos ervoor een wekkerlamp te maken, en heb deze LightSource genoemd. Deze wekker heeft een lamp die 30 minuten voor het alarmsignaal aan wordt gezet, om zo het zonlicht na te bootsen. Hiermee zou de gebruiker rustiger moeten ontwaken. Via de webbrowser kunnen de alarmen beheerd worden.

Klussen jullie met me mee?

Step 1: Onderdelen + Verklaring

Volgende onderdelen heb ik gebruikt:

1) Behuizing

  • Wijnkist
  • Plastic plaat
  • Antislip pootjes

2) Elektronica

  • Raspberry Pi 3 (webgedeelte)
  • Arduino Uno R3 (hardwaregedeelte)
  • Mini breadboard16x2 LCD display (weergave tijd, datum, status van de lamp en van het alarm)
  • Lichtsensor (dimt automatisch de backlight van het lcd-display en waarschuwt als de lamp mogelijk stuk is)
  • Drukknop (uitzetten alarmsignaal of manueel in-/uitschakelen lamp)
  • Actieve Buzzer (alarmsignaal)
  • Relais 5V bord (schakelen lamp)

  • Weerstanden (220Ω en 10kΩ)
  • Potentiometer (10kΩ, regelen contrast lcd)
  • Enkele jumperkabels
  • Voeding USB 5V (voeding Pi)
  • MicroUSB kabel (voeding Pi)
  • USB-kabel A-B (voeding, programmeren en seriële communicatie Arduino)
  • Netwerkkabel (programmeren Pi)
  • Lamphouder 230V
  • Lamp 230V
  • Voedingskabel 230V
  • Stopcontact 230V

De totale kostprijs van alle onderdelen schat ik op €75.

Step 2: Schakeling

De componenten verbind ik met de Arduino zoals op het schema.

Ik maakte gebruik van een voorgemaakte relaismodule waar reeds alle componenten opzitten.

Vergeet niet de contactpunten van het relais af te schermen. Bij aanraking kan je een elektrische schok krijgen!

Step 3: Afwerking Behuizing

Nadat de schakeling af is, kan de behuizing worden afgewerkt. Dit vereenvoudigt het transport van de wekker, die we enkele keren moeten meenemen naar school.

Binnenin de wekker zit een stopcontact voor de voeding van de Raspberry Pi. Het scherm, de knoppen en de buzzer worden netjes afgedekt met een plastic plaat. Deze wordt bevestigd aan de kist via klittenband.

De draden heb ik aan elkaar getapet om deze gemakkelijk in en uit te pluggen.

Step 4: Arduino Code

In bijlage mijn code voor de Arduino. Deze luistert naar binnenkomende seriële data van de Raspberry Pi, en print deze op het LCD-scherm.

Merk op hoe de ASCII-karakters moeten worden omgezet naar gewone cijfers. Zo is "48" gelijk aan 0, "49" aan 1, ...

De data die de Arduino ontvangt, bevat de tijd, datum, weekdag, alarmtijd, lamptijd, en alarmStatus.

Step 5: Raspberry Pi Code

De webomgeving wordt opgebouwd door een mix van Python, HTML en Flask. Flask wordt gebruikt als "besturingssysteem" achter de webomgeving van de LightSource. Python verzorgt de seriële communicatie van de verschillende tijden tussen de Pi en de Arduino. Aan deze omgeving is een MySQL-database gekoppeld die de laatste alarmen en hun status (aan of uit) bijhoudt. Ik maak gebruik van Python 3. De code dient als service te worden uitgevoerd, zodat deze automatisch start bij het opstarten van de Pi.

Mijn codes: https://github.com/NielsVDH/Project1/tree/master/LightSource

Step 6: Eindresultaat

Nadat alles geïnstalleerd en geprogrammeerd is, kan alles worden getest.

Wanneer de stekker in het stopcontact wordt gestoken, toont het LCD-display een animatie. Wanneer de Pi is opgestart en de eerste info verstuurt, gaat de Arduino deze ontvangen en weergeven op het scherm. Indien nodig gaat de lamp branden, waarna het alarm afgaat. Door op de knop te duwen kan het alarm worden afgezet of de lamp worden in- en uitgeschakeld. Wanneer de lamp is ingeschakeld en er door de sensor geen licht wordt gedetecteerd, verschijnt een vraagteken op het LCD-display. Wanneer de lamp is uitgeschakeld, bepaalt de lichtsensor de helderheid van de backlight van het display. Zo wordt dit in een donkere kamer gedimd.

Comments

author
Swansong (author)2017-06-20

That's a neat lamp, you could cover the inside of the case in white or a reflective material to make it brighter :)

About This Instructable

49views

0favorites

License:

Bio: ksacolruytlichtman
More by NielsVDH:LightSource - Dutch/Nederlands
Add instructable to: