2.5
2 röster
Skapat
2019-07-07
Senast ändrat
2019-07-07
Visningar
1 981

Smart spegel: RaspBilly Pi

Hårdvara:

Raspberry Pi:
Raspberry Pi Model B (512 MB)
Revision: 000e

USB Port 1:
WiFi Adapter TP-Link TL-WN725N
Min Raspberry har inte WiFi inbyggd och jag vill undvika så många kablar det går.

USB Port 2:
(Trådlös) Microsoft All-in-one Media Keyboard (används endast vid utveckling, när omladdning av sida behövs)

HDMI Port:
Skärm av Modell: BenQ E2200HD
Gammal skärm som inte används till något bättre.
Färgerna är fortfarande väldigt bra på skärmen men svärtan i skärmen är långt ifrån optimal för detta projekt.
Skärmen producerar också väldigt mycket värme.

SD-kort:
16 GB laddad med chilipie-kiosk: https://github.com/futurice/chilipie-kiosk

Extra hårdvara:
4 rörelsesensorer

Sensorerna är placerade bredvid varandra i en linje och ligger direkt under skärmen.
Sensorerna är avskärmade med papp för att förhindra att de triggas av misstag (de är väldigt känsliga utan avskärmning). Endast ett litet hål i mitten släpper igenom ljus till sensorn.

1 st Grenuttag
Strömförsörjning sker genom att ha ett grenuttag liggande bakom spegeln.
Datahämtning och manövrering sker trådlöst.
Bokhyllan har alltså endast en kabel utstickande på baksidan.

Billy Bokhylla
Ett hyllplan borttaget för att få plats med en vertikal skärm.
Ett hål är gjort på baksidan av bokhyllan för elkabel. Det är gjort i höjd med spegeln, så hålet syns inte framifrån.

Idén var från början att ställa tre bokhyllor bredvid varandra och placera den smarta spegeln i bokhyllan i mitten. Men på grund av platsbrist så är spegeln placerad i en enskild bokhylla.

Montering av Raspberry
Raspberryn ligger mellan två plastark.
Plastark 1 används som bas för Raspberryn samt de rörelsesensorer som är inkopplade i Raspberryn.
Dessa komponenter är fasttejpade i Plastark 1 så att rörelsesensorerna befinner sig vid kanten av arket.
Plastark 2 ligger ovanpå komponenterna.
Dessa två plastark är lätta att flytta omkring och lätt att placera på ett hyllplan i bokhyllan.

Ovanpå Plastark 2 vilar grenuttaget.

Montering av Skärm
Det borttagna hyllplanet är roterat 90 grader och monterat i de bakre hyllfästena. Det är alltså samma hyllplansfästen som redan finns i bokhyllan. Djupet på hyllplansfästena motsvarar exakt 7 av hyllplanshålen.
I det vertikala hyllplanet har jag skruvat fast ett väggfäste för en skärm och sedan monterat skärmen i väggfästet, så det går att finlira positionen av skärmen bakom spegelskivan.
För att undvika att det vertikala hyllplanet inte glider bakåt har jag använt skärmens gamla fotfäste som motkraft mellan hyllplanet och den bakre väggen. Fotfästena kilar fast sig själva väldigt enkelt.

Akrylplast + spegelfilm
Denna skiva används för att få till spegeleffekten och är det enda som syns av när skärmen är avstängd. När skärmen är påslagen syns ljusa pixlar igenom, och mörka pixlar syns i bästa fall inte alls.
Skivan är kapad för hand och filmen är slarvigt pålagd, så det finns väldigt mycket ojämnheter både runt kanterna samt på själva spegelytan.
Skivan är alltså långt ifrån perfekt och kommer bytas mot en riktig måttbeställd spegelskiva inom den närmaste månaden.
Skivan passar exakt in mellan bokhyllans två väggar.

Magnet:
Nuvarande plastskiva balanserar på kanten av Plastark 1 av Raspberry-konstruktionen för att inte glida neråt, och hålls på plats av en magnet för att skivan inte ska falla ut ur bokhyllan.
Magneten sitter i övre vänstra hörnet som på insidan sitter fast i ett tidigare försök till att ha en svängdörr för spegeln.

Mjukvara:
OS:
chilipie-kiosk: https://github.com/futurice/chilipie-kiosk

Bootar direkt till Chromium till senast använda url. Väldigt enkelt att sätta upp. Jag kan definitivt rekommendera den.

Gjorda konfigureringar:

  • Ändrat till svensk tangentbordslayout

  • Satt tidszon till Svensk

  • Roterad skärm

  • Anslutit till WiFi

  • Öppnat min Url i webbläsaren

