สารบัญ:

กระจกวิเศษพร้อมข่าว พยากรณ์อากาศ นาฬิกาปลุก ตัวจับเวลา และ Todolist: 9 ขั้นตอน
กระจกวิเศษพร้อมข่าว พยากรณ์อากาศ นาฬิกาปลุก ตัวจับเวลา และ Todolist: 9 ขั้นตอน

วีดีโอ: กระจกวิเศษพร้อมข่าว พยากรณ์อากาศ นาฬิกาปลุก ตัวจับเวลา และ Todolist: 9 ขั้นตอน

วีดีโอ: กระจกวิเศษพร้อมข่าว พยากรณ์อากาศ นาฬิกาปลุก ตัวจับเวลา และ Todolist: 9 ขั้นตอน
วีดีโอ: เฮอร์ไมโอน้อง เวอร์ชั่นนี้ ... น่ารักเกินปุยมุ้ย ❤️ 「TEASER」 2024, ธันวาคม
Anonim
กระจกวิเศษพร้อมข่าว พยากรณ์อากาศ นาฬิกาปลุก จับเวลา และ Todolist
กระจกวิเศษพร้อมข่าว พยากรณ์อากาศ นาฬิกาปลุก จับเวลา และ Todolist
กระจกวิเศษพร้อมข่าว พยากรณ์อากาศ นาฬิกาปลุก จับเวลา และ Todolist
กระจกวิเศษพร้อมข่าว พยากรณ์อากาศ นาฬิกาปลุก จับเวลา และ Todolist

กระจกวิเศษเป็นกระจกส่องทางเดียวแบบพิเศษที่มีจอแสดงผลอยู่ด้านหลัง จอแสดงผลที่เชื่อมต่อกับ Raspberry Pi แสดงข้อมูล เช่น สภาพอากาศ อุณหภูมิห้อง เวลา วันที่ รายการสิ่งที่ต้องทำ และอื่นๆ อีกมากมาย คุณสามารถเพิ่มไมโครโฟนและตั้งค่าผู้ช่วยอัจฉริยะได้ ความเป็นไปได้ไม่มีที่สิ้นสุด

โครงการนี้อาจมีราคาแพง หนึ่งในชิ้นส่วนที่แพงที่สุดที่คุณต้องการคือจอแสดงผล นั่นเป็นเหตุผลที่ฉันรีไซเคิลจอแสดงผลจากแล็ปท็อปเครื่องเก่า อย่างไรก็ตาม ฉันขอแนะนำให้ใช้จอแสดงผลขนาดใหญ่ สว่าง และคอนทราสต์สูงเพื่อสร้างโปรเจ็กต์นี้ มันคุ้มค่า.

กระจกที่ฉันทำมีคุณสมบัติเหล่านี้:

  • ข่าวจากฟีด RSS ที่ผู้ใช้เลือก
  • สภาพอากาศ
  • อุณหภูมิภายใน
  • ระบบเตือนภัย
  • ระบบจับเวลา
  • todolist
  • ผู้ใช้หลายคน: สีของแถบนำทางและแหล่งข่าวจะเปลี่ยนไปตามการเลือกผู้ใช้

เสบียง

ในการสร้างกระจกวิเศษนี้ คุณจะต้อง:

  • กระจกทางเดียว
  • ไม้
  • ราสเบอร์รี่ Pi
  • การ์ด Micro SD (8+GB)
  • เขียงหั่นขนม
  • ลำโพง 20W สองตัว
  • MAX9744 แอมพลิฟายเออร์ 20W เพื่อจ่ายไฟให้กับลำโพง
  • 1m 30-led WS2801 แถบนำแสง
  • DS18B20 เซ็นเซอร์อุณหภูมิ 1 สาย
  • HC-SR501 เซ็นเซอร์อินฟราเรด
  • เครื่องเข้ารหัสแบบหมุน
  • จอภาพหรือแล็ปท็อปเครื่องเก่า

    หากคุณกำลังใช้จอแสดงผลแล็ปท็อปเครื่องเก่า คุณจะต้องซื้ออะแดปเตอร์แสดงผลสำหรับแล็ปท็อป คุณสามารถรับสิ่งเหล่านี้ได้จาก AliExpress, Ebay หรือ Amazon เพียงค้นหาหมายเลขซีเรียลของจอแสดงผลของคุณ

