Inhoudsopgave:
- Benodigdheden
- Stap 1: Raspbian installeren
- Stap 2: WiFi-configuratie
- Stap 3: Software-installatie en configuratie
- Stap 4: De database
- Stap 5: Het spiegelframe bouwen
- Stap 6: De elektronica
- Stap 7: De elektronica in het frame plaatsen
- Stap 8: finishing touch
- Stap 9: Interactie met de webapp
Video: Magische spiegel met nieuws, weer, alarm, timer en todolist - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
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.
- Win32 schijfimager downloaden. Linux- en MacOS-gebruikers kunnen zoiets als Etcher gebruiken.
- Download de nieuwste Raspbian-afbeelding van de Raspberry Pi-website. Kies de optie 'Raspbian Buster met desktop'
- 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:
- Ga naar de 'opstart'-partitie van de SD-kaart met behulp van de bestandsverkenner van uw systeem.
- Voeg een bestand toe met de naam 'ssh' zonder extensie.
- 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
Dit is het databaseschema, geoptimaliseerd voor 3NF. Het slaat alle alarmen, nieuwsbronnen, gebruikers, sensorgegevens, geluiden en de todolist op.
- Gebruik MySQL Workbench om toegang te krijgen tot de databaseserver van uw pi (mariadb)
- Maak een database met dit schema en voeg uw eigen gegevens in.
- Bewerk config.py in de Backend-map van mijn GitHub-repository: wijzig de databasenaam, de door u gekozen gebruikersnaam en het wachtwoord.
- Bewerk app.py en wijzig de OpenWeatherMap API-URL in die van u. (Maak hier je eigen)
Stap 5: 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
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
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
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
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:
NODEMCU EN VISUINO WEERGEVEN LIVE NIEUWS VAN INTERNET: 8 stappen
NODEMCU EN VISUINO WEERGEVEN LIVE NIEUWS VAN INTERNET: In deze tutorial zullen we NodeMCU Mini, OLED Lcd en Visuino gebruiken om elke paar seconden live NIEUWS van internet op het LCD-scherm weer te geven. Bekijk een demonstratievideo
Maak oud speelgoed weer geweldig: 17 stappen (met afbeeldingen)
Maak oud speelgoed weer geweldig: ik vond dit retro uitziende ruimteschip van een plaatselijke rommelwinkel voor $ 2 en kon het niet laten om het te kopen. Ik wilde het in eerste instantie gewoon aan mijn neefjes geven, maar ik wilde het een beetje leuker maken om mee te spelen. Ik besloot om de vertrouwde 555 ic te gebruiken
Arduino gebruiken om het motortoerental weer te geven: 10 stappen (met afbeeldingen)
Gebruik Arduino om het toerental van de motor weer te geven: in deze handleiding wordt beschreven hoe ik een Arduino UNO R3, een 16x2 LCD-scherm met I2C en een LED-strip heb gebruikt als motortoerentalmeter en schakellicht in mijn Acura Integra-baanauto. Het is geschreven in termen van iemand met enige ervaring of blootstelling
Hoe de Samsung Galaxy S7 met Android 8.0 in te stellen om alleen het scherm voor één app weer te geven !!: 5 stappen
Hoe de Samsung Galaxy S7 met Android 8.0 in te stellen om alleen het scherm voor één app weer te geven !!: Deze Instructable laat u zien hoe u uw Samsung Galaxy S7 kunt instellen om het scherm voor slechts één app weer te geven Dit is geweldig als u een baby / kind hebt die graag met je telefoon speelt of ervoor wil zorgen dat je telefoon alleen in één app blijft als iemand anders
Laten we een magische kristallen bol maken met magische spreuken! ~ Arduino ~: 9 stappen
Laten we een magische kristallen bol maken met magische spreuken! ~ Arduino ~: hierin gaan we een magische bal maken die een bewegingssensor en een RFID-scanner gebruikt om de animaties van de LED-lampjes binnenin te besturen