Back-end server:
Fristående Linux-maskin som sköter det tyngre jobbet.

Data-insamling samt cache
Exponerar Html, Javascript och ett Rest API till Raspberryn.

Rörelse-sensorer
Kontrolleras via PHP för att detektera höger / vänster "swipe".
PHP-skripten och webbläsaren pratar med varandra över Http för att kontrollera vyn.

Javascript:
Vyerna uppdaterar sig själva med jämna mellanrum.

Existerande Vyer:
Nuvarande tid visas överst i alla vyer.

1. Väderprognos
Detta är för tillfället det främsta användningsområdet för detta projekt.
Visar progrnos för nästkommande 48 timmar från olika datakällor.
Datat hämtas från olika källor och behandlas av min egen kod.
Visar medeltemperatur som en linje , samt min/max-temperatur som streckade linjer.
Visar vädersymboler för att indikera molnighet / sol / natt / regn
Visar regn som regndroppar under temperaturslinjen.
Visar UV-strålning som grön/gul/orange/röda prickar under temperaturslinjen.

2. Serverinformation.
Används som en allmän "Health Check" för att hålla koll på hårdvarubelastning av server.
Visar grafer för CPU / RAM / NÄT / DISK
Visar om det finns tillgängliga uppdateringar

3. Nyheter
Används för att visa en snabb överblick av nyheter från olika källor.

Framtiden för hårdvara:

  • Byta ut akrylplasten mot en riktig spegelskiva (Detta är på gång inom den närmaste månaden)

  • Ordna bättre luftflöde för att leda bort värmen bättre. Kanske sätta in en fläkt?

  • Byta till en skärm med:bättre svärta, mindre värme-produktion, tunnare och mindre djup ram

  • Eventuellt fixa till svängdörren för spegelskivan. Idén med svängdörr var från början att man inte ska kunna se någon som helst monteringslösning från utsidan.

Framtiden för Mjukvara:

  • Lägg till bildgalleri-vy

  • Lägg till kalender-vy

  • Lägg till fler väderkällor

  • Lägg till vind i väder-vyn

  • Lägg till fler nyhetskällor, visa bilder från topp-nyheterna

  • Lägg till musik-spelare och koppla in ett högtalarsystem.

  • Hantera fler typer av gester för rörelse-sensorerna (fler rörelse-sensorer?) för att kunna bygga ett mer komplext navigeringssystem.

Mina egna tankar och åsikter:

Det här är ett projekt som jag startat för länge sedan, men av olika anledningar blev det att jag lade hela projektet på is. När jag läste att en Raspberry Pi 4 var på gång blev jag inspirerad att färdigställa det här projektet.

Det har varit ett kul projekt och det kommer det fortsätta vara så länge jag har idéer för att vidareutveckla. Jag jobbar hellre med att utveckla projektet än att faktiskt använda den.

I nuvarande version skulle jag kalla det för en Proof of Concept. Resultaten varierar beroende på vinkel och ljus i rummet (och ljus som strålar in utifrån).
I vissa ljusförhållanden är skärmen för svag för att man ska kunna se vissa färger.
I vissa ljusförhållanden ser man tydligt var skärmens gränser går (på grund av att skärmens absoluta svarta inte är helt svart)

Glasskivan är ojämn. Den kan ibland liknas som en spegel ur lustiga huset på valfritt nöjesfält.

Med de hårdvaruförbättringar som är listade tidigare tror och hoppas jag att uppfattningen av hela enheten kommer att förbättras.

Komponenterna liggandes på Plastark 1

USB-portarna upptagna av tangentbord och WiFi

Arm som håller fast skärmen och som sitter fastskruvad i ett hyllplan

Närbild på armfästet och hyllplanet

Grendosa liggandes på Plastark 2

Hyllplanet är roterat 90 grader och här visar jag att det inte behövs några juseringar av fästena för hyllplanen, det passar lika bra roterat!

Det är bara att rotera fästena 90 grader

Skärmens gamla fotfäste passar bra perfekt som kil mellan bakre väggen och hyllplanet

Båda delarna av skärmfoten passar som kilar

Den över kilen

Allt monterat förutom glasskivan, dock med skärmfästet utsträckt

Inre bild på monteringen

Rörelsesensorerna med skärmning på

Rörelsesensorna utan skärmning

Allt på rätt plats förutom glasskiva

Färdigmonterat utan påslagen skärm

Färigmonterad med påslagen skärm

Närbild på väderprognosen och spegeleffekt

Magneten som håller fast skivan