Inhoudsopgave:

Magische spiegel met nieuws, weer, alarm, timer en todolist - Ajarnpa
Magische spiegel met nieuws, weer, alarm, timer en todolist - Ajarnpa

Video: Magische spiegel met nieuws, weer, alarm, timer en todolist - Ajarnpa

Video: Magische spiegel met nieuws, weer, alarm, timer en todolist - Ajarnpa
Video: Не смотрите в зеркало в эти часы, если не хотите горьких слез. Народные приметы 2024, November
Anonim
Magische spiegel met nieuws, weer, alarm, timer en todolist
Magische spiegel met nieuws, weer, alarm, timer en todolist
Magische spiegel met nieuws, weer, alarm, timer en todolist
Magische spiegel met nieuws, weer, alarm, timer en todolist

Een Magic Mirror is een speciale eenrichtingsspiegel met daarachter een display. Het display, dat is aangesloten op een Raspberry Pi, toont informatie zoals het weer, kamertemperatuur, tijd, datum, een todolist en nog veel meer. Je kunt zelfs een microfoon toevoegen en een slimme assistent instellen. De mogelijkheden zijn eindeloos.

Dit project kan behoorlijk duur zijn, een van de duurste onderdelen die je nodig hebt is natuurlijk het display. Daarom heb ik een beeldscherm van een oude laptop gerecycled. Ik raad echter aan om een groot, helder scherm met hoog contrast te krijgen om dit project te maken. Het is het waard.

De spiegel die ik heb gemaakt heeft deze eigenschappen:

  • Nieuws van een door de gebruiker gekozen RSS-feed
  • Het weer
  • Binnentemperatuur
  • Een alarmsysteem
  • Een timersysteem
  • een todolist
  • Meerdere gebruikers: de ledstrip kleur en nieuwsbron veranderen op basis van welke gebruiker is geselecteerd.

Benodigdheden

Om deze magische spiegel te bouwen, heb je nodig:

  • Een eenrichtingsspiegel
  • Hout
  • Een Raspberry Pi
  • Een Micro SD-kaart (8+GB)
  • een breadboard
  • Twee luidsprekers van 20 W
  • MAX9744 20W-versterker om de luidsprekers van stroom te voorzien
  • 1m 30-led WS2801 ledstrip
  • DS18B20 1-draads temperatuursensor
  • HC-SR501 Infraroodsensor
  • Een roterende encoder
  • Een monitor of oud laptopscherm

    Als u een oud laptopscherm gebruikt, moet u een laptopschermadapter kopen. Je kunt deze krijgen van AliExpress, Ebay of Amazon. Zoek gewoon naar het serienummer van uw display

Je hebt ook de volgende kleine componenten nodig:

  • een diode
  • Een weerstand van 4,7 k Ohm
  • Een weerstand van 470 Ohm
  • Draden om sensoren aan te sluiten op de Raspberry Pi

En deze voedingen:

  • 5V 2A om de ledstrip van stroom te voorzien
  • 12V 2A om het scherm van stroom te voorzien
  • 12V 2A om de versterker van stroom te voorzien
  • 5.1V 3A om de Raspberry Pi van stroom te voorzien (gebruik een officiële RPi-voeding)

Stap 1: Raspbian installeren

Het display en alle componenten achter de spiegel worden aangedreven door de Raspberry Pi. U moet Raspbian, het standaardbesturingssysteem van de Pi, op de SD-kaart installeren.

  1. Win32 schijfimager downloaden. Linux- en MacOS-gebruikers kunnen zoiets als Etcher gebruiken.
  2. Download de nieuwste Raspbian-afbeelding van de Raspberry Pi-website. Kies de optie 'Raspbian Buster met desktop'
  3. Open Win32 Disk Imager en schrijf het afbeeldingsbestand naar de SD-kaart.

De SD-kaart is nu bijna klaar. We moeten er alleen voor zorgen dat we op afstand verbinding kunnen maken met de Raspberry Pi:

  1. Ga naar de 'opstart'-partitie van de SD-kaart met behulp van de bestandsverkenner van uw systeem.
  2. Voeg een bestand toe met de naam 'ssh' zonder extensie.
  3. Voeg 'ip=169.254.10.1' (zonder aanhalingstekens) toe aan het einde van de eerste regel van 'cmdline.txt'.

Werp de SD-kaart veilig uit uw computer, plaats deze in uw Raspberry Pi en start hem op.

Stap 2: WiFi-configuratie

Voer de volgende opdracht uit om wifi-netwerken te scannen:

sudo iw dev wlan0 scan | grep SSID

U ziet de lijst met alle SSID's waarmee uw Raspberry Pi verbinding kan maken.

Maak een netwerkvermelding met een gecodeerd wachtwoord door de volgende opdracht uit te voeren en het wachtwoord van uw netwerk in te voeren:

wpa_passphrase "YOUR_NETWORK_SSID_HERE"

Plak nu de uitvoer van de bovenstaande opdracht in dit bestand:

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Start nu de Raspberry Pi opnieuw op. Je wordt verbonden met internet.

Stap 3: Software-installatie en configuratie

Voor dit project moet je deze pakketten downloaden naar je Raspberry Pi:

pip3 installeer mysql-connector-python flask-socketio flask-cors gevent gevent-websocket adafruit-circuitpython-ws2801 adafruit-circuitpython-max9744

sudo apt install apache2 mariadb-server

Voeg deze regel toe aan de onderkant van /boot/config.txt om audio in te schakelen via GPIO-pinnen 12 (links) en 13 (rechts):

dtoverlay=audremap

Gebruik raspi-config om de resolutie van uw beeldscherm in te stellen en om i2c, One-wire en SPI in te schakelen. Stel ook de opstartmethode in op 'Desktop Autologin'.

