2.3.7 Giới thiệu kit Arduino UNO R3
Arduino Uno R3 la dòng sản phẩm thế hệ thứ 3. Arduino UNO có thể sử dụng 3 vi điều khiển họ 8 bit AVR là ATmega8, ATmega168, ATmega328. Bộ não này có thể xử lí những tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đo nhiệt độ, độ ẩm và hiển thị lên màn hình LCD…
Hình 2.17: Arduno UNO R3
Thơng số kỹ thuật:
Bảng 2.8: Thông số kỹ thuật Arduino Uno R3
Vi điều khiển Atmega328 họ 8 bit
Điện áp hoạt động 5V DC chỉ được cấp qua cổng USB Tần số hoạt động 16MHz
Dòng tiêu thụ Khoảng 30mA Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC
Số chân Digital I/O 14 (6 chân hardware PWM) Số chân Analog 6 (độ phân giải 10 bit) Dòng tối đa trên mỗi chân 30mA
Dòng ra tối da (5V) 500mA Dòng ra tối da (3.3V) 50mA
Bộ nhơ flash 32 KB (ATmega328) với 0.5KB dùng bởi bootloader
EEPROM 1 KB (Atmega328)
Đặc điểm một số chân digital:
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.
Arduino Uno R3: có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10 bit (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.8 Module Ethernert ENC28J60
Module Ethernert ENC28J60 là module hỗ trợ giao tiếp mạng Ethernet ở lớp vật lý tương ứng trong mơ hình OSI (mơ hình 7 lớp). Nó hỗ trợ tuyền song cơng trên kênh truyền có băng thơng từ 10-20Mbps. Đồng thời nhằm tránh xung đột trên kênh truyền, ENC28J60 làm việc với chế độ CSMA/CD để phát hiện và tối thiểu hóa xung đột. ENC28J60 được giao tiếp với các thiết bị khác theo chuẩn SPI.
Thông số kỹ thuật:
o Sử dụng chip ENC 28J60 Ethernet kiểu sop28 chân. o Chuẩn giao tiếp SPI.
o Sử dụng điện áp 3.3 V. o Tần số hoạt động 25 MHz. o Đầu nối RJ45 HR911105A
Hình 2.18: Sơ đồ chân của ENC28J60
Giao thức truyền tin TCP/IP
Giao thức TCP (Transmission Control Protocol - "Giao thức điều khiển truyền vận") là một trong các giao thức cốt lõi của bộ giao thức TCP/IP. Sử dụng TCP, các ứng dụng trên các máy chủ được nối mạng có thể tạo các "kết nối" với nhau, mà qua đó chúng có thể trao đổi dữ liệu hoặc các gói tin. Giao thức này đảm bảo chuyển giao dữ liệu tới nơi nhận một cách đáng tin cậy và đúng thứ tự. TCP còn phân biệt giữa dữ liệu của nhiều ứng dụng (chẳng hạn, dịch vụ Web và dịch vụ thư điện tử) đồng thời chạy trên cùng một máy chủ.
Cấu trúc gói tin TCP:
Source Por (16 bits): Số hiệu cổng TCP của trạm nguồn.
Data offset (4 bit): số lượng bội của 32 bit (32 bit words) trong TCP header (tham số này chỉ ra vị trí bắt đầu của nguồn dữ liệu).
Acknowledgment Number (32 bit): số hiệu của segment tiếp theo mà trạm nguồn đang chờ để nhận. Ngầm ý báo nhận tốt (các) segment mà trạm đích đã gửi cho trạm nguồn.
Sequence Number (32 bit): số hiệu của byte đầu tiên của segment trừ khi bit SYN được thiết lập. Nếy bit SYN được thiết lập thì Sequence Number là số hiệu tuần tự khởi đầu (ISN) và byte dữ liệu đầu tiên là ISN+1.
Destination Port (16 bit): Số hiệu cổng TCP của trạm đích
Reserved (6 bit): dành để dùng trong tương lai
Control bit (các bit điều khiển):
URG: Vùng con trỏ khẩn (Ucgent Poiter) có hiệu lực.
ACK: Vùng báo nhận (ACK number) có hiệu lực.
PSH: Chức năng PUSH.
RST: Khởi động lại (reset) liên kết.
SYN: Đồng bộ hóa số hiệu tuần tự (sequence number).
FIN: Khơng cịn dữ liệu từ trạm nguồn.
Window (16 bit): cấp phát credit để kiểm soát nguồn dữ liệu (cơ chế cửa sổ). Đây chính là số lượng các byte dữ liệu, bắt đầu từ byte được chỉ ra trong vùng ACK number, mà trạm nguồn đã saün sàng để nhận.
Checksum (16 bit): mã kiểm sốt lỗi cho tồn bộ segment (header + data)
Urgemt Poiter (16 bit): con trỏ này trỏ tới số hiệu tuần tự của byte đi theo sau dữ liệu khẩn. Vùng này chỉ có hiệu lực khi bit URG được thiết lập.
Options (độ dài thay đổi): khai báo các option của TCP, trong đó có độ dài tối đa của vùng TCP data trong một segment.
Paddinh (độ dài thay đổi): phần chèn thêm vào header để đảm bảo phần header luôn kết thúc ở một mốc 32 bit. Phần thêm này gồm toàn số 0.
TCP data (độ dài thay đổi): chứa dữ liệu của tầng trên, có độ dài tối đa ngầm định là 536 byte. Giá trị này có thể điều chỉnh bằng cách khai báo trong vùng options.
Chương 3. TÍNH TỐN VÀ THIẾT KẾ 3.1 GIỚI THIỆU
Với đề tài “NGHIÊN CỨU VÀ PHÁT TRIỂN HỆ THỐNG NHÀ THÔNG MINH” chúng em có các yêu cầu như sau:
o Hệ thống tự động mở của nếu nhập đúng vân tay
o Điều khiển được 10 thiết bị qua màn hình kit, qua điện thoại thơng qua bluetooth và qua web.
o Giám sát được nhiệt độ độ ẩm của căn phòng, và tự động báo nếu nhiệt độ cao quá giới hạn, điều khiển phát nhạc.
Với những yêu cầu như thế thì chúng em sẽ thiết kế sơ đồ khối cho hệ thống và tính tốn khối nguồn và khối cơng suất và lựa trọn thiết bị cho phù hợp.
3.2 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG
3.2.1 Thiết kế sơ đồ khối hệ thống
Với các yêu cầu của đề tài thì nhóm chúng em thiết kế sơ đồ khối như sau:
Khối xử lý trung
tâm
Khối hiển thị
Khối đo nhiệt độ, độ ẩm
Khối nguồn Khối nhận và gửi dữ liệu qua BLUETOOTH
Khối điều khiển thiết bị qua
internet
Khối công suất Khối nhận dạng
vân tay điều khiển cửa
Khối máy nghe nhạc
Thiết bị
1. Khối nguồn
2. Khối xử lý trung tâm
3. Khối gửi và nhận dữ liệu qua Bluetooth 4. Khối hiển thị
5. Khối nhận dạng vân tay điều khiển 6. Khối đo nhiệt độ độ ẩm
7. Khối điều khiển thiết bị qua internet 8. Khối máy nghe nhạc
9. Khối công xuất 10. Các thiết bị ngoại vi
Chức năng từng khối:
Khối nguồn: cung cấp nguồn cho các khối cần thiết trong mạch.
Khối xử lý trung tâm: đóng vai trị trung tâm trong việc xử lý và điều khiển các khối. Nhận dữ liệu và gửi trả dữ liệu, điều khiển các khối.
Khối gửi nhận dữ liệu qua bluetooth: có chức năng gửi và nhận dữ liệu thông qua bluetooth tới vi điều khiển.
Khối hiển thị: nhận dữ liệu từ vi điều khiển và hiển thị.
Khối nhận dang vân tay: nhận vân tay của người dùng và so sánh. Nếu đúng thì gửi lệnh cho vi điều khiển cho mở của.
Khối đo nhiệt độ độ ẩm: đo nhiệt độ độ ẩm của căn phòng sau đó gửi đến vi điều khiển, xử lí và hiển thị. Nếu nhiệt độ qua giới hạn cho phép thì báo cho người dùng biết.
Khối điều khiển thiết bị qua internet: gửi nhận dữ liệu thông qua internet đến vi xử lý để điều khiển thiết bị.
Khối máy nghe nhac: có chức năng phát nhạc
Khối cơng suất: khối này có nhiệm vụ khuếch đại điện áp để kích cho relay. Khối cơng suất với dịng thấp, đáp ứng tải tiêu tụ công suất dân dụng như bóng đèn.
Các thiết bị ngoại vi: các thiết bị mà người dùng cần điều khiển.
3.2.2 Tính tốn và thiết kế mạch
Cảm biến nhiệt độ, độ ẩm DHT11:
Để đo nhiệt độ độ ẩm của phịng thì nhóm chúng em chọn cảm biến DHT11. Cảm biến này có sử dụng nguồn 5V DC và dòng là 2.5mA.
Cảm biến vân tay R305:
Để đảm bảo an ninh cho ngôi nhà chúng em đã sử dụng cảm biến vân tay R305 để bảo mật cho cửa ra vào. Cảm biến này sử dụng nguồn 5V DC và điện áp hoạt động trong khoảng 100-150mA.
Cảm biến hồng ngoại:
Để giám sát việc có người lại gần của hay khơng chúng em sử dụng cảm biến hồng nhoại. Cảm biến này sử dụng nguồn 5V DC và nguồn
b. Khối nhận và gửi dữ liệu qua Bluetooth
Để nhận và gửi dữ liệu qua bluetooth nhóm chúng em sử dụng Module bluetooth HC05. Module này sử dụng điên áp 3.3V DC và dòng điện là 30mA.
c. Khối hiển thị
Để hiển thì và điều khiển thì chúng em sử dụng màn hình TFT LCD. Màn hình này giao tiếp theo chuẩn SPI và sử dụng nguồn 2.7-5V DC. Trong đề tài thi nhóm em sử dụng nguồn 3.3V DC và dòng điện hoạt động trong khoảng 70-120mA.
d. Khối xử lý trung tâm
Để xử lý một khối lượng công việc lơn thì cần phải sử dụng một vi điều khiển manh. Vì thế nhóm em chon vi điều khiển AMR STM32F103VET6. Đây là một vi điều khiển mạnh, phù hợp với yêu cầu của để tài. Vi điều khiển này hoạt động ở nguồn 3.3V DC và dòng là 150mA.
e. Khối công suất
Khối công suất dùng để điều khiển các thiết bị ngoại vi. Mà cụ thể trong đề tài này là led đơn và quạt. Sử dụng transistor C1815 để kích cho led và Tip 122 để kích cho quạt.
Led sử dụng nguồn 3.3V DC và dòng 350mA Quạt sử dụng nguồn 12V DC vad dòng 150mA
f. Khối internet
Để điều khiển thiết bị qua internet nhóm chúng em sử dụng IC ENC28J60 và cổng giao tiếp có mạch lọc RJ45 (J4) dùng chuẩn giao tiếp SPI1 của vi điều khiển ARM32F103 được tích hợp sẵn trên kit ARM STM32F103VET6. IC này hoạt động ở nguồn 3.3V DC.
g. Khối máy nghe nhạc
Kit có thiết kế chip giải mã MP3 là VS1003 dùng để giải mã âm thanh cho các chuẩn định dạng nhạc WMA, WAV, MIDI, P-MIDI, thu nhạc định dạng IMA ADPCM (âm thanh mono). Có các đường tín hiệu Microphone, hỗ trợ bộ chuyển đổi DAC cho MP3 và WAV dạng stereo chất lượng cao. Có bộ điều khiển tai nghe âm thanh stereo (30Ω) giao tiếp chuẩn SPI. Giao tiếp điều khiển MP3 dùng SPI2. Chip này sử dụng nguồn 5V DC.
h. Khối nguồn
Với những yêu cầu trên nhóm em quyết định sử dụng nguồn tổ ong chuyển đổi điện áp 220V thành 12V-10A cung cấp cho quạt. Sau đó cho nguồn 12V qua Module LM2596 để giảm áp xuống 5V-3A để cấp nguồn cho các linh kiện trong mạch. Đối với các linh kiện sử dụng điện áp 3.3V thì chúng nhóm chúng em sử dụng nguồn do kit STM32F103VET6 cấp.
3.2.3 Sơ đồ ngun lý của tồn mạch
Hình 3.4: Sơ đồ nguyên lý khối ngoại vi, reset báo nguồn, khối dao động và
Hình 3.5: Sơ đồ nguyên lý vi điều khiển ARM giao tiếp màn hình TFT
Chương 4. THI CÔNG HỆ THỐNG
4.1 THI CÔNG HỆ THỐNG
4.1.1 Thi công bo mạch.
Bảng 4.1. Danh sách các linh kiện.
4.1.2 Lắp ráp và kiểm tra
a. Lắp ráp
STT Tên linh kiện Số lượng
1 Kit ARM
STM32F103VET6
1
2 Kit Arduino Uno R3
1
3 Cảm biến vân tay R305 1 4 Cảm biến nhiệt độ, độ ẩm DHT11 1 5 Cảm biến hồng ngoại 1 6 Module Bluetooth HC05 1 7 Module giảm áp LM2596 1 8 TIP 122 3 9 Transistror C1815 5 10 Quạt 3 11 led 5 12 Các loại trở
Do khơng có thi cơng mạch PCB và dùng kít STM32F103VET6 để điều khiển các module. Vì thế chúng em sẽ lắp các module thiết bị cần điều khiển với kit.
b. Kiểm tra
4.2 ĐÓNG GÓI VÀ THI CƠNG MƠ HÌNH 4.2.1 Đóng gói bộ điều khiển 4.2.1 Đóng gói bộ điều khiển
Hình 4.3: Hình ảnh màn hình điều khiển và cảm biến vân tay đã được đóng gói 4.2.2 Thi cơng mơ hình
Hình 4.4: Mơ hình ngơi nhà
Đây là hình ảnh mơ hình ngơi nhà thơng minh. Gồm có 1 phịng khách, 2 phịng ngủ, 1 bếp, 1 nhà vệ sinh. Ngơi nhà gồm có 5 đèn, 3 quạt được điều khiển bằng màn hình.
4.3 LẬP TRÌNH HỆ THỐNG 4.3.1 Lưu đồ giải thuật 4.3.1 Lưu đồ giải thuật
Trong đề tài này có các yêu cầu điều khiển như sau:
Sử dụng cảm biến vân tay để mở cửa ra vào, và cảm biến hồng ngoại để xác định có người ra vào hay khơng. Có thể thêm vân tay, xóa vân tay.
Điều khiển thiết bị qua màn hình TFT LCD TOUCH. Có thể hẹn giờ bật tắt thiết bị.
Hiển thị nhiệt độ độ ẩm và báo nếu nhiệt độ quá giới hạn. Có máy nghe nhạc để điều khiển phát nhạc.
Điều khiển thiết bị qua điên thoại thông qua Bluetooth và hiển thị nhiệt độ độ ẩm trên điện thoại
Begin
Khởi tạo port, ngắt, timer, uart
Chạm vào màn hình Chọn bảo mật Chọn điều khiển thiết bị Chọn thời gian sai Đúng Sai Sai Chương trình bảo mật Chương trình điều khiển thiết bị Chương trình thời gian Chương trình nghe nhạc Chạm tay vào cảm biến vân tay
Chương trình kiểm tra vân
tay Đúng Đúng Đúng Đúng Sai End sai Hình 4.9: Lưu đồ chương trình chính
Chương trình con bảo mật vân tay:
Đầu tiên chúng ta phải thêm vân tay chủ nhà và lưu lại. Nếu người dùng muốn sử dụng thì phải thêm vân tay vào và có xác nhận của chủ nhà. Nếu vân tay chưa được thêm vào mà vẫn mở thì sẽ báo động. Ngồi ra cịn có thể xóa vân tay của người dùng.
Chọn cài đặt vân tay chủ nhà Chọn thêm người dùng Chọn xóa tất cả người dùng Chọn thốt Kết thúc Đúng Sai Sai Sai Đúng Đúng Đúng Kiểm tra chủ nhà Bắt đầu Sử dụng lần đầu Sai
Lấy mẫu và lưu vân tay chủ nhà
Lấy mẫu và lưu vân tay của người dùng
Xóa tất cả người dùng đã lưu Đúng Sai Đúng Sai
Chương trình con điều khiển thiết bị:
Khi chạm vào điều khiển thiết bị thì chúng ta có thể điều khiển on off các thiết bị. Khi các thiết bị được điều khiển thì vi điều khiển cũng xử lý làm thay đổi các button trên web và trên điện thoại cho phù hợp với thực tế điều khiển.
Bắt đầu
Chọn thiết bị i
Mở thiết bị i
Bật thiết bị i, gửi dữ liệu qua điện thoại
và gửi lên web
Tắt thiết bị i, gửi dữ liệu qua điện thoại
và gửi lên web
Kết thúc Chọn thốt Đúng Sai Đúng Sai Đúng Sai
Chương trình hẹn giờ bật tắt thiết bị:
Chúng ta có thể chọn thời gian để điều khiển bật tắt thiết bị. Chọn thời gian giờ phút, ngày, tháng, năm, chọn thiết bị, bật hay tắt.
Bắt đầu Chọn hiển thị thời gian Chọn cài đặt thời gian Chọn hẹn giờ