Tham dự Tech Lounge

Tham dự Tech Lounge


Tự làm "khung tranh thông minh" với Raspberry Pi, không cần code, quản lý file ảnh từ xa, dễ làm

Duy Luân
7/2/2019 16:23Phản hồi: 124
Tự làm "khung tranh thông minh" với Raspberry Pi, không cần code, quản lý file ảnh từ xa, dễ làm
Nếu bạn có muốn tự làm một khung ảnh có khả năng đổi hình tự động để bàn làm việc, hoặc chỉ đơn giản là sử dụng màn hình thừa làm khung tranh để ở nhà, thì bạn có thể dùng Raspberry Pi cho dự án này. Bên dưới mình sẽ hướng dẫn cách làm theo con đường không cần code gì cả, khá đơn giản và ai cũng làm được.


Thời gian thực hiện: 30 phút


Chi phí cho dự án này bao gồm:
  • 1x Raspberry Pi 2 hoặc Pi 3, giá từ 800k đến 1 triệu tùy model bạn chọn. Do cấu hình không cần cao nên Pi 2 cũng đủ rồi (anh em nâng cao có thể dùng Orange Pi Lite giá chỉ 400k, rẻ hơn nhiều)
  • 1x màn hình LCD cảm ứng 5" giá 990k, có loại 7" giá 1,4 triệu đồng nếu bạn muốn làm khung ảnh để bàn, hoặc dùng ngay màn hình TV cũng được. Màn hình cảm ứng cho phép lướt nhanh qua anh kế tiếp hoặc xem lại ảnh vừa chạy qua.
  • 1 cái case vừa nhét màn hình vừa nhét Raspberry Pi vào cho gọn, giá chừng 200k
  • 1x thẻ nhớ microSD dung lượng ít nhất 8GB giá chừng 100k
Tổng chi phí đâu đó vào khoảng 1,8-1,9 triệu đồng, rẻ hơn so với các giải pháp khung ảnh có kết nối Wi-Fi, mà quan trọng là bạn tự tay làm nên nếu cầm cái này làm quà cho người yêu thì hay lắm (sắp tới Valentine rồi đó anh em). Tất nhiên con Raspberry Pi còn làm được nhiều trò khác nữa nên có thể tận dụng 1 máy để làm nhiều thứ cũng được, tùy theo trí tưởng tượng của bạn mà thôi.

1. Setup cơ bản


Cách hoạt động của khung tranh thông minh này rất đơn giản:
  • Sử dụng giao diện đồ họa có sẵn của hệ điều hành Raspbian, cài thêm một phần mềm tên là FEH để hiển thị hình ảnh dạng slideshow
  • Phần mềm này sẽ được cài tự động chạy mỗi khi hệ điều hành boot lên
  • Chúng ta phải có khả năng thêm, xóa ảnh từ xa, qua mạng Internet chứ không chỉ mạng nội bộ, lỡ bạn tặng nó cho người khác thì họ cũng phải có khả năng thêm, xóa hình chứ. Phần này chúng ta sẽ nhờ sự giúp sức của một công cụ tên là Dataplicity
Trước tiên bạn cần flash hệ điều hành Raspbian lên thẻ nhớ, hãy làm theo hướng dẫn trong bài này: Hướng dẫn cài hệ điều hành Raspbian và thiết lập cơ bản cho người mới mua Raspberry Pi.

Sau khi cài xong Raspbian, bạn cần cài thêm công cụ FEH để xem ảnh, cách cài như sau: mở Terminal (cửa sổ dòng lệnh, biểu tượng cửa sổ màu đen nằm ở góc trên màn hình của Raspberry Pi), nhập lệnh:

Code:
sudo apt-get install feh
Cài xong thì chúng ta sẽ qua bước kế tiếp

2. Setup Dataplicity để gửi file từ xa


Dataplicity là một dịch vụ online cho phép kiểm soát Raspberry Pi từ xa, xa đúng nghĩa theo kiểu bạn có thể dùng nó ở bất kì đâu trên thế giới để truy cập vào cửa sổ dòng lệnh của con Pi đang đặt tại nhà.

Ngoài ra, Dataplicity còn cho phép host một trang web bất kì trên Pi rồi truy cập nó từ bất kì đâu, ở đây chúng ta sẽ tận dụng tính năng này để cài một trang web cho phép quản lý file của Pi qua trình duyệt. Nhờ công cụ này bạn có thể copy file ảnh từ máy tính sang Pi không quan trọng bạn có đang ở gần / cùng mạng Wi-Fi với Pi hay không. Tính năng này tiện nhất cho việc làm khung tranh để bàn và bạn định tặng người khác, chứ nếu khung tranh mà để ở trong nhà thì chỉ cần dùng SSH copy là được rồi (sẽ nói trong bài riêng).

dataplicity.jpg

Để thiết lập Dataplicity cực kì dễ: Vào đây https://www.dataplicity.com/devices/, đăng kí tài khoản, sau đó nhấn nút Add New Device. Trên màn hình sẽ hiện 1 cửa sổ dòng lệnh, bạn copy dòng lệnh này dán vào cửa sổ Terminal của Raspberry Pi rồi nhấn Enter là xong. Chờ một lát thiết bị của bạn sẽ xuất hiện trên Dataplicity.

Quảng cáo



Giờ chúng ta sẽ cài tiếp trình quản lý file và đưa nó thành 1 website. Trên Dataplicity, bạn bấm vào thiết bị của mình, chọn Enable Wormhole. Ở ngay đây có một đường link dạng https://xxxxxxx.dataplicity.io, bạn nhớ copy nó lại để dùng.

Quay trở lại con Raspberry Pi của bạn, mở cửa sổ dòng lệnh và cài NodeJS (dùng làm web server) và NPM (để cài các gói phần mềm cần thiết, tự động).

Code:
sudo curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
Sau khi cài xong, bạn chạy hai dòng lệnh này để kiểm tra xem Node và NPM có được cài đặt ngon lành chưa

Code:
nodejs --version
npm --version
Giờ tiếp tục cài tới Cloud Commander, là trang web để quản lý file

Code:
sudo npm i cloudcmd -g
Chạy Cloud Commander ở port 80, là port mà Dataplicity sẽ lắng nghe và đưa nó lên Internet để bạn truy cập được từ xa

Code:
sudo cloudcmd --port 80 --no-open --auth &
Nếu bạn làm theo đúng mọi thứ thì giờ bạn có thể vào link https://xxxxxxx.dataplicity.io để truy cập trình quản lý file. Username mặc định là root và password mặc định là toor.

Quảng cáo



Cloud_Commander.jpg

Vì bạn sẽ truy cập được thiết bị của mình từ Internet nên người khác cũng có thể làm được chuyện tương tự, vậy nên để an toàn thì bạn cần thay đổi password của Cloud Commander.

Để đổi pass, bạn sử dụng trang web này để tạo ra mã hash SHA512 của mật khẩu, copy đoạn hash đó, thay thế cho trường password trong file /usr/lib/node_modules/cloudcmd/json/config.json trên Raspberry Pi của bạn.

Giờ thì mỗi khi cần upload ảnh, xóa ảnh... thì bạn sẽ vào đường link bên trên để làm nhé.

Chưa xong, chúng ta còn phải cài cho Cloud Commander tự chạy lên mỗi khi khởi động. Cách làm đơn giản lắm, chúng ta nói hệ điều hành rằng Ê ông kia, khi ông khởi động xong thì chạy lệnh này nha. Lệnh chạy khi khởi động lưu trong file mang tên rc.local:

Code:
sudo nano /etc/rc.local
dán vào dòng lệnh sau: cloudcmd --port 80 --no-open --auth &

Nhấn Control + C để thoát, nhấn Y để lưu.

Sau đó chạy 1 lệnh nữa để làm

3. FEH để hiển thị hình ảnh


Trước hết hãy dùng trang web của Dataplicity cấp cho bạn và upload vài tấm ảnh vào thư mục Pictures (/home/pi/Pictures). Chúng ta sẽ dùng thư mục này để chứa file chạy slide show.

Giờ trên máy Pi, bạn nhập dòng lệnh sau thì sẽ thấy ảnh bắt đầu xuất hiện trên màn hình.

Code:
feh -. -x -q -r -Z -D 5 -R 5 -B black -Y /home/pi/Pictures
Để mình giải thích dòng này chút:
  • feh: là lệnh để chạy phần mềm
  • -.: hiển thị hình ảnh khít với diện tích màn hình, vậy bạn mới xem được trọn vẹn tấm ảnh
  • -x: hiện cửa sổ không có viền xung quanh
  • -q: tham số này nói rằng FEH chạy ở chế độ quiet (im lặng), không báo các lỗi nghiêm trọng
  • -r: recursive, tức không chỉ hiển thị ảnh trong /home/pi/Pictures mà trong các thư mục con
  • -D: thời gian chuyển giữa các ảnh khi chạy slideshow. Số 5 theo sau là 5 giây
  • -R: thời gian để quét lại thư mục và tìm file mới, cứ 5 giây nó quét thư mục /home/pi/Pictures một lần để xem bạn có upload ảnh mới vào không
  • -B: màu nền của ứng dụng, black là màu đen
  • -Y: ẩn con trỏ chuột
  • Cuối cùng là đường dẫn tới folder
