HTTP cho phép giao ti p gi a nhi u máy ch và khách hàng , và h trế ữ ề ủ ỗ ợ
Hình 3.6: Giao th c HTTPứ
Giao ti p gi a m t máy ch và khách hàng x y ra, thông qua m t yêuế ữ ộ ủ ả ộ
c u / ph n h i. Các máy khách kh i t o m t thông báo yêu c u HTTP, đó làầ ả ồ ở ạ ộ ầ
d ch v thông qua m t tin nh n ph n h i HTTP trong tr l i.ị ụ ộ ắ ả ồ ở ạ
3.2.2. M ng o riêng (VPN)ạ ả
VPN là m t công ngh m ng giúp t o k t n i m ng an toàn khi tham giaộ ệ ạ ạ ế ố ạ
vào m ng công c ng nh Internet ho c m ng riêng do m t nhà cung c p d chạ ộ ư ặ ạ ộ ấ ị
v s h u. N u mu n k t n i vào h th ng VPN, thì m i 1 tài kho n đ u ph iụ ở ữ ế ố ế ố ệ ố ỗ ả ề ả
được xác th c (ph i cóự ả Username và Password).
S d ng VPN đ truy c p vào m ng n i b khi xa, dùng đ đi u khi nử ụ ể ậ ạ ộ ộ ở ể ề ể
các thi t b khi không th k t n i chung m ng v i b đi u khi n. Trong đ ánế ị ể ế ố ạ ớ ộ ề ể ồ
này, chúng em đã ch n h th ng LogMein Hamachi, đây là h th ng n đ nh vàọ ệ ố ệ ố ổ ị
3.3. Cách th c th c hi nứ ự ệ
3.3.1. Cài đ t h đi u hành cho RPi 3ặ ệ ề
Đ cài đ t h đi u hành cho RPi c n: ể ặ ệ ề ầ
Ph n m m Win32 Disk Imager (có th s d ng các ph n m m có ch cầ ề ể ử ụ ầ ề ứ
năng tương t )ự được t iả về t iạ:
http://sourceforge.net/projects/win32diskimager/ .
M t th nh MicroSD t i thi u 4GB, khuy n cáo s d ng th 8GB classộ ẻ ớ ố ể ế ử ụ ẻ
10 tr lên đ có dung lở ể ượng đ m b o và t c đ t t nh t.ả ả ố ộ ố ấ
H đi u hành đệ ề ượ ả ề ạc t i v t i:https://www.raspberrypi.org/downloads/.
Ph n m m gi i nén 7Zip đầ ề ả ược t i v t i: ạ ề ạ https://www.7- zip.org/download.html.
Các bước cài đ t h đi u hành cho RPi 3:ặ ệ ề
Bước 1: Dùng ph n m m 7Zip gi i nén h đi u hành Raspbian đã t i vầ ề ả ệ ề ả ề
Hình 3.7: File ch a h đi u hành Raspbianứ ệ ề
Bước 2: M ph n m m Win32 Win32 Disk Imager và ch n t p h đi uở ầ ề ọ ệ ệ ề
hành đã gi i nén thành công, sau đó l a ch n th nh c n ghi. Cu i cùngả ự ọ ổ ẻ ớ ầ ố
b m Write và đ i quá trình cài đ t h đi u hành hoàn t t.ấ ợ ặ ệ ề ấ
Hình 3.8: Ghi h đi u hành vào th nhệ ề ẻ ớ
3.3.2. Thi t l p Raspbian căn b nế ậ ả
Đ thi t l p các cài đ t cho h đi u hành Raspbian, chúng ta hoàn toànể ế ậ ặ ệ ề
có th truy c p tr c ti p vào Pi 3 qua màn hình b ng cáp VGA.ể ậ ự ế ă
Tuy nhiên, n u không có màn hình và dây cáp chúng ta có th truy c pế ể ậ
thông qua máy tính b ng cách s d ng Remote Desktop trên h đi u hànhă ử ụ ệ ề
Windows b ng các bă ước sau:
Bước 1: C m th nh đã cài đ t h đi u hành Raspbian vào máy tính.ắ ẻ ớ ặ ệ ề
M file cmdline.txt b ng ph n mêm WordPad và thêm vào dòng ip=ở ă ầ
192.168.137.222 đ cài đ t ip tĩnh khi chúng c m dây m ng k t n i Pi và máyể ặ ắ ạ ế ố
Bước 2: T o file ssh đ có th truy c p đạ ể ể ậ ược vào RPi 3. M ng d ngở ứ ụ
Cmd trên máy tính và nh p vào dòng l nh nh hình 3.9 đ t o m t file sshậ ệ ư ể ạ ộ
trên th nh ch a h đi u hành Raspbian.ẻ ớ ứ ệ ề
Hình 3.9: Cài đ t file sshặ
Bước 3: Tháo th nh g n vào Pi 3 và k t n i v i máy tính thông quaẻ ớ ắ ế ố ớ
c ng LAN.ổ
Bước 4: Trên máy tính chúng ta vào Control Panel > Network and Internet > Network and Sharing Center và ch n m ng wifi đang k t n i đ chiaọ ạ ế ố ể
s m ng v i RPi 3. Ch n Properties > Sharing và đánh d u l a ch n nh hìnhẻ ạ ớ ọ ấ ự ọ ư
Hình 3.10: Thi t l p chia s wifiế ậ ẻ
Bước 5: Ti p t c vào Control Panel > Network and Internet > Networkế ụ
and Sharing Center và ch n m ng LAN gi a Pi 3 và máy tính. Ch n Ch nọ ạ ữ ọ ọ
Properties > Networking > Internet protocol version 4 (tcp/ipv4) và cài đ tặ
Hình 3.11: Thi t l p m ng LAN cho RPi 3ế ậ ạ
Bước 6: M ph n m m Putty và đi n các thông s c b n nh hình 3.12 :ở ầ ề ề ố ơ ả ư Ch nọ Connection type : giao th cứ SSH
Ch nọ Port logic : 22
Th c hi n đi nự ệ ề Host name (or IP address), ví
d :ụ 192.168.137.222
B m Open đ k t n i Pi 3 và máy tính v i giao di n cmd ( hình)ấ ể ế ố ớ ệ Nh p Username : pi và Password: raspberry đ truy c p vào Pi 3ậ ể ậ
Hình 3.12: S d ng ph n m m Putty đ truy c pử ụ ầ ề ể ậ
Bước 7: Cài đ t gói xdrp b ng dòng l nh “sudo apt-get install xrdp” vàặ ă ệ
Hình 3.13: Cài đ t gói xdrp đ truy c p vào RPi 3ặ ể ậ
Bước 8: M ở Remote Desktop trên máy tính và nh p vào đ a ch ip đãậ ị ỉ
thi t l p bế ậ ở ước 1. Nh p username và password tậ ương t bự ước 6 đ k t n iể ế ố
được v i Pi 3 b ng máy tính thông qua m ng LAN v i giao di n nh hình 3.14.ớ ă ạ ớ ệ ư
Hình 3.15: Giao di n nh p username và password khi truy câp vào RPi ệ ậ
3
Sau đó chúng ta ti n hành k t n i Wifi cho Pi 3 đ có th thi t l p c hế ế ố ể ể ế ậ ơ ệ
đi u hành Raspbian (hình 3.15) thông qua l nh cmd trên Pi 3 :ề ệ
Nh p vào ậ sudo apt-get update && sudo apt-get upgrade đ ti nể ế
hành c p nh t h đi u hành Raspbianậ ậ ệ ề
Nh p ậ sudo apt-get install python-dev python-rpi.gpio đ cài đ tể ặ
Hình 3.16: C p nh t h đi u hành Raspbianậ ậ ệ ề
Hình 3.17: Cài đ t th vi n GPIOặ ư ệ
3.3.3. Cài đ t websever cho RPi 3ặ
Đ có th đi u khi n để ể ề ể ược RPi 3 th ng qua trang web trố ước h tế
Cài đ t gói d ch v Apache b ng cách ch y l nh sau: ặ ị ụ ă ạ ệ sudo apt-get install apache2 –y
M c đ nh, Apache sẽ ch y m t file ki m tra HTML sau khi cài đ tặ ị ạ ộ ể ặ
xong, m trình duy t và gõ đ a ch IP c a RPi 3. N u cài đ t apacheở ệ ị ỉ ủ ế ặ
thành công sẽ th y nh hình 3.18 .ấ ư
Hình 3.18: Giao di n webserver RPI 3 khi cài thành công Apache2ệ
Sau khi cài đ t Apache xong, m c đ nh d li u c a web sẽ n mặ ặ ị ữ ệ ủ ă ở /var/www/. Trong này có file index.html chính là file mà đã nhìn th yấ
n i dung bộ ở ước trên. Đ ch nh s a giao di n trang web, chúng ta chể ỉ ử ệ ỉ
Hình 3.19: Th m c ch a d li u webserverư ụ ứ ữ ệ
Đ xây d ng trang web v i nhi u tính năng h n, chúng ta c nể ự ớ ề ơ ầ
ph i s d ng PHP. Đ cài đ t PHP trên RPi 3 chúng ta s d ng dòngả ử ụ ể ặ ử ụ
l nh ệ sudo apt-get install php5 libapache2-mod-php5 –y
3.3.4. Truy n hình nh t camera lên trang webề ả ừ
Cài đ t các gói c n thi t đ có th s d ng đặ ầ ế ể ể ử ụ ược ch c năngứ
stream camera b ng dòng l nhă ệ
sudo apt-get install libjpeg8-dev imagemagick libv4l-dev -y
M c đ nh RPi đ u không có th vi nặ ị ề ư ệ videodev.h n a màữ
là videodev2.h. Thư vi nệ videodev2.h có thể được dùng như videodev.h vì v y ch y l nh sau đ đ biên d ch MJPG Streamer:ậ ạ ệ ể ể ị
sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h
Sau đó ch y dòng l nh sau đ t i v mã ngu n c a MJPGạ ệ ể ả ề ồ ủ
http://sourceforge.net/code-snapshots/svn/m/mj/mjpg- streamer/code/mjpg-streamer-code-182.zip
Gi i nén MJPG Streamer và cài đ t qua các dòng l nh:ả ặ ệ
unzip mjpg-streamer-code-182.zip
cd mjpg-streamer-code-182/mjpg-streamer make mjpg_streamer input_uvc.so output_http.so
Ch y dòng l nh sau đ ki m tra ho t đ ng c a camera: ạ ệ ể ể ạ ộ ủ
LD_LIBRARY_PATH=/usr/local/lib mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -quality 100 -f 30 -r 640x480" -o "/usr/local/lib/output_http.so -w /usr/local/www -p 9000"
Các thông s :ố
-d < device name - chu i - m c đ nh /dev/video0 >ỗ ặ ị
-quality < ch t lấ ượng - s nguyên t 1 - 100 - m c đ nh 75 >ố ừ ặ ị
-f < frame per second - s nguyên t 1 - 60 - m c đ nh 10 >ố ừ ặ ị
-r < kích thước khung hình - chu i (xem hỗ ướng d n dẫ ở ưới) > -p < port - s nguyên - t 1 => 2ố ừ 16 – 1 >
Cu i cùng truy c p vào đ a ch ố ậ ị ỉ http://< đ a ch IP c a Raspi>:9000 trênị ỉ ủ
máy tính k t n i chung m ng v i RPi 3 đ ki m tra xem có th th y hình nhế ố ạ ớ ể ể ể ấ ả
Hình 3.20: Giao di n khi truy n hình nh camera thành côngệ ề ả
3.3.5. Cài đ t VPN trên RPi 3.ặ
Bước đ u hãy vào trang web c a Hamachi đầ ủ ể đăng kí và sau đó đăng nh p sẽ đậ ược giao di n nh hình 3.21.ệ ư
Ch n Add Netwwork và đi n thông tin vàoọ ề
Hình 3.22: Đi n thông tin m ng n i bề ạ ộ ộ
Bước 3: Thêm nh ng thiêt b c a mình vàoữ ị ủ
T i ph n m mả ầ ề logmein-hamachi v máy tínhề
Hình 3.23: Giao di n Hamachi trên máy tínhệ
Hình 3.24: Đăng nh p vào hamachiậ
Hình 3.25: Thông tin máy tính cài đ t hamachiặ
Sau đó, vào l i trang ch ch n Add/Remove members đ thêm vào máyạ ủ ọ ể
tính đang s d ng vào m ng chung.ử ụ ạ
3.3.6. Thi t l p cho RPi 3ế ậ
Ti p theo là cách chúng ta thi t l p cho RPi 3:ế ế ậ Trước tiên t i ph n m m này v :ả ầ ề ề
wget https://www.vpn.net/installers/logmein-hamachi-2.1.0.174- armel.tgz Gi i nén raả tar -zxvf logmein-hamachi-2.1.0.174-armel.tgz Vào th m c v a gi i nénư ụ ừ ả cd logmein-hamachi-2.1.0.174-armel.tgz Ch y file Installạ sudo ./install.sh
Cài đ t xong chúng ta kh i đ ng hamachiặ ở ộ
sudo /etc/init.d/logmein-hamachi start
Đăng nh p:ậ
hamachi login
Yêu c u k t ầ ế n i v i máy ch , nh p email v a đăng kí :ố ớ ủ ậ ừ
hamachi attach quocthong2106@gmail.com
Đ t m t cái tên cho client Raspi:ặ ộ
hamachi set-nick raspberry
Hình 3.27: Thông báo khi có thi t b yêu c u thêm vàoế ị ầ
Nh n vào Acceptấ
Hình 3.28: L u l i các thi t b thêm vàoư ạ ế ị
Sau khi b m save chúng ta quay tr l i ng d ng hamachi trên máy tínhấ ở ạ ứ ụ
đ ki m tra các thi t b đã để ể ế ị ược k t. Các thi t b ch m xanh lá là đang ho tế ế ị ấ ạ
đ ngộ
3.3.7. Thi t l p cho Smart phoneế ậ
Đ đi n tho i có th k t n i v i m ng chung, c n ph i thêm vào trangể ệ ạ ể ế ố ớ ạ ầ ả
ch c a hamachi. Xong ch n Add Mobile client, đ t tên và thêm vào m ngủ ủ ọ ặ ạ
chung. Sau đó chúng ta làm theo hướng d n c a trang web đ thi t l p m ngẫ ủ ể ế ậ ạ
Hình 3.29: Thêm đi n tho i vào m ng chungệ ạ ạ
Hình 3.30: Hướng d n cài đ t trên đi n tho iẫ ặ ệ ạ
3.4. K t n i các thi t b và lên mô hình hoàn ch nhế ố ế ị ỉ
3.4.1. K t n i RPi v i module relayế ố ớ
Dùng RPi 3 g i tín hi u s đ n các module relay đ đóng /m relayử ệ ố ế ể ở
B ng 3.1:ả Cách k t n i chân RPi3 v i module relay 4 kênhế ố ớ
RPi 3 Module relay 4
kênh GND 32 36 37 38 5V GND IN1 IN2 IN4 IN3 VCC
B ng 3.2:ả Cách k t n i RPi3 v i module relay 1 kênh đi u khi n hế ố ớ ề ể ệ
th ngố
RPi 3
Module relay 1 kênh đi u khi nề ể
h th ngệ ố GND 11 5V DC- IN DC+
B ng 3.3:ả Cách k t n i RPi 3 v i module relay 1 kênh đi u khi n đènế ố ớ ề ể
RPi 3
Module relay 1 kênh đi u khi nề ể
đèn GND
12
DC- IN
3.4.2. K t n i RPi 3 v i m ch đ c tín hi uế ố ớ ạ ọ ệ
M ch đ c tín hi u s d ng c u phân áp đ bi n đ i 12V thành 4V n m ạ ọ ệ ử ụ ầ ể ế ổ ă
trong ngưỡng RPi có th đ c để ọ ược
B ng 3.4:ả Cách k t n i RPi 3 v i m ch đ c tín hi uế ố ớ ạ ọ ệ RPi 3 M ch đ cạ ọ tín hi uệ GND 29 31 33 5V GND B1 B2 B3 VCC 3.4.3. K t n i các module v i các thi t bế ố ớ ế ị
Do s d ng module relay cách ly nên có th s d ng ngu n 12V đ đi uử ụ ể ử ụ ồ ể ề
khi n thi t b không nh hể ế ị ả ưởng t i tín hi u đi u khi n 5V c a RPi 3.ớ ệ ề ể ủ
B ng 3.5:ả Cách k t n i module relay 4 kênh v i thi t bế ố ớ ế ị
Module relay
4 kênh Accu Motor nâng kính Motor khóa c aử
Relay 1 1 2 3 + - 1 chân c a motorủ Relay 2 1 2 3 + - Chân còn l i c aạ ủ motor
Relay 3 1 2 3 + - 1 chân c a motorủ Relay 4 1 2 3 + - Chân còn l i c aạ ủ motor
B ng 3.6:ả Cách k t n i module đi u khi n h th ng v i thi t bế ố ề ể ệ ố ớ ế ị
Module relay 1 kênh
đi u khi n h th ngề ể ệ ố Accu H th ngệ ố
1 2 3 - + Dây âm Dây đương
B ng 3.7: ả Cách n i dây module đi u khi n đèn v i thi t bố ề ể ớ ế ị
Module relay 1 kênh
đi u khi n đènề ể Accu Đèn
1 2 3 - + Dây âm Dây dương B ng 3.8:ả Cách n i dây m ch đ c tín hi u v i thi t bố ạ ọ ệ ớ ế ị M ch đ c tínạ ọ hi uệ H th ngệ ố Đèn Công t c hànhắ trình khóa c aử A1 A2 A3 Dây dương Dây dương 2
3.5. Mô hình th c tự ế
V i các bớ ước làm trên chúng em đã xây d ng thành công mô hình th cự ư
t . Có th đi u khi n qua đi n tho i và truy n hình nh tr c ti p t cameraế ể ề ể ệ ạ ề ả ự ế ừ
lên giao di n web đi u khi n. ệ ề ể
Hình 3.31: Mô hình th c tự ế
3.6. Xây đ ng giao di n web serverự ệ
Giao di n web server đệ ượ ậc l p trình trên n n t ng html. ề ả Chúng ta thay đ i file index.html trong RPi đ t o giao di n mong mu n. Tuy nhiên html chổ ể ạ ệ ố ỉ
có th t o ra trang web c b n, đ có th làm trang web có giao di n đ p h nể ạ ơ ả ể ể ệ ẹ ơ
l p trình file index.html d dàng, chúng em s d ng ph n m m Dreamweaverậ ễ ử ụ ầ ề
đ l p trình đ n gi n và d s d ng.ể ậ ơ ả ễ ử ụ
Hình 3.32: Giao di n Dreamweaver khi l p trình htmlệ ậ
M t chộ ương trình html g m 3 ph n c b n:ồ ầ ơ ả
<!Doctype>: Ph n khai báo chu n c a html hay xhtml. đây chúng taầ ẩ ủ Ở
s d ng html nên ph n này sẽ khai báo là html:ử ụ ầ
<!DOCTYPE html>
<head></head>: Ph n khai báo ban đ u, khai báo v meta, title, css,ầ ầ ề
javascript…Trong ph n này ta s d ng th script đ có th liên k t v i các thầ ử ụ ẻ ể ể ế ớ ư
Hình 3.33: L p trình ph n <head> c a htmlậ ầ ủ