Voeg in /etc/xdg/lxsession/LXDE-pi/autostart het volgende toe:

@xset s off@xset -dpms@xset s noblank@chromium-browser --kiosk 127.0.0.1/mirror.html # laad chromium na het opstarten en open de website op volledig scherm

Dit opent de browser op de juiste pagina wanneer LXDE (Raspbian's desktop-omgeving) wordt geladen. Verwijder of becommentarieer ook de @xscreensaver-regel om de screensaver uit te schakelen.

Github-repository

Kloon mijn GitHub-repository en plaats de inhoud van de Frontend-map in /var/www/html. We hebben de Backend-map later nodig.

Stap 4: De database

De databank
De databank

Dit is het databaseschema, geoptimaliseerd voor 3NF. Het slaat alle alarmen, nieuwsbronnen, gebruikers, sensorgegevens, geluiden en de todolist op.

  1. Gebruik MySQL Workbench om toegang te krijgen tot de databaseserver van uw pi (mariadb)
  2. Maak een database met dit schema en voeg uw eigen gegevens in.
  3. Bewerk config.py in de Backend-map van mijn GitHub-repository: wijzig de databasenaam, de door u gekozen gebruikersnaam en het wachtwoord.
  4. Bewerk app.py en wijzig de OpenWeatherMap API-URL in die van u. (Maak hier je eigen)

Stap 5: Het spiegelframe bouwen

Het spiegelframe bouwen
Het spiegelframe bouwen
Het spiegelframe bouwen
Het spiegelframe bouwen
Het spiegelframe bouwen
Het spiegelframe bouwen

Ik bouwde het frame rond de spiegel met behulp van verstekverbindingen met metalen hoeken. De houten planken die ik heb gebruikt zijn 18 mm dik en 10 cm breed. In de afbeeldingen ziet u de exacte afmetingen voor een spiegel van 45 cm x 60 cm. Achter de spiegel zit alle elektronica, dus zorg ervoor dat je planken breed genoeg zijn om erin te passen.

Ik gebruikte metalen haken om de luidsprekers aan het frame te bevestigen. Op die manier rusten ze niet op de spiegel, waardoor de trillingsbelasting op het glas wordt verminderd.

Stap 6: De elektronica

De elektronica
De elektronica
De elektronica
De elektronica

Volg de bovenstaande schema's om het circuit te bouwen. Ik heb tape gebruikt om de elektronica aan de spiegel te bevestigen.

Stap 7: De elektronica in het frame plaatsen

De elektronica in het frame plaatsen
De elektronica in het frame plaatsen
De elektronica in het frame plaatsen
De elektronica in het frame plaatsen

Nadat u de luidsprekers aan de metalen haken aan de bovenkant hebt bevestigd, voegt u de rest van de elektronica toe aan de spiegel. Ik heb ook een dunne houten plank tussen de spiegel en de elektronica geplaatst, dus in plaats van de elektronica op de spiegel te plakken, heb ik de elektronica op de houten plank geplakt. Het laptopscherm is een wit paneel aan de onderkant van de spiegel.

Zoals je op de afbeeldingen kunt zien, heb ik alle voedingsadapters in een stopcontact met meerdere stopcontacten gestoken, zodat er maar één kabel het frame verlaat. Daarom had ik planken nodig die breed genoeg waren (10 cm).

Ik boorde een gat van 2 cm breed in de rechterkant van de spiegel zodat de roterende encoder er doorheen kon. Hiermee verander je eenvoudig het volume (draai) of sluit je timers en alarmen (push).

Ik heb twee gaten van 8 mm aan weerszijden van de spiegel geboord om de kabels voor de ledstrips te leiden.

Stap 8: finishing touch

Afwerking
Afwerking
Afwerking
Afwerking
Afwerking
Afwerking

Ik heb een zwarte doek aan de achterkant van de spiegel toegevoegd om de elektronica te verbergen. Het verduistert ook de binnenkant van de behuizing, waardoor het veel moeilijker is om de draden door de spiegel te zien. Ik heb het met klittenband vastgemaakt, waardoor het gemakkelijker is om toegang te krijgen tot de elektronica wanneer dat nodig is.

Kopieer de Backend-map van mijn Github-repository naar een plek die u zich herinnert.

Voeg een systemd-eenheid toe zodat het python-script bij het opstarten wordt uitgevoerd:

sudo nano /etc/systemd/system/magicmirror.service

[Eenheid]

Description=De service voor het magicmirror python-script After=network.target [Service] ExecStart=/usr/bin/python3 -u app.py WorkingDirectory=/home/pi/magicMirror/Backend StandardOutput=inherit StandardError=inherit Restart=always User =pi [Installeren] WantedBy=multi-user.target

Wijzig 'WorkingDirectory' in de Backend-directory en wijzig Gebruiker in uw eigen gebruikersnaam.

Stap 9: Interactie met de webapp

Interactie met de webapp
Interactie met de webapp
Interactie met de webapp
Interactie met de webapp
Interactie met de webapp
Interactie met de webapp
Interactie met de webapp
Interactie met de webapp

Surf naar het IP-adres (dat op het display staat). U ziet een mobiel-first website met de volgende functies:

  • Een interactieve temperatuurgrafiek
  • Een tijd. Als de timer loopt, zie je ook een aftelling op de spiegel zelf.
  • Een alarmsysteem
  • Een instellingentab, waar u gebruikers, nieuwsbronnen en luidsprekervolume kunt bewerken.
  • Een todolist. Todo-items worden weergegeven op de spiegel

Mirror.html is de pagina die wordt weergegeven op de Magic Mirror. Ik heb een voorbeeld toegevoegd in de afbeeldingen hierboven.

Aanbevolen: