Introduction: Mirafy (Smart Mirror)

Anggota :

Farrel Zephaniah Lie (2540125390)

Jeremy Andre Muljono (2540128184)

Matthew Filbert Tander (2501994241)


Introduction

Di era sekarang ini, perkembangan teknologi tumbuh dengan sangat cepat. Mulai dari skala kecil seperti peralatan rumah hingga skala besar seperti peralatan industrial/pabrik. Pertumbuhan ini secara tidak langsung menuntut para pelaku teknik atau Engineer untuk terus berinovasi dalam menciptakan produk berteknologi yang bisa menjadi solusi bagi user atau konsumen untuk menghadapi suatu masalah. Faktanya, meskipun kita sudah hidup di zaman serba teknologi, tetap saja ada masalah-masalah yang saat ini belum sepenuhnya terselesaikan, salah satunya adalah masalah mendapatkan informasi. Sering kali, kita bergantung pada smartphone untuk mendapatkan suatu informasi tertentu. Apa jadinya jika kita berada di suatu tempat yang tidak memungkinkan kita untuk membawa smartphone (Seperti misalnya kamar mandi) ? Apakah ada alternatif lain? Atau apakah kita sebagai user harus memegang smartphone terus menerus?Oleh karena itu, kita menciptakan Mirafy. Mirafy merupakan sebuah cermin pintar (smart mirror) berbasis Internet of Things (IoT) yang sudah dilengkapi dengan layar sentuh dan tampilan berbagai informasi. Mirafy menggunakan Raspberry Pi 4 4GB sebagai mikrokontroler utama dan NodeMCU 32S 38 pin sebagai mikrokontroler pendamping. Lewat Mirafy kita ingin membantu user/konsumen yang ingin melihat informasi penting tanpa menyentuh dan membuka smartphone.


Features

A. Mirafy Forecast

Mirafy memiliki informasi ramalan cuaca atau forecast. Begitu terhubung dengan jaringan internet, Mirafy akan secara otomatis melakukan update realtime ke OpenWeatherMap.org


B. Mirafy Clock

Mirafy memiliki informasi waktu (Hari, tanggal, bulan, tahun, jam, menit, dan detik).


C. Mirafy Sensor Monitoring

Mirafy memiliki informasi suhu, kelembapan, dan kualitas udara dari ruangan. Mirafy menggunakan sensor DHT11 untuk mengukur suhu kelembapan, dan MQ7 untuk mengukur index kualitas udara. Data dari sensor akan diiambil dan diolah oleh NodeMCU ESP32S . Setelah itu data akan dikirimkan ke Raspberry Pi 4 melalui Mosquitto (MQTT). Mirafy masih memiliki 1 slot tambahan untuk sensor. Sensor tambahan dapat disesuaikan dengan kebutuhan user.


D.Mirafy Notification Mirroring

