1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án tốt nghiêp thiết kế ngôi nhà thông minh

77 3,6K 10

Đ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 77
Dung lượng 5,13 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mục đích nghiên cứu của đề tài Hệ thống điều khiển không dây trong ngôi nhà là một phần không thể thiếu trong các vấn đề về hệ thống ngày nay, với đề tài này sẽ giúp con người: + Điều kh

Trang 1

MỤC LỤC i

PHẦN A: MỞ ĐẦU 1

1 Tính cấp thiết của đề tài 1

2 Mục đích nghiên cứu của đề tài 1

3 Đối tượng và phạm vị nghiên cứu: 2

4 Kết cấu của đề tài: đề tài này gồm 4 chương 2

PHẦN B: NỘI DUNG 3

CHƯƠNG 1: GIỚI THIỆU 3

Hinh 1.1.a: Mô hình nhà điều khiển không dây 3

1.2Nguyên lý hoạt động 3

Hình 1.1.b: Sơ đồ hệ thống mô hình 4

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 5

2.1 Hệ thống xử lý trung tâm 5

2.1.1 Giới thiệu 5

Hình 2.2: Sơ đồ khối xử lý trung tâm 5

2.1.2 Khối xử lý trung tâm 5

Hình 2.3: vi điều khiển Atmega328P 6

Hình 2.4: Sơ đồ chức năng của chân trên Atmega328P 7

Serial 8

USB8 SPI 8 TWI (I2C) 9

Bảng 2.2: Độ dài dữ liệu truyền 12

Bảng 2.3: tính tốc độ baud 13

Bảng 2.4.a, 2.4.b, 2.4.c, 2.4.d: Một số tốc độ baud mẫu 14

Trang 2

Bảng 2.6: Bảng tóm tắt các chế độ hoạt động của ADC 16

Bảng 2.7: cách chọn hệ số chia 17

2.1.3 Khối giao tiếp Smartphone 18

2.1.3.a Giới thiệu 18

2.1.3.b Khảo sát Module HC-05 18

Hình 2.5: Module HC-05 19

Hình 2.6: Sơ đồ nguyên lý Module HC-05 20

Truyền thông nối tiếp UART 20

Hình 2.7: truyền nhận dữ liệu theo phương pháp song song và nối tiếp 20

Hình 2.8: Tín hiệu trong truyền thông nối tiếp 21

2.1.3.c Phần mềm trên Smartphone 21

Hình 2.9: Giao diện Website MIT App Inventor 22

Hình 2.10: Giao diện thiết kế MIT App Inventor 23

Hình 2.11: Giao diện Blocks 24

2.1.3.d Khối thời gian thực 25

Hình 2.12: IC DS1307 25

Hình 2.13:Sơ đồ nguyên lý cho mạch thời gian thực 27

2.1.3.e Bộ thu-phát không dây 27

Hình 2.14: Sơ đồ nguyên lý NRF24L01 28

Bảng 2.9: Sơ đồ kết nối với vi điều khiển 29

2.1.3.f Cảm biến nhiệt độ 30

Hình 2.16: Sơ đồ kết nối DS18B20 với chuẩn One-wire 32

Bảng 2.10: Bảng mô tả chức năng chuẩn nối tiếp One-wire 33

2.1.3.g Cảm biến ánh sáng và cảm biến chuyển động 33

Trang 3

2.2 Hệ thống xử lý khu vực 36

Hình 2.20: Sơ đồ khối hệ thống xử lý khu vực, 36

2.3 Bộ phận an ninh 37

Hình 2.21: LCD 16x2 37

Hình 2.22: cảm biến cửa 38

Bảng 2.11: Nối cảm biến cửa với vi điều khiển 38

Hình 2.23:Sơ đồ kết nối cảm biến MQ2 39

CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG 41

3.1 Hệ thống điều khiển chính 41

3.1.1 Lưu đồ thuật toán hệ thống điều khiển chính 41

Lưu đồ 3.1: Lưu đồ thuật toán hệ thống điều khiển chính 41

3.1.2 Giải thích lưu đồ 41

Luu đồ 3.2: Lưu đồ thuật toán hệ thống điều khiển chính 42

3.1.3 Sơ đồ nguyên lý 43

3.1.4 Thi công mạch 44

3.2.1 Lưu đồ thuật toán hệ thống điều khiển khu vực 44

Lưu đồ 3.3: Lưu đồ hệ thống điều khiển khu vực 45

3.2.2 Giải thích lưu đồ 45

3.2.3 Sơ đồ nguyên lý 45

3.2.4 Thi công mạch 46

3.3 Thiết kế phần mềm trên smartphone 47

3.3.1 Tạo giao diện 47

Hình 3.5: Tạo giao diện trên MIT App Inventor 47

3.4 Sản phẩm và mô hình 50

3.4.1 Bộ phận điều khiển trung tâm 50

Trang 4

3.4.3 Mô hình nhà thông minh 51

CHƯƠNG 4: VIẾT CHƯƠNG TRÌNH 52

4.1 Giới thiệu phần mềm Arduino IDE 52

Hình 4.1: Giao diện Arduino IDE 52

Hình 4.3: Kết nối với LCD 55

Hình 4.4: Kết nối cảm biến nhiệt độ LM35 56

Hình 4.5: Kết nối giữa Ethernet Shield W5100 với Arduino Uno 57

Hình 4.6: Kết nối với Bluetooth bằng cách khởi tạo giao tiếp bằng phần mềm 59

4.3.6 Giao tiếp NRF24L01 60

Hình 4.7 Kết nối NRF24L01 60

Trang 5

LỜI CẢM ƠN

Trong suốt thời gian học tập vừa qua, được sự chỉ dẫn của quý thầy cô trường Đại Học Văn Hiến, khoa Kỹ Thuật Công Nghệ đã giúp em hoàn thành khóa học của mình Nay thông qua đồ án tốt nghiệp này, em xin gởi lời cảm ơn chân thành đến:

Quý thầy cô trong khoa Kỹ thuật – Công nghệ, đặc biệt là Bộ môn Điện tử - Viễn thông đã tận tình chỉ bảo em trong suốt quá trình học tập

Quý thầy cô ở các khoa có liên quan đã cung cấp cho em những kiến thức cần thiết của một sinh viên

Trường Đại Học Văn Hiến đã tạo điều kiện cho em học tập trong suốt thời gian qua

Đặc biệt, em xin gởi lời cảm ơn chân thành và sâu sắc đến thầy NGUYỄN VĂN KHẢI đã tận tình hướng dẫn và giúp đỡ em trong suốt thời gian thực hiện đồ án tốt

Trang 6

LỜI CAM ĐOAN

- -Tôi cam đoan đây là công trình nghiên cứu của riêng tôi, do tôi tự thực hiện, không sao chép, vay mượn từ các công trình nghiên cứu khoa học khác Đảm bảo mọi tài liệu tham khảo đều được trích dẫn, ghi chú đầy đủ