คุณจะต้องมีส่วนประกอบเล็กๆ ดังต่อไปนี้:

  • ไดโอด
  • ตัวต้านทาน 4.7k โอห์ม
  • ตัวต้านทาน 470 โอห์ม
  • สายเชื่อมต่อเซ็นเซอร์กับ Raspberry Pi

และอุปกรณ์จ่ายไฟเหล่านี้:

  • 5V 2A เพื่อจ่ายไฟให้กับแถบนำแสง
  • 12V 2A เพื่อจ่ายไฟให้กับจอแสดงผล
  • 12V 2A เพื่อจ่ายไฟให้กับเครื่องขยายเสียง
  • 5.1V 3A เพื่อจ่ายไฟให้กับ Raspberry Pi (ใช้แหล่งจ่ายไฟ RPi อย่างเป็นทางการ)

ขั้นตอนที่ 1: การติดตั้ง Raspbian

จอแสดงผลและส่วนประกอบทั้งหมดด้านหลังกระจกขับเคลื่อนโดย Raspberry Pi คุณจะต้องติดตั้ง Raspbian ซึ่งเป็นระบบปฏิบัติการเริ่มต้นของ Pi ลงในการ์ด SD

  1. ดาวน์โหลด Win32 Disk Imager ผู้ใช้ Linux และ MacOS สามารถใช้ Etcher ได้
  2. ดาวน์โหลดรูปภาพ Raspbian ล่าสุดจากเว็บไซต์ Raspberry Pi เลือกตัวเลือก 'Raspbian Buster พร้อมเดสก์ท็อป'
  3. เปิด Win32 Disk Imager และเขียนไฟล์ภาพลงในการ์ด SD

ตอนนี้การ์ด SD ใกล้จะพร้อมแล้ว เราแค่ต้องแน่ใจว่าเราสามารถเชื่อมต่อกับ Raspberry Pi จากระยะไกลได้:

  1. ไปที่พาร์ติชั่น 'บูต' ของการ์ด SD โดยใช้ตัวสำรวจไฟล์ของระบบ
  2. เพิ่มไฟล์ชื่อ 'ssh' โดยไม่มีนามสกุล
  3. เพิ่ม 'ip=169.254.10.1' (ไม่มีเครื่องหมายคำพูด) ต่อท้ายบรรทัดแรกของ 'cmdline.txt'

นำการ์ด SD ออกจากคอมพิวเตอร์อย่างปลอดภัย ใส่ลงใน Raspberry Pi แล้วเปิดเครื่อง

ขั้นตอนที่ 2: การกำหนดค่า WiFi

ในการสแกนเครือข่าย WiFi ให้รันคำสั่งต่อไปนี้:

sudo iw dev wlan0 scan | grep SSID

คุณจะเห็นรายการ SSID ทั้งหมดที่ Raspberry Pi ของคุณสามารถเชื่อมต่อได้

สร้างรายการเครือข่ายด้วยรหัสผ่านที่เข้ารหัสโดยดำเนินการคำสั่งต่อไปนี้และป้อนรหัสผ่านเครือข่ายของคุณ:

wpa_passphrase "YOUR_NETWORK_SSID_HERE"

ตอนนี้วางผลลัพธ์ของคำสั่งดังกล่าวในไฟล์นี้:

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

ตอนนี้รีบูต Raspberry Pi คุณจะเชื่อมต่อกับอินเทอร์เน็ต

ขั้นตอนที่ 3: การติดตั้งและกำหนดค่าซอฟต์แวร์

สำหรับโครงการนี้ คุณจะต้องดาวน์โหลดแพ็คเกจเหล่านี้ไปยัง Raspberry Pi:

pip3 ติดตั้ง mysql-connector-python flask-socketio flask-cors gevent gevent-websocket adafruit-circuitpython-ws2801 adafruit-circuitpython-max9744

sudo apt ติดตั้ง apache2 mariadb-server

เพิ่มบรรทัดนี้ที่ด้านล่างของ /boot/config.txt เพื่อเปิดใช้งานเสียงผ่านพิน GPIO 12 (ซ้าย) และ 13 (ขวา):

dtoverlay=audremap

ใช้ raspi-config เพื่อตั้งค่าความละเอียดของจอแสดงผลและเปิดใช้งาน i2c, One-wire และ SPI ตั้งค่าวิธีการบู๊ตเป็น 'Desktop Autologin' ด้วย

ใน /etc/xdg/lxsession/LXDE-pi/autostart เพิ่มสิ่งต่อไปนี้:

@xset s off@xset -dpms@xset s noblank@chromium-browser --kiosk 127.0.0.1/mirror.html # โหลดโครเมียมหลังจากบู๊ตและเปิดเว็บไซต์ในโหมดเต็มหน้าจอ

ซึ่งจะเปิดเบราว์เซอร์ในหน้าที่ถูกต้องเมื่อโหลด LXDE (สภาพแวดล้อมเดสก์ท็อปของ Raspbian) ลบหรือแสดงความคิดเห็นในบรรทัด @xscreensaver เพื่อปิดการใช้งานสกรีนเซฟเวอร์

ที่เก็บ Github

โคลนที่เก็บ GitHub ของฉันและใส่เนื้อหาของโฟลเดอร์ส่วนหน้าใน /var/www/html เราต้องการโฟลเดอร์แบ็กเอนด์ในภายหลัง

ขั้นตอนที่ 4: ฐานข้อมูล

ฐานข้อมูล
ฐานข้อมูล

นี่คือสคีมาฐานข้อมูล ปรับให้เหมาะกับ 3NF มันเก็บการเตือนภัย แหล่งข่าว ผู้ใช้ ข้อมูลเซ็นเซอร์ เสียง และรายการสิ่งที่ต้องทำ

  1. ใช้ MySQL Workbench เพื่อเข้าถึงเซิร์ฟเวอร์ฐานข้อมูลของ pi (mariadb)
  2. สร้างฐานข้อมูลโดยใช้สคีมานี้และแทรกข้อมูลของคุณเอง
  3. แก้ไข config.py ในโฟลเดอร์แบ็กเอนด์ของที่เก็บ GitHub ของฉัน: เปลี่ยนชื่อฐานข้อมูล ชื่อผู้ใช้ที่คุณเลือก และรหัสผ่าน
  4. แก้ไข app.py และเปลี่ยน URL ของ OpenWeatherMap API เป็นของคุณเอง (สร้างของคุณเองที่นี่)

ขั้นตอนที่ 5: การสร้างกรอบกระจก

การสร้างกรอบกระจก
การสร้างกรอบกระจก
การสร้างกรอบกระจก
การสร้างกรอบกระจก
การสร้างกรอบกระจก
การสร้างกรอบกระจก

ฉันสร้างกรอบรอบกระจกโดยใช้ข้อต่อ Mitre ที่มีมุมโลหะ แผ่นไม้ที่ฉันใช้มีความหนา 18 มม. และกว้าง 10 ซม. ในภาพ คุณสามารถดูขนาดที่แน่นอนสำหรับกระจกขนาด 45 ซม. x 60 ซม. ด้านหลังกระจกเป็นอุปกรณ์อิเล็กทรอนิกส์ทั้งหมด ดังนั้น ตรวจสอบให้แน่ใจว่าแผ่นไม้ของคุณกว้างพอที่จะใส่ได้

ฉันใช้ตะขอโลหะติดลำโพงเข้ากับกรอบ วิธีนี้จะไม่วางบนกระจก ช่วยลดแรงสั่นสะเทือนที่กระจก

ขั้นตอนที่ 6: อุปกรณ์อิเล็กทรอนิกส์

เครื่องใช้ไฟฟ้า
เครื่องใช้ไฟฟ้า
เครื่องใช้ไฟฟ้า
เครื่องใช้ไฟฟ้า

ทำตามแผนผังด้านบนเพื่อสร้างวงจร ฉันใช้เทปติดอุปกรณ์อิเล็กทรอนิกส์กับกระจก

ขั้นตอนที่ 7: ติดตั้งอุปกรณ์อิเล็กทรอนิกส์ในเฟรม

การติดตั้งอุปกรณ์อิเล็กทรอนิกส์ในเฟรม
การติดตั้งอุปกรณ์อิเล็กทรอนิกส์ในเฟรม
การติดตั้งอุปกรณ์อิเล็กทรอนิกส์ในเฟรม
การติดตั้งอุปกรณ์อิเล็กทรอนิกส์ในเฟรม

