Bên cạnh công việc theo dõi nhiệt độ, độ ẩm, tình trạng của cây trồng trên một vườn, nhóm quyết định thiết kế một hệ thống có thể giúp giám sát một lúc nhiều vườn, nằm ở nhiều nơi khác n
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ÐIỆN TỬ TRUYỀN THÔNG
THIẾT KẾ VÀ THI CÔNG HỆ THỐNG
GIÁM SÁT NHIỀU VUỜN
Tp Hồ Chí Minh, tháng 07/2019
S K L 0 0 5 4 1 7
GVHD: NGUYỄN THANH HẢI SVTH : VÕ NGỌC NGUYÊN HÙNG MSSV: 15141025
SVTH : ÐINH QUANG VỴ MSSV: 15141091
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
-
ĐỒ ÁN TỐT NGHIỆP
NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
ĐỀ TÀI:
THIẾT KẾ VÀ THI CÔNG HỆ THỐNG
GIÁM SÁT NHIỀU VƯỜN
GVHD: PGS TS Nguyễn Thanh Hải SVTH: Võ Ngọc Nguyên Hùng MSSV: 15141025
SVTH: Đinh Quang Vỵ MSSV: 15141091
Tp Hồ Chí Minh – 07/2019
Trang 3ii
Trang 4iii
Trang 5iv
Trang 6LỜI CẢM ƠN
Để có thể hoàn thành đề tài này, nhóm sinh viên thực hiện xin chân thành cảm ơn quý thầy cô Trường ĐH Sư phạm Kỹ thuật TP Hồ Chí Minh đã hướng dẫn, truyền đạt kiến thức cho nhóm trong suốt quá trình học tập Đặc biệt, nhóm
xin chân thành cảm ơn Thầy Nguyễn Thanh Hải đã tận tình hướng dẫn và tạo
điều kiện thuận lợi cho nhóm trong suốt thời gian thực hiện đồ án tốt nghiệp Nhóm xin được phép gửi đến Thầy lòng biết ơn, lời cảm ơn chân thành và sâu sắc nhất
Bên cạnh đó, nhóm cũng xin cảm ơn các anh, chị khóa trước cũng như các bạn sinh viên trong lớp 15141CLDT1A đã nhiệt tình đóng góp ý kiến và chia
sẽ kinh nghiệm, cảm ơn gia đình đã tạo điều kiện, động viên, chia sẽ, tiếp thêm động lực để giúp nhóm có thể hoàn thành đề tài này
Cuối cùng, dù đã cố gắng hoàn thành nhiệm vụ đề tài đặt ra đảm bảo thời
hạn nhưng do thời gian và kiến thức có hạn nên trong quá trình thực hiện đề tài không tránh khỏi những thiếu sót Nhóm rất mong nhận được ý kiến đóng góp của quý thầy cô và các bạn để đồ án được hoàn thiện hơn
Nhóm xin chân thành cảm ơn!
Đinh Quang Vỵ
Trang 7TÓM TẮT
Ngày nay công nghệ dường như đã trở thành một phần không thể thiếu trong cuộc sống Không chỉ những trong nhu cầu sinh hoạt, mà còn có ở các doanh nghiệp lớn, nhỏ khác nhau, dịch vụ y tế cũng như chăn nuôi, trồng trọt, Công nghệ đem lại hiệu quả cao cho nền công nghiệp thời kỳ mới
Thay vì áp dụng theo cách truyền thống, sử dụng công nghệ sẽ giúp đảm bảo về phần an toàn vệ sinh thực phẩm hơn, đẩy mạnh năng suất đến hàng trăm lần Gần đây, vấn đề an toàn sức khỏe dâng cao, ra sức phòng chống nạn dịch bệnh, mầm hại và khí hậu thay đổi thất thường khiến cho các cô bác nông dân trở nên hoang mang
Chính vì thế, nhóm lựa chọn đề tài “THIẾT KẾ VÀ THI CÔNG HỆ
THỐNG GIÁM SÁT NHIỀU VƯỜN” nhằm tìm hiểu, nghiên cứu thêm về sự
quan trọng cũng như ứng dụng của Vi xử lý, Web server, phần mềm trên điện thoại di động và mạng Wifi trong đời sống nhằm đáp ứng nhu cầu cấp thiết của
xã hội
Bên cạnh công việc theo dõi nhiệt độ, độ ẩm, tình trạng của cây trồng trên một vườn, nhóm quyết định thiết kế một hệ thống có thể giúp giám sát một lúc nhiều vườn, nằm ở nhiều nơi khác nhau, thậm chí là rất xa để tiện trong quá trình
đi lại cũng như tiết kiệm thời gian cho người sử dụng thông qua mạng Internet
Trang 8MỤC LỤC
TRANG PHỤ BÌA……….TRANG
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP ii
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN iii
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN iv
LỜI CẢM ƠN v
TÓM TẮT vi
MỤC LỤC vii
DANH MỤC CÁC TỪ VIẾT TẮT xii
DANH MỤC CÁC HÌNH ẢNH, BIỂU ĐỒ xiii
DANH MỤC CÁC BẢNG BIỂU xvi
Chương 1 TỔNG QUAN 1
1.1 ĐẶT VẤN ĐỀ 1
1.2 MỤC TIÊU 2
1.3 NỘI DUNG NGHIÊN CỨU 2
1.4 GIỚI HẠN 2
1.5 BỐ CỤC 3
Chương 2 CƠ SỞ LÝ THUYẾT 4
2.1 GIỚI THIỆU ARDUINO WEMOS D1 4
2.1.1 Sơ lược về Arduino Wemos D1 4
2.1.2 Một số thuật ngữ nổi bật 4
2.1.3 Thiết kế 5
2.1.4 Một số lưu ý khi làm việc với Arduino 5
2.1.5 Thông số kỹ thuật 5
2.1.6 Sơ đồ chân 6
Trang 92.1.7 Phần cứng 7
2.2 CÔNG NGHỆ TRUYỀN THÔNG KHÔNG DÂY 8
2.3 TỔNG QUAN CÔNG NGHỆ TRUYỀN THÔNG WI-FI 10
2.3.1 Giới thiệu 10
2.3.2 Nguyên lý hoạt động 11
2.3.3 Một số chuẩn kết nối Wi-Fi phổ biến 12
2.4 GIỚI THIỆU CHUẨN GIAO TIẾP I2C 12
2.4.1 Giới thiệu chung 12
2.4.2 Đặc điểm giao tiếp I2C 13
2.4.3 Chế độ hoạt động (tốc độ truyền) 14
2.4.4 Điều kiện START và STOP 14
2.5 CHUẨN GIAO TIẾP 1-WIRE 16
2.5.1 Giới thiệu 16
2.5.2 Nguyên lý hoạt động 16
2.6 CHUẨN GIAO TIẾP UART 18
2.6.1 Giới thiệu 18
2.6.2 Các thông số cơ bản của chuẩn truyền UART 18
2.7 ỨNG DỤNG BLYNK 19
2.7.1 Giới thiệu 19
2.7.2 Các chức năng chính của Blynk 19
2.7.3 Nguyên lý hoạt động của Blynk 20
2.8 XÂY DỰNG WEB SERVER 21
2.8.1 Ngôn ngữ HTML 21
a Giới thiệu 21
b Vai trò 21
Trang 10c Ưu và nhược điểm 21
d Cấu trúc 22
e Các thẻ HTML cơ bản 22
2.9 MỘT SỐ LINH KIỆN KHÁC 25
2.9.1 LCD hiển thị 25
2.9.2 Module I2C 27
2.9.3 Cảm biến DHT11 27
2.9.4 Cảm biến độ ẩm đất 29
2.9.5 Động cơ bơm P385 30
2.9.6 Bóng đèn 12V21/6CP 31
Chương 3 TÍNH TOÁN VÀ THIẾT KẾ 33
3.1 GIỚI THIỆU 33
3.1.1 Yêu cầu của hệ thống 33
3.1.2 Phương án thiết kế 33
3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 34
3.2.1 Thiết kế sơ đồ khối hệ thống 34
a Thiết kế hệ thống phần cứng 34
b Giải thích hoạt động của hệ thống 35
3.2.2 Tính toán và thiết kế mạch 35
a Khối xử lý trung tâm 35
b Khối cảm biến 37
c Khối hiển thị 38
d Khối nút nhấn vật lý 39
e Khối công suất 39
f Khối nguồn 41
3.2.3 Sơ đồ nguyên lý toàn mạch 42
Trang 11Chương 4 THI CÔNG HỆ THỐNG 44
4.1 GIỚI THIỆU 44
4.2 THI CÔNG HỆ THỐNG 44
4.2.1 Thi công bo mạch 44
4.2.2 Lắp ráp và kiểm tra 45
4.3 THI CÔNG MÔ HÌNH 47
4.4 LẬP TRÌNH HỆ THỐNG 48
4.4.1 Lưu đồ giải thuật 48
a Lưu đồ chương trình chính 48
b Lưu đồ chương trình con đọc giá trị cảm biến 50
c Lưu đồ chương trình con lựa chọn chế độ điều khiển 50
d Lưu đồ chương trình con điều khiển bằng tay 51
e Lưu đồ chương trình con điều khiển tự động 52
f Lưu đồ App Blynk 53
4.4.2 Phần mềm lập trình cho vi điều khiển 53
4.4.3 Phần mềm sử dụng cho điện thoại 58
4.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC 61
4.5.1 Hướng dẫn thiết lập và sử dụng mô hình 61
4.5.2 Hướng dẫn thêm vườn vào hệ thống 65
Chương 5 KẾT QUẢ SO SÁNH, THỰC NGHIỆM, PHÂN TÍCH, TỔNG HỢP……… 68
5.1 GIỚI THIỆU 68
5.2 KẾT QUẢ 68
5.1.1 Kết quả đạt được 68
5.1.2 Kết quả phần cứng 68
5.1.3 Kết quả phần mềm 72
Trang 12a Giao diện App Blynk 73
b Giao diện Website 76
c Webserver được tạo để lựa chọn Wi-Fi 77
5.3 NHẬN XÉT 79
5.3.1 Ưu điểm 79
5.3.2 Khuyết điểm 79
5.4 ĐÁNH GIÁ 79
Chương 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 80
6.1 KẾT LUẬN 80
6.2 HƯỚNG PHÁT TRIỂN 81
TÀI LIỆU THAM KHẢO 82
PHỤ LỤC 83
Trang 13DANH MỤC CÁC TỪ VIẾT TẮT
I2C: Inter-Integrated Circuit
UART: Universal asynchronous receiver-transmitter
DC: Direct Current
AC: Altermating current
WWW: World wide web
HTML: Hypertext Markup Language
PHP: Hypertext Preprocessor
Wi-Fi: Wireless Fidelity
IC: Integrated Circuit
USB: Universal Serial Bus
LCD: Liquid-crystal display
IOT: Internet of Things
Trang 14DANH MỤC CÁC HÌNH ẢNH, BIỂU ĐỒ
Hình 2.1: Board Wemos D1 4
Hình 2.2: Nguồn của Arduino 7
Hình 2.3: Bluetooth 9
Hình 2.4: Wireless USB 9
Hình 2.5: Wi-Fi 10
Hình 2.6: Kết nối Wi-Fi 11
Hình 2.7: Giao tiếp I2C 1 12
Hình 2.8: Sơ đồ kết nối thiết bị với I2C 13
Hình 2.9: Giao tiếp I2C 2 13
Hình 2.10: Trình tự truyền Bit trong giao tiếp I2C 14
Hình 2.11: Điều kiện Start và Stop trong giao tiếp I2C 15
Hình 2.12: Truyền dữ liệu trong giao tiếp I2C 15
Hình 2.13: Gửi tín hiệu bit “1” 16
Hình 2.14: Gửi tín hiệu bit “0” 16
Hình 2.15: Đọc bit 17
Hình 2.16: Tín hiệu Reset và Presence 17
Hình 2.17: Tổng hợp dạng sóng các tiến trình hoạt động chuẩn 1-Wire 17
Hình 2.18: Truyền dữ liệu UART 18
Hình 2.19: App Blynk 19
Hình 2.20: Sơ đồ kết nối Blynk 20
Hình 2.21: LCD 16x2 25
Hình 2.22: Sơ đồ khối của bộ điều khiển LCD 26
Hình 2.23: Module I2C 27
Hình 2.24: Cảm biến DHT11 28
Hình 2.25: Sơ đồ kết nối của DHT11 28
Hình 2.26: Cảm biến độ ẩm đất 29
Hình 2.27: Sơ đồ kết nối độ ẩm đất 30
Hình 2.28: Động cơ bơm P385 31
Hình 2.29: Bóng đèn 12V21/6CP 31
Trang 15Hình 3.1: Sơ đồ khối toàn mạch 34
Hình 3.2: Sơ đồ kết nối Wemos D1 36
Hình 3.3: Sơ đồ kết nối cảm biến DHT11 37
Hình 3.4: Sơ đồ kết nối cảm biến độ ẩm đất 38
Hình 3.5: Sơ đồ kết nối LCD và I2C 38
Hình 3.6: Sơ đồ kết nối nút nhấn 39
Hình 3.7: Sơ đồ khối công suất 40
Hình 3.8: Nguồn Adapter và nguồn xung 41
Hình 3.9: Sơ đồ nguyên lý toàn mạch 43
Hình 4.1: Mặt sau của mạch in sau khi hàn linh kiện 45
Hình 4.2: Mặt trên của mạch in sau khi hàn linh kiện 45
Hình 4.3: Mạch in gắn vào mica 46
Hình 4.4: Gắn linh kiện và test mạch 46
Hình 4.5: Gắn 2 mạch điều khiển lên khung mô hình 47
Hình 4.6: Gắn vườn vào mô hình 48
Hình 4.7: Chạy thử mô hình 48
Hình 4.8: Lưu đồ chương trình chính 50
Hình 4.9: Lưu đồ chương trình con đọc giá trị các cảm biến 50
Hình 4.10: Lưu đồ chương trình con chọn chế độ điều khiển 50
Hình 4.11: Lưu đồ chương trình con điều khiển bằng tay 51
Hình 4.12: Lưu đồ chương trình con điều khiển tự động 52
Hình 4.13: Lưu đồ sử dụng Blynk 53
Hình 4.14: Giao diện phần mềm Arduino 1 54
Hình 4.15: Giao diện phần mềm Arduino 2 55
Hình 4.16: Giao diện phần mềm Arduino 3 56
Hình 4.17: Các lệnh của Arduino 57
Hình 4.18: Vùng thông báo 57
Hình 4.19 : Giao diện sau khi vào Blynk 58
Hình 4.20: Giao diện Blynk sau khi nhấn “New Project” 59
Trang 16Hình 4.21 : Giao diện sau khi nhấn “Create Project” và giao diện kéo thả linh
kiện 60
Hình 4.22 : Giao diện “Project Settings” của Blynk 61
Hình 4.23: Kết nối Wi-Fi do Wemos D1 phát 62
Hình 4.24: Giao diện khi vào webserver 63
Hình 4.26: Giao diện trên điện thoại của app Blynk 64
Hình 4.27: Lựa chọn Widget 65
Hình 4.29: Lựa chọn các chân ảo cho Widget 66
Hình 4.30: Code nút nhấn trên app Blynk sử dụng các chân ảo 3 và 4 67
Hình 4.31: Code lấy dữ liệu cảm biến sử dụng các chân ảo 10,11,12 67
Hình 5.1: Mạch điều khiển 69
Hình 5.2: Dữ liệu hiển thị trên LCD 70
Hình 5.3: 2 mạch điều khiển được gắn lên mô hình 71
Hình 5.4: Nguồn tổ ong và máy bơm được gắn lên mô hình 72
Hình 5.5: Mô hình đồ án nhìn từ trên xuống 72
Hình 5.6: Giao diện trên điện thoại của app Blynk 73
Hình 5.7: Biểu đồ vòng cung 74
Hình 5.8: Biểu đồ đường 74
Hình 5.9: Giao diện nút nhấn 75
Hình 5.10: Thông báo từ Blynk 76
Hình 5.11: Giao diện Web 77
Hình 5.12: Giao diện lựa chọn Wi-Fi trên Webserver 78
Trang 17DANH MỤC CÁC BẢNG BIỂU
Bảng 2.1: Thông số kỹ thuật ESP8266 5
Bảng 2.2: Sơ đồ chân của ESP8266 6
Bảng 2.3: Các chân của LCD 16x2 26
Bảng 3.1: Điện áp và dòng tối đa của các linh kiện 41
Bảng 4.1 Danh sách các linh kiện 44
Trang 18Hiện nay cũng có rất nhiều bài nghiên cứu của sinh viên cũng làm về nhà thông minh, đồ án tốt nghiệp của Nguyễn Quốc Thành và Võ Đình Khải nghiên
cứu về “HỆ THỐNG GIÁM SÁT NÔNG NGHIỆP BẰNG CÔNG NGHỆ
IOT” Phương pháp thực hiện là dùng Arduino Mega 2560 xây dựng thành một
khối điều khiển trung tâm, dùng các module cảm biến: ánh sáng, độ ẩm đất, nhiệt
độ và độ ẩm không khí thu thập dữ liệu từ môi trường canh tác gửi về Arduino Mega 2560, từ đó so sánh với thông số đã cài đặt trước Arduino Mega 2560 sẽ điều khiển các thiết bị ngoại vi: máy bơm nước, máy phun sương, đèn, quạt tản nhiệt Bên cạnh đó Arduino Mega 2560 sẽ gửi dữ liệu lên ứng dụng Android thông qua Bluetooth với module HC05 điều khiển phạm vi gần
Một số đồ án tốt nghiệp khác như của Ngô Thành Đạt và Lê Hải Nguyên
nghiên cứu về đề tài “THIẾT KẾ VÀ THI CÔNG HỆ THỐNG IOTS CHĂM
SÓC VƯỜN CÂY ĂN QUẢ SỬ DỤNG PIN NĂNG LƯỢNG MẶT TRỜI”
Mô hình sử dụng kit Arduino Mega2560 làm vi điều khiển trung tâm để điều khiển các module mở rộng như màn hình cảm ứng HMI, NODEMCU ESP8266, L293, DHT11, BH1750, … Đóng mái cho khu vườn bằng cách sử dụng động cơ Servo khi có mưa, đóng mở rèm bằng động cơ DC khi cường độ ánh sáng tăng quá cao Ngoài ra, còn có một số cơ cấu chấp hành khác như bơm nước, quạt, đèn LED, đèn sưởi, …
Qua tóm tắt trên, nhóm đã quyết định thực hiện đề tài “THIẾT KẾ VÀ
THI CÔNG HỆ THỐNG GIÁM SÁT NHIỀU VƯỜN” để theo dõi nhiệt độ,
độ ẩm môi trường của khu vườn, từ các thông số thu được có thể tưới nước giúp
Trang 19cây phát triển tốt hơn Điểm đặc biệt của đề tài là có thể dùng chung 1 CSDL để điều khiển và giám sát nhiều vườn một lúc, thậm chí là rất xa nhau Với mỗi một vườn sẽ là một Module Wifi, đều cho chúng truyền và nhận trên cùng một CSDL,
trên cùng một App sẽ giúp việc giám sát trở nên dễ dàng hơn
1.2 MỤC TIÊU
Các cảm biến thu thập dữ liệu từ môi trường của vườn rau và gửi về khối
xử lý trung tâm Sau khi nhận dữ liệu, khối xử lý trung tâm sẽ xử lý và hiển thị lên màn hình LCD, giao diện của Website, App trên điện thoại di động và máy tính Đồng thời so sánh dữ liệu với thông số đã được thiết lập sẵn để đưa ra mệnh lệnh tự động thực thi như khởi động máy bơm, bật đèn sưởi Ngoài ra còn có bộ nút nhất điều khiển vật lý để phòng trường hợp điện thoại bị hư hỏng, máy tính hết pin, … các nút nhấn này cũng được đồng bộ với phần mềm
1.3 NỘI DUNG NGHIÊN CỨU
Tìm hiểu về Arduino, nền tảng Blynk, cảm biến nhiệt độ, độ ẩm không khí,
độ ẩm đất
Cạc kết nối các linh kiện và module với nhau
Thiết kế App/Website trên điện thoại di động/máy tính
Viết chương trình cho hệ thống
Thiết kế và tính toán sơ đồ nguyên lý, khối nguồn
Vẽ mạch trên phần mềm, in mạch, hàn mạch, đo nguội và chạy thử nghiệm
Viết báo cáo
Báo cáo đề tài tốt nghiệp
1.4 GIỚI HẠN
Các giới hạn gặp phải bao gồm:
Hệ thống vẫn chưa hoàn toàn ổn định, có thời gian trễ nhất định
Cảm biến không chính xác so với môi trường
Mô hình thiếu thực tế
Khá ít chức năng
Trang 20 Chương 2: Cơ Sở Lý Thuyết
Giới thiệu về các linh kiện, thiết kế, chuẩn kết nối, giao tiếp và nền tảng phần mềm, chương trình sẽ sử dụng Nêu được ưu điểm, khuyết điểm của từng loại, đưa ra thông số kỹ thuật
Chương 3: Thiết Kế và Tính Toán
Thiết kế sơ đồ khối, giải thích hoạt động và tính toán của từng khối, nguyên lý hoạt động của hệ thống Tác dụng từng chân của linh kiện khi được kết nối với nhau
Chương 4: Kết Quả, Nhận Xét và Đánh Giá
Tổng hợp lại các linh kiện đã được sử dụng, trình bày cách thi công mạch,
mô hình Vẽ và giải thích từng lưu đồ, hướng dẫn sử dụng hệ thống
Chương 5: Kết quả, nhận xét và đánh giá
Trình bày kết quả, hình ảnh mô hình sau khi thi công hoàn chỉnh, nhận xét
ưu và nhược điểm của mô hình
Chương 6: Kết Luận và Hướng Phát Triển
Trình bày kết luận về đề tài sau khi đã thực hiện, đề ra các phương án để phát triển đề tài
Trang 21Chương 2 CƠ SỞ LÝ THUYẾT
2.1 GIỚI THIỆU ARDUINO WEMOS D1
2.1.1 Sơ lược về Arduino Wemos D1
WeMos D1 là board mạch được phát triển dựa trên Module Esp8266MOD và được thiết kế theo tiêu chuẩn của board mạch Arduino UNO, tương thích với Arduino IDE và NodeMCU Board được tích hợp Wifi, dễ dàng thực hiện các ứng dụng thu thập dữ liệu và điều khiển thiết bị thông qua Wifi
Wemos D1 có khả năng chuyển đổi điện áp trên board, cho phép cấp 1 điện áp
DC 9-24V để chuyển đổi thành 5V với dòng tối đa 1A
Hình 2.1: Board Wemos D1
2.1.2 Một số thuật ngữ nổi bật
Flash Memory: bộ nhớ có thể ghi được, dữ liệu không bị mất ngay cả khi tắt
điện Về vai trò, có thể hình dung bộ nhớ này như ổ cứng để chứa dữ liệu trên board Chương trình được viết cho Arduino sẽ được lưu ở đây Kích thước của vùng nhớ này thông thường dựa vào vi điều khiển được sử dụng, ví dụ như ATmega8 có 8KB flash memory Loại bộ nhớ này có thể chịu được khoảng 10,000 lần ghi/xoá
RAM: tương tự như RAM của máy tính, sẽ bị mất dữ liệu khi ngắt điện nhưng
bù lại tốc độ đọc ghi xoá rất nhanh Kích thước nhỏ hơn Flash Memory nhiều lần
EEPROM: một dạng bộ nhớ tương tự như Flash Memory nhưng có chu kì
ghi/xoá cao hơn - khoảng 100,000 lần và có kích thước rất nhỏ Để đọc/ghi dữ liệu
có thể dùng thư viện EEPROM của Arduino
Trang 222.1.3 Thiết kế
Trên board còn có 1 nút reset, 1 ngõ kết nối với máy tính qua cổng USB và 1 ngõ cấp nguồn sử dụng jack 2.1mm lấy năng lượng trực tiếp từ AC-DC adapter hay thông qua ắc-quy nguồn Ngoài ra, board Arduino còn cung cấp cho các pin khác nhau như pin cấp nguồn 3.3V, pin cấp nguồn 5V, pin GND
2.1.4 Một số lưu ý khi làm việc với Arduino
Mặc dù Arduino có cầu chi tự phục hồi (resettable fuse) bảo về mạch khi xảy
ra quá tải, tuy nhiên cầu chì này chỉ được mắc cho cổng USB nhằm tự động ngắt điện khi nguồn vào USB lớn hơn 5V Vì vậy, khi thao tác với Arduino, cần tính toán cẩn thận để tránh gây hư tổn đến board
2.1.5 Thông số kỹ thuật
Bảng 2.1: Thông số kỹ thuật ESP8266
Vi điều khiển ESP8266MOD
Trang 232.1.6 Sơ đồ chân
Bảng 2.2: Sơ đồ chân của ESP8266
D4 IO, 10k Pull-up, BUILTIN_LED GPIO2
D8 IO, 10k Pull-down, SS GPIO15
Trang 242.1.7 Phần cứng
a Thiết kế nguồn
Phần nguồn của Board mạch Arduino thiết kế để thực hiện các nhiệm vụ sau:
Hình 2.2: Nguồn của Arduino
Lựa chọn nguồn cung cấp cho board mạch (khối màu cam trong hình trên):
Board mạch Arduino có thể được cung cấp nguồn bởi Adapter thông qua Jack
DC hoặc từ cổng USB (2 mũi tên màu đỏ) Trong trường hợp chỉ có 1 trong 2
nguồn cung cấp thì Board Arduino sẽ sử dụng nguồn cung cấp đó Trong trường hợp có cả 2 nguồn cung cấp thì Arduino sẽ ưu tiên lựa chọn nguồn cung cấp từ Jack DC thay vì từ cổng USB Việc ưu tiên này được thực hiện bởi Op-
Amp trong IC LMV358 và MOSFET FDN340P Điện áp từ Jack DC sau khi qua Diode bảo vệ D1 thì được gọi là điện áp VIN Điện áp VIN qua cầu phân
áp để tạo thành VIN/2 để so sánh với điện áp 3.3V Vì VIN/2 >3.3V nên điện
áp đầu ra của Op-Amp là 5V, điều này làm cho MOSFET không được kích, nguồn cung cấp cho Board Arduino là từ Jack DC sau khi qua ổn áp
Tạo ra các điện áp 5v và 3.3v (2 khối màu xanh) để cung cấp cho vi điều khiển
và cũng là điểm cấp nguồn cho các thiết bị bên ngoài sử dụng Mạch Arduino
Trang 25sử dụng IC ổn áp NCP1117 để tạo điện áp 5V từ nguồn cung cấp lớn và IC ổn
áp LP2985 để tạo điện áp 3.3V Đây đều là những IC ổn áp tuyến tính, tuy
hiệu suất không cao nhưng ít gợn nhiễu và mạch đơn giản
Bảo vệ ngược nguồn, quá tải (vòng tròn màu đỏ) F1 là một cầu chì tự phục
hồi, trong trường hợp chỉ sử dụng dây cáp USB để cấp nguồn thì tổng dòng tiêu thụ không được quá 500mA Nếu không cầu chì sẽ ngăn không cho dòng
điện chạy qua D1 là một Diode, chỉ cho dòng điện 1 chiều chạy qua (từ Jack
DC vào mạch), trong trường hợp mạch Arduino có mắc với các thiết bị khác
và có nguồn cung cấp lớn hơn nguồn vào Jack DC, nếu có sai sót chập mạch thì sẽ không có trường hợp nguồn các thiết bị bên ngoài chạy ngược vào Adapter
Báo nguồn Đèn nguồn ON sáng lên báo thiết bị đã được cấp nguồn Nếu đã
cắm nguồn mà đèn nguồn không sáng thì có thể nguồn cung cấp đã bị hỏng hoặc jack kết nối lỏng, hoặc mạch Arduino kết nối với các linh kiện bên ngoài
bị ngắn mạch
b Thiết kế mạch Reset
Để vi điều khiển thực hiện khởi động lại thì chân RESET phải ở mức logic LOW (~0V) trong 1 khoản thời gian đủ yêu cầu Mạch reset của board Arduino UnoR3 phải đảm bảo được 02 việc:
Reset bằng tay: Khi nhấn nút, chân RESET nối với GND, làm cho MCU RESET Khi không nhấn nút chân Reset được kéo 5V
Reset tự động: Reset tự động được thực hiện ngay khi cấp nguồn cho vi điều khiển nhờ sự phối hợp giữa điện trở nối lên nguồn và tụ điện nối đất Thời gian
tụ điện nạp giúp cho chân RESET ở mức LOW trong 1 khoản thời gian đủ để
vi điều khiển thực hiện reset
Khởi động vi điều khiển trước khi nạp chương trình mới
2.2 CÔNG NGHỆ TRUYỀN THÔNG KHÔNG DÂY
Dù cáp và dây điện vẫn đóng vai trò chính trong truyền và nhận thông tin, việc
sử dụng tai nghe không dây, lướt web tại điểm truy cập Wi-Fi hoặc truyền dữ liệu giữa các thiết bị qua các giao tiếp không dây đang trở nên quen thuộc và tác động lớn đến đời sống hàng ngày
Các công nghệ truyền thông không dây phổ biến:
Trang 26Wireless USB có tính năng tương tự USB nói chung nhưng không cần dây cáp
Nó hỗ trợ máy in, máy ảnh, ổ cứng rời kết nối không dây với máy tính Wireless USB sử dụng nền tảng UWB (ultra-wideband) với tốc độ lên đến 2 GB/giây, cho phép gửi video độ phân giải cao mà không tiêu tốn quá nhiều điện Những sản phẩm
Wireless USB đầu tiên cũng mới chỉ bắt đầu được giới thiệu ra thị trường
Trang 27Hình 2.5: Wi-Fi
WiFi sử dụng sóng vô tuyến (RF) để cho phép hai thiết bị kết nối với nhau Công nghệ này được sử dụng phổ biến nhất để kết nối các bộ định tuyến Internet với các thiết bị như máy tính, máy tính bảng và điện thoại Tuy nhiên, nó cũng có thể được sử dụng để kết nối bất kỳ hai phần cứng nào với nhau
2.3 TỔNG QUAN CÔNG NGHỆ TRUYỀN THÔNG WI-FI
2.3.1 Giới thiệu
Wifi mà mạng kết nối Internet không dây, là từ viết tắt của Wireless Fidelity,
sử dụng sóng vô tuyến để truyền tín hiệu Loại sóng vô tuyến này tương tự như sóng điện thoại, truyền hình và radio Và trên hầu hết các thiết bị điện tử ngày nay như máy tính, laptop, điện thoại, máy tính bảng đều có thể kết nối Wifi
Trang 28Hình 2.6: Kết nối Wi-Fi
2.3.2 Nguyên lý hoạt động
Để có được sóng Wifi thì cần phải có bộ phát Wifi - chính là các thiết bị như modem, router Đầu vào, tín hiệu Internet nguồn (được cung cấp bởi các đơn vị ISP như FPT, Viettel, VNPT, CMC hiện nay) Thiết bị modem, router sẽ lấy tín hiệu Internet qua kết nối hữu tuyến rồi chuyển thành tín hiệu vô tuyến, và gửi đến các thiết
bị sử dụng như điện thoại smartphone, máy tính bảng, laptop Đây là quá trình nhận tín hiệu không dây (hay còn gọi là adapter) - chính là card Wifi trên laptop, điện thoại và chuyển hóa thành tín hiệu Internet Và quá trình này hoàn toàn có thể thực hiện ngược lại, nghĩa là router, modem nhận tín hiệu vô tuyến từ adapter và giải mã chúng, gửi qua Internet
Cũng giống như điện thoại di động, Wifi sử dụng sóng radio (sóng vô tuyến)
để truyền thông tin qua hệ thống mạng Máy tính bao gồm một card mạng không dây
sẽ truyền dữ liệu gửi vào tín hiệu radio
Tương tự tín hiệu này sẽ được truyền đi thông qua một ăng-ten, một bộ giải
mã gọi là router Sau khi giải mã xong, dữ liệu sẽ được gửi đến Internet thông qua một kết nối Ethernet có dây
Khi mạng không dây hoạt động như đường 2 chiều, các dữ liệu nhận được từ internet cũng sẽ đi qua router và được mã hoá thành tín hiệu radio để card mạng không dây trên máy tính nhận
Trang 292.3.3 Một số chuẩn kết nối Wi-Fi phổ biến
Về bản chất kỹ thuật, tín hiệu Wifi hoạt động gửi và nhận dữ liệu ở tần
số 2.5GHz đến 5GHz, cao hơn khá nhiều so với tần số của điện thoại di động, radio
do vậy tín hiệu Wifi có thể chứa nhiều dữ liệu nhưng lại bị hạn chế ở phạm vi truyền
- khoảng cách Còn các loại sóng khác tuy tần số thấp nhưng lại có thể truyền đi ở khoảng cách rất xa
Sóng Wifi sử dụng chuẩn kết nối 802.11 trong thư viện IEEE (Institute of Electrical and Electronics Engineers), chuẩn này bao gồm 4 chuẩn nhỏ hơn
là a/b/g/n (thường thấy trên modem, router có các ký hiệu này)
Chuẩn 802.11b là phiên bản yếu nhất, hoạt động ở mức 2.4GHz và có thể xử
2.4 GIỚI THIỆU CHUẨN GIAO TIẾP I2C
2.4.1 Giới thiệu chung
Đầu năm 1980 Phillips đã phát triển một chuẩn giao tiếp nối tiếp 2 dây được gọi là I2C I2C là tên viết tắt của cụm từ Inter-Intergrated Circuit Đây là đường Bus giao tiếp giữa các IC với nhau Bus I2C được sử dụng làm bus giao tiếp ngoại vi cho rất nhiều loại IC khác nhau như các loại Vi điều khiển 8051, PIC, AVR, ARM chip nhớ như: RAM tĩnh (Static Ram), EEPROM, bộ chuyển đổi tương tự số (ADC), số tương tự(DAC), IC điểu khiển LCD, LED
Hình 2.7: Giao tiếp I2C
Trang 302.4.2 Đặc điểm giao tiếp I2C
Một giao tiếp I2C gồm có 2 dây: Serial Data (SDA) và Serial Clock (SCL) SDA là đường truyền dữ liệu 2 hướng, còn SCL là đường truyền xung đồng hồ để đồng bộ và chỉ theo một hướng Như thấy trên hình vẽ trên, khi một thiết bị ngoại vi kết nối vào đường bus I2C thì chân SDA của nó sẽ nối với dây SDA của bus, chân SCL sẽ nối với dây SCL
Hình 2.8: Sơ đồ kết nối thiết bị với I2C
Mỗi dây SDA hãy SCL đều được nối với điện áp dương của nguồn cấp thông qua một điện trở kéo lên (pullup resistor) Sự cần thiết của các điện trở kéo này là vì chân giao tiếp I2C của các thiết bị ngoại vi thường là dạng cực máng hở (opendrain hay opencollector) Giá trị của các điện trở này khác nhau tùy vào từng thiết bị và chuẩn giao tiếp, thường dao động trong khoảng 1K đến 4.7k
Trở lại với hình 1, thấy có rất nhiều thiết bị (ICs) cùng được kết nối vào một bus I2C, tuy nhiên sẽ không xảy ra chuyện nhầm lẫn giữa các thiết bị, bởi mỗi thiết
bị sẽ được nhận ra bởỉ một địa chỉ duy nhất với một quan hệ chủ/tớ tồn tại trong suốt thời gian kết nối Mỗi thiết bị có thể hoạt động như là thiết bị nhận hoặc truyền dữ liệu hay có thể vừa truyền vừa nhận Hoạt động truyền hay nhận còn tùy thuộc vào việc thiết bị đó là chủ (master) hãy tớ (slave)
Hình 2.9: Giao tiếp I2C 2
Nhìn hình trên thấy xung đồng hồ chỉ có một hướng từ chủ đến tớ, còn luồng
dữ liệu có thể đi theo hai hướng, từ chủ đến tớ hay ngược lại tớ đến chủ
Trang 312.4.3 Chế độ hoạt động (tốc độ truyền)
Các bus I2C có thể hoạt động ở ba chế độ, hay nói cách khác các dữ liệu trên bus I2C có thể được truyền trong 3 chế độ khác nhau:
Chế độ tiêu chuẩn (Standard mode)
Chế độ nhanh (Fast mode)
Chế độ cao tốc High-Speed (Hs) mode
Một bus I2C có thể hoạt động ở nhiều chế độ khác nhau:
Dù ở chế độ nào, một giao tiếp I2C đều dựa vào quan hệ chủ/tớ Giả thiết một thiết bị A muốn gửi dữ liệu đến thiết bị B, quá trình được thực hiện như sau:
định địa chỉ, thiết bị A sẽ quyết định việc đọc hay ghi vào thiết bị tớ -Thiết bị
A gửi dữ liệu tới thiết bị B
Khi A muốn nhận dữ liệu từ B, quá trình diễn ra như trên, chỉ khác là A sẽ nhận
dữ liệu từ B Trong giao tiếp này, A là chủ còn B vẫn là tớ Chi tiết việc thiết lập một giao tiếp giữa hai thiết bị sẽ được mô tả chi tiết trong các mục dưới đây
Trình tự truyền bit trên đường truyền:
Hình 2.10: Trình tự truyền Bit trong giao tiếp I2C
Thiết bị chủ tạo một điều kiện start Điều kiện này thông báo cho tất cả các thiết
bị tớ lắng nghe dữ liệu trên đường truyền Để kết thúc quá trình giao tiếp, thiết bị chủ tạo ra một điều kiện stop
2.4.4 Điều kiện START và STOP
START và STOP là những điều kiện bắt buộc phải có khi một thiết bị chủ muốn thiết lập giao tiếp với một thiết bị nào đó trên bus I2C START là điều kiện
Trang 32khởi đầu, báo hiệu bắt đầu của giao tiếp, còn STOP báo hiệu kết thúc một giao tiếp Hình dưới đây mô tả điều kiện START và STOP.
Hình 2.11: Điều kiện Start và Stop trong giao tiếp I2C
Điều kiện START: một sự chuyển đồi trạng thái từ cao xuống thấp trên đường SDA trong khi đường SCL đang ở mức cao (cao = 1; thấp = 0) báo hiệu một điều kiện START
Đỉều kiện STOP: Một sự chuyển đổi trạng thái từ mức thấp lên cao trên đường SDA trong khi đường SCL đang ở mức cao Cả hai điều kiện START và STOP đều được tạo ra bởi thiết bị chủ Sau tín hiệu START, bus I2C coi như đang trong trạng thái làm việc (busy) Bus I2C sẽ rỗi, sẵn sàng cho một giao tiếp mới sau tín hiệu
STOP từ phía thiết bị chủ
Truyền dữ liệu:
Mỗi xung clock có một bit dữ liệu được truyền Mức tín hiệu SDA chỉ được thay đổi khi xung clock đang ở mức thấp, và ổn định khi xung clock ở mức cao Thiết
bị tớ có thể lấy mẫu dữ liệu khi xung clock ở mức cao
Hình 2.12: Truyền dữ liệu trong giao tiếp I2C
Trang 332.5 CHUẨN GIAO TIẾP 1-WIRE
2.5.1 Giới thiệu
Chuẩn giao tiếp 1 dây (1 wire) do hãng Dallas giới thiệu Trong chuẩn giao tiếp này chỉ cần 1 dây để truyền tín hiệu và làm nguồn nuôi (nếu không tính dây mass) Một tính năng đặc biệt của bus là khả năng chỉ sử dụng hai dây tín hiệu: data
và GND Để thực hiện điều này, các thiết bị 1-Wire bao gồm một tụ điện 800pF để trữ điện, và cung cấp nguồn trong quá trình đường data đang hoạt động
Bốn thao tác hoạt động cơ bản của bus 1-wire là Reset/Presence, gửi bit 1, gửi bit 0, và đọc bit Thao tác byte như gửi byte và đọc byte dựa trên thao tác từng bit Gửi bit 1 (“Write 1” signal): Thiết bị master kéo bus xuống mức thấp trong khoảng 1 đến 15µs Sau đó nhả bus (releases the bus) cho đến hết phần còn lại của khe thời gian
Hình 2.13: Gửi tín hiệu bit “1”
Gửi bit 0 ("Write 0" signal): Kéo bus xuống mức thấp trong ít nhất 60µs, với chiều dài tối đa là 120 µs
Hình 2.14: Gửi tín hiệu bit “0”
Lưu ý: giữa các lần gửi bit (0 hoặc 1), phải có khoảng thời gian phục hồi bus (recovery time) tối thiểu 1 µs
Trang 34Đọc bit: Thiết bị master kéo bus xuống mức thấp từ 0 -15µs Khi đó thiết bị tớ khi đó sẽ giữ bus ở mức thấp nếu muốn gửi bit 0, Nếu muốn gửi bit 1 đơn giản là nhả bus Bus nên lấy mẫu 15 µs sau khi bus kéo xuống mức thấp
Hình 2.15: Đọc bit
Reset/Presence: Tín hiệu Reset và Presence (báo hiện diện) được trình bày như hình bên dưới Thiết bị master kéo bus xuống thấp ít nhất 8 khe thời gian (tức là 480 µs) và sau đó nhả bus Khoảng thời gian bus ở mức thấp đó gọi là tín hiệu reset Nếu
có thiết bị slave gắn trên bus nó sẽ trả lời bằng tín hiệu Presence tức là thiết bị tớ sẽ kéo bus xuống mức thấp trong khoảng thời gian 60µs Nếu không có tín hiệu Presence, thiết bị master sẽ hiểu rằng không có thiết bị slave nào trên bus, và các giao tiếp sau đó sẽ không thể diễn ra
Hình 2.16: Tín hiệu Reset và Presence
Hình 2.17: Tổng hợp dạng sóng các tiến trình hoạt động chuẩn 1-Wire
Trang 352.6 CHUẨN GIAO TIẾP UART
2.6.1 Giới thiệu
UART chuyển đổi giữa dữ liệu nối tiếp và song song Một chiều UART chuyển đổi dữ liệu song song bus hệ thống ra dữ liệu nối tiếp để truyền đi Một chiều khác UART chuyển đổi dữ liệu nhận được dạng dữ liệu nối tiếp thành dạng dữ liệu song song cho CPU có thể đọc vào bus hệ thống
Hình 2.18: Truyền dữ liệu UART
2.6.2 Các thông số cơ bản của chuẩn truyền UART
Baud rate (tốc độ Baud): Khi truyền nhận không đồng bộ để hai module hiểu được nhau thì cần quy định một khoảng thời gian cho 1bit truyền nhận, nghĩa là trước khi truyền thì tốc độ phải được cài đặt đầu tiên Theo định nghĩa thì tốc độ baud là số bit truyền trong một giây
Frame (khung truyền): Do kiểu truyền thông nối tiếp này rất dễ mất dữ liệu nên ngoài tốc độ, khung truyền cũng được cài đặt từ ban đầu để giảm bớt sự mất mát
dữ liệu này Khung truyền quy định số bit trong mỗi lần truyền, các bit thông báo như start, stop, các bit kiểm tra như parity, và số bit trong một data
Bit Start: Là bit bắt đầu trong khung truyền Bit này nhằm mục đích báo cho thiết bị nhận biết quá trình truyền bắt đầu Trên AVR bit Start có trạng thái là 0 Data: Dữ liệu cần truyền data không nhất thiết phải 8 bit có thể là 5, 6, 7, 8, 9 Trong UART bit LSB được truyền đi trước, bit MSB được truyền đi sau
Parity bit: Là bit kiểm tra dữ liệu Có 2 loại parity: chẵn (even parity), lẻ (old parity) Parity chẵn là bit parity thêm vào để tổng số 1 trong data + parity = chẵn Parity lẻ là bit parity thêm vào để tổng số 1 trong data + parity = lẻ Bit parity là không bắt buộc nên có thể dùng hoặc không
Trang 362.7.2 Các chức năng chính của Blynk
Các chức năng của Blynk:
● Cung cấp API & giao diện người dùng tương tự cho tất cả các thiết bị và phần cứng được hỗ trợ
● Kết nối với server bằng cách sử dụng: Wifi, Bluetooth, Ethernet, USB(serial), GSM…
● Các tiện ích trên giao diện được nhà phát hành cung cấp dễ sử dụng
● Thao tác kéo thả trực tiếp giao diện mà không cần viết mã
● Dễ dàng tích hợp và thêm chức năng mới bằng cách sử dụng các cổng kết nối ảo được tích hợp trên Blynk app
● Theo dõi lịch sử dữ liệu
● Thông tin liên lạc từ thiết bị đến thiết bị bằng Widget
● Gửi email, tweet, thông báo realtime,…
Trang 372.7.3 Nguyên lý hoạt động của Blynk
Library Blynk – hỗ trợ cho hầu hết tất cả các nền tảng phần cứng phổ biến - cho phép giao tiếp với máy chủ và xử lý tất cả các lệnh đến và đi
Ví dụ hoạt động: giả sử có nút nhấn kết nối với Blynk, mỗi khi nhấn một nút trong ứng dụng Blynk, yêu cầu sẽ chuyển đến server của Blynk, server sẽ kết nối đến phần cứng thông qua library Tương tự thiết bị phần cứng sẽ truyền dữ liệu ngược lại đến server
Hình 2.20: Sơ đồ kết nối Blynk
Trang 382.8 XÂY DỰNG WEB SERVER
2.8.1 Ngôn ngữ HTML
a Giới thiệu
Ngôn ngữ HTML (HyperText Markup Language – ngôn ngữ siêu văn bản) là một trong các loại ngôn ngữ được sử dụng trong lập trình web Khi truy cập một trang web cụ thể là click vào các đường link, sẽ được dẫn tới nhiều trang khác nhau, các trang này được gọi là một tài liệu HTML (tập tin HTML)
Một trang HTML như vậy được cấu thành bởi nhiều phần tử HTML nhỏ và được quy định bằng các thẻ tag Có thể phân biệt một trang web được viết bằng ngôn ngữ HTML hay PHP thông qua đường link của nó Ở cuối các trang HTML thường hay có đuôi là HTML hoặc HTM
HTML là ngôn ngữ lập trình web được đánh giá là đơn giản Mọi trang web, mọi trình duyệt web đều có thể hiển thị tốt ngôn ngữ HTML Hiện nay, phiên bản mới nhất của HTML là HTML 5 với nhiều tính năng và chất lượng hơn so với các phiên bản cũ
b Vai trò
Là một loại ngôn ngữ đánh dấu siêu văn bản, giúp cấu thành các cấu trúc cơ bản trên một website (chia khung sườn, bố cục các thành phần trang web) và góp phần hỗ trợ khai báo các tập tin kĩ thuật số như video, nhạc, hình ảnh
Để xây dựng được một website hoàn chỉnh, trên bất kỳ nền tảng nào khác đều cũng phải cần sự hỗ trợ của HTML, dù ít hay nhiều
c Ưu và nhược điểm
Bất kể thử gì cũng đều có ưu và nhược điểm của riêng nó
Ưu điểm:
Ngôn ngữ được sử dụng rộng lớn, có nguồn tài nguyên hỗ trợ và cộng đồng
sử dụng rộng lớn
Sử dụng mượt trên mọi loại trình duyệt
Dễ dàng tích hợp các ngôn ngữ backend khác như PHP và Node.js
Mã nguồn mở và hoàn toàn miễn phí
Khuyết điểm:
Trang 39 Dùng chủ yếu cho web tĩnh Đối với các tính năng động, cần sử dụng JavaScript hoặc ngôn ngữ backend bên thứ 3 như PHP
Một số trình duyệt chậm hỗ trợ tính năng mới
Khó kiểm soát logs của trình duyệt
d Cấu trúc
Để hoàn thiện một file HTML, cần sử dụng thẻ <html> để bắt đầu và kết thúc bằng thẻ </html> Bên trong một file gồm có 2 phần cơ bản:
Phần tiêu đề: bắt đầu bằng thẻ <head> và kết thúc bởi thẻ </head> Phần này
chưa tiêu đề được hiển thị trên thanh điều hướng của trang web Tiêu đề nằm trong title, bắt đầu bằng thẻ <title> và kết thúc bằng thẻ </title> Đây là phần rất quan trọng vì nắm vai trò trong việc tìm kiếm thông tin, nói cách khác chính
là từ khóa cho công cụ tìm kiếm
Phần thân: nằm sau phần tiêu đề Bao gồm văn bản, hình ảnh, video và các
nội dung khác muốn hiển thị trên trang web Bắt đầu bằng thẻ <body> và kết thúc bằng thẻ </body>
Thẻ khối <span>, <div>, <p>
Có những trường hợp muốn chia văn bản trong một trang web thành những khối thông tin logic khi đó phần tử div và span được sử dụng để nhóm nội dung lại với nhau Thẻ div rất thường được sử dụng trong thiết kế website layout
dùng để định nghĩa nội dung mức khối (block-level)
Trang 40 Phần tử p định nghĩa một đoạn văn bản
Chèn ảnh
Thẻ <img> dùng để chèn hình ảnh vào trong HTML Cũng có thể đặt thẻ
<img> tại vị trí mà hình ảnh được hiển thị Thẻ <img> không có nội dung, nó hiển thị nội dung bằng cách xác định thuộc tính src Cú pháp là:
<img src = “url”>
Trong đó src (source) là thuộc tính và giá trị là một url, chỉ vị trí chính xác của
file ảnh
Thuộc tính align của thẻ <img> có thể được sử dụng để điều chỉnh canh lề
của ảnh với văn bản xung quanh
<img align = position src=”PICTURE.GIF”>
Trong đó, vị trí của ảnh có thể là trên (top), dưới (bottom), ở giữa (middle), trái (left) hoặc phải (right)
Nếu muốn dùng hàng đầu tiên làm hàng tiêu đề (chữ được tô đậm và đặt ở
giữa), thì thay vì dùng cặp thẻ <td></td> đổi lại dùng cặp thẻ <th></th>
Thẻ liên kết
Thẻ <a> dùng để tạo liên kết với một địa chỉ url Cấu trúc như sau:
<a href = “ http://www.hcmute.edu.vn”> HCMUTE </a>