Mirafy memiliki informasi notifikasi yang dapat di-mirroring dari smartphone user. User harus terlebih dahulu melakukan instalasi aplikasi PushBullet (https://play.google.com/store/apps/details?id=com.pushbullet.android&hl=en&gl=US). Setelah user berhasil melakukan instalasi dan initial setup PushBullet, maka secara otomatis notifikasi yang masuk ke smartphone user akan ter-mirror di Mirafy.


E. Mirafy Spotify Controller

Mirafy memiliki spotify controller yang dapat digunakan oleh user untuk melakukan play/stop song, next song dan previous song. Spotify Controller ini terhubung langsung dengan akun spotify user. Akun spotify yang digunakan harus berupa akun spotify premium. Mirafy juga dapat menampilan graphic design/ graphic art dari lagu termasuk dengan menit dan detik dari lagu yang sedang didengarkan.


F. Mirafy Headline News

Mirafy memiliki informasi headline news yang ditarik langsung dari API CNN. Headline news yang tertera pada Mirafy merupakan news paling update yang ada pada CNN.


G. Mirafy RGB Lighting

Mirafy memiliki RGB Lighting pada bagian belakang panel. RGB lighting ini berfungsi untuk menciptakan ambience light ketika Mirafy digantung pada dinding. RGB Lighting dapat diatur warna dan kecerahannya sesuai dengan preferensi user. Pengaturan dapat dilakukan melalui aplikasi Mirafy App.


H. Mirafy Seemode

Pada bagian bawah Mirafy, ada button trasnparant yang berfungsi untuk menghilangkah seluruh tampilan informasi yang ada pada Mirafy. Hal ini ditujukan jika user ingin menggunakan bagian cermin dari Mirafy secara keseluruhan.


Untuk bisa melakukan hubungan interaktif dengan user, mirafy dilengkapi dengan Infra Red Frame yang dapat mendeteksi adanya sentuhan tangan dari user pada cermin. Agar tetap pada fungsinya sebagai cermin, Mirafy menggunakan two-way mirror yang memungkinkan user dapat bercermin sekaligus melihat informasi yang ada pada cermin. Semua komponen-komponen pada Mirafy akan ditenagai dengan power supply adaptor 12V 5A dan AC 220V 50Hz, serta dibungkus ke dalam frame berukuran 53,8 cm x 33,2 cm x 6,4cm (Panjang x tinggi x kedalaman)



Supplies

Untuk membuat Mirafy kami menggunakan :

Alat :

  • Solder
  • Penghisap Timah
  • Wire Stripper
  • Tang potong
  • Tang potong lancip
  • Obeng
  • Testpen
  • Cutter
  • Amplas
  • Kikir
  • Bor
  • Palu
  • Mini Grinder
  • Router / Trimmer/ Profiler
  • Circular Saw
  • Mata bor 0.8mm, 1mm, 5mm
  • Super Glue
  • 3D printer
  • Multimeter
  • Setrika


Bahan :

Mikrokontroller

  • Raspberry Pi 4 Ram 4GB
  • NodeMCU ESP32S 38 Pin


Module & Komponen


Bahan lainnya :

  • Kayu MDF/ Medium Density Fiberboard tebal 12mm
  • Akrilik hitam 3mm
  • Akrilik bening 2mm
  • Kabel Jumper
  • Kabel AWG 22
  • Kabel micro HDMI male to HDMI female
  • Lem Aibon / Lem Kuning
  • Paku triplek 1 mm
  • Vinyl / Pelapis warna hitam
  • PLA untuk 3D print
  • Timah
  • Tape VBH 3M


Software :

  • Visual Studio Code (Platform.io ; flutter)
  • EasyEDA (Schematic & PCB Design)
  • Solid Works (3D Case Design)
  • Firebase (Realtime Database)
  • eqmx.io (MQTT Cloud)
  • mqtt.cool (MQTT Client monitoring)

Step 1: Blok Diagram

Metodologi

Blok diagram diatas menunjukkan bagaimana alur kerja dari "Mirafy". "Mirafy" memiliki 2 bagian yaitu Hardware dan Software. Dari sisi hardware kami menggunakan Raspberry Pi 4B Ram 4GB sebagai mikrokontroler utama dan NodeMCU ESP32S 38 pin sebagai mikrokontroler pendamping. Untuk sumber daya kami menggunakan tegangan AC 220V. Sumber daya ini akan dibagi menjadi 3 tegangan. Pertama ,tegangan 220v akan langsung menuju module machine dari monitor untuk menghidupkan layar. Sebagai pencegahan, kami memberikan fuse atau sekring 4A. Hal ini ditujukan agar tidak terjadi kerusakan pada komponen Mirafy ketika terjadi korsleting listrik. Kedua, tegangan 220v akan masuk ke module power supply 12V 5A. Tegangan 12v akan digunakan untuk menghidupkan WS2815 dan mini fan 12v. Mini dan digunakan untuk mencegah Raspberry dari kondisi overheat. Ketiga, tegangan 12v akan masuk menuju step down XL4015 dan diturunkan menjadi 5v. Tegangan 5v ini yang digunakan untuk menghidupkan NodeMCU ESP32S 38 pin, Raspberry Pi, sensor DHT11, sensor MQ7, IR Frame dan lainnya. Untuk IR Frame, tegangan 5v akan langsung diambil dari 5v USB Port Raspberry Pi. Sementara itu, untuk data, semua data seperti sensor dan WS2815 akan diatur sepenuhnya oleh ESP32S. Setelah data sensor (DHT11 dan MQ7) diolah oleh ESP32S, barulah data akan dikirimkan ke Raspberry Pi melalui MQTT Cloud. Meskipun berada di tempat yang berdekatan, hubungan antara Raspberry Pi dan ESP32S tidak menggunakan komunikasi serial (rx/tx). Hal ini dimaksudkan guna mencegah adanya error serial dari ESP32S itu sendiri. Untuk bisa melakukan hubungan interaktif dengan user, Mirafy dilengkapi dengan Infra Red Frame yang dapat mendeteksi adanya sentuhan tangan dari user pada cermin. IR Frame akan bertindak layaknya mouse pada komputer. IR Frame dan Raspberry Pi akan terhubung melalui kabel USB 2.0. Semua data input dari IR Frame akan sepenuhnya diatur oleh Raspberry Pi.


Dari sisi software kami menggunakan Flutter berbasis Dart untuk membuat Mirafy App. Untuk media penyimpanan dan media monitoring kami menggunakan Google Firebase RTDB. Sesuai dengan blok diagram diatas, Mirafy App akan mengirimkan data RGB ke ESP32S. Mirafy App pada project ini ditujukan untuk mengatur warna dan kecerahan pada WS2815. Mirafy App dibuat untuk memberikan kebebasan kostumisasi pada user sesuai dengan referensi warna user masing-masing. Selain Mirafy App, untuk membuat tampilan UI/UX pada Raspberry Pi, kami menggunakan node JS. Tampilan pada Mirafy sebenarnya dapat dikatakan sebagai sebuah "aplikasi", hanya saja "aplikasi" ini dibuat seolah-olah seperti Operating System. Jadi ketika user pertama kali menghidupkan Mirafy, Mirafy tidak akan menampilkan layar utama dari raspbian OS. Mirafy akan langsung menjalankan "aplikasi" ini sehingga hanya terlihat layar hitam dengan widget-widget berwarna putih.

Step 2: Skematik

Gambar diatas merupakan skematik dari Expansion Board ESP32S MIrafy. Untuk membuat skematik kami menggunakan EasyEDA. Skematik kami buat dengan koneksi "wire" yang seminimum mungkin. Hal ini dilakukan untuk mempermudah kami melakukan checking dan routing semisal terjadi kesalahan pada Skematik.

Step 3: PCB Design

Setelah memastikan tidak ada yang salah pada skematik, maka kami lanjut membuat design PCB. Expansion Board ESP32S pada Mirafy memiliki model PCB Single Layer. Model PCB ini sangat memudahkan kami saat melakukan etching karena tidak perlu melakukan pengukuran dan peletakkan kertas foto secara presisi dan akurat. Penggunaan Single layer pada design kami juga dipengaruhi oleh adanya faktor tempat (Space). Pada casing Mirafy, terdapat tempat (space) yang cukup luas untuk meletakkan PCB rancangan kami. Jalur yang kami gunakan juga tidak terlalu kecil. Jalur paling kecil yang terdapat pada design diatas adalah 1,1mm. Kami juga menggunakan copper layer/ copper pour pada design kami. Hal ini ditujukan untuk menyeimbangkan panas yang dihasilkan oleh NodeMCU ESP32S.

Step 4: Print, Etching, Drilling & Soldering

Setelah selesai men-design PCB, kami mencetak design PCB tersebut menggunakan kertas Art paper. Jenis kertas Art paper yang kami gunakan adalah Art Paper 80 GSM. GSM menyatakan gramasi pada kertas art paper, semkain besar gramasinya maka akan semakin tebal kertasnya. Karena kita bertujuan untuk mencetak hasil print design PCB ke papan PCB, maka kita harus menggunakan kertas Art Paper setipis mungkin (Gramasi kecil). Setelah mencetak design pada kertas art paper, kita harus memotong papan PCB sesuai dengan ukuran design PCB yang telah dibuat. Sebisa mungkin sisakan jarak teolaransi 1mm dari Outline Board PCB.

Setelah papan PCB selesai diukur dan dipotong, maka selanjutnya kami melakukan proses setrika. Proses ini memakan waktu kurang lebih 10 menit. Proses setrika kami cukup cepat karena kami menggunakan Art paper dengan gramasi 80 GSM. Selesai setrika, kami dinginkan papan PCB sekitar 10 menit. Lalu, kertas foto kami angkat. Jika proses setrika dilakukan secara benar, maka tinta hitam yang ada kertas foto akan menempel secara sempurna. Semisal tinta pada kertas foto ada yang belum menempel dengan sempurna, bisa kita tebalkan dengan spidol OHP.

Kemudian, kami melakukan proses etching. Untuk etching PCB Mirafy, kami menggunakan bahan kimia Feriklorida (FeCl3). Proses etching memakan waktu kurang lebih 5-10 menit. Selesai di etching, kami melubangi papan PCB sesuai dengan design PCB yang telah kami buat.

Setelah PCB Dilubangi, kami langsung melakukan proses soldering. Kami men-solder komponen-komponen berikut ke PCB :

  • NodeMCU ESP32S 38 Pin
  • Adjustable Step Down Module XL4015 with display
  • 4 pcs JST XH 2.54mm female & male 3 pin
  • 4 pcs JST XH 2.54mm female & male 2 pin
  • 10 pcs KF350 Terminal 3 pin
  • 4 pcs KF350 Terminal 2 pin
  • 1 pcs USB Port
  • 2 pcs Resistor 2200Ω
  • 2 pcs Resistor 0Ω


Step 5: Frame, Case, Mirror

Untuk menjaga semua komponen-komponen yang ada pada mirafy, kami membuatkan sebuah case yang terbuat dari kayu plywood dan akrilik. Case kami terdiri dari 3 layer :

Layer 1

Layer 1 berupa frame front panel yang berfungsi untuk memperkuat layer 2 sekaligus menjaga agar monitor tidak terjatuh ke depan.Frame ini tersusun dari 4 buah akrilik 3mm berwarna hitam yang dipotong membentuk trapesium. Ukuran yang digunakan untuk membuat frame front panel adalah

  • 2x Trapesium sama sisi 33.2 cm x 27.2 cm x 3 cm (Sisi panjang x sisi pendek x tinggi)
  • 2x Trapesium sama sisi 53,8 cm x 47,8 cm x 3 cm (Sisi panjang x sisi pendek x tinggi)

Keempat bagian dipotong dengan kemiringan 45° dan di "adu manis" agar terlihat rapi.


Layer 2

Layer 2 berupa frame fondasi yang menyongsong semua beban yang ada pada mirafy. Frame ini tersusun dari 4 buah plywood 12mm yang dipotong dan dipaku dengan metode wood joint Basic Butt (https://www.thesprucecrafts.com/wood-joinery-types-3536631). Ukuran yang digunakan untuk membuat frame fondasi adalah

  • 2x balok 32 cm x 5,9 cm x 1,2 cm (Panjang x lebar x tinggi/tebal)
  • 2x balok 52,6 cm x 5,9 cm x 1,2 cm (Panjang x lebar x tinggi/tebal)

Setiap bagian kami pastikan membentuk sudut 90° pada setiap sisinya. Jika sudut tidak membentu siku atau 90°, maka kemungkinan besar ada potongan yang miring pada keempat bagian tersebut. Setelah dipotong, keempat bagian tersebut kami router / trimmer. Hal ini bertujuan untuk mencegah adanya kemiringan pada bidang potong 12mm. Dengan router/trimmer, kita bisa memperbaiki potongan-potongan yang tidak rapi atau tidak rata. Setelah di-trimmer, kami melakukan amplas pada keempat bagian tersebut. Kami amplas hingga pori-pori pada kayu MDF samar-samar terlihat. Setelah semua selesai, kami memaku dan mengelem keempat bagian tersebut dengan metode Basic Butt. Kemudian kami keringkan selama 24 jam.

Setelah proses pengeringan 24 jam, kami bisa melanjutkan ke tahap pengeleman vinyl. Pengeleman ini dilakukan dengan menggunakan lem aibon / lem kuning. Pemberian vinyl pada frame fondasi dimaksudkan untuk tujuan estetika. Tidak berpengaruh terhadap kekuatan frame fondasi.


Layer 3

Layer 3 berupa frame backpanel yang menutupi semua komponen Mirafy. Frame back panel menjadi tempat pembuangan panas bagi Raspberry Pi, ESP32S, dan juga module machine monitor. Frame backpanel terbuat dari akrilik bening 2 mm dengan ukuran 53,9 cm x 33,2 cm. Kami menggunakan akrilik bening agar cahaya dari WS2815 yang ditempelkan pada layer 2 dapat memudar dan memancar ke luar. Agar udara panas dapat keluar dari komponen-komponen Mirafy, maka kami melubangi bagian atas Raspberry Pi, ESP32S serta Module monitor dengan pola-pola tertentu. Selain menambah fungsionalitas, lubang-lubang yang membentuk pola dapat meningkatkan estetika dari Mirafy.


Setelah semua layer telah siap, maka kami siap untuk menyusun layer-layer tersebut menjadi sebuah case. Penyusunan dilakukan mulai dari layer 1 & 2. Untuk menciptakan case yang kokoh, maka layer 1 dan 2 kami lem menggunakan lem aibon / lem kuning. Baru setelahnya, kami memasukkan semua komponen-komponen Mirafy ke dalam layer 1 & 2 yang sudah berbentuk case (seperti pada gambar). Perekatan komponen-komponen Mirafy pada Backplate monitor dilakukan dengan menggunakan tape VBH 3M. Untuk menambah penguatan, kami juga menggunakan mounting di beberapa sisi backplate monitor. Hal tersebut kami lakukan untuk mencegah monitor jatuh ke arah belakang.

Step 6: 3D Design & 3D Print

Sebelum tahap pembuatan, kami sudah memiliki design 3d frame & case. 3D design diatas merupakan master plan atau gambaran singkat jauh sebelum kami memulai tahap pembuatan. Selain itu, kami juga memiliki design 3D Print untuk case sensor DHT11 dan MQ7. Untuk File .STL dan .SLDPRT (Solidworks File) Case Mirafy bisa di download pada attachment dibawah ini

Step 7: Setup & Upload Code

SETUP & UPLOAD CODE RASPBERRY PI


Download Raspberry Pi OS

Hubungkan micro SD card dengan PC yang akan digunakan untuk setup. Download dan jalankan Raspberry Pi Image dari https://www.raspberrypi.com/software/. Dalam Raspberry Pi Imager, pilih device Raspberry Pi 4. Pilih operating system Raspberry Pi OS 64 bit. Pilih storage tempat instalasi OS tersebut, yaitu micro SD card yang telah dihubungkan. Click continue hingga OS telah di install dalam micro SD card.


Setup Dalam Device

Masukkan micro SD card ke dalam device Raspberry Pi. Login menggunakan username default “pi” dan password default “raspberry” atau sesuai pengaturan ketika proses download Raspberry Pi OS.


Instalasi Magic Mirror

Download Node.js versi terbaru dari https://nodejs.org/en. Pastikan Node.js sudah terinstalasi dengan benar dengan menjalankan command “npm version” dalam terminal. Setelah sudah memastikan Node.js terinstalasi, jalankan command “git clone https://github.com/MagicMirrorOrg/MagicMirror” dalam terminal untuk clone Magic Mirror. Masuk ke dalam folder Magic Mirror, “cd MagicMirror/”, lalu install dengan “npm run install-mm”. Buat copy dari file config sample, “cp config/config.js.sample config/config.js”, config file ini adalah file yang digunakan untuk mengatur modules yang akan di install dalam Magic Mirror. Jalankan aplikasi dengan “npm run start” untuk melihat keberhasilan instalasi Magic Mirror.


Instalasi Magic Mirror Modules

Untuk menambahkan modules ke dalam Magic Mirror, masuk ke dalam directory /Modules, “cd MagicMirror/Modules”. Clone module yang diinginkan, seperi MMM-Spotify, “git clone https://github.com/skuethe/MMM-Spotify”. Masuk ke dalam folder module tersebut, “cd MMM-Spotify” lalu install module tersebut “npm install”. Setelah berhasil diinstall, ikuti langkah-langkah dari tiap module yang tertera dalam github masing-masing module untuk cara pemakaian dan pengaturan module tersebut.


Spotify Controller : https://github.com/skuethe/MMM-Spotify

MQTT : https://github.com/javiergayala/MMM-mqtt

Button Transparent : https://github.com/EbenKouao/MMM-SmartTouch

Notification Mirroring : https://github.com/basknol/MMM-PushBulletNotifications

Config.js untuk Mirafy dapat dilihat pada link : https://drive.google.com/drive/folders/1ZtH5WeHU96JKjgF5NKJBuVTrI6Z4Ygfr?usp=sharing


SETUP & UPLOAD CODE ESP32S


Platform Programming yang kita gunakan untuk "Mirafy" adalah Visual Code Studio (VCS). Untuk Hardware kami menggunakan platform.io pada VCS. Untuk Software kami menggunakan extension flutter & dart pada VCS.

Di dalam main.cpp kita harus menambahkan beberapa header dan variable

#include <Arduino.h>
#include <Fastled.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <PubSubClient.h>
#include <MQUnifiedsensor.h>
#include "FirebaseESP32.h"
#include "addons/TokenHelper.h"
#include "addons/RTDBHelper.h"
#define WIFI_SSID "coba"
#define WIFI_PASSWORD  "apaituitu"
#define MQTT_HOST "broker.emqx.io"
#define MQTT_PORT 1883
#define MQTT_PUB_TEMP "/SmartMirrorMirafySemester5"
#define MQTT_PUB_HUM "/SmartMirrorMirafySemester5"
#define API_KEY "AIzaSyCKgIPGxmkOqnsPX-3r4jnpY6o082KkCEY"
#define DATABASE_URL "https://smart-mirror-4f0dd-default-rtdb.asia-southeast1.firebasedatabase.app/"

#define NUM_LEDS 60
#define DATA_WS2815 17
#define DHTTYPE DHT11
#define DHTPIN 16
#define Board ("ESP-32")
#define Pin (32)
#define Type ("MQ-7")
#define Voltage_Resolution (3.3)
#define ADC_Bit_Resolution (12)
#define RatioMQ2CleanAir (9.83)


int redValue = 0;
int greenValue = 0;
int blueValue = 0;
int timer_set = 180;
bool trigger = true;
bool ledValue;
float temp;
float hum;
bool signupOK = false;
String message;
unsigned long previousMillis = 0;
unsigned long interval = 10000;
volatile bool dataChanged = false;
CRGBArray<NUM_LEDS> leds;
FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;
FirebaseJson json;
FirebaseData data;
FirebaseData stream;
FirebaseJsonData jsonData;
DHT dht(DHTPIN, DHTTYPE);
WiFiClient espClient;
PubSubClient client(espClient);
MQUnifiedsensor MQ7(Board, Voltage_Resolution, ADC_Bit_Resolution, Pin, Type);

Full Code Hardware + Library & Full Code Software Mirafy App dapat di-download dari link Google Drive pada Instructable ini

Hardware + Software : https://drive.google.com/drive/folders/1ARKhgA48EoGhWGWLTzeRopx3Ly8H0IRJ?usp=drive_link

Step 8: Video Demonstrasi & Penjelasan Cara Kerja

Video Demonstrasi tambahan + dokumentasi bisa diakses juga pada link google drive berikut :

https://drive.google.com/drive/folders/1ARKhgA48EoGhWGWLTzeRopx3Ly8H0IRJ?usp=drive_link

Step 9: Evaluasi & Kesimpulan, Referensi

Jika dilihat dari pameran CEAFO tanggal 20-23 Desember 2023, Mirafy sebenarnya memiliki potensi untuk bisa berkembang baik untuk environment kecil seperti smart home ataupun environment besar seperti industrial. Hanya saja mungkin dibutuhkan target / market pasar yang spesifik untuk Mirafy. Dari segi teknis, meskipun dikatakan memiliki potensi, namun prototype 1 Mirafy masih butuh banyak perbaikan. Sebagian besar user yang datang ke booth Mirafy, memberikan masukkan untuk menambahkan kamera pendeteksi wajah (Image Recognition). Mirafy juga masih perlu untuk ditambahkan sertifikasi tahan air, apalagi melihat peruntukannya digunakan pada ruangan basah (seperti kamar mandi). Jaringan juga terkadang menjadi masalah bagi Mirafy. Dari segi networking, Mirafy masih butuh dikembangkan lebih jauh lagi. Dari segi estetika juga demikian, Mirafy masih terlalu tebal dimensinya untuk digantung di dinding suatu ruangan. Cermin pada prototype kali ini juga patut menjadi perhatian / concern utama bagi kami. Mungkin akan lebih menarik dan lebih bagus jika kami menggunakan cermin, bukan akrilik dilapis dengan kaca film seperti saat ini.


  • Kouao, Eben. "Smart Mirror Touchscreen (with Face ID) using Raspberry Pi 4" YouTube, diunggah oleh Eben Kouao, 20 Mei 2020, https://www.youtube.com/watch?v=RWjvJq4Zabk&ab_channel=EbenKouao. Diakses pada 3 Desember 2023.
  • Wicked Random. "How to make a DIY Smart Mirror" YouTube, diunggah oleh Wicked Random, 16 Maret 2023, https://www.youtube.com/watch?v=xmmBWdNWvY4&ab_channel=WickedRandom. Diakses pada 6 Desember 2023.
  • The Modern Rogue. "Building a 1-Way/2-Way/Transparent Mirror" YouTube, diunggah oleh The Modern Rogue, 31 Desember 2020, https://www.youtube.com/watch?v=gZtchpspvp8&t=1159s&ab_channel=TheModernRogue. Diakses pada 10 Desember 2023.
  • Migo Glass. "One way mirror, two-way mirror, one-way glass, half-silvered mirror, and semi-transparent mirror." YouTube, diunggah oleh Migo Glass, 6 Januari 2023, https://www.youtube.com/watch?v=sztjsGgp66U&ab_channel=MigoGlass. Diakses pada 10 Desember 2023.