1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

ĐỒ án hệ thống điều khiển và giám sát ngôi nhà thông minh pdf

81 623 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 81
Dung lượng 7,34 MB

Nội dung

ĐỒ án hệ thống điều khiền và giám sát ngôi nhà thông minhĐỒ án hệ thống điều khiền và giám sát ngôi nhà thông minhĐỒ án hệ thống điều khiền và giám sát ngôi nhà thông minhĐỒ án hệ thống điều khiền và giám sát ngôi nhà thông minhĐỒ án hệ thống điều khiền và giám sát ngôi nhà thông minhĐỒ án hệ thống điều khiền và giám sát ngôi nhà thông minhĐỒ án hệ thống điều khiền và giám sát ngôi nhà thông minhĐỒ án hệ thống điều khiền và giám sát ngôi nhà thông minhĐỒ án hệ thống điều khiền và giám sát ngôi nhà thông minhĐỒ án hệ thống điều khiền và giám sát ngôi nhà thông minhĐỒ án hệ thống điều khiền và giám sát ngôi nhà thông minhĐỒ án hệ thống điều khiền và giám sát ngôi nhà thông minhĐỒ án hệ thống điều khiền và giám sát ngôi nhà thông minh

Trang 1

-o0o - NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

GVHD: ThS Đỗ Hoàng Ngân Mi

I Đề tài: "HỆ THỐNG GIÁM SÁT NGÔI NHÀ THÔNG MINH"

II Các tham số ban đầu:

- Nguồn cấp cho mạch động lực: 12V DC hoặc 220V AC

- Nguồn cấp cho mạch điều khiển: 3.3V DC hoặc 5V DC

- Để phát hiện đối tượng và điều khiển các thiết bị sử dụng các bộ cảm biến, phần mềm blynk

III Nội dung cần khảo sát và thiết kế:

- Tổng quan về các hệ thống thông minh có trong thực tế

- Tìm hiều một hệ thống điều khiển thông minh trong thực tế, từ đó tìm hiều quy trình công nghệ của một hệ thống điều khiển một đối tượng nào đó

- Phân tích, đánh giá các mô hình của SV đã làm

- Thiết kế và chế tạo mô hình hệ thống giám sát ngôi nhà thông minh (điều khiển tối thiểu 5 đối tượng khác nhau, theo nhiệt độ, độ ẩm của đối tượng hoặc phạm vi giám sát)

- Phân tích, tính toán các bộ phận cơ khí và truyền động

- Tính chọn các phần tử và các thiết bị điều khiển, cảm biến …

- Lập trình điều khiển hệ thống dùng arduino, esp8266

- Kết luận

IV Các phần cần phải làm và nộp:

- Tập đồ án

- Bản vẽ sơ đồ nguyên lý A0

- Đĩa CD gồm file Word đề tài và file Powerpoint

- Mô hình chế tạo

V Thời gian hoàn thành đồ án: 20 tháng 3 năm 2017

Kiểm tra tiến độ đồ án Đà Nẵng, ngày tháng 4 năm 2017

(Giáo viên HD ký mỗi lần SV đến Giáo viên hướng dẫn

gặp thông qua đồ án)

Trang 2

Trang 3

Trang 4

LỜI NÓI ĐẦU

Ngày nay cùng với sự phát triển mạnh mẽ của các ngành khoa học kỹ thuật, công nghệ kỹ thuật điện tử mà trong đó là kỹ thuật tự động điều khiển đóng vai trò quan trọng trong mọi lĩnh vực khoa học kỹ thuật, quản lí, công nghiệp, cung cấp thông tin Do đó là một sinh viên chuyên ngành Điện tự động chúng ta phải biết nắm bắt và vận dụng nó một cách có hiệu quả nhằm góp phần vào sự phát triển nền khoa học kỹ thuật thế giới nói chung và trong sự phát triển kỹ thuật điện tử nói riêng Bên cạnh đó còn là sự thúc đẩy sự phát triển của nền kinh tế nước nhà

Như chúng ta đã biết,nhu cầu về cuộc sống ngày càng được nâng cao,nên nhu câu về sự tiện nghi trong ngôi nhà ở cũng không nằm ngoài xu thế đó Ngoài ra các

vụ việc đột nhập nhà ở không những gây thiệt hại lớn về tài sản của các gia đình mà còn tạo sự lo lắng cho nhiều người, ảnh hưởng đến an toàn trật tự của toàn xã hội.Theo khảo sát thì phần lớn các vụ trộm cắp tài sản của các gia đình chủ yếu xảy

ra khi tất cả mọi người trong gia đình đều đã đi làm hoặc ngủ say Nên có một hệ thống cảnh báo sẽ giảm được phần lớn thiệt hại Các thiết bị trong nhà ở được điều khiển một cách tự động cũng như giám sát từ xa sẽ đem lại một cuộc sống thoải mái cho mọi thành viên trong gia đình

Để giám sát được ngôi nhà và tài sản một cách 24/24 chúng ta cần phải có một phương tiện giám sát hiệu quả hơn, thông minh hơn

Do đó, tôi chọn để tài “ Hệ thống giám sát ngôi nhà thông minh” làm đề tài tốt nghiệp của mình

Trang 5

MỤC LỤC

LỜI NÓI ĐẦU 1

MỤC LỤC 2

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI 6

1.1 VAI TRÒ VÀ ỨNG DỤNG CỦA ARDUINO HIỆN NAY 6

1.1.1 Giới thiệu về arduino 6

1.1.2 Ứng dụng arduino trong thực tế 6

1.2 LÝ DO CHỌN ĐỀ TÀI 8

1.3 MỤC ĐÍCH CỦA ĐỀ TÀI 9

1.4 MỤC TIÊU VÀ PHẠM VI NGHIÊN CỨU 9

1.5 CÁC PHƯƠNG PHÁP NGHIÊN CỨU 9

CHƯƠNG 2: TỔNG QUAN VỀ HỆ THỐNG WIFI, GIỚI THIỆU CHIP ESP8622 VÀ BOARD ARDUINO UNO 10

2.1 GIỚI THIỆU VỀ CÔNG NGHỆ WIFI 10

2.1.1 Nguyên tắc hoạt động 10

2.1.2 Các chuẩn kết nối 11

2.2 GIỚI THIỆU VỀ MODULE ESP8622 14

2.2.1 Tổng quan về module esp8622 14

2.2.2 Tính năng của chip esp8622 14

2.2.3 Sơ đồ chân 15

2.2.4 Tập lệnh AT giao tiếp với Module ESP8266 15

2.2.5 Các phương pháp kết nối thiết bị với esp8266 17

2.3 GIỚI THIỆU VỀ BOARD ARDUINO 22

2.3.1 Cấu tạo phần cứng 22

2.3.2 Môi trường lập trình board mạch Arduino 23

2.3.3 Các loại Board mạch Arduino 23

2.3.5 Sơ đồ chân board arduino uno 26

2.3.6 Các thông số của board arduino uno 27

2.4 TỔNG QUAN VỀ PHẦN MỀM BLYNK 47

2.4.1 Giới thiệu phần mềm blynk 47

2.4.2 Thao tác đối với phần mềm blynk 48

Trang 6

CHƯƠNG 3: THIẾT KẾ VÀ LẮP RÁP MÔ HÌNH NGÔI NHÀ THÔNG

MINH 51

3.1 SƠ ĐỒ KHỐI TỔNG QUÁT CỦA HỆ THỐNG 51

3.2 KHỐI GIAO TIẾP MẠNG WIFI 52