Khi bạn thấy ảnh hiển thị trên màn hình là ổn rồi đó

4. Cho ứng dụng FEH tự chạy lên cùng với hệ điều hành


Bước cuối cùng là để dòng lệnh trên chạy cùng với Raspberry Pi mỗi khi nó khởi động. Cách làm như sau:
Code:
cd ~/.config
sudo mkdir lxsession
cd lxsession
sudo mkdir LXDE-pi
cd LXDE-pi
sudo nano autostart
Dán các dòng sau vào cửa sổ Terminal của Raspberry Pi

Code:
@DISPLAY=:0
@sleep 15
@xset s off
@xset -dpms
@xset s noblank
@feh -. -x -q -r -Z -D 5 -R 5 -B black -Y /home/pi/Pictures
@sudo cloudcmd --port 80 --no-open --auth &
Xong rồi thì nhấn Control + X để thoát, nhấn Y để lưu. Khởi động lại Pi và bạn sẽ thấy kết quả. Ở dòng cuối cùng trong file autostart, chúng ta đang cài thêm một lệnh để chạy trình quản lý file qua Internet mỗi lần máy khởi động lại, chứ không thì bạn không truy cập được vào nó.

Nếu bạn có việc cần dùng Raspberry Pi, bạn chỉ cần nhấn nút Escape trên bàn phím là app FEH sẽ tự đóng. Sau đó bạn vào dùng lệnh sau để edit file autostart:

sudo nano ~/.config/lxsession/LXDE-pi/autostart


Thêm dấu # trước dòng @feh... là lần khởi động sau nó sẽ không tự chạy lên nữa.

Xong, bước kế tiếp là bạn cắm Raspberry Pi ra màn hình lớn ở phòng khách hoặc đem gói bộ đồ nghề lại rồi tặng cho người bạn muốn tặng. Nếu muốn bạn có thể mua thêm các hộp mica để đóng gói Raspberry Pi cũng như màn hình lại thành một chiếc hộp đẹp và gọn gàng hơn.
124 bình luận
Chia sẻ

Xu hướng

Màn hình đắt quá
@huycuong7290 ko đắt lắm
LeslieCheung
ĐẠI BÀNG
5 năm
@huycuong7290 Xưa có 1 em của LG, đâu hơn 2c dc ai cho ý, mà nhìn như đồ đồng nát, chán chả buồn chưng ảnh theo cái hình thức này ! h vẫn vứt xó..
nguy3nct09
ĐẠI BÀNG
5 năm
@huycuong7290 Bác có loại nào khác rẻ mà chất hơn giới thiệu cho mình với. Mình cũng đang tìm hiểu mà ko biết
sogoku_vn
ĐẠI BÀNG
5 năm
Mì ăn liền thì mua quách con tablet 2nd giá tầm 1 củ đổ lại. Cài app slideshow vào. Done
@trung76 Nay bạn gái quần dữ qua giờ mới thức dậy nè
hdn_hp
TÍCH CỰC
5 năm
@sogoku_vn Chuẩn, mua nexus 9 hoặc mipad cũ xài vẫn ngon mà gọn nhẹ.
Bisuper
ĐẠI BÀNG
5 năm
@Duy Luân Bạn trong hình hay bạn nào đó Luân ơi =))
@Bisuper chuẩn :">
Già rầu nên nhìn mấy dòng lệnh chóng hết cả mặt @@
@tranvutruong Mình thì mấy cái này ngu, chóng mặt từ khi còn trẻ😃
@tranvutruong em thề là hồi xưa học mấy cái này ngu cực. tới khi có đề tài nên tìm hiểu ardunio thì có hiểu chút ít. nhưng tự tay e viết code thì không được, mà nhìn vào code thì có thẻ hiểu được,. lạ thiệt
oOo_Zeus_oOo
ĐẠI BÀNG
5 năm
Mong bác Luân hướng dẫn làm 1 bộ NAS có thể truy cập qua internet bằng pi :v
sogoku_vn
ĐẠI BÀNG
5 năm
@oOo_Zeus_oOo NAS của RPI nó phọt phẹt lắm, do xài chung USB LAN HUB.
nforce
TÍCH CỰC
5 năm
@oOo_Zeus_oOo LAN của Pi cùi bắp mà NAS gì. Muốn NAS thì kiếm mấy con Orange Pi ấy, có LAN 1Gbps.
Oánh dấu phát, hay!
jk29
ĐẠI BÀNG
5 năm
Hay và còn học được mấy dòng code nhỏ nhỏ nữa 😃
mua pi và màn hình ở đâu các bác?
Cho mình hỏi lỗi này là sao và làm sao fix ^^
feh ERROR: Can't open X display. It *is* running, yeah?
kurt80
TÍCH CỰC
5 năm
Có hẳn tip làm hệ thống đọc vân tay, điều khiển rơle đấy. Cái này thì khỏi các bố Android box vào chê. Các cổng vào ra I/O, USB là lợi thế tuyệt vời của Pi3 mà mod cứ giới thiệu cái đâu đâu.
@kurt80 Like bác phát 😁
TuongNhi
ĐẠI BÀNG
5 năm
Cho Mình hỏi là dùng Raspberry Pi để phát video/slide show trên tivi được không vậy?
ngsangmt
TÍCH CỰC
5 năm
@TuongNhi Dư xăng
DuNhi_946
ĐẠI BÀNG
5 năm
mua một con điện thoại 2nd vừa tiện, vừa gọn gàng có phải hơn ko? :eek:
@Duy Luân :