Tp.Hồ Chí Minh, ngày tháng năm

Sinh viên thực hiện

Trang 7

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

- -

…., ngày… tháng… năm 2014

Giáo viên phản biện

Trang 8

NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

- -

ngày…….tháng……năm 2014

Giáo viên hướng dẫn

Trang 9

DANH MỤC CÁC BẢNG BIỂU, LƯU ĐỒ, HÌNH

MỤC LỤC i

PHẦN A: MỞ ĐẦU 1

PHẦN B: NỘI DUNG 3

Hinh 1.1.a: Mô hình nhà điều khiển không dây 3

Hình 1.1.b: Sơ đồ hệ thống mô hình 4

Hình 2.2: Sơ đồ khối xử lý trung tâm 5

Hình 2.3: vi điều khiển Atmega328P 6

Hình 2.4: Sơ đồ chức năng của chân trên Atmega328P 7

Bảng 2.2: Độ dài dữ liệu truyền 12

Bảng 2.3: tính tốc độ baud 13

Bảng 2.5: tóm tắt giá trị các bit và điện áp tham chiếu tương ứng 15

Bảng 2.6: Bảng tóm tắt các chế độ hoạt động của ADC 16

Bảng 2.7: cách chọn hệ số chia 17

Hình 2.5: Module HC-05 19

Hình 2.6: Sơ đồ nguyên lý Module HC-05 20

Hình 2.7: truyền nhận dữ liệu theo phương pháp song song và nối tiếp 20

Hình 2.8: Tín hiệu trong truyền thông nối tiếp 21

Hình 2.9: Giao diện Website MIT App Inventor 22

Hình 2.10: Giao diện thiết kế MIT App Inventor 23

Hình 2.11: Giao diện Blocks 24

Hình 2.12: IC DS1307 25

Hình 2.13:Sơ đồ nguyên lý cho mạch thời gian thực 27

Hình 2.14: Sơ đồ nguyên lý NRF24L01 28

Bảng 2.9: Sơ đồ kết nối với vi điều khiển 29

Hình 2.16: Sơ đồ kết nối DS18B20 với chuẩn One-wire 32

Trang 10

Bảng 2.10: Bảng mô tả chức năng chuẩn nối tiếp One-wire 33

Hình 2.18: Sơ đồ nguyên lý của cảm biến ánh sáng cơ bản 34

Hình 2.19: Cấu tạo cảm biến chuyển động 35

Hình 2.20: Sơ đồ khối hệ thống xử lý khu vực, 36

Hình 2.21: LCD 16x2 37

Hình 2.22: cảm biến cửa 38

Bảng 2.11: Nối cảm biến cửa với vi điều khiển 38

Hình 2.23:Sơ đồ kết nối cảm biến MQ2 39

Lưu đồ 3.1: Lưu đồ thuật toán hệ thống điều khiển chính 41

Luu đồ 3.2: Lưu đồ thuật toán hệ thống điều khiển chính 42

Lưu đồ 3.3: Lưu đồ hệ thống điều khiển khu vực 45

Hình 3.5: Tạo giao diện trên MIT App Inventor 47

Hình 4.1: Giao diện Arduino IDE 52

Hình 4.3: Kết nối với LCD 55

Hình 4.4: Kết nối cảm biến nhiệt độ LM35 56

Hình 4.5: Kết nối giữa Ethernet Shield W5100 với Arduino Uno 57

Hình 4.6: Kết nối với Bluetooth bằng cách khởi tạo giao tiếp bằng phần mềm 59

Hình 4.7 Kết nối NRF24L01 60

Trang 11

KÍ HIỆU CÁC TỪ VIẾT TẮT – THUẬT NGỮ ANH – VIỆT

UART Universal Asynchronous serial Reveiver

and Transmitter

Truyền nhận dữ liệu bất đồng bộ

Trang 12

CGROM Character Generator ROM Bọ tạo font ký tự

Trang 13

PHẦN A: MỞ ĐẦU

1 Tính cấp thiết của đề tài

Khi cuộc sống con người được nâng cao, những nhu cầu cuộc sống hằng ngày càng cao đòi hỏi phải được hỗ trợ tốt hơn Và từ những nhu cầu thực tế đó ý tưởng về ngôi nhà thông minh hình thành Một ngôi nhà mà chứa đựng sự ấm áp yêu thương, tình yêu và hạnh phúc, mọi hoạt động của con người điều được hỗ trợ và giúp đỡ một cách linh hoạt, không những giúp đỡ mà ngôi nhà còn quản lý một cách thông minh

Ngày nay, vớ sự phát triển một cách nhanh chóng của ngành điện tử cũng như nhiều ngành khác thì ý tưởng về ngôi nhà thông minh không còn vướng bởi rào cản công nghệViệc điều khiển nhà thông minh thông qua Smartphone tạo nên bước ngoặc lớn trong việc điều khiển tự động, không dây một cách linh hoạt, có thể nói sự phát triển không ngừng của những chiếc Smartphone đã làm cho công nghệ thêm bước tiến, việc điều khiển dễ dàng hơn

Từ ý tưởng đó, nhu cầu về cuộc sống thoải mái nên việc xây dựng “HỆ THỐNG ĐIỆ

TỬ TỰ ĐÔNG CHO NGÔI NHÀ THÔNG MINH” để đáp ứng phần nào trong cuộc sống

mọi người

Do thời gian nghiên cứu và thực hiện đề tài chỉ giới hạn trong một khoảng thời gian nhất định , vốn kiến thức và việc tìm hiểu sâu về một hệ thống còn hạn chế nên đề tài này cũng có nhiều thiếu sót đáng kết, mọng quý thầy cô và người đọc đóng góp ý kiến để đề tài được hoàn thiện hơn

2 Mục đích nghiên cứu của đề tài

Hệ thống điều khiển không dây trong ngôi nhà là một phần không thể thiếu trong các vấn đề về hệ thống ngày nay, với đề tài này sẽ giúp con người:

+ Điều khiển một cách độc lập

+ Điều khiển không dây từ hệ thông chính qua các hệ thống phụ

+ Góp phần đảm bảo an toàn cho ngôi nhà khi không có người bên trong

+ Giao diện thiết kế điều khiển dễ dàng trên điện thoại Smartphone

Với đề tài này giúp sinh viên có nhiều kiến thức về các thiết bị, tập thói quen nghiên cứu phục vụ công việc, có thể ứng dụng trong thực tế

Trang 14

3 Đối tượng và phạm vị nghiên cứu:

Hiện nay có nhiều phương pháp thiết kế hệ thống nhà thông minh khác nhau, trên nhiều nền khác nhau: như vi xử lý, vi điều khiển, smartphone, hay máy tính… Điều khiển kết nối vô tuyến hay hữu tuyến,