3.3 KHỐI XỬ LÝ TRUNG TÂM 53

3.4 KHỐI CẢM BIẾN 54

3.4.2 Cảm biến nhiệt độ độ ẩm DHT22 56

3.5 KHỐI CƠ CẤU CHẤP HÀNH 57

3.5.1 Rơ le 57

3.5.2 Động cơ servo 58

3.5.3 Còi báo động 60

3.5.4 Động cơ một chiều 61

3.6 KHỐI HIỂN THỊ LCD 62

3.6.1Chức năng 62

3.6.2 Thiết kế: 63

3.7 KHỐI NGUỒN 65

CHƯƠNG 4 LẬP TRÌNH TRƯỜNG TRÌNH ĐIỀU KHIỂN 67

4.1 TRƯƠNG TRÌNH ĐIỀU KHIỂN ARDUINO 67

4.1.1 lưu đồ thuật toán ardiuno 67

4.1.2 Chi tiết trương trình điều khiển arduino 68

4.2 TRƯƠNG TRÌNH ĐIỀU KHIỂN ESP8266 71

4.2.1 Lưu đồ thuật toán esp8266 71

4.2.2 Chi tiết trương trình điều khiển esp8266 72

CHƯƠNG 5 KIỂM TRA ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN 76

5.1 KIỂM TRA HỆ THỐNG 76

5.2 KẾT QUẢ 76

5.3 KẾT LUẬN 77

TÀI LIỆU THAM KHẢO 78

Trang 8

2.29 Led sáng dần từ led 1 đến led 10 và ngược lại 42

Trang 9

CHƯƠNG I: GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI

1.1 VAI TRÒ VÀ ỨNG DỤNG CỦA ARDUINO HIỆN NAY

1.1.1 Giới thiệu về arduino

Arduino: là một nền tảng mã nguồn mở được sử dụng để xây dựng các ứng

dụng điện tử Arduino gồm có board mạch có thể lập trình được ( thường gọi là vi

điều khiển và các phần mềm hỗi trợ IDE (Integrated Development Environment)

dùng để soạn thảo, biên dịch code và nạp chương cho board

Arduino ngày nay rất phổ biến cho những người mới bắt đầu tìm hiểu về điện

tử vì nó đơn giản, hiệu quả và dễ tiếp cận Không giống như các loại vi điều khiển khác, Arduino không cần phải có các công cụ chuyên biệt để phục vụ việc nạp code,

ví dụ để nạp code cho PIC cần phải có Pic Kit Đối với Arduino rất đơn giản, ta có thể kết nối với máy tính bằng cáp USB

Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY (là những người tự chế ra sản phẩm của mình) trên toàn thế giới trong vài năm gần đây, gần giống với những gì Apple đã làm được trên thị trường thiết bị di động Số lượng người dùng cực lớn và đa dạng với trình độ trải rộng từ bậc phổ thông lên đến đại học đã làm cho ngay cả những người tạo ra chúng phải ngạc nhiên về m Arduino ra đời tại thị trấn Ivrea thuộc nước Ý và được đặt theo tên một vị vua vào thế kỷ thứ 9 là King Arduin Arduino chính thức được đưa ra giới thiệu vào năm 2005 như là một công cụ khiêm tốn dành cho các sinh viên của giáo sư Massimo Banzi, là một trong những người phát triển Arduino, tại trường Interaction Design Instistute Ivrea (IDII) Mặc dù hầu như không được tiếp thị gì cả, tin tức về Arduino vẫn lan truyền với tốc độ chóng mặt nhờ những lời truyền miệng tốt đẹp của những người dùng đầu tiên Hiện nay Arduino nổi tiếng tới nỗi có người tìm đến thị trấn Ivrea chỉ để tham quan nơi đã sản sinh ra Arduino

1.1.2 Ứng dụng arduino trong thực tế

Máy in 3d

Một cuộc cách mạng khác cũng đang âm thầm định hình nhờ vào Arduino, đó

là sự phát triển máy in 3D nguồn mở Reprap Máy in 3D là công cụ giúp tạo ra các vật thể thực trực tiếp từ các file CAD 3D Công nghệ này hứa hẹn nhiều ứng dụng rất thú vị trong đó có cách mạng hóa việc sản xuất cá nhân

Trang 10

Hình 1.1 Máy in 3D Makerbot điều khiển bằng Arduino Mega2560

Thiết bị bay không người lái (UAV)

UAV là một ứng dụng đặc biệt thíchhợp với Arduino do chúng có khả năng xử

lý nhiều loại cảm biến như Gyro, accelerometer, GPS…; điều khiển động cơ servo

và cả khả năng truyền tín hiệu từ xa

Hình 1.2 thiết bị UAV

Trang 11

Điều khiển nhà thông minh (Smart Home)

Kết hợp với các module chức năng bluetooth hoặc wifi , với các ứng dụng cài đặt trên máy tính bảng, smartphone hay trình duyệt web người dùng có thể thiết

kế hệ thống điều khiển giám sát thông minh các thiết bị điện trong ngôi nhà của mình khi ở trong nhà hoặc từ bất cứ nới nào (được kết nối internet)

Hình 1.3 Arduino Điều khiển nhà thông minh với Máy tính bảng và smartphone

1.2 LÝ DO CHỌN ĐỀ TÀI

Kỹ thuật điều khiển và tự động hóa là ngành công nghệ liên quan đến việc ứng dụng các kỹ thuật cơ khí hiện đại, kỹ thuật điều khiển và kỹ thuật máy tính vào việc vận hành và điều khiển quá trình sản xuất

Ngày nay, khi nhu cầu và thị hiếu con người ngày càng cao, yêu cầu về số lượng và chất lượng của các sản phẩm xã hội cũng không ngừng tăng, điều đó đòi hỏi các dây chuyền sản xuất trong công nghiệp ngày càng hiện đại, có mức độ tự động hóa ngày càng cao với việc sử dụng các kỹ thuật điều khiển hiện đại có trợ giúp của máy tính Hệ thống điều khiển và tự động hóa có mặt trong mọi dây chuyền sản xuất của các ngành kinh tế khác nhau như: công nghiệp, nông nghiệp,

Trang 12

giao thông vận tải,…

Vì vậy một hệ thống điều khiển thông minh và hoàn toàn tự động là một xu

thế tất yếu Ưng dụng hệ thống thông minh vào điều khiển cac thiết bị nhà ở và sân vườn vẫn còn khá mới mẻ ở Việt Nam Nhóm đã quyết ddingj chộn đề tài ngôi nhà thông minh để làm đề trài nguyên cứu của mình để đón đầu xu thế đó

1.3 MỤC ĐÍCH CỦA ĐỀ TÀI

Nhóm xây dựng đề tài đã chọn theo hướng xây dựng hệ thống sử dụng arduino

và esp8266 để quản lý ở nơi mà con người phải bỏ sức ra để thực hiện một công việc lặp đi lặp lại hằng ngày Nhằm bỏ qua sự tác động của con người, con người

sẽ không phải bận tâm quá nhiều đến việc quản lý ngôi nhà Mang lại một cuộc sống thoải mái

1.4 MỤC TIÊU VÀ PHẠM VI NGHIÊN CỨU

Nhóm thực hiện đề tài đã đặt ra mục tiêu nghiên cứu cụ thể như sau: tìm hiểu

về nguyên tắc hoạt động của công nghệ số trên module Arduino và ESP8266 Biết cách ứng dụng trên ardunio IDE Tìm hiểu hoạt động của cảm biến quang, cũng như cảm biến nhiệt độ và độ ẩm

Do giới hạn về thời gian nghiên cứu cũng như kiến thức chuyên ngành nên nhóm thực hiện đề tài chỉ tập trung nghiên cứu một số vấn đề chính xoay quanh đề tài như: Tìm hiểu và cài đặt các công cụ hỗ trợ lập trình arduinon IDE Tìm hiểu hoạt động của các thiết bị trong hệ thống

1.5 CÁC PHƯƠNG PHÁP NGHIÊN CỨU

Chúng em khi thực hiện đề tài đã sử dụng các phương pháp nghiên cứu đề tài sau:

+ Phương pháp phân tích tổng hợp lý thuyết

+ Phương pháp tham khảo tài liệu

+ Phương pháp thực nghiệm

v Cụ thể:

+ Tìm hiểu Arduino phần cứng và tập lệnh

+ Viết chương trình điều khiển bằng phần mềm Arduino IDE

+ Thiết kế các bộ phận của mô hình

+ Lắp ráp hoàn thiện mô hình ngôi nhà thông minh

Trang 13

CHƯƠNG II: TỔNG QUAN VỀ HỆ THỐNG WIFI,

GIỚI THIỆU CHIP ESP8622 VÀ BOARD ARDUINO UNO

2.1 GIỚI THIỆU VỀ CÔNG NGHỆ WIFI

Wifi là viết tắt của từ Wireless Fidelity trong tiếng Anh, được gọi chung là

mạng không dây sử dụng sóng vô tuyến Wifi là loại sóng vô tuyến tương tự như

sóng điện thoại, sóng truyền hình và radio Hầu hết các thiết bị sử dụng điện tử hiện

nay như : Smartphone, Máy tính bảng, Tivi, Laptop… đều có thể kết nối được

Wi-Fi Và Wifi là thứ gắn liền và không thể thiếu với đời sống của người dân trong hầu hết công việc cũng như giải trí hàng ngày

Kết nối Wifi dựa trên các loại chuẩn kết nối IEEE 802.11, và chủ yếu hiện nay Wifi hoạt động trên băng tần 54 Mbps và có tín hiệu mạnh nhất trong khoảng cách

100 feet gần 31 mét

2.1.1 Nguyên tắc hoạt động

Hình 2.1 Nguyên tắc hoạt động của wifi

Truyền thông qua mạng không dây là truyền thông vô tuyến hai chiều.Cụ thể:

Thiết bị adapter không dây (hay bộ chuyển tín hiệu không dây) của máy tính chuyển đổi dữ liệu sang tín hiệu vô tuyến và phát những tín hiệu này đi bằng

một ăng-ten

Trang 14

Thiết bị router không dây nhận những tín hiệu này và giải mã chúng Nó gởi thông tin tới Internet thông qua kết nối hữu tuyến Ethernet

Qui trình này vẫn hoạt động với chiều ngược lại, router nhận thông tin từ Internet, chuyển chúng thành tín hiệu vô tuyến và gởi đến adapter không dây của máy tính

Sóng WIFI: Các sóng vô tuyến sử dụng cho WiFi gần giống với các sóng vô tuyến sử dụng cho thiết bị cầm tay, điện thoại di động và các thiết bị khác Nó có thể chuyển và nhận sóng vô tuyến, chuyển đổi các mã nhị phân 1 và 0 sang sóng vô tuyến và ngược lại

Tuy nhiên, sóng WiFi có một số khác biệt so với các sóng vô tuyến khác ở chỗ:

Chúng truyền và phát tín hiệu ở tần số 2.5 GHz hoặc 5GHz Tần số này cao

hơn so với các tần số sử dụng cho điện thoại di động, các thiết bị cầm tay và truyền 2.1.2 Các chuẩn kết nối

Hình 2.2 Các chuẩn kết nối wifi

Chúng truyền và phát tín hiệu ở tần số 2.4 GHz hoặc 5 GHz Tần số này cao hơn so với các tần số sử dụng cho điện thoại di động, các thiết bị cầm tay và truyền hình Tần số cao hơn cho phép tín hiệu mang theo nhiều dữ liệu hơn

Chuẩn 802.11

IEEE 802.11 là một tập các chuẩn của tổ chức IEEE (tiếng Anh: Institute of Electrical and Electronic Engineers) bao gồm các đặc tả kỹ thuật liên quan đến hệ

Trang 15

thống mạng không dây Chuẩn IEEE 802.11 mô tả một giao tiếp “truyền qua không khí” (tiếng Anh: over-the-air) sử dụng sóng vô tuyến để truyền nhận tín hiệu giữa một thiết bị không dây và tổng đài hoặc điểm truy cập (tiếng Anh: access point), hoặc giữa 2 hay nhiều thiết bị không dây với nhau

Năm 1997, IEEE giới thiệu chuẩn mạng không dây đầu tiên và đặt tên nó là 802.11 Khi đó, tốc độ hỗ trợ tối đa của mạng này chỉ là 2 Mbps với bang tầng 2.4GHz

Chuẩn 802.11b

IEEE đã mở rộng trên chuẩn 802.11 gốc vào tháng Bảy năm 1999, đó chính là chuẩn802.11b Chuẩn này hỗ trợ băng thông lên đến 11Mbps, tương quan với Ethernet truyền thống

802.11b sử dụng tần số vô tuyến (2.4 GHz) giống như chuẩn ban đầu 802.11 Các hãng thích sử dụng các tần số này để chi phí trong sản xuất của họ được giảm Các thiết bị 802.11b có thể bị xuyên nhiễu từ các thiết bị điện thoại không dây (kéo dài), lò vi sóng hoặc các thiết bị khác sử dụng cùng dải tần 2.4 GHz Mặc dù vậy, bằng cách cài đặt các thiết bị 802.11b cách xa các thiết bị như vậy có thể giảm được hiện tượng xuyên nhiễu này

· Ưu điểm của 802.11b – giá thành thấp nhất; phạm vi tín hiệu tốt và không dễ

bị cản trở

· Nhược điểm của 802.11b – tốc độ tối đa thấp nhất; các ứng dụng gia đình có thể xuyên nhiễu

Chuẩn 802.11a

Được phát triển song song cùng với chuẩn 802.11b, chuẩn 802.11a hỗ trợ tốc

độ tối đa gần gấp 5 lần lên đến 54 Mpbs và sử dụng bằng tầng 5Ghz nhằm tránh bị nhiễu từ các thiết bị khác Tuy nhiên, đây cũng là nhược điểm của chuẩn này vì phạm vi phát sẽ hẹp hơn (40-100m) và khó xuyên qua các vật cản như vách tường Chuẩn này thường được sử dụng trong các mạng doanh nghiệp thay vì gia đình vì giá thành của nó khá cao

Chuẩn 802.11g

Năm 2003, chuẩn Wifi thế hệ thứ 3 ra đời và mang tên 802.11g Chuẩn này được kết hợp từ chuẩn a và b Được hỗ trợ tốc độ 54Mpbs như chuẩn a và sử dụng băng tầng 2.4GHz của chuẩn b vì vậy chuẩn này có phạm vi tín hiệu khá tốt (80-200m) và vẫn dễ bị nhiễu từ các thiết bị điện tử khác Ngày nay, một số hộ gia đình vẫn còn sử dụng chuẩn này

Trang 16

· Ưu điểm của 802.11g – tốc độ cao; phạm vi tín hiệu tốt và ít bị che khuất

· Nhược điểm của 802.11g – giá thành đắt hơn 802.11b; các thiết bị có thể bị xuyên nhiễu từ nhiều thiết bị khác sử dụng cùng băng tần

Chuẩn 802.11n (hay 802.11 b/g/n)

Đây là chuẩn được sử dụng phổ biến nhất hiện nay và tương đối mới Chuẩn WiFi 802.11n được đưa ra nhằm cải thiện chuẩn 802.11g bằng cách sử dụng công nghệ MIMO (Multiple-Input Multiple-Output) tận dụng nhiều anten hơn

Chuẩn kết nối 802.11n hỗ trợ tốc độ tối đa lên đến 600 Mpbs, có thể hoạt động trên cả băng tần 2,4 GHz và 5 GHz, nếu router hỗ trợ thì hai băng tần này có thể cùng phát sóng song song Chuẩn kết nối này đã và đang dần thay thế chuẩn 802.11g với tốc độ cao, phạm vi tín hiệu rất tốt (từ 100-250m) và giá thành đang ngày càng phù hợp với túi tiền người tiêu dùng

· Ưu điểm của 802.11n – tốc độ nhanh và phạm vi tín hiệu tốt nhất; khả năng chịu đựng tốt hơn từ việc xuyên nhiễu từ các nguồn bên ngoài

· Nhược điểm của 802.11n – chuẩn vẫn chưa được ban bố, giá thành đắt hơn 802.11g; sử dụng nhiều tín hiệu có thể gây nhiễu với các mạng 802.11b/g ở gần Chuẩn 802.11ac (hay chuẩn 802.11 a/b/g/n/ac)

Trong khoảng một năm trở lại đây chúng ta được nghe nhắc nhiều đến chuẩn Wi-Fi 802.11ac, hay còn gọi là Wi-Fi thế hệ thứ năm Nó là chuẩn mạng không dây đang ngày càng xuất hiện nhiều hơn trên các router, máy tính và tất nhiên là cả các thiết bị di động như smartphone So với Wi-Fi 802.11n đang được dùng phổ biến hiện nay, chuẩn 802.11ac mang lại tốc độ nhanh hơn

Là chuẩn Wifi mới nhất được IEEE giới thiệu Chuẩn ac có hoạt động ở băng tầng 5 GHz và tốc độ tối đa lên đến 1730 Mpbs khi sử dụng lại công nghệ đa anten trên chuẩn 802.11n cho người dùng trải nghiệm tốc độ cao nhất

Hiện tại, chuẩn này được sử dụng trên một số thiết bị cao cấp của các hang điện thoại như Apple, Samsung, Sony,… Tuy nhiên, do giá thành khá cao nên các thiết bị phát tín hiệu cho chuẩn này chưa được phổ biến trên thị trường nên mặc dù các thiết bị này không hoạt động tối ưu khi sử dụng bởi sự hạn chế của các thiết bị phát

Wifi Hotspot

Đây là tính năng mà thiết bị của bạn có thể phát sóng Wifi cho các thiết bị điện thoại, laptop, máy tính bảng khác Nói cách khác tính năng này biến chiếc Smartphone thành một chiếc Modem wifi

Trang 17

WiFi có thể hoạt động trên cả ba tần số và có thể nhảy qua lại giữa các tần số khác nhau một cách nhanh chóng Việc nhảy qua lại giữa các tần số giúp giảm thiểu

sự nhiễu sóng và cho phép nhiều thiết bị kết nối không dây cùng một lúc

2.2 GIỚI THIỆU VỀ MODULE ESP8622

2.2.1 Tổng quan về module esp8622

Kít ESP8266 là kít phát triển dựa trên nền chíp Wifi SoC ESP8266 với thiết kế

dễ dàng sửa dụng vì tích hợp sẵn mạch nạp sử dụng chíp CP2102 trên borad Bên trong ESP8266 có sẵn một lõi vi sử lý vì thế bạn có thể trực tiếp lập trình cho ESP8266 mà không cần thêm bất kì con vi sử lý nào nữa Hiện tại có hai ngôn ngữ

có thể lập trình cho ESP8266, sử dụng trực tiếp phần mềm IDE của Arduino để lập trình với bộ thư viện riêng hoặc sử dụng phần mềm node MCU

Module ESP8266 là module wifi giá rẻ và được đánh giá rất cao cho các ứng dụng liên quan đến Internet và Wifi cũng như các ứng dụng truyền nhận sử dụng thay thế cho các module RF khác

ESP8266 là một chip tích hợp cao, được thiết kế cho nhu cầu của một thế giới kết nối mới, thế giới Internet of thing (IOT) Nó cung cấp một giải pháp kết nối mạng Wi-Fi đầy đủ và khép kín, cho phép nó có thể lưu trữ các ứng dụng hoặc để giảm tải tất cả các chức năng kết nối mạng Wi-Fi từ một bộ xử lý ứng dụng

ESP8266 có xử lý và khả năng lưu trữ mạnh mẽ cho phép nó được tích hợp với các bộ cảm biến, vi điều khiển và các thiết bị ứng dụng cụ thể khác thông qua GPIOs với một chi phí tối thiểu và một PCB tối thiểu

2.2.2 Tính năng của chip esp8622

§ SDIO 2.0, SPI, UART

§ 32-pin QFN ( Chip esp8266)

§ Tích hợp RF switch, balun, 24dBm PA, DCXO, and PMU

§ Tích hợp bộ xử lý RISC, trên chip bộ nhớ và giao diện bộ nhớ bên ngoài

§ Tích hợp bộ vi xử lý MAC / baseband

§ Chất lượng quản lý dịch vụ

§ Giao diện I2S cho độ trung thực cao ứng dụng âm thanh

§ On-chip thấp học sinh bỏ học điều chỉnh tuyến tính cho tất cả các nguồn cung cấp nội bộ

§ Kiến trúc giả miễn phí thế hệ đồng hồ độc quyền

§ Tích hợp WEP, TKIP, AES, và các công cụ WAPI

Trang 18

2.2.3 Sơ đồ chân

Hình 2.3 Sơ đồ chân esp8622

UTXD (TX) – chân truyền tín hiệu của module nối với chân RX của vi điều khiển URXD(RX) – chân truyền tín hiệu của module nối với chân RX của vi điều khiển RST – chân reset cứng của module Reset xảy ra khi tín hiệu xuống mức thấp GPIO0, GPIO2, CH_PD nối với mức cao

VCC: Nối với 3.3V

GND: Nối với 0V

Hình 2.4 Hình ảnh thực tế module esp8622

2.2.4 Tập lệnh AT giao tiếp với Module ESP8266

Khi sử dụng giao tiếp UART để gửi lệnh AT đến Module ESP 8266, chúng ta phải gửi kềm kí tư <CR><LF> để báo kết thúc lệnh

Lệnh Kiểm tra kết nối: AT

Kết quả trả về: OK nếu kết nối không bị lỗi

Lệnh Reset module: AT + RST

Trang 19

Trả về: Ready sau khi reset thành công module

Lệnh kiểm tra phiên bản module: AT+GMR

Trả về môt dãy số là mã phiên bản module

Lệnh cài đặt module hoạt động ở chế độ trạm phát wifi, điểm truy cập wifi: AT+CWMODE=3

Trả về: Ok sau khi cài đặt thành công

Lệnh tìm các mạng wifi đang có: AT+CWLAP

Kết quả trả về là danh sách các mạng wifi mà module có thể bắt được

Lệnh truy cập vào mạng wifi khác

AT+CWJAP=”<access_point_name>”,”<password>”

Sau khi truy cập thành công, trả về : Ok

Lệnh lấy đỉa chỉ IP của module AT+CIFSR

Trả về một dãy số là địa chỉ IP của module

Lệnh đặt tên và mật khẩu cho mạng wifi do module ESP8266 phát ra:

Sử dụng lệnh CIPSTART để chọn kênh kết nối (0-4), phương thức

truyền(TCP/UDP), địa chỉ IP của website (or domain) và cổng kết nối

ví dụ: AT+CIPSTART=4,”TCP”,”google.com”,80

nếu thành công, module trả về: ok

Linked

Sử dụng lệnh AT + CIPSEND để báo kênh truyền và số byte của địa chỉ

websever mình cần lấy dữ liệu

ví dụ: địa chỉ: “ GET / HTTP/1.0\r\n\r\n” có 18 byte sẽ phải gửi lệnh:

AT + CIPSEND=4,18

Sau khi gửi lệnh này, module sẽ trả về dấu “>”

Đến đây chúng ta sẽ gửi địa chỉ của websever mà chúng ta cần lấy dữ liệu

GET / HTTP/1.0

Module sẽ trả về SEND OK

Và sau đó module sẽ trả về một loạt dữ liệu module nhận được từ web sever (Chuỗi json: JavaScript Object Notation) , phân tích chuỗi json này để lấy được dữ liệu cần

Trang 20

thiết

2.2.5 Các phương pháp kết nối thiết bị với esp8266

2.2.5.1 Truyền dữ liệu với wed server

Với demo này, chúng ta sẽ lập trình Arduino gửi AT commands để module ESP-01 thành 1 thiết bị Wifi, kết nối vào mạng Wifi xung quanh, gửi lệnh PING lên

1 web server và nhận response từ web server đó

Về phần cứng, chúng ta sẽ kết nối Arduino Due và ESP-01 như hình sau:

Hình 2.5 kết nối Arduino Due và ESP-01

Công việc còn lại là lập trình board Due trên Arduino IDE để gửi các lệnh AT command cần thiết

Flow chương trình trên Arduino sẽ như sau:

· Gửi lệnh “AT” để kiểm tra kết nối module với ESP-01 và đợi nhận “OK” từ ESP8266

· Gửi lệnh “AT+CWMODE=1” để module ESP-01 hoạt động như 1 thiết bị Wifi

· Gửi lệnh “AT+CWJAP=\”<tên mạng wifi>\”,\”<password>\” ” để chọn mạng Wifi và password để kết nối

Các bạn có thể thay thế <tên mạng wifi> và <password> tương ứng với mạng Wifi của mình nha

Sau khi lệnh này, chúng ta cần đợi vài giây để module ESP-01 tìm và kết nối vào mạng Wifi đã chọn, trong code chúng ta có thể đợi đến khi nhận được“OK” từ ESP8266

· Gửi lệnh “AT+PING=\”google.com\” ” để ping server của Google

Trang 21

· Nhận PING response từ module ESP-01

2.2.5.2 Giao tiếp smarphone dùng esp8266

Trong demo này, chúng ta sẽ tạo 1 ứng dụng trong đó smartphone sẽ trao đổi

dữ liệu với thiết bị có ESP8266 Chúng ta có thể sử dụng 1 wifi router trung gian giữa 2 thiết bị Wifi là ESP8266 và smartphone Cách khác đơn giản và hiệu quả hơn

là sử dụng ESP8266 như là 1 rounter để kết nối với smartphone, do đó sẽ không cần router trung gian nữa Chúng ta sẽ chọn cách đơn giản bằng cách sử dụng module ESP-01 như 1 Access Point để smartphone có thể kết nối vào mạng Wifi tạo bởi module ESP-01 Đồng thời chúng ta cũng tạo TCP server và UDP server trên ESP8266 để truyền nhận dữ liệu với smartphone thông qua các port TCP, UDP

Về phần cứng chúng ta sẽ sử dụng board Arduino ATmega2560, module

ESP-01 và iPhone như hình bên dưới:

Hình 2.6 kết nối với smartphone

2.2.5.3 Truyền dữ liệu TCP với smartphone

Các lệnh AT commands được sử dụng theo thứ tự như sau:

· Gửi lệnh “AT” đầu tiên để kiểm tra giao tiếp, kết nối với module ESP-01

· Gửi lệnh “AT+CWMODE=2” để module ESP-01 hoạt động như 1 Access Point

· Gửi lệnh “AT+CWSAP=\”ESP_HTelectronics\”,\”\”,5,0″ đẻ tạo mạng Wifi tên là “ESP_HTelectronics”, không security và không password

· Gửi lệnh “AT+CIPMUX=1” để cho phép các kết nối TCP/UDP

· Gửi lệnh “AT+CIPSERVER=1,1234” để tạo 1 TCP server, port 1234 trên module ESP-01

Trang 22

· Liên tục kiểm tra dữ liệu nhận được từ port 1234 gửi lên từ ESP-01 và xử lý

dữ liệu tương ứng

· Sau khi nạp code vào board ATmega2560, chúng ta sẽ dùng smartphone kết nối với module ESP-01 trong Wifi setting, sau đó mở app WIFI TCP Test Tool để truyền/nhận dữ liệu với board Arduino

Trên phone, chúng ta sẽ connect vào TCP port 1234 đã được mở trong ESP8266 và gửi dòng text “Who are you”, khi ESP-01 nhận được sẽ trả lời “I’m ESP_HTelectronics” lên smartphone và chúng ta thấy hiện trong phần Received data của app Với nguyên lý này, chúng ta có thể tạo thiết bị IoT sử dụng ESP8266

để giao tiếp trực tiếp với Smartphone

2.2.5.4 Truyền dữ liệu UDP với smartphone

Tương tự như demo trên, nhưng chúng ta sẽ thử truyền dữ liệu thông qua UDP server trên ESP8266

Các lệnh AT commands được sử dụng theo thứ tự như sau:

· Gửi lệnh “AT” đầu tiên để kiểm tra giao tiếp, kết nối với module ESP-01

· Gửi lệnh “AT+CWMODE=2” để module ESP-01 hoạt động như 1 Access Point

· Gửi lệnh “AT+CWSAP=\”ESP_HTelectronics\”,\”\”,5,0″ đẻ tạo mạng Wifi tên là “ESP_HTelectronics”, không security và không password

· Gửi lệnh “AT+CIPMUX=1” để cho phép các kết nối TCP/UDP

· Gửi lệnh “AT+CIPSTART=0,\”UDP\”,\”255.255.255.255\”,1234,1234,2″ để tạo 1 UDP server, port 1234 trên module ESP-01

· Liên tục kiểm tra dữ liệu nhận được từ port 1234 gửi lên từ ESP-01 và xử lý

dữ liệu tương ứng

Tương tự như demo trên, chúng ta sẽ mở app WIFI UDP Test Tool để truyền nhận dữ liệu với board ATmega2560 thông qua ESP-01

2.2.5.5 Giao tiếp giữa hai module ESP8266

Chúng ta đã đi qua 2 demo sử dụng 2 chế độ hoạt động của ESP8266 là chế độ thiết bị Wifi và chế độ Access Point Trong phần demo này chúng ta sẽ tạo 1 ứng dụng trong đó 2 board arduino sẽ giao tiếp trực tiếp với nhau qua mạng Wifi được tạo bởi ESP8266 Chúng ta có thể ứng dụng demo này trong các mạng wireless sensor trong đó các thiết bị IoT là các node và nói chuyện trực tiếp với nhau mà không cần smartphone hay router hay web server ở trung gian

Về kết nối phần cứng thì chúng ta sẽ giả lập 2 node trong 1 network dùng 2

Trang 23

board ATmega2560 và board Due cùng với 2 module ESP-01 như hình bên dưới:

Hình 2.7 kết nối hai module esp8266

Chúng ta sẽ lập trình board Due truyền AT commands để xác lập module

ESP-01 thành 1 Access Point và 1 UDP server; và lập trình board ATmega truyền AT commands để xác lập module ESP-01 thành 1 thiết bị Wifi Hai module ESP8266 sẽ kết nối trực tiếp với nhau và truyền/nhận dữ liệu thông qua UDP server/client Các lệnh AT commands truyền từ board Due như sau:

· Gửi lệnh “AT” đầu tiên để kiểm tra giao tiếp, kết nối với module ESP-01

· Gửi lệnh “AT+CWMODE=2” để module ESP-01 hoạt động như 1 Access Point

· Gửi lệnh “AT+CWSAP=\”ESP_HTelectronics\”,\”\”,5,0″ đẻ tạo mạng Wifi tên là “ESP_HTelectronics”, không security và không password

· Gửi lệnh “AT+CIPMUX=1” để cho phép các kết nối TCP/UDP

· Gửi lệnh “AT+CIPSTART=0,\”UDP\”,\”255.255.255.255\”,1234,1234,2″ để tạo 1 UDP server, port 1234 trên module ESP-01

· Liên tục kiểm tra dữ liệu nhận được từ port 1234 gửi lên từ ESP-01 và xử lý

dữ liệu tương ứng

Các lệnh AT commands truyền từ board ATmega2560 như sau:

Trang 24

· Gửi lệnh “AT” đầu tiên để kiểm tra giao tiếp, kết nối với module ESP-01

· Gửi lệnh “AT+CWMODE=1” để module ESP-01 hoạt động như 1 thiết bị Wifi

· Gửi lệnh “AT+CWJAP=\”ESP_HTelectronics\”,\”\”” để kết nối vào mạng Wifi “ESP_HTelectronics” được tạo bởi thiết bị bên board Due Sau lệnh này chúng

ta cần đợi vài giây để module ESP-01 kết nối vào mạng Wifi Chúng ta sẽ liên tục nhận dữ liệu từ ESP8266 đến khi nhận được “OK”

· Gửi lệnh “AT+CIPMUX=1” để cho phép các kết nối TCP/UDP

· Gửi lệnh “AT+CIPSTART=0,\”UDP\”,\”192.168.4.1\”,1234,1234,2″ để kết nối vào UDP server, port 1234 trên server có địa chỉ IP là 192.168.4.1 Lưu ý địa chỉ IP mặc định của ESP8266 là 192.168.4.1, do đó chúng ta có thể hardcode trong code của UDP client Nếu ESP8266 bên UDP Server thay đổi địa chỉ IP thì chúng ta cần thay đổi bên UDP client để 2 module ESP-01 có thể kết nối UDP với nhau

· Gửi dữ liệu là text “Who are you” vào UDP port đã kết nối

· Nhận dữ liệu truyền lại từ UDP server bên board Due

Dưới đây là cửa sổ COM của board Due và board ATmega2560 khi hoạt động:

Hình 2.8 Lệnh AT kết nối hai esp8266

Done! Chúng ta đã demo quá trình nạp firmware cung cấp sẵn cho ESP8266

để hoạt động như 1 wifi độc lập và thực hiện 3 demo cho việc sử dụng AT commands để điều khiển module ESP-01 trong các ứng dụng giao tiếp qua mạng Wifi Thông qua các demo, chúng ta có thể dùng ESP8266 để kết nối web server

Trang 25

trên internet thông qua 1 wireless router trong nhà, hoặc giao tiếp trực tiếp với smartphone, hoặc giao tiếp lẫn nhau trong 1 mạng wireless network Tất cả chức năng trên có thể được thực hiện bằng cách gửi các lệnh AT commands đơn giản, dễ hiểu Nếu chúng ta muốn thêm tính năng giao tiếp wifi cho 1 thiết bị có sẵn thì sử dụng firmware có sẵn của ESP8266 là tối ưu và tiết kiệm thời gian nhất; nhưng nếu chúng ta muốn sử dụng ESP8266 vừa giao tiếp wifi, vừa điều khiển thiết bị thì cần phải lập trình 1 firmware mới dùng bộ thư viện SDK của Espressif

2.3 GIỚI THIỆU VỀ BOARD ARDUINO

2.3.1 Cấu tạo phần cứng

Một mạch Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổ sung giúp dễ dàng lập trình và có thể mở rộng với các mạch khác Một khía cạnh quan trọng của Arduino là các kết nối tiêu chuẩn của nó, cho phép người dùng kết nối với CPU của board với các module thêm vào có thể dễ dàng chuyển đổi, được

gọi là shield Vài shield truyền thông với board Arduino trực tiếp thông qua các

chân khách nhau, nhưng nhiều shield được định địa chỉ thông qua serial bus nhiều shield có thể được xếp chồng và sử dụng dưới dạng song song Arduino chính thức thường sử dụng các dòng chip megaAVR, đặc biệt là ATmega8, ATmega168, ATmega328, ATmega1280, và ATmega2560 Một vài các bộ vi xử lý khác cũng được sử dụng bởi các mạch Aquino tương thích Hầu hết các mạch gồm một bộ điều chỉnh tuyến tính 5V và một thạch anh dao động 16 MHz (hoặc bộ cộng hưởng ceramic trong một vài biến thể), mặc dù một vài thiết kế như LilyPad chạy tại

I²C-8 MHz và bỏ qua bộ điều chỉnh điện áp onboard do hạn chế về kích cỡ thiết bị Một

vi điều khiển Arduino cũng có thể được lập trình sẵn với một boot loader cho phép đơn giản là upload chương trình vào bộ nhớ flash on-chip, so với các thiết bị khác thường phải cần một bộ nạp bên ngoài Điều này giúp cho việc sử dụng Arduino được trực tiếp hơn bằng cách cho phép sử dụng 1 máy tính gốc như là một bộ nạp chương trình

Theo nguyên tắc, khi sử dụng ngăn xếp phần mềm Arduino, tất cả các board được lập trình thông qua một kết nối RS-232, nhưng cách thức thực hiện lại tùy thuộc vào đời phần cứng Các board Serial Arduino có chứa một mạch chuyển đổi giữa RS232 sang TTL Các board Arduino hiện tại được lập trình thông qua cổng USB, thực hiện thông qua chip chuyển đổi USB-to-serial như là FTDI FT232 Vài biến thể, như Arduino Mini và Boarduino không chính thức, sử dụng một board adapter hoặc cáp nối USB-to-serial có thể tháo rời được, Bluetooth hoặc các

Trang 26

phương thức khác (Khi sử dụng một công cụ lập trình vi điều khiển truyền thống thay vì ArduinoIDE, công cụ lập trình AVR ISP tiêu chuẩn sẽ được sử dụng.)

Board Arduino sẽ đưa ra hầu hết các chân I/O của vi điều khiển để sử dụng cho những mạch ngoài Diecimila, Duemilanove, và bây giờ là Uno đưa ra 14 chân I/O kỹ thuật số, 6 trong số đó có thể tạo xung PWM (điều chế độ rộng xung) và 6 chân input analog, có thể được sử dụng như là 6 chân I/O số Những chân này được thiết kế nằm phía trên mặt board, thông qua các header cái 0.10-inch (2.5 mm) Nhiều shield ứng dụng plug-in cũng được thương mại hóa Các board Arduino Nano, và Arduino-compatible Bare Bones Board và Boarduino có thể cung cấp các chân header đực ở mặt trên của board dùng để cắm vào các breadboard

Có nhiều biến thể như Arduino-compatible và Arduino-derived Một vài trong

số đó có chức năng tương đương với Arduino và có thể sử dụng để thay thế qua lại Nhiều mở rộng cho Arduino được thực thiện bằng cách thêm vào các driver đầu ra, thường sử dụng trong các trường học để đơn giản hóa các cấu trúc của các 'con rệp'

và các robot nhỏ Những board khác thường tương đương về điện nhưng có thay đổi

về hình dạng-đôi khi còn duy trì độ tương thích với các shield, đôi khi không Vài biến thể sử dụng bộ vi xử lý hoàn toàn khác biệt, với các mức độ tương thích khác nhau

2.3.2 Môi trường lập trình board mạch Arduino

Thiết kế board mạch nhỏ gọn, trang bị nhiều tính năng thông dụng mang lại nhiều lợi thế cho Arduino, tuy nhiên sức mạnh thực sự của Arduino nằm ở phần mềm Môi trường lập trình đơn giản dễ sử dụng, ngôn ngữ lập trình Wiring dễ hiểu

và dựa trên nền tảng C/C++ rất quen thuộc với người làm kỹ thuật Và quan trọng là

số lượng thư viện code được viết sẵn và chia sẻ bởi cộng đồng nguồn mở là cực kỳ lớn

Môi trường lập trình Arduino IDE có thể chạy trên ba nền tảng phổ biến nhất hiện nay là Windows, Macintosh OSX và Linux Do có tính chất nguồn mở nên môi trường lập trình này hoàn toàn miễn phí và có thể mở rộng thêm bởi người dùng có kinh nghiệm

Ngôn ngữ lập trình có thể được mở rộng thông qua các thư viện C++ Và do ngôn ngữ lập trình này dựa trên nền tảng ngôn ngữ C của AVR nên người dùng hoàn toàn có thể nhúng thêm code viết bằng AVR C vào chương trình nếu muốn

2.3.3 Các loại Board mạch Arduino

Arduino Uno.Nó có 14 chân dữ liệu số, có thế cấu hình làm chân lấy tín hiệu

Trang 27

vào hoặc xuất tín hiệu ra là tùy bạn 6 chân tương tự đầu vào 5V, độ phân giải 1024 mức Tốc độ 16MHz, điện áp vào từ 7~12V, chân số có thể cấp điện áp ra 5V và 1A, nếu bạn điều khiển chân số ra tiêu tốn quá 1A thì Board sẽ bị hỏng.Kích thước broad5,5x7cm

Arduino Micro Board này có thiết kế nhỏ, dành cho các không gian lắp đặt nhỏ, nhẹ kích thước khoảng 5x2cm Board này giống với Arduino Uno Có 20

chân số, trong đó có 7 chân có thể phát xung PWM 12 chân tương tự

Arduino Pro/Pro Micro Nhìn chung thiết kế giúp Arduino Uno Có 2 loại,

3.3V và 5V Nó không được thiết kế chân sẵn nên khi sử dụng bạn có thể hàn trực

tiếp nhằm tiết kiệm không gian

Arduino Nano Board này có kích thước nhỏ nhất gồm 14 chân số (6 chân

PWM) và 8 chân tương tự Kích thước khoảng 2x4cm Nhỏ gọn, dễ lắp đặt ở bất kỳ

đâu

Sau đây là các Board có thiết kế cao cấp hơn:

Arduino Mega Có thiết kế hoạt động tương tự Arduino UNO, tuy nhiên có số

lượng chân vào ra lớn với 54 chân Số (14 chân PWM), 16 chân tương tự và 4 cổng truyền nối tiếp (RS232) dễ dàng giao tiếp với các board, thiết bị khác Kích thước

5x10cm

Arduino Leonardo Đây là board có thiết kế giống Arduino Micro, sự khác

biệt lớn nhất giữa nó và các board khác là nó không có cổng USB dành cho việc lập trình Mọi thứ được đặt trong 1 chip điều khiển, cho phép giao tiếp thông qua cổng COM ảo và cho phép nó giao tiếp với chuột và phím máy tính dễ dàng Không giống như các Board khác, khi cổng nối tiếp mở thì nó sẽ không bị reset, để gỡ rối cho chương trình thì bạn cần giao tiếp qua lệnh Serial.prints() trong hàm Setup()

Arduino Due Đây là Board có thiết kế lớn và xấu nhất trong tất cả các Board,

nó hoạt động ở điện áp 3.3V Các chân số có mức logic ở 3,3V nên khi giao tiếp bạn cần phải nâng áp để có thể giao tiếp bình thường Gồm 54 chân số ( 12 chân tương tự) 4 cổng nối tiếp tương tự Arduino Mega Nó chạy bộ xử lý 32bit, 84MHz

nó xử lý nhanh hơn gấp 5 lần so với các Board arduino khác Xử lý chương trình nhanh hơn 10 lần Vì vậy nó đọc các chân đầu vào và đáp ứng nhanh hơn

Arduino Ethernet Như tên của nó, nó là 1 Arduino giống chức năng với

UNO tuy nhiên nó được tích hợp Module Ethernet trong nó có tích hợp thẻ SD

Trang 28

2.3.4 Khả năng ghép nối của Arduino

2.3.4.1 Ghép nối với các cảm biến

Tất cả những cảm biến ghép nối được với vi điều khiển thì cũng ghép nối được với Arduino Các cảm biến phổ biến gồm:

Cảm biến nước, cảm biến nhiệt đô/ độ ẩm, cảm biến hồng ngoại/ ánh sáng, cảm biến màu, cảm biến rung, cảm biến âm thanh, cảm biến siêu âm, cảm biến khí, cảm biến áp suất, cảm biến chuyển động, cảm biến khoảng cách, cảm biến dòng điện, cảm biến góc/ gia tốc, cảm biến Hall, cảm biến từ trường, cảm biến quang điện

2.3.4.2 Ghép nối với các module chức năng

Nếu có kiến thức và kỹ năng về thiết kế mạch điện tử người sử dụng có thể tự thiết kế các module chức năng ghép nối với Arduino Tuy nhiên việc này đòi hỏi tốn thời gian chưa tính đến việc thiết kế bị lỗi phải thực chỉnh sửa và làm mới lại gây lãng phí

Cộng đồng phát triển Arduino thiết kế và sản xuất hàng loạt các module chuẩn

để kết nối với các Board mạch Arduino Điều này giúp cho người thiết kế phần cứng "nhàn rỗi" hơn trong việc thiết kế và làm mạch in cho các ứng dụng và người

sử dụng không phải bận tâm về các sai sót trong thiết kế phần cứng Hiện nay có các module phổ biến sau:

Trang 29

2.3.5 Sơ đồ chân board arduino uno

Hình 2.9 Sơ chân board Arduino Uno R3

Trang 30

Hình 2.10 Hình dạng thực tế board Arduino Uno R3

2.3.6 Các thông số của board arduino uno

2.3.6.1 Thông số kỹ thuật

Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)

Điện áp vào khuyên dùng 7-12V DC

Số chân Digital I/O 14 (6 chân hardware PWM)

Dòng tối đa trên mỗi chân I/O 30 mA

Trang 31

2.3.6.2 I/O Pins

Sơ đồ chân của vi điều khiển ATmega328P

Hình 2.11 Sơ đồ chân của Atmega328

· Digital: Các chân I/O digital (chân số 2 – 13 ) được sử dụng làm chân nhập,

xuất tín hiệu số thông qua các hàm chính : pinMode(), digitalWrite(), digitalRead() Điện áp hoạt động là 5V, dòng điện qua các chân này ở chế độ bình thường là 20mA, cấp dòng quá 40mA sẽ phá hỏng vi điều khiển

· Analog :Uno có 6 chân Input analog (A0 – A5), độ phân giải mỗi chân là 10

bit (0 – 1023 ) Các chân này dùng để đọc tín hiệu điện áp 0 – 5V (mặc định) tương ứng với 1024 giá trị, sử dụng hàm analogRead()

· PWM : các chân được đánh số 3, 5, 6, 9, 10, 11; có chức năng cấp xung

PWM (8 bit) thông qua hàm analogWrite()

· UART: Atmega328P cho phép truyền dữ liệu thông qua hai chân 0 (RX) và

chân 1 (TX)

Trang 32

2.3.6.3 Bộ nhớ

Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:

32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ

nhớ Flash của vi điều khiển Thường thì sẽ có khoảng vài KB trong số này sẽ được dùng cho bootloader nhưng đừng lo, bạn hiếm khi nào cần quá 20KB bộ nhớ này đâu

2KB cho SRAM (Static Random Access Memory): giá trị các biến bạn khai

báo khi lập trình sẽ lưu ở đây Bạn khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lại trở thành thứ

mà bạn phải bận tâm Khi mất điện, dữ liệu trên SRAM sẽ bị mất

1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory):

đây giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ liệu của mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM

2.3.6.4 Các cổng vào ra

Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có

2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì các điện trở này không được kết nối)

Một số chân digital có các chức năng đặc biệt như sau:

· 2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận

(receive – RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2 chân này nếu không cần thiết

· Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với

độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite() Nói một cách đơn giản, bạn có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác

· Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác

· LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi bấm

nút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13 Khi chân này được người dùng sử dụng, LED sẽ sáng

Trang 33

Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V Với

chân AREF trên board, bạn có thể để đưa vào điện áp tham chiếu khi sử dụng các

chân analog Tức là nếu bạn cấp điện áp 2.5V vào chân này thì bạn có thể dùng các chân analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit

Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác

2.3.6.5 Nguồn

Có hai cách cấp nguồn chính cho bo mạch Uno: cổng USB và jack DC

Giới hạn điện áp cấp cho Uno là 6 – 20V Tuy nhiên, dải điện áp khuyên dùng

là 7 – 12 V (tốt nhất là 9V) Lý do là nếu nguồn cấp dưới 7V thì điện áp ở ‘chân 5V’ có thể thấp hơn 5V và mạch có thể hoạt động không ổn định; nếu nguồn cấp lớn hơn 12V có thể gấy nóng bo mạch hoặc phá hỏng

Các chân nguồn trên Uno:

- Vin : chúng ta có thể cấp nguồn cho Uno thông qua chân này Cách cấp nguồn này ít được sử dụng

- 5V : Chân này có thể cho nguồn 5V từ bo mạch Uno Việc cấp nguồn vào chân này hay chân 3.3 V đều có thể phá hỏng bo mạch

- 3.3V : Chân này cho nguồn 3.3 V và dòng điện maximum là 50mA

- GND: chân đất

2.3.6.6 Trương trình arduino IDE

2.3.6.6.1 Cài đặt chương trình Arduino IDE

Các bạn truy cập vào trang web http://arduino.cc/en/Main/Software và tải về chương trình Arduino IDE phù hợp với hệ điều hành của máy mình bao gồm Windown, Mac OS hay Linux Đối với Windown có bản cài đặt (.exe) và bản Zip, đối với Zip thì chỉ cần giải nén và chạy chương trình không cần cài đặt

Sau khi cài đặt xong thì giao diện chương trình như sau:

Trang 34

Hình 2.12 Arduino 2.3.6.6.2 Cài đặt Driver

Sử dụng cáp USB kết nối Arduino với máy tính, lúc này bạn sẽ thấy đèn led power của bo sáng Máy tính sẽ nhận dạng thiết bị và bạn sẽ nhận được thông báo:

“Device driver software was not successfully installed”

Hình 2.13 Driver Software Installation

Bây giờ bạn click vào Start Menu chọn Control Panel kế đến chúng ta chọn System and Security, click System và sau đó chọn Device Manager

Trang 35

Hình 2.14 Device Manager

Chúng ta sẽ thấy cảnh báo màu vàng thiếu driver trên Arduino Click chuột phải trên Arduino Uno icon sau đó chọn “Update Driver Software”

Hình 2.15 Right click và chọn ”Update Driver Software”

Chọn “Browse my computer for driver software”

Hình 2.16 Click chọn “Browse my computer for driver software”

Trang 36

Chọn đường dẫn tới folder “driver” nơi mà phần mềm Arduino được lưu trữ

Trang 37

Arduino Toolbar: có một số button và chức năng của chúng như sau :

Hình 2.19 Arduino Toolbar

Verify : kiểm tra code có lỗi hay không

Upload: nạp code đang soạn thảo vào Arduino

New, Open, Save : Tạo mới, mở và Save sketch

Serial Monitor : Đây là màn hình hiển thị dữ liệu từ Arduino gửi lên máy tính

Arduino IDE Menu:

Hình 2.20 IDE Menu

File menu:

Hình 2.21 File menu

Trang 38

Trong file menu chúng ta quan tâm tới mục Examples đây là nơi chứa code mẫu ví dụ như: cách sử dụng các chân digital, analog, sensor … Hình 11: Click Examples

Hình 2.22 Click Examples

Edit menu:

Hình 2.23 Edit menu

Trang 39

Sketch menu

Hình 2.24 Sketch menu

Trong Sketch menu :

Verify/ Compile : chức năng kiểm tra lỗi code

Show Sketch Folder : hiển thị nơi code được lưu

Add File : thêm vào một Tap code mới

Import Library : thêm thư viện cho IDE

Tool memu:

Hình 2.25 Tool menu

Trong Tool menu ta quan tâm các mục Board và Serial Port

Mục Board : các bạn cần phải lựa chọn bo mạch cho phù hợp với loại bo mà bạn sử dụng nếu là Arduino Uno thì phải chọn như hình:

Trang 40

2.3.6.6.1 Các nhóm hàm cơ bản

Một chương trình hiển thị trên cửa sổ giao diện được gọi là sketch.Sketch được

tạo từ hai hàm cơ bản là setup () và loop () :

- Setup() : Hàm này được gọi khi một sketch khởi động, được sử dụng để khởi tạo biến, đặt các chế độ chân ( nhận hay xuất

tín hiệu ), khởi động một thư viện … Hàm setup() chỉ chạy một lần, sau khi cấp nguồn hoặc reset mạch

- Loop(): Sau khi khởi tạo hàm setup(), hàm loop() sẽ được khởi tạo và thiết lập các giá trị ban đầu Như tên gọi,

hàm loop tạo các vòng lặp liên tục, có cho phép sự thay đổi và đáp ứng Chức năng tương tự như vòng lặp while() trong C,

hàm loop() sẽ điều khiển toàn bộ mạch

Ngày đăng: 15/03/2019, 17:29

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w