Code:
cd ~/.config
sudo mkdir lxsession
cd lxsession
mkdir LXDE-pi   => thiếu sudo nhé
cd LXDE-pi    => thiếu cái này nó sẽ tạo autostart ở lxsession
sudo nano autostart

@AbihT đã bổ sung, xin cảm ơn
piepadjob
TÍCH CỰC
5 năm
Anh code cho PI auto get ảnh từ google photo được không ạ?
noname9x2007
ĐẠI BÀNG
5 năm
@piepadjob được nhé bạn. Thay vì chờ Duy Luân thì bạn có thể lên google kiếm còn nhanh hơn 😆
Mình chỉnh sửa time chuyển slide và chèn video thì làm sao bạn Luân?
Funnyclock
TÍCH CỰC
5 năm
Làm cách nào để bỏ những bài có tag raspberi ra khỏi news feed nhỉ/
bmd_duc
ĐẠI BÀNG
5 năm
@Funnyclock diễn đàn công nghệ mà bạn lại muốn bỏ qua 1 trong những thứ thú vị như Pi nhỉ. Lạ thật
Funnyclock
TÍCH CỰC
5 năm
@bmd_duc Tinh tế thuộc kiểu nhạc nào cũng nhảy, cái này mình mới biết đây thôi. Riêng với cá nhân mình, người không có nhu cầu tìm hiểu về lập trình, mọi thứ trong bài viết này không hề mang tính kinh tế và thẩm mĩ. Chỉ đơn thuần là về thủ thuật kĩ thuật mà thôi. Và với mình hai thứ này không quan trọng.
Nhưng Luân đã xác nhận về hướng đi tương lai chuyên sâu kĩ thuật rồi nên mình không có ý kiến gì thêm nữa.
bmd_duc
ĐẠI BÀNG
5 năm
@Funnyclock thôi thì mỗi người một sở thích, cũng chẳng ép buộc được. Nhưng mà nhìn lượng view của mấy bài về Pi gần đây trên diễn đàn là đủ hiểu lượng người quan tâm về nó rồi, chắc chỉ thua mấy tin về apple với xiaomi
ntquyet1802
ĐẠI BÀNG
5 năm
@bmd_duc Không có tay Duy Luân mua về chơi rồi spam lung tung thì tin bài về RPi chỉ 1-2 bài/năm thôi bác ạ!
14/2 mày mò cái này tặng gấu. Và gấu bạn sẽ đổ... trước một thằng dẫn nó đi chơi. Đắng 😁
tinhte2104
TÍCH CỰC
5 năm
Thánh cuồng Pi
Andy Bùi jr
ĐẠI BÀNG
5 năm
Thay vì mất công làm Pi.mua 1 cái mipad 2 cũ tầm hơn củ,màn 2k chạy ngon chán. Cho ảnh vô chạy slideshow cả năm luôn
max5800
ĐẠI BÀNG
5 năm
Cầm 1 củ dẫn đi shopping dư mấy lít đi ks 😁

Xu hướng

Bài mới









  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019