Cụ thể hơn đề tài này sử dụng vi điều khiển của hãng Almel Atmega328p, module kết nối không dây như NRF24L01+, các cảm biến, và Module Bluetooth HC-05 để giao tiếp với Smartphone

Phạm vi nghiên cứu: mô hình nhà thông minh cơ bản ở Việt Nam

4 Kết cấu của đề tài: đề tài này gồm 4 chương

Chương 1: Giới thiệu

Chương 2: Cớ sở lý thuyết

Chương 3: Thiết kế và thi công

Trang 15

PHẦN B: NỘI DUNG CHƯƠNG 1: GIỚI THIỆU

1.1 Giới thiệu

Hệ thống điện tử tự động cho nhà thông minh là hệ thống được điều khiển bởi một bộ

xử lý trung tâm với các bộ xử lý khác hay các ngoại vi được kết nối với nhau, thông qua các đường truyền vô tuyến hay hữu tuyến

Hinh 1.1.a: Mô hình nhà điều khiển không dây

Với hệ thống này sử dụng các bộ giao tiếp không dây RF, và điều khiển độc lập thông qua bộ xử lý trung tâm chính Với 2 chết độ điều khiển là tự động và tùy chỉnh cho người sử dụng chọn chế độ phù hợp dưới đây là sơ đồ về một hệ thống nhà thông minh không dây cơ bản nhưng đầy đủ các yếu tốt hình thành nhà thông minh

1.2 Nguyên lý hoạt động

Trang 16

Hình 1.1.b: Sơ đồ hệ thống mô hình

Ngôi nhà thông minh hoạt động dựa trên 2 chế dộ tùy chọn và tự động

Ở chế độ tùy chọn: người dùng sử dụng bộ điều khiển trên Smartphone với giao diện thiết kế phù hợp đễ sử dụng, được việt hóa phần nào đó trong giao diên, và trên Smartphone

kế nối với hệ thống thông qua Bluetooth ,

- Người dùng có thể biết được nhiệt độ trong phòng là bao nhiêu, hệ thống nào đang hoạt động, tình trạng thiết bị như thế nào, được hiển thị trên Smartphone

- Với chế độ này có thế điều khiển với thao tác cham tay trên Smartphone để điều khiển thiết bị

Ở chế độ tự động; người dùng chỉ cần bấm vào nút tự động thì hệ thống chính nhận được sẽ truyền tải thông tin về cho các bộ phận phù hợp khác trong hệ thống để điều khiển thiết bị,

Với chế độ này các thiết bị hoạt động thông minh xử lý linh hoạt hệ thống đèn, quạt, các loại cảm biến có trong phòng, tiết kiêm được năng lượng và hiệu năng hoạt động caoCòn 1 tùy chon trên giao diên Smartphone là hệ thống an ninh, với việc nhập password

để mở cửa và hệ thống cảm biến chuyển động vào ban đêm để cảnh báo có người đột nhập,

Trang 17

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Hệ thống xử lý trung tâm

2.1.1 Giới thiệu

Khối xử lý trung tâm có nhiệm vụ tổng hợp các dử liệu được gửi từ các khổi xử lý khác trong nhà và điều khiển thiết bị trong nhà qua sóng vô tuyền RF, và nhận dữ liệu điều khiển của người dùng qua Smartphone thông qua giao diện được thiết kế dàng riêng cho hệ thống, khối này được đặt ở phòng khách

Sơ đồ khối xử lý trung tâm

Hình 2.2: Sơ đồ khối xử lý trung tâm 2.1.2 Khối xử lý trung tâm

Để đáp ứng cho yêu cầu điều khiển trung tâm của mạch, ta cần sử dụng một vi điều khiển có đủ khả năng về cách thức lập trình, dung lượng bộ nhớ cũng như sự tương thích trong giao tiếp với PC, các Module ngoại vi và khả năng tích hợp cho hệ thống Họ vi điều khiển được sử dụng trong hệ thống là vi điều khiển AVR với dòng vi điều khiển Atmega328p là một MCU 8bit được lập trình bằng ngôn ngữ C hay được lập trình trên nền

Trang 18

Arduino, sử dụng phần mềm Arduino IDE để biên dịch các dòng mã dựa trên nền tảng của ngôn ngữ C, được phát triển bởi một nhóm các nhà nghiên cứu ở thị trấn Ivrea thuộc nước

Ý, Với ngôn ngữ lập trình trên Arduino IDE này có thể lập trình trên nhiều dòng chip thuộc AVR hay Pic và MSP430 đặc biệt hơn có thể là ngôn ngữ lập trình trên các dòng máy tính mini như Intel Galileo hay Raspberry Pi Đối với AVR,Pic hay MSP430 thì có thể dùng 1 số thư viện chung cho một số loại Module thông dụng do số chân trên các lạo chip này khác nhau, và cũng có thể sử dụng một số loại vi điều khiển thuộc dòng AVR nhưng không thuộc các loại vi điều khiển có sẵn trên board Arduino một ví dụ: đối với board Arduino Uno R3 thì sử dụng Atmega328P nhưng ta có thể gắn Atmega8 vào Arduino Uno nếu nạp sẵn Bootloader cho Atmega8, tương tự ta có thể nạp các dòng khác như Atmega32, Atmega168,

ta có thể sử dụng Arduino làm mạch nạp cho các lạo AVR khác, nói cách khác có thể hiểu Arduino có thể xem là mạch nạp, và được biên dịch trên Arduino IDE với dạng ngôn ngữ riêng trên nền tảng C dễ lập trình,các dòng Pic hay MSP430 thì cũng tương tự

Vi xử lý Atmega328p là loại MCU 8bit, có thể sử dụng trong các ứng dụng tương đối phức tạp, có các bộ nhớ Flash, ROM, RAM, các ngỏ ra vào digital hay analog, có khả năng xuất tín hieeun PWM (điều chỉnh độ rộng xung), hỗ trợ các chuẩn giao tiếp UART, I2C, one Wire,SPI, hình bên dưới là sơ đồ chân và các chức năng của chân trong Atmega328p

Hình 2.3: vi điều khiển Atmega328P

Trang 19

Hình 2.4: Sơ đồ chức năng của chân trên Atmega328P

Nguồn cấp chính cho Atmega328P là 5V

Các chân Analog, gồm các ngõ nhập analog 23, 24 28 Mỗi ngõ nhập analog có độ phân giải 10 bits (tương ứng 1024 giá trị), điện áp nhập từ 0–5v Nếu muốn thay đổi tầm nhập điện áp cần phải dùng pin AREF và hàm analog Reference Ngoài ra, các pin 27/28 cũng được nối trực tiếp với SDA/SCL hỗ trợ cơ chế truyền tin I2C Do đó, nếu SDA/SCL được sử dụng thì 27/28 sẽ không được dùng

Các chân Digital – PWM(#), gồm 14 pin vào/ra dạng tín hiệu số (digitalinput/output)

được ký hiệu từ số 2 – 6 và 9-19 Mỗi pin này đều có thể dùng để nhập hoặc xuất tín hiệu dạng số với mức điện áp là 0 hoặc 5 volts, dòng max qua mỗi pin là 40 mA Ngoài ra, một

số pin có thêm các chức năng đặc biệt sau :

• Serial– pin 2(RX) và pin 3(TX), đây là 2 pin dùng để truyền nối tiếp (serial)

• External Interrupts– pin 4, 5 thực hiện chức năng ngắt (interrupt) vi điều khiển khi

có tín hiệu từ bên ngoài kích vào một trong hai pin này

• PWM– pin 5, 11, 12, 15, 16, 17, đây là các pin với ký hiệu khác có thêm tính năng xuất ra tín hiệu PWM (điều chế độ rộng xung)

SPI– pin 16(SS), 17(MOSI), 18(MISO), 19(SCK), các pin này hỗ trợ truyền tin SPI

Trang 20

Thông số kỹ thuật:

- Thông tin về Arduino UNO:

Điện áp vào (khuyến cáo) 7-12V

Giới hạn điện áp vào 6-20V

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

Đây là chuẩn giao tiếp nối tiếp được dùng rất phổ biến trên các bo mạch Arduino Mỗi

bo có trang bị một số cổng Serial cứng (việc giao tiếp do phần cứng trong chip thực hiện) Bên cạnh đó, tất cả các cổng digital còn lại đều có thể thực hiện giao tiếp nối tiếp bằng phần mềm (có thư viện chuẩn, người dùng không cần phải viết code) Mức tín hiệu của các cổng này là TTL 5V Lưu ý cổng nối tiếp RS-232 trên các thiết bị hoặc PC có mức tín hiệu là UART 12V Để giao tiếp được giữa hai mức tín hiệu, cần phải có bộ chuyển mức, ví dụ như chip MAX232.Số lượng cổng Serial cứng của Atmega328 là 1 và của Atmega2560 là 4 Với tính năng giao tiếp nối tiếp, các bo Arduino có thể giao tiếp được với rất nhiều thiết bị như PC, touchscreen, các game console…

Trang 21

Thanh ghi ICR1:

* ICR1 (InputCapture Register 1) : khái niệm mới thứ 2 của T/C1 là Input Capture Khi có 1 sự kiện trên chân ICP1 (chân 14 trên Atmega8), thanh ghi ICR1sẽ “capture” giá trị của thanh ghi đếm TCNT1 Một ngắt có thể xảy ra trong trường hợp này, vì thế Input Capture có thể được dùng để cập nhật giá trị “TOP” của T/C1

Thanh ghi UDR:

* UDR: hay thanh ghi dữ liệu, là 1 thanh ghi 8 bit chứa giá trị nhận được và phát đi

của USART Thực chất thanh ghi này có thể coi như 2 thanh ghi TXB (Transmit data Buffer)

và RXB (Reveive data Buffer) có chung địa chỉ Đọc UDR thu được giá trị thanh ghi đệm dữ liệu nhận, viết giá trị vào UDR tương đương đặt giá trị vào thanh ghi đệm phát, chuẩn bị để gởi đi Chú ý trong các khung truyền sử dụng 5, 6 hoặc 7 bit dữ liệu, các bit cao của thanh ghi UDR sẽ không được sử dụng

Thanh ghi UCSRA:

* UCSRA (USART Control and Status Register A) : là 1 trong 3 thanh ghi điều khiển hoạt động của module USART

Thanh ghi UCSRA chủ yếu chứa các bit trạng thái như bit báo quá trình nhận kết thúc (RXC), truyền kết thúc (TXC), báo thanh ghi dữ liệu trống (UDRE), khung truyền có lỗi (FE), dữ liệu tràn (DOR), kiểm tra parity có lỗi (PE)…Bạn chú ý một số bit quan trọng của thanh ghi này:

* UDRE (USART Data Register Empty) khi bit bày bằng 1 nghĩa là thanh ghi dữ liệu UDR đang trống và sẵn sàng cho một nhiệm vụ truyền hay nhận tiếp theo Vì thế nếu bạn

Trang 22

muốn truyền dữ liệu đầu tiên bạn phải kiểm tra xem bit UDRE có bằng 1 hay không, sau khi chắc chắn rằng UDRE=1 hãy viết dữ liệu vào thanh ghi UDR để truyền đi.

* U2X là bit chỉ định gấp đôi tốc độ truyền, khi bit này được set lên 1, tốc độ truyền so cao gấp 2 lần so với khi bit này mang giá trị 0

* MPCM là bit chọn chế độ hoạt động đa xử lí (multi-processor)

Thanh ghi UCSRB:

* UCSRB (USART Control and Status Register B): đây là thanh ghi quan trọng điều khiển USART Vì thế chúng ta sẽ khảo sát chi tiết từng bit của thanh ghi này

* RXCIE (Receive Complete Interrupt Enable) là bit cho phép ngắt khi quá trình nhận kết thúc Việc nhận dữ liệu truyền bằng phương pháp nối tiếp không đồng bộ thường được thực hiện thông qua ngắt, vì thế bit này thường được set bằng 1 khi USART được dung nhận

* RXB8 (Receive Data Bit 8) gọi là bit dữ liệu 8 Bạn nhớ lại rằng USART trong AVR

có hỗ trợ truyền dữ liệu có độ dài tối đa 9 bit, trong khi thanh ghi dữ liệu là thanh ghi 8 bit

Do đó, khi có gói dữ liệu 9 bit được nhận, 8 bit đầu sẽ chứa trong thanh ghi UDR, cần có 1 bit khác đóng vai trò bit thứ chín, RXD8 là bit thứ chín này Bạn chú ý là các bit được đánh

số từ 0, vì thế bit thứ chín sẽ có chỉ số là 8, vì lẽ đó mà bit này có tên là RXD8 (không phải RXD9)

Trang 23

* TXB8 (Transmit Data Bit 8), tương tự như bit RXD8, bit TXB8 cũng đóng vai trò bit thứ 9 truyền thông, nhưng bit này được dung trong lúc truyền dữ liệu

Thanh ghi UCSRC:

* UCSRC (USART Control and Status Register C): thanh ghi này chủ yếu quy định khung truyền và chế độ truyền Tuy nhiên, có một rắc rối nho nhỏ là thanh ghi này lại có cùng địa chỉ với thanh ghi UBRRH (thanh ghi chứa byte cao dùng để xác lập tốc độ baud), nói một cách khác 2 thanh ghi này là 1 Vì thế bit 7 trong thanh ghi này, tức bit URSEL là bit chọn thanh ghi Khi URSEL=1, thanh ghi này được chip AVR hiểu là thanh ghi điều khiển UCSRC, nhưng nếu bit URSEL=0 thì thanh ghi UBRRH sẽ được sử dụng

Các bit còn lại trong thanh ghi UCSRC được mô tả như sau:

* UMSEL (USART Mode Select) là bit lựa chọn giữa 2 chế độ truyền thông đồng bộ

và không đồng bộ Nếu UMSEL=0, chế độ không đồng bộ được chọn, ngược lại nếu UMSEL=1, chế độ đồng bộ được kích hoạt

* Hai bit UPM1 và UPM0( Parity Mode) được dùng để quy định kiểm tra pariry Nếu UPM1:0=00, parity không được sử dụng (mode này khá thông dụng), UPM1:0=01 không được sử dụng, UPM1:0=10 thì parity chẵn được dùng, UPM1:0=11 parity lẻ được sử dụng (xem thêm bảng 1)

Bảng 2.1: Chọn kiểm tra parity.

* USBS (Stop bit Select), bit Stop trong khung truyền bằng AVR USART có thể là 1 hoặc 2 bit, nếu USBS=0 thì Stop bit chỉ là 1 bit trong khi USBS=1 sẽ có 2 Stop bit được dùng

* Hai bit UCSZ1 và UCSZ2 (Character Size) kết hợp với bit UCSZ2 trong thanh ghi UCSRB tạo thành 3 bit quy định độ dài dữ liệu truyền Bảng 2 tóm tắt các giá trị có thể có của tổ hợp 3 bit này và độ dài dữ liệu truyền tương ứng

Trang 24

Bảng 2.2: Độ dài dữ liệu truyền.

* UCPOL (Clock Pority) là bit chỉ cực của xung kích trong chế độ truyền thông đồng

bộ nếu UCPOL=0, dữ liệu sẽ thay đổi thay đổi ở cạnh lên của xung nhịp, nếu UCPOL=1,

dữ liệu thay đổi ở cạnh xuống xung nhịp Nếu bạn sử dụng chế độ truyền thông không đồng

bộ, hãy set bit này bằng 0

Thanh ghi UBRR:

* UBRRL và UBRRH (USART Baud Rate Register): 2 thanh ghi thấp và cao quy định tốc độ baud

Nhắc lại là thanh ghi UBRRH dùng chung địa chỉ thanh ghi UCSRC, bạn phải set bit này bằng 0 nếu muốn sử dụng thanh ghi UBRRH Như bạn quan sát trong hình trên, chỉ có 4 bit thấp của UBRRH được dùng, 4 bit này kết hợp với 8 bit trong thanh ghi UBRRL tạo thành thanh ghi 12 bit quy định tốc độ baud Chú ý là nếu bạn viết giá trị vào thanh ghi UBRRL, tốc độ baud sẽ tức thì được cập nhật, vì thế bạn phải viết giá trị vào thanh ghi UBRRH trước khi viết vào thanh ghi UBRRL

Giá trị gán cho thanh ghi UBRR không phải là tốc độ baud, nó chỉ được USART dùng

để tính tốc độ baud Bảng 3 hướng dẫn cách tính tốc độ baud dựa vào giá trị của thanh ghi UBRR và ngược lại, cách tính giá trị cần thiết gán cho thanh ghi UBRR khi đã biết tốc độ baud

Trang 25

Bảng 2.3: tính tốc độ baud.

Trong các công thức trong bảng 3, fOSC là tốc tần số xung nhịp của hệ thống (thạch anh hay nguồn xung nội…) Để tiện cho bạn theo dõi, tôi đính kèm bảng ví dụ cách đặt giá trị cho UBRR theo tốc độ baud mẫu

Bảng 2.4.a

Bảng 2.4.b

Trang 26

Bảng 2.4.c

Bảng 2.4.d Bảng 2.4.a, 2.4.b, 2.4.c, 2.4.d: Một số tốc độ baud mẫu.

Thanh ghi ADMUX:

ADMUX (ADC Multiplexer Selection Register): là 1 thanh ghi 8 bit điều khiển việc chọn điện áp tham chiếu, kênh và chế độ hoạt động của ADC Chức năng của từng bit trên thanh ghi này sẽ được trình bày cụ thể như sau:

Bit 7:6- REFS1:0 (Reference Selection Bits): là các bit chọn điện áp tham chiếu

Trang 27

VREF, điện áp tham chiếu nội 2.56V hoặc điện áp AVCC Bảng 2 tóm tắt giá trị các bit và điện áp tham chiếu tương ứng.

Bảng 2.5: tóm tắt giá trị các bit và điện áp tham chiếu tương ứng

Bit 5-ADLAR (ADC Left Adjust Result): là bit cho phép hiệu chỉnh trái kết quả chuyển đổi Sở dĩ có bit này là vì ADC trên AVR có độ phân giải 10 bit, nghĩa là kết quả thu được sau chuyển đổi là 1 số có độ dài 10 bit (tối đa 1023), AVR bố trí 2 thanh ghi data 8 bit

để chứa giá trị sau chuyển đổi Như thế giá trị chuyển đổi sẽ không lắp đầy 2 thanh ghi data, trong một số trường hợp người dùng muốn 10 bit kết quả nằm lệch về phía trái trong khi cũng có trường hợp người dùng muốn kết quả nằm về phía phải Bit ADLAR sẽ quyết định

vị trí của 10 bit kết quả trong 16 bit của 2 thanh ghi data Nếu ADLAR=0 kết quả sẽ được hiệu chỉnh về phía phải (thanh ghi ADCL chứa trọn 8 bit thấp và thanh ghi ADCH chứa 2 bit cao trong 10 bit kết quả), và nếu ADLAR=1 thì kết quả được hiệu chỉnh trái (thanh ghi ADCH chứa trọn 8 bit cao nhất, các bit từ 9 đến 2, và thanh ADCL chứa 2 bit thấp nhất trong 10 bit kết quả (bạn xem hình cách bố trí 2 thanh ghi ADCL và ADCH bên dưới để hiểu

Trang 28

Bảng 2.6: Bảng tóm tắt các chế độ hoạt động của ADC Thanh ghi ADCSRA:

ADCSRA (ADC Control and Status RegisterA): là thanh ghi chính điều khiển hoạt động

và chứa trạng thái của module ADC

Từng bit của thanh ghi ADCSRA được mô tả như bên dưới:

Bit 7 - ADEN(ADC Enable): viết giá trị 1 vào bit này tức bạn đã cho phép module ADC được sử dụng Tuy nhiên khi ADEN=1 không có nghĩa là ADC đã hoạt động ngay, bạn cần set một bit khác lên 1 để bắt đầu quá trình chuyển đổi, đó là bit ADSC

Bit 6 - ADSC(ADC Start Conversion): set bit này lên 1 là bắt đầu khởi động quá trình chuyển đổi Trong suốt quá trình chuyển đổi, bit ADSC sẽ được giữ nguyên giá trị 1, khi quá trình chuyển đổi kết thúc (tự động), bit này sẽ được trả về 0 Vì vậy bạn không cần

và cũng không nên viết giá trị 0 vào bit này ở bất kỳ tình huống nào Để thực hiện một chuyển đổi, thông thường chúng ta sẽ set bit ADEN=1 trước và sau đó set ADSC=1

Trang 29

Bit 4 – ADIF(ADC Interrupt Flag): cờ báo ngắt Khi một chuyển đổi kết thúc, bit này tự động được set lên 1, vì thế người dùng cần kiểm tra giá trị bit này trước khi thực hiện đọc giá trị chuyển đổi để đảm bảo quá trình chuyển đổi đã thực sự hoàn tất.

Bit 3 – ADIE(ADC Interrupt Enable): bit cho phép ngắt, nếu bit này được set bằng

1 và bit cho phép ngắt toàn cục (bit I trong thanh ghi trạng thái của chip) được set, một ngắt

sẽ xảy ra khi một quá trình chuyển đổi ADC kết thúc và các giá trị chuyển đổi đã được cập nhật (các giá trị chuyển đổi chứa trong 2 thanh ghi ADCL và ADCH)

Bit 2:0 – ADPS2:0(ADC Prescaler Select Bits): các bit chọn hệ số chia xung nhịp cho ADC ADC, cũng như tất cả các module khác trên AVR, cần được giữ nhịp bằng một nguồn xung clock Xung nhịp này được lấy từ nguồn xung chính của chip thông qua một hệ

số chia Các bit ADPS cho phép người dùng chọn hệ số chia từ nguồn clock chính đến ADC Tham khảo bảng 2.6 để biết cách chọn hệ số chia

Bảng 2.7: cách chọn hệ số chia Thanh ghi ADC:

ADCL và ADCH (ADC Data Register): 2 thanh ghi chứa giá trị của quá trình chuyển đổi Do module ADC trên AVR có độ phân giải tối đa 10 bits nên cần 2 thanh ghi để chứa giá trị chuyển đổi Tuy nhiên tổng số bít của 2 thanh ghi 8 bit là 16, con số này nhiều hơn 10 bit của kết quả chuyển đổi, vì thế chúng ta được phép chọn cách ghi 10 bit kết quả vào 2 thanh ghi này Bit ADLAR trong thanh ghi ADMUX quy định cách mà kết quả được ghi vào

Trang 30

Thông thường, 2 thanh ghi data được sắp xếp theo định dạng ADLAR=0, ADCL chứa 8 bit thấp và 2 bit thấp của ADCH chứa 2 bit cao nhất của giá trị thu được Chú ý thứ tự đọc giá trị từ 2 thanh ghi này, để tránh đọc sai kết quả, bạn cần đọc thanh ghi ADCL trước và ADCH sau, vì sau khi ADCH được đọc, các thanh ghi data có thể được cập nhật giá trị tiếp theo.

2.1.3 Khối giao tiếp Smartphone

2.1.3.a Giới thiệu

Khối gửi và nhận dữ liệu, tín hiệu từ Smartphone thông qua giao tiếp nối tiếp UART với Bluetooth HC-05, đây là Module Khi thao tác trên phần mềm được cài đặt trên Smartphone (cụ thể là trên hệ điều hành Android vì là hệ điều hành mã nguồn mở nên việc giao tiếp dễ dàng cho các ứng dụng giao tiếp từ xa)

2.1.3.b Khảo sát Module HC-05

HC-05 là một Module hỗ trợ việc kết nối không dây qua Bluetooth, có hai chế độ làm việc là tự động kết nối và tùy chỉnh kết nối thông qua chuẩn nối tiếp UART với tập lênh AT nhằm thiết lập kết nối cho HC-05, Module HC-05 hoạt động với ba vai trò Master, Slave, Lookpack tự thiết lập như chế độ làm việc tự động HC-05 khi làm việc ở chế độ tự động nó

sẽ theo thiết lập cuối cùng trên Module truyền dữ liệu tự động không phải thiết lập trở lại, Khi sử dụng chế độ tùy chỉnh thì Module sẽ được thiết lập dựa trên các tập lênh AT để cài đăt cấu hình thiết lập thông số cho thiết bị thông qua máy tính hoặc trên vi điều khiển bằng giao thức UART, chết độ làm việc có thể thay đổi bởi việc thiết lập cho chân PIO11 trên Module HC-05

Trang 31

Hình 2.5: Module HC-05

HC-05

Có thể kết nối VCC

khiển

trong chuẩn UART

Nối với chân RXD

trong chuẩn UART

Nối với chân TXD

Bảng 2.8: Bảng mô tả chân ra và kết nối vi điều khiển

Thông số kỹ thuật Module HC-05:

- Độ nhạy có thể đạt đến -80dBm

- Phạm vi thay đổi công suất truyền +4dBm

- Tần số truyền 2.4Ghz và được tích hợp anten 2.4Ghz bên trong Module HC-05 không cần sử dụng anten

- Làm việc ở mức điện áp thấp 3.1V – 4.2V

- 8Mbit Flash ngoài

- HC-05 là Bluetooth ở lớp thứ 2 cho phép thiết bị hoạt động ở phạm vi bình thường

Trang 32

- Hiệu suất cao trong truyền dữ liệu không dây

- Tốc độ Baud: 9600,19200,38400,57600,115200,230400,460800

Module HC-05 xử dụng IC bluetooth CSR BC417143 là dòng chip BlueCore Extenal dòng chip hỗ trợ 2 chuẩn kết nối là UART và SPI

4-Hình 2.6: Sơ đồ nguyên lý Module HC-05

Truyền thông nối tiếp UART

UART là thuật ngữ viết tắt từ Universal Asynchronous serial Reveiver and Transmitter nghĩa là bộ truyền nhận nối tiếp không đồng bộ, có thể sử dụng trong việc giao tiếp giữa các

vi điều khiển, vi điều khiển với thiết bị ngoại vi, vi điều khiển với máy tính…

Truyền nhận này có ưu điểm tiết kiệm được số lượng đường truyền so với kiểu giao tiếp song song, nhưng tốc độ truyền k nhanh như giao tiếp song song

Hình 2.7: truyền nhận dữ liệu theo phương pháp song song và nối tiếp

Trang 33

Hình 2.8: Tín hiệu trong truyền thông nối tiếp

Việc truyền dữ liệu này cần phải thống nhất theo thời gian để truyền 1 bit dữ liệu giữa hai thiết bị kết nối với nhau được gọi là tốc độ Baud, đây là tốc độ mà số bit dữ liệu được truyền trong 1 giây

Trong truyền thông nối tiếp rất hay xảy ra tình trạng sai lệch dữ liệu để tránh tình trạng này thì ngoài tốc độ Baud thì cần phải có khung truyền tức là mỗi lần truyền thì được quy định số bit trong mỗi lần truyền đó nói cách khách như là nơi chứa dữ liệu truyền là được định bởi Start bit và Stop bit bên trong là gói dữ liệu

Đối với Start bit là bit đầu tiên trong khung truyền và báo cho thiết bị biết là có một gói

dữ liệu sắp được truyền lên vi điều khiển

Trong khung truyền chứa dữ liệu được nhận biết bởi Start bit và Stop bit, bit có ảnh hưởng nhỏ nhất của data sẽ được truyền trước và bit có ảnh hưởng lớn nhất của data sẽ được truyền sau

Stop bit là bit dữ liệu báo rằng đã gửi xong một gói dữ liệu

Việc giao tiếp giữa thiết bị cụ thể là Module Bluetooth HC-05 với vi điều khiển theo kiểu kết nối này, khi dữ liệu nhận được từ Smartphone dữ liệu nhận được nhờ bộ thu phát sóng trong Module Bluetooth HC-05 truyền tới vi diêu khiển, cứ mỗi gói tin sẽ là một khung

dữ liệu và được phân chia để vi điều khiển xử lý

2.1.3.c Phần mềm trên Smartphone

Phần mềm sử dụng trên Smartphone giao tiếp với vi điều khiển quan Bluetooth được lập trình dựa trên phần mêm MIT App Inventor, đây là phần mềm với giao diện, thiết kế, kết nối đơn giản, giúp việc lập trình một phần mềm trên hệ điều hành Android một cách dễ dàng, tuy có nhiều hạn chế nhưng nó cũng đủ làm mọi việc với vi điều khiển, cũng như một

số phần mềm có tính ứng dụng cao hay phức tạp

Trang 34

Phần mềm này là lập trình dựa trên cấu trúc các khối được kết nối với nhau thay vì viết một dạng ngôn ngữ lập trình để tạo ra phần mềm đó,

Chương trình này chúng ta thao tác cơ bản trên Website: http://appinventor.mit.edu/,

Hình 2.9: Giao diện Website MIT App Inventor

Ở phần mềm này cho chúng ta tương tác giao diện mà chúng ta thiết kế trên điện thoại thông qua kết nối Wifi,

Trang 35

Hình 2.10: Giao diện thiết kế MIT App Inventor

Các chức năng chính của giao diện

Giao diện của phần Designer:

- User Interface: hiện các chức năng thiết kế giao diện cho phân mềm bao gồm các button, check box, text, label…

- Layout: làm các lớp để đặt các thành phần thiết kế lên chương trình

- Media: Hỗ trợ các định dạng tập tin nghe nhạc, xem phim được gắn trong phần mềm

- Drawing and Animation: tạo các ảnh động các hiệu ứng từ hình ảnh

- Sensors: các thành phần được nhúng vào phần mềm,

- Social: thiết lập các ứng dụng mạng xã hội, gọ điệ thoại, danh bạ…

- Storage: tạo nơi lưu trữ cho chương trình

- Connectivity: Thiết lập các kết nối qua Bluetooth hay WebServer

Trang 36

Giao diện Blocks:

Các khối blocks, tạo các khối liên kết với nhau nhằm thực hiện các chức năng mà người thiết ké mong muốn,ví dụ: muốn nhấn một nút trên phần mềm để thực hiện được chức năng thì ta sẽ tạo một button và đặt tên cho nó, vào phần Blocks nhấn vào tên button đã tạo

và xây dựng chức năng cửa button đó

Hình 2.11: Giao diện Blocks

Các mục chức năng:Control, Logic, Math, Text, Lists, Colors, Variables, Procedures, là các thành phần tạo các chức năng cho phần thiết kế Ví dụ muốn có hàm If như các công cụ lập trình khác thì ta lấy các block if trong Control cho phù hợp, nhưng phải gắn cho khớp các block lại với nhau

Trang 37

2.1.3.d Khối thời gian thực

Khảo sát IC thời gian thực DS1307

Hình 2.12: IC DS1307

IC DS1307 là IC thời gian thực (RTC: Real-time clock) là một sản phẩm của Dallas Semiconductor (một công ty thuộc Maxim Integrated Products) Chip này có 7 thanh ghi 8-bit chứa thời gian là: giây, phút, giờ, thứ (trong tuần), ngày, tháng, năm Ngoài ra DS1307 còn có 1 thanh ghi điều khiển ngõ ra phụ và 56 thanh ghi trống có thể dùng như RAM DS1307 được đọc và ghi thông qua giao diện nối tiếp I2C (TWI của AVR)

Các chân của DS1307 được mô tả như sau:

- X1 và X2: là 2 ngõ kết nối với 1 thạch anh 32.768KHz làm nguồn tạo dao động cho

chip

- VBAT: cực dương của một nguồn pin 3V nuôi chip

- GND: chân mass chung cho cả pin 3V và Vcc

- Vcc: nguồn cho giao diện I2C, thường là 5V và dùng chung với vi điều khiển Chú ý

là nếu Vcc không được cấp nguồn nhưng VBAT được cấp thì DS1307 vẫn đang hoạt động (nhưng không ghi và đọc được)

- SQW/OUT: một ngõ phụ tạo xung vuông (Square Wave / Output Driver), tần số của xung được tạo có thể được lập trình Như vậy chân này hầu như không liên quan đến chức năng của DS1307 là đồng hồ thời gian thực, chúng ta sẽ bỏ trống chân này khi nối mạch

- SCL và SDA là 2 đường giao xung nhịp và dữ liệu của giao diện I2C

Bộ nhớ DS1307 có tất cả 64 thanh ghi 8-bit được đánh địa chỉ từ 0 đến 63 (từ 0x00 đến 0x3F theo hệ hexadecimal) Tuy nhiên, thực chất chỉ có 8 thanh ghi đầu là dùng cho chức năng “đồng hồ” (tôi sẽ gọi là RTC) còn lại 56 thanh ghi bỏ trông có thể được dùng chứa biến

Trang 38

tạm như RAM nếu muốn Bảy thanh ghi đầu tiên chứa thông tin về thời gian của đồng hồ bao gồm: giây (SECONDS), phút (MINUETS), giờ (HOURS), thứ (DAY), ngày (DATE), tháng (MONTH) và năm (YEAR) Việc ghi giá trị vào 7 thanh ghi này tương đương với việc

“cài đặt” thời gian khởi động cho RTC Việc đọc giá từ 7 thanh ghi là đọc thời gian thực mà chip tạo ra

Thanh ghi giây (SECONDS): thanh ghi này là thanh ghi đầu tiên trong bộ nhớ của

DS1307, địa chỉ của nó là 0x00 Bốn bit thấp của thanh ghi này chứa mã BCD 4-bit của chữ

số hàng đơn vị của giá trị giây Do giá trị cao nhất của chữ số hàng chục là 5 (không có giây

60 !) nên chỉ cần 3 bit (các bit SECONDS6:4) là có thể mã hóa được (số 5 =101, 3 bit) Bit cao nhất, bit 7, trong thanh ghi này là 1 điều khiển có tên CH (Clock halt – treo đồng hồ), nếu bit này được set bằng 1 bộ dao động trong chip bị vô hiệu hóa, đồng hồ không hoạt động Vì vậy, nhất thiết phải reset bit này xuống 0 ngay từ đầu

Thanh ghi phút (MINUTES): có địa chỉ 0x01, chứa giá trị phút của đồng hồ Tương tự

thanh ghi SECONDS, chỉ có 7 bit của thanh ghi này được dùng lưu mã BCD của phút, bit 7 luôn luôn bằng 0

Thanh ghi giờ (HOURS): có thể nói đây là thanh ghi phức tạp nhất trong DS1307

Thanh ghi này có địa chỉ 0x02 Trước hết 4-bits thấp của thanh ghi này được dùng cho chữ

số hàng đơn vị của giờ Do DS1307 hỗ trợ 2 loại hệ thống hiển thị giờ (gọi là mode) là 12h (1h đến 12h) và 24h (1h đến 24h) giờ, bit6 (màu green trong hình 4) xác lập hệ thống giờ Nếu bit6=0 thì hệ thống 24h được chọn, khi đó 2 bit cao 5 và 4 dùng mã hóa chữ số hàng chục của giá trị giờ Do giá trị lớn nhất của chữ số hàng chục trong trường hợp này là 2 (=10, nhị phân) nên 2 bit 5 và 4 là đủ để mã hóa Nếu bit6=1 thì hệ thống 12h được chọn, với trường hợp này chỉ có bit 4 dùng mã hóa chữ số hàng chục của giờ, bit 5 (màu orangetrong hình 4) chỉ buổi trong ngày, AM hoặc PM Bit5 =0 là AM và bit5=1 là

PM Bit 7 luôn bằng 0 (thiết kế này hơi dở, nếu dời hẳn 2 bit mode và A-P sang 2 bit 7 và 6 thì sẽ đơn giản hơn)

Thanh ghi thứ (DAY – ngày trong tuần): nằm ở địa chĩ 0x03 Thanh ghi DAY chỉ mang giá trị từ 1 đến 7 tương ứng từ Chủ nhật đến thứ 7 trong 1 tuần Vì thế, chỉ có 3 bit thấp trong thanh ghi này có nghĩa

Các thanh ghi còn lại có cấu trúc tương tự, DATE chứa ngày trong tháng (1 đến 31), MONTH chứa tháng (1 đến 12) và YEAR chứa năm (00 đến 99) Chú ý, DS1307 chỉ dùng cho 100 năm, nên giá trị năm chỉ có 2 chữ số, phần đầu của năm do người dùng tự thêm vào (ví dụ 20xx)

Ngoài các thanh ghi trong bộ nhớ, DS1307 còn có một thanh ghi khác nằm riêng gọi

Ngày đăng: 12/11/2015, 20:15

HÌNH ẢNH LIÊN QUAN

Hình 2.4: Sơ đồ chức năng của chân trên Atmega328P - đồ án tốt nghiêp thiết kế ngôi nhà thông minh
Hình 2.4 Sơ đồ chức năng của chân trên Atmega328P (Trang 19)
Bảng 2.6: Bảng tóm tắt các chế độ hoạt động của ADC Thanh ghi ADCSRA: - đồ án tốt nghiêp thiết kế ngôi nhà thông minh
Bảng 2.6 Bảng tóm tắt các chế độ hoạt động của ADC Thanh ghi ADCSRA: (Trang 28)
Hình 2.7: truyền nhận dữ liệu theo phương pháp song song và nối tiếp - đồ án tốt nghiêp thiết kế ngôi nhà thông minh
Hình 2.7 truyền nhận dữ liệu theo phương pháp song song và nối tiếp (Trang 32)
Hình 2.9: Giao diện Website MIT App Inventor - đồ án tốt nghiêp thiết kế ngôi nhà thông minh
Hình 2.9 Giao diện Website MIT App Inventor (Trang 34)
Hình 2.10: Giao diện thiết kế MIT App Inventor - đồ án tốt nghiêp thiết kế ngôi nhà thông minh
Hình 2.10 Giao diện thiết kế MIT App Inventor (Trang 35)
Hình 2.14: Sơ đồ nguyên lý NRF24L01 - đồ án tốt nghiêp thiết kế ngôi nhà thông minh
Hình 2.14 Sơ đồ nguyên lý NRF24L01 (Trang 40)
Hình 2.18: Sơ đồ nguyên lý của cảm biến ánh sáng cơ bản - đồ án tốt nghiêp thiết kế ngôi nhà thông minh
Hình 2.18 Sơ đồ nguyên lý của cảm biến ánh sáng cơ bản (Trang 46)
Hình 2.19: Cấu tạo cảm biến chuyển động - đồ án tốt nghiêp thiết kế ngôi nhà thông minh
Hình 2.19 Cấu tạo cảm biến chuyển động (Trang 47)
Hình 3.2: Mạch lớp BOTTOM - đồ án tốt nghiêp thiết kế ngôi nhà thông minh
Hình 3.2 Mạch lớp BOTTOM (Trang 56)
Hình 3.4: Lớp BOTTOM - đồ án tốt nghiêp thiết kế ngôi nhà thông minh
Hình 3.4 Lớp BOTTOM (Trang 58)
Hình 3.5: Tạo giao diện trên MIT App Inventor - đồ án tốt nghiêp thiết kế ngôi nhà thông minh
Hình 3.5 Tạo giao diện trên MIT App Inventor (Trang 59)
Hình 3.6: Mạch điều khiển khu vực 3.4.3 Mô hình nhà thông minh - đồ án tốt nghiêp thiết kế ngôi nhà thông minh
Hình 3.6 Mạch điều khiển khu vực 3.4.3 Mô hình nhà thông minh (Trang 63)
Hình 4.1: Giao diện Arduino IDE - đồ án tốt nghiêp thiết kế ngôi nhà thông minh
Hình 4.1 Giao diện Arduino IDE (Trang 64)
Hình 4.2 kết nối IC thời gian thực với Arduino - đồ án tốt nghiêp thiết kế ngôi nhà thông minh
Hình 4.2 kết nối IC thời gian thực với Arduino (Trang 65)
Hình 4.5: Kết nối giữa Ethernet Shield W5100 với Arduino Uno - đồ án tốt nghiêp thiết kế ngôi nhà thông minh
Hình 4.5 Kết nối giữa Ethernet Shield W5100 với Arduino Uno (Trang 69)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w