หลังจากติดลำโพงเข้ากับขอเกี่ยวโลหะที่ด้านบนแล้ว ให้เพิ่มอุปกรณ์อิเล็กทรอนิกส์ที่เหลือไปที่กระจก ฉันยังวางแผ่นไม้บาง ๆ ไว้ระหว่างกระจกและอุปกรณ์อิเล็กทรอนิกส์ ดังนั้นแทนที่จะติดเทปอุปกรณ์อิเล็กทรอนิกส์กับกระจก ฉันติดเทปอุปกรณ์อิเล็กทรอนิกส์เข้ากับแผ่นไม้ หน้าจอแล็ปท็อปเป็นแผงสีขาวที่ด้านล่างของกระจก

ดังที่คุณเห็นในภาพ ฉันเสียบอะแดปเตอร์แปลงไฟทั้งหมดไว้ในเต้ารับแบบหลายซ็อกเก็ต จึงมีสายเคเบิลเพียงเส้นเดียวที่หลุดออกจากเฟรม นี่คือเหตุผลที่ฉันต้องการแผ่นไม้ที่กว้างพอ (10 ซม.)

ฉันเจาะรูกว้าง 2 ซม. ที่ด้านขวาของกระจกเพื่อให้ตัวเข้ารหัสแบบหมุนสอดเข้าไปได้ สิ่งนี้ช่วยให้คุณเปลี่ยนระดับเสียง (เปิด) หรือปิดตัวจับเวลาและการเตือน (กด) ได้อย่างง่ายดาย

ฉันเจาะรู 8 มม. สองรูที่ด้านใดด้านหนึ่งของกระจกเพื่อกำหนดเส้นทางสายเคเบิลสำหรับแถบไฟ LED

ขั้นตอนที่ 8: เสร็จสิ้นการสัมผัส

สัมผัสสุดท้าย
สัมผัสสุดท้าย
สัมผัสสุดท้าย
สัมผัสสุดท้าย
สัมผัสสุดท้าย
สัมผัสสุดท้าย

ฉันเพิ่มผ้าสีดำที่ด้านหลังกระจกเพื่อซ่อนอุปกรณ์อิเล็กทรอนิกส์ นอกจากนี้ยังทำให้ภายในเคสมืดลง ซึ่งทำให้มองเห็นสายไฟผ่านกระจกได้ยากขึ้นมาก ฉันติดมันด้วยเวลโคร ทำให้เข้าถึงอุปกรณ์อิเล็กทรอนิกส์ได้ง่ายขึ้นเมื่อจำเป็น

คัดลอกโฟลเดอร์แบ็กเอนด์จากที่เก็บ Github ของฉันไปยังที่ที่คุณจะจำได้

เพิ่มหน่วย systemd เพื่อให้สคริปต์ python ทำงานเมื่อบูต:

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

[หน่วย]

Description=บริการสำหรับสคริปต์ python magicmirror After=network.target [Service] ExecStart=/usr/bin/python3 -u app.py WorkingDirectory=/home/pi/magicMirror/Backend StandardOutput=inherit StandardError=inherit Restart=always User =pi [ติดตั้ง] WantedBy=multi-user.target

เปลี่ยน 'WorkingDirectory' เป็นไดเร็กทอรีแบ็กเอนด์ และเปลี่ยน User เป็นชื่อผู้ใช้ของคุณเอง

ขั้นตอนที่ 9: การโต้ตอบกับ Webapp

การโต้ตอบกับ Webapp
การโต้ตอบกับ Webapp
การโต้ตอบกับ Webapp
การโต้ตอบกับ Webapp
การโต้ตอบกับ Webapp
การโต้ตอบกับ Webapp
การโต้ตอบกับ Webapp
การโต้ตอบกับ Webapp

ท่องไปยังที่อยู่ IP (ซึ่งอยู่บนจอแสดงผล) คุณจะเห็นเว็บไซต์ที่เน้นมือถือเป็นหลักพร้อมคุณสมบัติดังต่อไปนี้:

  • กราฟอุณหภูมิแบบโต้ตอบได้
  • เวลา. เมื่อตัวจับเวลาทำงาน คุณจะเห็นการนับถอยหลังบนกระจกด้วย
  • ระบบเตือนภัย
  • แท็บการตั้งค่า ซึ่งคุณสามารถแก้ไขผู้ใช้ แหล่งข่าว และระดับเสียงของลำโพง
  • ช่างทำผม รายการสิ่งที่ต้องทำจะปรากฏบนกระจก

Mirror.html คือหน้าที่แสดงบนกระจกวิเศษ ฉันเพิ่มตัวอย่างในภาพด้านบน

แนะนำ: