Tải bản đầy đủ (.pdf) (44 trang)

Thiết kế hệ điều khiển thống điều khiển thiết bị điện trong nhà thông qua mạng Internet bằng Module WiFi ESP8266

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.02 MB, 44 trang )

Bộ mơn: Đo lường và điều khiển
BỘ CƠNG THƯƠNG
TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP HÀ NỘI

Khoa Điện
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập -Tự do - Hạnh phúc

PHIẾU GIAO ĐỒ ÁN MƠN HỌC
Mơn học:
Đồ án học phần 2 (DSP, BAS)
Nhóm : ………… ……………….. Lớp : … …..............
Khố : ……......... ....................
Khoa : …….......Điện……................
I. NỘI DUNG ĐỀ TÀI:
“Thiết kế hệ điều khiển thống điều khiển thiết bị điện trong nhà thông qua
mạng Internet bằng Module WiFi ESP8266”
II. YÊU CẦU
+ Về bố cục nội dung:
1- Tổng quan về các dạng bài toán điều khiển thường gặp trong hệ thống tự động
hóa tịa nhà
1.1 Khảo sát một số các dạng bài toán điều khiển thường gặp trong thực tiễn
1.2 Tìm hiểu một số cấu trúc cơ bản điều khiển cơ bản
1.3 Lựa chọn cấu trúc điều khiển và bài toán điều khiển giám sát gắn với thực
tiễn

2- Phân tích, thiết kế hệ thống
2.1 Xây dựng sơ đồ khối và lựa chọn thiết bị
2.2 Thiết kế sơ đồ nguyên lý, sơ đồ lắp đặt
2.3 Xây dựng thuật tốn điều khiển, viết chương trình


3- Kết quả mô phỏng/thực nghiệm
+Về thời gian thực hiện:
Ngày giao đề : 25/8/2017

Ngày hồn thành : 24/10/2017

Chó ý:
1. Việc chia nhóm theo danh sách đính kèm
2. Ngồi nội dung hướng dẫn trên lớp nếu sinh viên có câu hỏi, thắc mắc trong quá tr×nh
làm bài tập lớn gửi về địa chỉ:
3. Trước khi bảo vệ bài tập lớn sinh viên phải nộp:
File mềm gồm file trình bày bài tập lớn và file mô phỏng
Quyển in khổ giấy A4, in hai mặt

Trưởng bộ môn
Phạm Văn Hùng

Hà nội ngày 25 /08/2017.
Giáo viên hướng dẫn
TS. Bùi Văn Huy
1

Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ môn: Đo lường và điều khiển

Khoa Điện


TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
-_-KHOA ĐIỆN-_-

ĐỒ ÁN HỌC PHẦN 2
ĐỀ TÀI: THIẾT KẾ HỆ ĐIỀU KHIỂN THỐNG ĐIỀU KHIỂN
THIẾT BỊ ĐIỆN TRONG NHÀ THÔNG QUA MẠNG INTERNET
BẰNG MODULE WIFI ESP8266

Giáo viên hướng dẫn: Bùi Văn Huy
Sinh viên thực hiện:
Nguyễn Văn Nhật
Nguyễn Thị Nga
Nguyễn Sỹ Tuấn
Lương Văn Cử
Nguyễn Đình Tùng

Hà Nội – 2017
2
Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ môn: Đo lường và điều khiển

Khoa Điện

Mục lục
Contents
CHƯƠNG 1:TỔNG QUAN VỀ HỆ THỐNG ĐIỀU KHIỂN .................................. 5
1.1. Khảo sát hệ thống trong thực tiễn. ................................................................. 5

1.2. Tìm hiểu một số cấu trúc điều khiển cơ bản. ................................................. 6
1.2.1. Điều khiển thiết bị thông qua mạng Internet........................................... 6
1.2.2. Điều khiển thiết bị thông qua module sim. ............................................. 7
1.2.3. Điều khiển thiết bị bằng Bluetooth thông qua Smatphone. .................... 7
1.3. Lựa chọn cấu trúc điều khiển. ........................................................................ 8
CHƯƠNG 2:PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG. ........................................ 9
2.1. Xây dựng sơ đồ khối và lựa chọn thiết bị. ..................................................... 9
2.1.1. Xây dựng sơ đồ khối. .............................................................................. 9
2.1.2. Lựa chọn thiết bị. .................................................................................. 10
2.1.2.1.Arduino………………………………………………………………9
2.1.2.1. ESP8266…………………………………………………………...12
2.1.2.2. Cảm biến nhiêt đô, độ ẩm………………………………………….16
2.1.2.3. Cảm biến cường độ sáng…………………………………………..22
2.2. Giao tiếp giữa Arduino và Module ESP8266 Node MCU. ......................... 28
2.2.1. Tìm hiểu về UART. ............................................................................... 28
2.2.2. Giao tiếp UART giữa Arduino và ESP8266. ........................................ 31
2.3. Xây dựng giao diện web điều khiển trên Esp8266. ..................................... 32
2.3.1. Tìm hiểu về HTML/CSS. ...................................................................... 32
2.4. Xây dựng mạch phần cứng........................................................................... 34
2.4.1. Sơ đồ nguyên lý. .................................................................................... 34
2.4.2. Sơ đồ lắp đặt. ......................................................................................... 35
CHƯƠNG 3:XÂY DỰNG THUẬT TOÁN ĐIỀU KHIỂN VÀ VIẾT CHƯƠNG
TRÌNH. ………………………………………………………………………..36
3.1. Thuật tốn điều khiển. .................................................................................. 36
3.2. Chương trình. ............................................................................................... 36
3.3. Code Arduino. .............................................................................................. 36
3.4. Code ESP8266.............................................................................................. 38
CHƯƠNG 4:KẾT QUẢ MÔ PHỎNG VÀ THỰC NGHIỆM................................ 43
3
Đồ án học phần 2

GVHD: Ts. Bùi Văn Huy


Bộ môn: Đo lường và điều khiển
Khoa Điện
4.1. Kết quả. ........................................................................................................ 43
4.2. Thực nghiệm................................................................................................. 43
4.3. Giao diện điều khiển trên Smartphone. ........................................................ 44

4
Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ môn: Đo lường và điều khiển

Khoa Điện

CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG ĐIỀU KHIỂN
1.1. Khảo sát hệ thống trong thực tiễn.
- Công nghệ kĩ thuật ngày càng phát triển kéo theo việc ứng dụng chúng vào
trong thực tiễn cuộc sống. Nhiệt độ, ánh sáng luôn là những nhân tố quan trọng
trong môi trường hoạt động, làm việc của cịn người. Do đó, việc ứng dụng để xây
dựng một hệ thống điều khiển, giám sát nhiệt độ, ánh sáng ( hay cụ thể hơn là
cường độ ánh sáng ) là điều cần thiết.
- Đối với sản xuất cũng vậy, những nhân tố này có vai trị đặc biệt quan
trọng thậm chí khơng thể thiếu đối với nhiều ngành cơng nghiệp: cơ khí chính xác,
điện tử,…Các ngành cơng nghiệp nhẹ: dệt may, thuốc lá, giấy,…để đảm bảo chất
lượng cao cho sản phẩm hoặc đảm bảo máy móc, thiết bị làm việc bình thường.
- Tính cấp thiết phải tạo ra hệ thống điều khiển điều hòa:

Trên thế giới, hệ thống quản lý năng lượng tiêu thụ trong toà nhà và các cơ
sở công nghiệp đã được nghiên cứu và phát triển phục vụ cho việc vận hành phù
hợp, tiết kiệm năng lượng. Dữ liệu vận hành, nhu cầu sử dụng theo thời gian được
thu thập và phân tích để từ đó đưa ra quyết định tắt bật các thiết bị sử dụng năng
lượng một cách hợp lý. Đối với quá trình xây dựng phụ tải thơng minh nói riêng và
quản lý nhu cầu điện năng nói chung, hệ thống quản lý năng lượng cịn tương tác
với thị trường điện để khơng những đảm bảo vận hành tối ưu, mà còn đề xuất thời
điểm, thời gian sử dụng để mua điện với giá thành rẻ.
Đối với các cơ quan hành chính sự nghiệp trên thế giới nói chung, và đặc
biệt là ở các quốc gia đang phát triển thì việc sử dụng điện tiết kiệm, hiệu quả và
bền vững luôn được coi là trọng tâm cho sự phát triển. Và đương nhiên hệ thống
điều hòa cũng nằm trong yêu cầu cũng như mục tiêu về quản lý tiết kiệm năng
lượng này.
Như trên ta có thể thấy rằng việc xây dựng một hệ thống nhiệt độ, ánh sáng
trong tịa nhà lớn sẽ có cơng suất rất lớn, do đó mà u cầu tiêu thụ năng lượng
cùng với đó cũng lớn. Thực tế cho thấy rằng chi phí đầu tư cho thực hiện tiết kiệm
điện năng luôn rẻ hơn so với phương án đầu tư vào hệ thống cung cấp điện mới,
mà ở đây là hệ thống điều hòa. Các thiết bị sử dụng cơng nghệ tiết kiệm điện năng
ngày càng có xu hướng rẻ đi trong khi giá thành điện năng lại có chiều hướng
ngược lại. Điều đó mang lại ưu thế lớn cho các thiết bị tiết kiệm năng lượng ở thời
điểm hiện tại và trong tương lai.
Do đó nếu xây dựng được hệ thống điều khiển nhiệt độ, cường độ sáng sẽ có
ý nghĩa rất lớn .Nó sẽ giúp giảm nhu cầu về tài chính lên chính cơ quan quản lý tòa
nhà, nhất là các cơ quan lớn như trường Đại học, các khu chung cư cao
tầng,…ngồi ra nếu như có thể áp dụng trên một phạm vi rộng, phổ biến hơn thì
cịn mang ý nghĩ rất lớn đối với vấn đề năng lượng khu vực cũng như quốc gia.
Hơn nữa, khi thiết bị được sử dụng đồng bộ và hiệu quả hơn cũng giúp nâng
cao tuổi thọ hệ thống. Đó là khi hệ thống không cần phải luôn luôn trong trạng thái
làm việc tối đa công suất mà sẽ tùy theo yêu cầu sử dụng, động nghĩa với việc hệ
5

Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ mơn: Đo lường và điều khiển
Khoa Điện
thống sẽ ít khả năng xảy ra quá tải, có thời gian nghỉ ngơi, chạy đúng công suất
cho phép. Đồng thời là dễ dàng vận hành, sửa chữa, bảo dưỡng hơn so với từng
thiết bị riêng lẻ rất nhiều.
Tuy nhiên, vấn đề thiết kế hệ thống quản lý năng lượng cần phải tính đến sự
tương tác giữa các thiết bị sử dụng năng lượng điện (điều hồ trung tâm, thơng gió
cơ học…) đối với các vấn đề tiện về nghi người dùng (nhiệt, độ ẩm, tốc độ gió…),
có xét đến ảnh hưởng của điều kiện thời tiết bên ngoài. Hiện nay, các hệ thống
quản lý năng lượng ra đời chủ yếu phục vụ mục tiêu giám sát và quản lý hệ thống
thiết bị được cung cấp bởi hãng sản xuất thiết bị đó, trong khi đó thiếu tính kết nối
đồng bộ với một số thiết bị sử dụng năng lượng do hãng khác nhau sản xuất dẫn
đến khó khăn trong việc vận hành tiết kiệm và tối ưu toàn bộ hệ thống năng lượng.
Chính vì vậy, xu hướng nghiên cứu hiện nay là thiết kế hệ thống với chuẩn giao
tiếp mở hướng tới kết nối ổn định, không giới hạn các thiết bị sử dụng năng lượng.
1.2. Tìm hiểu một số cấu trúc điều khiển cơ bản.
Từ những ý nghĩa to lớn mà hệ thống có thể mang lại, chúng ta cần tiến hành
xây dựng, thiết kế hệ thống.
1.2.1. Điều khiển thiết bị thơng qua mạng Internet.
Như chúng ta đã biết thì gần như các thiết bị trong đời sống của các gia đình
ngày nay đều hoạt động độc lập với nhau, mỗi thiết bị cố một quy trình sử dụng
khác nhau tùy thuộc vào sự thiết lập, cài đặt của người sử dụng. Chúng chưa có
một sự liên kết nào về mặt dữ liệu. Do đó, cần có phương thức nào đó để kết nối
chúng lại với nhau, và phương thức qua mạng Internet là một phương thức rất phổ
biết.


Hình 1. Module Internet ESP8266
Điển hình của một hệ thống điều khiển thiết bị trong nhà từ xa thơng qua
mạng Internet gồm có các thiết bị đơn giản như bóng đèn, quạt máy, lò sưởi đến
các thiết bị tinh vi, phức tạp như tivi, máy giặt, hệ thống báo động … Nó hoạt động
như một ngôi nhà thông minh. Nghĩa là tất cả các thiết bị này có thể giao tiếp với
nhau về mặt dữ liệu thông qua một đầu não trung tâm. Đầu não trung tâm ở đây có
thể là một máy vi tính hồn chỉnh hoặc có thể là một bộ xử lí đã được lập trình sẵn
tất cả các chương trình điều khiển. Bình thường, các thiết bị trong ngồi nhà này có
thể được điều khiển từ xa thơng qua mạng Internet của chủ nhà. Chẳng hạn như
6
Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ môn: Đo lường và điều khiển
Khoa Điện
việc tắt quạt, đèn điện … khi người chủ nhà quên chưa tắt trước khi ra khỏi nhà.
Hay chỉ với một thao tác kích, người chủ nhà có thể bật máy điều hịa để làm mát
phòng trước khi về nhà trong một khoảng thời gian nhất định. Bên cạnh đó nó cũng
gửi thơng báo cho người điều khiển biết nhiệt độ trong phòng hiện tại là bao nhiêu,
đồng thời phát tín hiệu cảnh báo khi nhiệt độ phòng vượt quá giới hạn cho phép.
1.2.2. Điều khiển thiết bị thông qua module sim.
Những dự án xây dựng các hệ thống điều khiển từ xa, gửi nhận dữ liệu thu
thập từ các cảm biến... ở những nơi khơng có internet thì sử dụng sóng điện thoại
là giải pháp duy nhất vì chi phí rẻ, bất chấp khoảng cách và độ ổn định cao. Với
Modul sim 900A ( hay 800A ) kết hợp với mạch xử lý arduino uno hoặc mega các
bạn có thể làm được nhiều hệ thống tương đối tốt có thể ứng dụng vào thực tế như
bộ định vị, các hệ thống điều khiển thiết bị từ xa qua điện thoại, sms makerting,...

Hình 2. Module sim 900A

1.2.3. Điều khiển thiết bị bằng Bluetooth thông qua Smatphone.
Hiện nay điện thoại thông minh ngày càng phổ biến, hệ điều hành Android
được xây dựng và phát triển liên tục với các chia sẻ về mã nguồn mở, việc sử dụng
Smatphone để điều khiển thông minh qua các thiết bị đang là một xu hướng.
Bluetooth là một trong những công nghệ đã được phát triển từ lâu và luôn được cải
tiến để nâng cao tốc độ cũng như khả năng bảo mật.
Việc ứng dụng công nghệ Bluetooth phổ biến trên nhiều thiết bị, có thể điều
khiển qua hệ điều hành Android giúp tận dụng những thiết bị sử dụng hệ điều hành
Android có sẵn của người dùng giúp tiện lợi hơn cũng như là giảm giá thành sản
phẩm.

Hình 3. Sơ đồ khối việc điều khiển thiết bị qua Bluetooth và Android
7
Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ môn: Đo lường và điều khiển
Khoa Điện
Phương thức này cũng dễ dàng sử dụng với vi điều khiển Arduino và
module bluetooth HC05.

Hình 4. Module bluetooth HC05
Module bluetooth HC05 master / slave dùng để thiết lập kết nối Serial giữa 2 thiết
bị bằng sóng bluetooth. Điểm đặc biệt của module bluetooth HC-05 là module có
thể hoạt động được ở 2 chế độ: MASTER hoặc SLAVE. Trong khi đó, bluetooth
module HC-06 chỉ hoạt động ở chế độ SLAVE.
+ Ở chê độ SLAVE: bạn cần thiết lập kết nối từ smartphone, laptop, usb bluetooth
để dị tìm module sau đó pair với mã PIN là 1234. Sau khi pair thành cơng, bạn đã
có 1 cổng serial từ xa hoạt động ở baud rate 9600.

+ Ở chế độ MASTER: module sẽ tự động dò tìm thiết bị bluetooth khác (1 module
bluetooth HC-06, usb bluetooth, bluetooth của laptop...) và tiến hành pair chủ động
mà không cần thiết lập gì từ máy tính hoặc smartphone.
1.3. Lựa chọn cấu trúc điều khiển.
Từ những cấu trúc điều khiển trên nhóm chúng em đã quyết địn lụa chọn
phương án điều khiển các thiết bị thông qua Wifi sử dụng module ESP8266. Đối
với phương án này các thiết bị sẽ được kết nối với Internet và chúng ta điều khiển
chúng thơng qua các thiết bị có thể truy cập được Internet như sử dụng
smartphone, laptop, ipad…

8
Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ môn: Đo lường và điều khiển

Khoa Điện

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG.
2.1. Xây dựng sơ đồ khối và lựa chọn thiết bị.
2.1.1. Xây dựng sơ đồ khối.

Hình 5: Sơ đồ khối các thành phần trong hệ thống
• Các thành phần trong hệ thống:
- Socket Server nằm ở tầng cao nhất gọi là tầng Server.
- ESP8266 và Trình duyệt Web nằm ở tầng thứ 2 gọi là Client.
- Arduino ở tầng thứ 3 gọi là Application.
- Các thiết bị điện và cảm biến ở tầng cuối cùng.
• Nhiệm vụ từng khối trong hệ thống:

- Xây dựng một Socket Server cà cài đặt ESP8266 trở thành một Socket
Client ở tại một địa điểm trong nhà và từ đó, chúng ta xây dựng nên hệ thống IOT.
- Các tín hiệu từ cảm biến nhiệt độ, cường độ sáng được đo bởi Arduino và
gửi dữ liệu tới module ESP8266.
- Khối ESP8266 làm nhiệm vụ đọc dữ liệu từ Arduino và gửi lên trên Socket
Server, hay chính là trên Web. Web này được truy cập bằng trình duyệt trên máy
tính hoặc điện thoại, và người dùng có thể được cập nhật các thơng số như nhiệt
độ, cường độ sáng trong phịng trên Web và từ đó đưa ra quyết định điều khiển các
thiết bị điện trong phịng như bóng đèn, quạt để phù hợp với nhu cầu sử dụng.
9
Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ môn: Đo lường và điều khiển
Khoa Điện
- Nếu như có tín hiệu điều khiển được người sử dụng điều chỉnh trên Web,
tín hiệu này sẽ được ESP8266 cập nhật về và gửi tới Arduino để điều khiển.
- Cuối cùng, Arduino sẽ có nhiệm vụ đóng, cắt các thiết bị tùy theo yêu cầu
của người sử dụng.
2.1.2. Lựa chọn thiết bị.
2.1.2.1. Arduino.
- Arduino là một IDE tich hợp sẵn editor, compiler, programmer va đi kèm
với nó là các firmware có bootloader, cac bộ thư viện được xay dựng sẵn va
dễ dàng tích hợp.
- Ngơn ngữ sử dụng la C/C++. Tất cả đều opensource va được đóng góp, phát
triển hàng ngày bởi cộng đồng. Triết lý thiết kế và sử dụng của Arduino giúp
cho người mới, không chuyên rất dễ tiếp cận, các cơng ty, hardware dễ dàng
tích hợp. Tuy nhiên, với trình biên dịch C/C++ và các thư viện chất lượng
được xây dựng bên dưới thì mức độ phổ biến ngày càng tăng và hiệu năng

thi không hề thua kem cac trình biên dịch chuyên nghiệp cho chip khác.
- Đại diện cho Arduino ban đầu la chip AVR, nhưng sau nay co rất nhiều nha
sản xuất sử dụng các chip khác nhau như ARM, PIC, STM32 gần đây nhất
là ESP8266, ESP32, và RISCV với năng lực phần cứng và phần mềm đi
kèm mạnh mẽ hơn nhiều.
- Arduino che dấu đi sự phức tạp của điện tử bằng các khái niệm đơn giản,
che đi sự phức tạp của phần mềm bằng các thủ tục ngắn gọn. Việc setup
output cho 1 MCU bằng cách setup thanh ghi rõ ràng phức tạp đến độ người
chuyên cũng phải lật datasheet ra xem, nhưng với Arduino thì chỉ cần gọi 1
hàm.
- Bởi vì tinh phổ biến và dễ dùng, với các thư viện được tích hợp sẵn. Bạn chỉ
cần quan tam đến tính năng sản phẩm mà bỏ qua cac tiểu tiết (protocol,
datasheet …). Nên giúp các newbie không chuyên dễ dàng tiếp cận và làm
ra các sản phẩm tuyệt vời mà không cần phải biết nhiều về điện tử.
- Chinh vì khơng quan tâm nhiều đến cách thức hoạt động của các Module đi
kèm, nên đa phần người dùng sẽ khó xử lý được khi có các vấn đề phat sinh
ngồi tầm của thư viện.
- Các module prototype làm sẵn cho Arduino có độ bền khơng cao, mục tiêu
đơn giản hóa q trình làm sản phẩm.
- Thiết kế IDE tốt, có thể dễ dàng tích hợp nhiều loại compiler, nhiều loại
hardware mà khơng hề giảm hiệu năng. Vi dụ: Arduino gốc cho AVR,
nhưng có nhiều phiên bản cho STM32, PIC32, ESP8266, ESP32… tận dụng
tối đa các thư viện sẵn có.
- Các thư viện được viết dựa trên lớp API trên cùng, nên đa số cac thư viện
cho Arduino co thể dùng được cho tất cả các chip. Điển hình là Arduino cho
ESP8266 có thể tận dụng trên 90% cac thư viện cho Arduino khác
10
Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy



Bộ mơn: Đo lường và điều khiển
Khoa Điện
- Trình biên dịch cho Arudino là C/C++, bạn có biết là khi biên dịch ESP8266
non-os SDK và ESP8266 Arduino cũng dùng chung trinh biên dịch? Vậy thì
hiệu năng khơng hề thua kém
- Cách tổ chức các thư viện C/C++ theo dạng OOP giúp phân lớp, kế thừa và
quản lý cực kỳ tốt cho cac ứng dụng lớn .Cac MCU ngày càng mạnh mẽ và
ứng dụng cho nó sẽ ngày càng lớn.
- Cac mô hinh quản lý code đơn giản trước đây (thuần C) sẽ khó.
- Các project cho Arduino đều opensource, bạn dễ dàng lấy nó và đưa vào sản
phẩm production với chất lượng tốt và học hỏi được nhiều từ cách thức thiết
kế chương trình của các bậc thầy.
- Arduino chú trọng tinh đa nền tảng, module hóa cao, phù hợp với các ứng
dụng từ phức tạp tới cực kỳ phức tạp. Các ứng dụng kiểu này rất phổ biến
trong thực tế. Nếu bạn không dùng C++hoặc arduino mà gặp vấn đề về
overcontrol thì nên thử qua Arduino.
- Bạn sẽ tiết kiệm được rất rất nhiều thời gian cho việc tập trung vào tính năng
sản phẩm đấy.
Thời buổi nay, thời gian la tiền va co qua nhiều thứ để học, lam thi nen ưu tien
đung chỗ.
• Giới thiệu về board mạch Arduino UNO R3.
Aruino có rất nhiều phiên bản thích hợp cho mọi người dùng và độ phức tạp
của các dự án từ những board cơ bản như UNO, Nano đến những board phức tạp
và mạnh mẽ như MEGA. Sau đây em xin giớ thiệu về board Arduino Uno.
Arduino UNO có ba phiên bản với các chip điều khiển khác nhau từ những
chíp trung bình đến những chip mạnh mẽ.
Arduino phiên bản đầu tiên sử dụng chip ATMEGA8, phiên bản tiếp theo sử
dụng chip ATMEGA168 và phiên bản mới nhất của board UNO sử dụng chip
ATMEGA328P. Bảng sau đây trình bày các thông số kỹ thuật của board UNO R3

chạy chip ATMEGA328P
Chip vi điều khiển

ATMEGA328P

Bộ nhớ RAM

2kB

Bộ nhớ ROM

32kB

Bộ nhớ EEPROM

1kB

Điện áp hoạt động của chip

5V

Điện áp cấp cho bo mạch thông qua 5V
cổng USB
Điện áp cấp cho bo mạch thông qua 6-15V
cổng nguồn
Số chân Analog

6
11


Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ môn: Đo lường và điều khiển
Số chân Digital

Khoa Điện
14

Số chân Digital cho phép tạo xung 6
PWM
Số cổng giao tiếp UART

1

Tần số thạch anh hoạt động

16MHz

Chip nạp CODE

ATMEGA16U2/CH340G

Điện áp chân Digital

5V

Địng điện tối đa chân digital


50mA

Bảng 1: Thơng số kỹ thuật của Arduino Uno R3
- Sơ đồ chân của Arduino Uno R3 và các khối chính trong board.

Hình 6: Sơ đồ các chân kết nối của Arduino Uno R3

12
Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ mơn: Đo lường và điều khiển

Khoa Điện

Hình 7: Sơ đồ các khối chức năng của board Arduino Uno R3.
2.1.2.2. Giới thiệu về ESP8266.
ESP8266 la dong chip tich hợp Wi-Fi 2.4Ghz co thể lập trinh được, rẻ tiền
được sản xuất bởi một công ty ban dẫn Trung Quốc: Espressif Systems.
Được phat hanh đầu tien vao thang 8 năm 2014, đóng gói đưa ra thị trường
dạng Module ESP-01, được sản xuất bởi ben thứ 3: AI-Thinker. Co khả năng kết
nối Internet qua mạng Wi-Fi một cach nhanh chóng và sử dụng rất it linh kiện đi
kèmm. Với giá cả co thể noi la rất rẻ so với tính năng và khả năng ESP8266 có thể
lam được.
ESP8266 có một cộng đồng các nhà phát triển trên thế giới rất lớn, cung cấp
nhiều Module lập trinh mã nguồn mở giúp nhiều người có thể tiếp cận và xây dựng
ứng dụng rất nhanh.
Hiện nay tất cả cac dòng chip ESP8266 trên thị trường đều mang nhãn
ESP8266EX, la phiên bản nâng cấp của ESP8266


-

Thơng số kỹ thuật:
32-bit RISC CPU : Tensilica Xtensa LX106 chạy ở xung nhịp 80 MHz
Hổ trợ Flash ngoai từ 512KB đến 4MB
64KBytes RAM thực thi lệnh
96KBytes RAM dữ liệu
64KBytes boot ROM
Chuẩn wifi EEE 802.11 b/g/n, Wi-Fi 2.4 GHz
Tich hợp TR switch, balun, LNA, khuếch đại cong suất va matching
network
- Hổ trợ WEP, WPA/WPA2, Open network
- Tich hợp giao thức TCP/IP
- Hổ trợ nhiều loại anten
- 16 chan GPIO
- Hổ trợ SDIO 2.0, UART, SPI, I²C, PWM,I²S với DMA
- 1 ADC 10-bit
- Dải nhiệt độ hoạt động rộng : -40C ~ 125C
13
Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ mơn: Đo lường và điều khiển

Khoa Điện

• Sơ đồ chân:


Hinh 8: Sơ đồ chân ESP8266EX

14
Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ mơn: Đo lường và điều khiển

Khoa Điện

Hình 9: PinMap của Module ESP8266 Node MCU
• SDK hỗ trợ chinh thức từ hang
15
Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ môn: Đo lường và điều khiển
Khoa Điện
Espressif hiện đã hỗ trợ 3 nền tảng SDK (Software Development Kit - Gói phat
triển phần mềm) độc lập, là: NONOS SDK, RTOS SDK va Arduino. Cả 3 đều có
những ưu điểm riêng phu hợp với từng ứng dụng nhất định, va sử dụng chung
nhiều các hàm điều khiển phần cứng. Hiện nay Arduino đang được sử dụng rộng
rai bởi tính dễ sử dụng, kiến trúc phần mềm tốt và tận dụng được nhiều thư viện
cộng đồng.
• ESP8266 NONOS SDK
Hiện nay, NONOS SDK phiên bản từ 2.0.0 trở lên đã ổn định va cung cấp gần như
la đầy đủ tất cả cac tinh năng mà ESP8266 co thể thực hiện:
- Cac API cho Timer, System, Wifi, đọc ghi SPI Flash, Sleep va cac Module

phần cứng: GPIO, SPI, I²C,PWM, I²S với DMA.
- Smartconfig: Hỗ trợ cấu hinh thong số Wi-Fi cho ESP8266 nhanh chong.
- Sniffer API: Bắt cac gói tin trong mạng khơng dây 2.4Ghz.
- SNTP API: Đồng bộ thời gian với Máy chủ thời gian.
- WPA2 Enterprise API: Cung cấp việc quản l. kết nối Wi-Fi bằng tai khoản
sử dụng cac may chủ RADIUS.
- TCP/UDP API: Cho kết nối internet va hỗ trợ cac Module dựa trên các giao
thức như: HTTP, MQTT,CoAP.
- mDNS API: Giup tim ra IP của thiết bị trong mạng nội bộ bằng tên
(hostname).
- MESH API: Liên kết các module ESP8266 với cấu trúc mạng MESH
- FOTA API: Firmware Over The Air - cập nhật firmware từ xa cho thiết bị .
- ESP-Now API: Sử dụng các gói tin Wireless 2.4GHz trao đổi trực tiếp với
ESP8266 khac ma không cần kết nối tới Access Point.
- Simple Pair API: Thiết lập kết nối bảo mật giữa 2 thiết bị tự động.
• ESP8266 RTOS SDK
RTOS SDK sử dụng FreeRTOS lam nền tảng, đồng thời hầu hết cac API của
NON OS SDK đều có thể sử dụng với RTOS SDK.
• ESP8285
- ESP8285 la một phien bản khac sau nay của ESP8266EX, giống hoan toan
ESP8266EX ngoại trừ việc thay vi dùng SPI FLASH bên ngồi thì ESP8285
tích hợp 1MB Flash bên trong giúp giảm diện tích phần cứng và đơn giản
hố q trình sản xuất.
• Module va Board mạch phat triển
- ESP8266 cần it nhất them 7 linh kiện nữa mới co thể hoạt động, trong đo
phần kho nhất làAntena.
- Đòi hỏi phải được sản xuất, kiểm tra với cac thiết bị hiện đại. Do đ0s, tren
thị trường xuất hiện nhiều Module va Board mạch phat triển đảm đương hết
để người dung đơn giản nhất trong việc phát triển ứng dụng.


16
Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ môn: Đo lường và điều khiển

Tên
ESP-01
ESP-02
ESP-03
ESP-04
ESP-05
ESP-06
ESP-07
ESP-08
ESP-09
ESP-10
ESP-11
ESP-12
ESP-12E
ESP-12F
ESP-13
ESP-14

Một số Module ESP8266 trên thị trường
Số chân
Pitch
LEDs
Antena

6
0,1”
Yes
PCB
6
0,1”
No
U-FL
10
2mm
No
Ceramic
10
2mm
No
None
3
0.1”
No
U-FL
11
Misc
No
None
14
2mm
Yes
Ceramic+UFL
10
2mm

No
None
10
Misc
No
None
3
2mm
No
None
6
0,05”
No
Ceramic
14
2mm
Yes
PCB
20
2mm
Yes
PCB
20
2mm
Yes
PCB
16
1.5mm
No
PCB

22
2mm
No
PCB

Khoa Điện

Shielded
No
No
No
No
No
Yes
Yes
Yes
No
No
No
Yes
Yes
Yes
Yes
Yes

Bảng 2: Một số Board ESP8266 thơng dụng
2.1.2.3. Cảm biến nhiệt độ, độ ẩm.
• Giới thiệu về chuẩn giao tiếp 1 sợi(one wire).
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 ni (Nếu khơng tín dây

mass). Là chuẩn giao tiếp không đồng bộ và bán song công (half-duplex). Trong
giao tiếp này tuân theo mối liên hệ chủ tớ một cách chặt chẽ. Trên một bus có thể
gắn 1 hoặc nhiều thiết bị slave. Nhưng chỉ có một master có thể kết nối đến bus
này.
Bus dữ liệu khi ở trạng thái rãnh (khi khơng có dữ liệu trên đường truyền)
phải ở mức cao do vậy bus dữ liệu phải được kéo lên nguồn thông qua một điện
trở. Giá trị điện trở này có thể tham khảo trong datasheet của thiết bị / các thiết bị
slave.
Các thiết bị tớ (slave) kết nối với cùng một bus được phân biệt với nhau nhờ
64 bit địa chỉ duy nhất (64-bit serial number). 8 byte (64 bit) này và được chia làm
ba phần chính:
17
Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ môn: Đo lường và điều khiển
Khoa Điện
Bắt đầu với LSB, là byte đầu tiên là mã họ thiết bị có độ lớn 8 bit (8-bit
family codes) xác định kiểu thiết bị. 6 byte tiếp theo lưu trữ địa chỉ riêng của thiết
bị. Byte cuối cùng (MSB) là byte kiểm tra tính tồn vẹn dữ liệu cyclic redundancy
check (CRC) có giá trị tương ứng với giá trị của 7 byte đầu tiên. Nhờ byte CRC
giúp cho master xác định có địa chỉ được đọc có bị lỗi hay khơng. Với 224 địa chỉ
khác nhau tạo ra một số lượng rất lớn các địa chỉ.Do vậy vấn đề về địa chỉ khơng
phải là vấn đề chính trong chuẩn giao tiếp này.
- Cách thức hoạt động.
Tín hiệu trên bus 1 wire chia thành các khe thời gian 60 µs. 1 bit dữ liệu được
truyền trên bus dựa trên khe thời gian (time slots). Các thiết bị slave cho phép có
thời gian nền có một chúc khác biệt từ thời gian nền danh nghĩa. Tuy nhiên đối với
thiết bị master cần có bộ định thời với độ chính xác cao, để đảm bảo giao tiếp đúng

với các thiết bị salve có thời gian nền khác biệt. Do đó rất quan trọng để tuân
theo giới
hạn
thời
gian mô
tả
trong các
phần
sau.
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 bít.
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 10: Cách thức gửi bit 1 trong giao tiếp One Wire
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 11: Cách thức gửi bit 0 trong giao tiếp One Wire
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
Đọc bit:

18
Đồ án học phần 2

GVHD: Ts. Bùi Văn Huy


Bộ môn: Đo lường và điều khiển
Khoa Điện
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 11: Cách thức đọc bit trong giao tiếp One Wire

"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 tiếp theo
sẻ
khơng
thể
diễn
ra.

Hình 12: Cách thức Reset/Presence trong giao tiếp One Wire
Trong đề tài này chúng em sử dụng cảm biến nhiệt độ, độ ẩm DHT11.

Hình 13: Cảm biến nhiệt độ, độ ẩm DHT11
- Cảm biến nhiệt độ và độ ẩm DHT11 là cảm biến rất thơng dụng hiện nay vì
chi phí rẻ và rất dễ lấy dữ liệu thông qua giao tiếp 1 wire ( giao tiếp digital 1 dây

19
Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ môn: Đo lường và điều khiển
Khoa Điện
truyền dữ liệu duy nhất ). Bộ tiền xử lý tín hiệu tích hợp trong cảm biến giúp có
được dữ liệu chính xác mà khơng phải qua bất kỳ tính tốn nào.
- Thơng tin kỹ thuật:
+ Nguồn: 3 -> 5 VDC.
+ Dòng sử dụng: 2,5 mA max( khi truyền dữ liệu).
+ Đo tốt ở độ ẩm 2080%RH với sai số 5%.
+ Đo tốt ở nhiệt độ 0 đến 50oC sai số 2oC.
+ Tần số lấy mẫu tối đa 1Hz (1 giây 1 lần).
+ Kích thước: 15mm x 12 mm x 5,5 mm.
+ 4 chân, khoảng cách chân 0,1”.
+ Chuẩn giao tiếp: One wire
- Cách giao tiếp DHT11 với vi điều khiển.
+ Sơ đồ kết nối với vi xử lý.

Hình 14: Sơ đồ kết nối DHT11 với MCU
+ Nguyên lý hoạt động.
Để có thể giao tiếp được với DHT11 theo tiêu chuẩn 1 dây( one wire) thì vi xử
lý phải thực hiện theo hai bước như sau:
- Gửi tín hiệu muốn đo (Start) tới DHT11, sau đó chờ DHT11 xác nhận lại.
- Khi đã giao tiếp được với DHT11. Cảm biến sẽ gửi lại 5 byte dữ liệu và nhiệt
độ đo được.
➢ Bước 1: Gửi tín hiệu start


20
Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ mơn: Đo lường và điều khiển










Khoa Điện

Hình 15: Gửi tín hiệu Start giao tiếp với DHT11
Vi xử lý thiết lập chân DATA là Output, kéo chân DATA xuống mức thấp
trong khoảng thời gian > 18ms. Khi đó DHT11 sẽ hiểu là vi xử lý muốn đọc
dữ liệu nhiệt độ độ ẩm.
Sau đó vi xử lý sẽ đưa chân DATA lên mức cao và thiết lập lại là chân đầu
vào.
Sau khoảng 20 – 40 μs, DHT11 sẽ kéo chân DATA xuống thấp. Nếu >40 μs
mà chân DATA không được kéo xuống thấp thì có nghĩa là khơng giao tiếp
được với DHT11.
Chân DATA sẽ ở mức thấp 80 μs. Bằng việc giám sát chân DATA vi xử lý
có thể biết được là có giao tiếp được với vi xử lý hay khơng. Nếu tín hiệu đo
được DHT11 lên cao , khi đó hồn thiện q trình giao tiếp với DHT11.

Bước 2: Đọc giá trị trên DHT11.
o DHT11 sẽ trả dữ liệu nhiệt độ độ ẩm dưới dạng 5 byte. Trong đó:
▪ Byte 1: Giá trị phần nguyên của độ ẩm.
▪ Byte 2: Giá trị phần thập phân của độ ẩm.
▪ Byte 3: Giá trị phần nguyên của nhiệt độ.
▪ Byte 4: Giá trị phần thập phân của nhiệt độ.
▪ Byte 5: Kiểm tra tổng.
o Nếu Byte 5 = (8bit) ( Byte1 + Byte2 + Byte3 + Byte4) thì giá trị đo
được là chính xác cịn ngược lại thì kết quả đo khơng có nghĩa.
o Đọc dữ liệu
Sau khi giao tiếp được với DHT11, DHT11 sẽ gửi liên tiếp 40 bit 0
hoặc 1 tương ứng với 5 byte kết quả của nhiệt độ độ ẩm.
▪ Bit 0

21
Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ mơn: Đo lường và điều khiển

Khoa Điện

Hình 16: Cách đọc Bit0
▪ Bit 1

Hình 16: Cách đọc Bit 1
Sau khi tín hiêu được đưa về 0, ta đợi chân DATA của vi xử lý được
DHT11 kéo lên 1. Nếu chân DATA là 1 trong khoảng thời gian 26 - 28 μs
thì là 0 cịn nếu tồn tại trong khoảng thời gian 70 μs thì là 1. Cứ thế ta đọc

các bit tiếp theo.
+ Giao tiếp DHT11 với Arduino.
Việc giao tiếp cảm biến nhiệt độ độ ẩm với arduino rất dễ dàng chúng ta chỉ
cần khai báo loại cảm biến là DHT11 chọn chân cần giao tiếp là chân số
22
Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ môn: Đo lường và điều khiển
Khoa Điện
mấy trên arduino sau đó khởi động thư viện bằng hàm begin() và đọc giá trị
nhiệt độ độ ẩm thông qua hai hàm dht.readHumidity() và
dht.readTemperature()
2.1.2.4. Cảm biến cường độ sáng.
• Giới thiệu về chuẩn giao tiếp I2C.
TWI (Two-Wire Serial Intereafce) là một module truyền thông nối tiếp đồng bộ
trên các chip AVR dựa trên chuẩn truyền thông I2C. I2C là viết tắc của từ InterIntegrated Circuit là một chuẩn truyền thông do hãng điện tử Philips
Semiconductor sáng lập và xây dựng thành chuẩn năm 1990. Phiên bản mới nhất
của I2C là V3.0 phát hành năm 2007. Để hiểu thêm về I2C bạn có thể tham khảo
các tài liệu “I2C Specification” từ trang web của NXP- (lập
bởi Philips). Trong phạm vi bài học này tôi chỉ giới thiệu giao thức TWI được giới
thiệu trong datasheet của các chip AVR từ Atmel. Tuy nhiên, về cơ bản TWI trong
AVR hồn tồn tương thích I2C, do đó tìm hiểu TWI của AVR khơng chỉ giúp
bạn giao tiếp giữa các AVR với nhau mà có thể dùng TWI để điều khiển bất kỳ
một thiết bị nào theo chuẩn I2C (các chip nhớ, bộ chuyển đổi ADC, DCA, đồng hồ
thời gian thực…).
TWI (I2C) là một truyền thông nối tiếp đa chip chủ (tạm dịch của cụm từ
multi-master serial computer bus). Khái niệm “multi-master” (tôi sẽ dùng từ tiếng
anh multi-master thay vì dùng “đa chip chủ”) được hiểu là trong trên cùng một bus

có thể có nhiều hơn một thiết bị làm Master, đồng thời một Slave có thể trở thành
một Master nếu nó có khả năng. Ví dụ trong một mạng TWI của nhiều AVR kết
nối với nhau, bất kỳ một AVR nào đều có thể trở thành Master ở một thời điểm
nào đó. Tuy nhiên nếu một mạng dùng một AVR điều khiển các chip nhớ (như
EEPROM AT24C1024 chẳng hạn) thì khái niệm “multi-master” khơng tồn tại vì
các chip nhớ được thiết kế sẵn là Slave, khơng có khả năng trở thành master. TWI
(I2C) được thực hiện trên 2 đường SDA (Serial DATA) và SCL (Serial Clock)
trong đó SDA là đường truyền/nhận dữ liệu và SCL là đường xung nhịp. Căn cứ
theo chuẩn I2C, các đường SDA và SCL trên các thiết bị có cấu hình “cực góp
mở” (open-drain hoặc open-collector, tham khảo các mạch số dùng transistor để
hiểu thêm), nghĩa là cần có các “điện trở kéo lên” (pull-up resistor) cho các đường
này. Ở trạng thái nghỉ (Idle), 2 chân SDA và SCL ở mức cao.

Hình 17: Mạng I2C cơ bản
23
Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ môn: Đo lường và điều khiển
Khoa Điện
Tiếp theo chúng ta tìm hiểu một số khái niệm và đặc điểm của TWI. Các
khái niệm và đặc điểm tôi đề cập dưới đây được dùng cho cả TWI và I2C, nếu có
sự
khác
biệt
tơi
sẽ
giải
thích

thêm.
Master: là chip khởi động q trình truyền nhận, phát đi địa chỉ của thiết bị
cần
giao
tiếp

tạo
xung
giữ
nhịp
trên
đường
SCL.
Slave: là chip có một địa chỉ cố định, được gọi bởi Master và phục vụ yêu cầu
từ
Master.
SDA- Serial Data: là đường dữ liệu nối tiếp, tất cả các thông tin về địa chỉ
hay dữ liệu đều được truyền trên đường này theo thứ tự từng bit một. Chú ý là
trong chuẩn I2C, bit có trọng số lớn nhất (MSB) được truyền trước nhất, đặc điểm
này
ngược
lại
với
chuẩn
UART.
SCL –Serial Clock: là đường giữ nhịp nối tiếp. TWI (I2C) là chuần truyền
thơng nối tiếp đồng bộ, cần có 1 đường tạo xung giữ nhịp cho quá trình
truyền/nhận, cứ mỗi xung trên đường giữ nhịp SCL, một bit dữ liệu trên đường
SDA sẽ được lấy mẫu (sample). Dữ liệu nối tiếp trên đường SDA được lấy mẫu
khi đường SCL ở mức cao trong một chu kỳ giữ nhịp, vì thế đường SDA không

được đổi trạng thái khi SCL ở mức cao (trừ START và STOP condition). Chân
SDA có thể được đổi trạng thái khi SCL ở mức thấp.

Hình 18: Đổi trạng thái và lấy mẫu dữ liệu
START Condition: Điều kiện bắt đầu: từ trạng thái nghỉ, khi cả SDA và SCL
ở mức cao nếu Master muốn thực hiện một “cuộc gọi”, Master sẽ kéo chân SDA
xuống thấp trong khi SCL vẫn cao. Trạng thái này gọi là START Condition (chúng
ta
gọi
tắt

S).
STOP Condition: Điều kiện kết thúc: sau khi thực hiện truyền/nhận dữ liệu,
nếu Master muốn kết thúc q trình nó sẽ tạo ra một STOP condition. STOP
condition được Master thực hiện bằng cách kéo chân SDA lên cao khi đường SCL
đang ở mức cao. STOP condition chỉ được tạo ra sau khi địa chỉ hoặc dữ liệu đã
được
truyền/nhận.
REPEAT START – Bắt đầu lặp lại: khoảng giữa START và STOP
24
Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


Bộ môn: Đo lường và điều khiển
Khoa Điện
condition là khoảng bận của đường truyền, các Master khác không tác động được
vào đường truyền trong khoảng này. Trường hợp sau khi kết thúc truyền/nhận mà
Master không gởi STOP condition lại gởi thêm 1 START condition gọi là
REPEAT START. Khả năng này thường được dùng khi Master muốn lấy dữ liệu

liên tiếp từ các Slaves.

Hình 19: Master tạo ra START, STOP và REPEAT START.
Address Packet Format – Định dạng gói địa chỉ: trên mạng TWI (I2C), tất
cả các thiết bị (chip) đều có thể là Master hay Slave. Mỗi thiết bị có một địa chỉ cố
định gọi là Device address. Khi một Master muốn giao tiếp với một Slave nào đó,
nó trước hết tạo ra một START condition và tiếp theo là gởi địa chỉ Device address
của Slave cần giao tiếp trên đường truyền, vì thế xuất hiện khái niệm “gói địa chỉ”
(Address Packet). Gói địa chỉ trong TWI (I2C) có định dạng 9 bits trong đó 7 bit
đầu (gọi là SLA, được gởi liền sau START condition) chứa địa chỉ Slave, một bit
READ/WRITE và một bit ACK-Ackknowledge (xác nhận). Do bit địa chỉ có độ
dài 7 bits nên về mặt lý thuyết, trên 1 mạng TWI (I2C) có thể tồn tại tối đa
2^7=128 thiết bị có địa chỉ riêng biệt. Tuy nhiên, có một số địa chỉ khơng được sử
dụng như các địa chỉ có định dạng 1111xxx (tức các địa chỉ lớn hơn hoặc bằng 120
không được dùng). Riêng địa chỉ 0 được dùng cho “cuộc gọi chung” (General call).
Bit READ/WRITE (R/W) được truyền tiếp sau 7 bit địa chỉ là bit báo cho Slave
biết Master muốn “đọc” hay “ghi” vào Slave. Nếu bit này bằng 0 (gọi là W) thì quá
trình “Ghi” dữ liệu từ Master đến Slave được yêu cầu, nếu bit này bằng 1 (gọi là R)
thì Master muốn “đọc” dữ liệu từ Slave về. Tám bits trên (SLA+R/W) được Master
phát ra sau khi phát START condition, nếu một Slave trên mạng nhận ra rằng địa
chỉ mà Master yêu cầu trùng khớp với Device address của chính mình, nó sẽ “đáp
trả” lại Master bằng cách phát ra 1 tín hiệu “xác nhận” ACK bằng cách kéo chân
SDA xuống thấp trong xung thứ 9. Ngược lại, nếu không có Slave đáp ứng lại,
chân SDA vẫn ở mức cao trong xung giữ nhịp thứ 9 thì gọi là tín hiệu “không xác
nhận” – NOT ACK, lúc này Master cần có những ứng xử phù hợp tùy theo mỗi
trường hợp cụ thể, ví dụ Master có thể gởi STOP condition và sau đó phát lại địa
chỉ Slave khác…Như vậy, trong 9 bit của gói địa chỉ thì chỉ có 8 bit được gởi bởi
Master, bit còn lại là do Slave. Ví dụ Master muốn yêu cầu “đọc” dữ liệu từ Slave
có địa chỉ 43, nó cần phát đi một byte như sau trên đường truyền: (43<<1)+1,
25

Đồ án học phần 2
GVHD: Ts. Bùi Văn Huy


×