Giới thiệu nhà thông minh Nhà thông minh Smart Home hoặc hệ thống nhà thông minh là một ngôi nhà/căn hộ được trang bị hệ thống tự động tiên tiến dành để điều khiển đèn chiếu sáng, nhiệt
Trang 1BỘ GIÁO DỤC ĐÀO TẠO TRƯỜNG ĐẠI HỌC HÒA BÌNH
HOÀNG VĂN HOÀNH
TÊN ĐỀ TÀI THIẾT KẾ HỆ THỐNG GIÁM SÁT VÀ ĐIỀU KHIỂN NHÀ THÔNG MINH TỪ XA TRÊN CỞ SỞ WEB NHÚNG
Trang 2NHẬN XÉT CỦA HỘI ĐỒNG XÉT DUYỆT
Hà Nội, ngày …… tháng …… năm 201…
Trang 3MỤC LỤC
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục tiêu và nhiệm vụ nghiên cứu 1
3 Đối tượng và phạm vi nghiên cứu 1
4 Phương pháp nghiên cứu 2
5 Ý nghĩa khoa học và thực tiễn của luận văn 2
6 Tên đề tài 3
7 Bố cục luận văn 3
CHƯƠNG 1 TỔNG QUAN VỀ HỆ THỐNG NHÀ THÔNG MINH 4
1.1 Giới thiệu nhà thông minh 4
1.2 Những ưu điểm và hạn chế trong phát triển hệ thống nhà thông minh 6
1.2.1 Ưu điểm của nhà thông minh 6
1.2.2 Một số những yếu tố hạn chế sự phát triển nhà thông minh 7
1.3 Một số công nghệ ứng dụng trong nhà thông minh 8
1.3.1 Công nghệ Arduino 8
1.3.2 Công nghệ Web Server nhúng 11
1.3.3 Phát triển ứng dụng mạng với Socket 13
1.4 Kết luận 14
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG SHS2017 15
2.1 Hệ thống SHS2017 15
2.1.1 Cấu trúc hệ thống SHS2017 15
2.1.1.1 Khối trung tâm 16
2.1.1.2 Khối nhận dạng hình ảnh, âm thanh, thói quen của chủ nhà thông minh 16
2.1.1.3 Khối bàn phím nhập dữ liệu 16
2.1.1.4 Khối điều khiển thiết bị 17
2.1.1.5 Khối đo lường điện , nước 17
2.1.1.6 Khối điều khiển Relay 17
2.1.1.7 Khối chiếu sáng 17
2.1.1.8 Khối mạng cảm biến vô tuyến 17
2.1.1.9 Khối WiFi 17
2.1.1.10 Máy chủ và đám mây 17
2.1.1.11 Khối cảnh báo cháy nổ 17
2.1.2 Cấu trúc phần cấp của hệ thống SHS2017 19
Trang 42.2 Thiết kế phần cứng 21
2.2.1 Thiết kế phần cứng khối trung tâm 21
2.2.1.1 Modul xử lý trung tâm Arduino R3 UNO 22
2.2.1.2 Modul Arduino Internet Shield 26
2.2.3 Khối Relay 30
2.3 Thiết kế phần mềm cho hệ thống SHS2017 30
2.3.1 Chương trình chính 30
2.3.2 Chương trình truyền thông của hệ thống SHS2017 31
2.3.2.1 Quá trình truyền thông của W5100 31
2.3.2.2 Chương trình tạo trang Web 41
2.4 Kết luận 43
CHƯƠNG 3 THỬ NGHIỆM VÀ ĐÁNH GIÁ HỆ THỐNG SHS2017 44
3.1 Kịch bản thử nghiệm 44
3.1.1 Mô tả hệ thống thử nghiệm 44
3.1.2 Tiến hành thử nghiệm 45
3.2 Kết quả thử nghiệm và đánh giá 47
KẾT LUẬN 49
TÀI LIỆU THAM KHẢO 50
PHỤ LỤC 51
Trang 5DANH MỤC BẢNG
Bảng 1.1 Cac bộ vi điều khiển sử dụng phổ biến trong Arduino 8
Bảng 1.2 Các thư viện chuẩn của Arduino IDE 11
Bảng 2.1 Thông số và đặc điểm của bo mạch Arduno UNO R3 22
Bảng 2.2 Một số modul cảm biến thông dụng 29
Trang 6DANH MỤC HÌNH
Hình 1.1 Mô hình nhà thông minh 4
Hình 1.2 Kiến trúc nhà thông minh 5
Hình 1.3 Môi trường Arduino IDE 10
Hình 1.4 Truy cập EWS với phương thức GET và POST 12
Hình 1.5 Web Server trong hệ thống nhúng sử dụng hệ điều hành RTOS 12
Hình 2.1 Cấu trúc của hệ thống SHS2017 15
Hình 2.2 Hệ thống cảnh báo cháy 18
Hình 2.3 Hai chế độ hoạt động của SHS2017 19
Hình 2.4 Hệ thống phân cấp của SHS2017 20
Hình 2.5 Chu trình hoạt động của hệ thống SHS2017 20
Hình 2.6 Khối trung tâm SHS2017 đơn giản 21
Hình 2.7 Cái thành phần chính của mạch Arduino Uno R3 22
Hình 2.8 Vi điều khiển ATmega328 23
Hình 2.9 Các chân cắm của ArduinoUno R3 25
Hình 2.10 Chip W5100 và modul Arduino Internet Shield 26
Hình 2.11 Các tín hiệu ghép nối giưa MCU với W5100 27
Hình 2.12 Cấu trúc phân tầng và tổ chức bộ nhớ của W5100 28
Hình 2.13 Các modul Relay 8, 16 rơ le 30
Hình 2.14 Lưu đồ thuật toán chương trình SHS2017 31
Hình 2.15 Truyền dữ liệu chế độ Server 34
Hình 2.16 Truyền thống chế độ Client 40
Hình 3.1 Bố trí kịch bản thử nghiệm 44
Hình 3.2 Hình ảnh hệ thống thử nghiệm thực tế 45
Hình 3.3 Kết quả thử nghiệm kịch bản 1 46
Hình 3.4 Kết quả thử nghiệm kịch bản 2 47
Trang 7MỞ ĐẦU
1 Lý do chọn đề tài
Công nghệ thông tin đã và đang phát triển với tốc độ nhanh chóng và trở thành một ngành công nghiệp mũi nhọn trên thế giới cũng như ở Việt Nam Việc tin học hoá đã được ứng dụng rộng rãi trong nhiều lĩnh vực khoa học công nghệ, đời sống, xã hội và thực tế đã mang lại nhiều tiện ích cho người dùng Trong các ngôi nhà hiện nay, số lượng trang thiết bị điện, điện tử thông minh đang không ngừng gia tăng Tuy nhiên, do khác nhau về kiến trúc, việc điều khiển các thiết bị đôi khi rất bất cập Việc điều khiển thiết bị một cách thủ công với khoảng các địa lý lớn chắc chắn là điều không thể Với lý do đó, nhà thông minh đã ra đời nhằm giải quyết các bài toán tương tác giữa môi trường và các thiết bị trong gia đình một cách linh hoạt, dễ dàng hơn Bên cạnh đó, công nghệ Internet of Things (IoT) đang trở lên phổ biến, hàng tỷ thiết bị được kết nối chung với nhau bằng Internet Với ưu điểm đó luận văn đã lựa chọn đề tài: “Ứng dụng Internet of Things xây dựng hệ thống nhà thông minh” làm đề tài nghiên cứu khoa học với hi vọng bước đầu có thể tạo ra một hệ thống nhà thông minh SHS2017 (Smart Home System -2017) có thể khả thi trong thực tế
2 Mục tiêu và nhiệm vụ nghiên cứu
Mục tiêu nghiên cứu nhằm xây dựng một hệ thống nhà thông minh mà có
thể giám sát điều khiển từ xa qua các mạng viễn thông nói chung, mạng Internet
nói riêng Cụ thể luận văn sẽ đi sâu vào các nội dung sau:
- Nghiên cứu khảo sát tình hình phát triển công nghệ nhà thông minh trên thế giới và trong nước
- Đề xuất một mô hình nhà thông minh, thiết kế phần cứng, phần mềm
và đưa ra giải pháp giám sát, điều khiển các thiết bị nhà thông minh
từ xa qua mạng Internet
- Tiến hành các kịch bản thử nghiệm và đánh giá hệ thống
3 Đối tượng và phạm vi nghiên cứu
a) Đối tượng nghiên cứu
- Xây dựng một mô hình nhà thông minh và các thành phần cấu thành
hệ thống nhà thông minh
Trang 8- Nghiên cứu giải pháp kỹ thuật phần cứng, phần mềm, mạng truyền thông để thiết kế hệ thống nhà thông minh cho phép giám sát, điều khiển từ xa
- Đưa ra qui trình thử nghiệm, đánh giá hệ thống nhà thông minh và đề xuất triển khai thực tế
b) Phạm vi nghiên cứu
- Nghiên cứu thiết kế, thử nghiệm một hệ thống nhà thông minh với các
thành phần cơ bản của hệ thống
4 Phương pháp nghiên cứu
- Phương pháp nghiên cứu lý thuyết
- Phương pháp tiếp cận thực tế các vấn đề liên quan đến mục tiêu của đề tài
Luận văn này hy vọng cũng góp phần vào xu thế phát triển đó Trong luận văn sẽ đề cập đến vấn đề thiết kế, triển khai nhà thông minh trên góc độ tổng thể
và minh chứng khả năng thực thi thông qua một mô hình thử nghiệm sử dụng các công nghệ phổ biến ở Việt Nam
* Về mặt thực tiễn
Thứ nhất luận văn đưa ra một cách giải quyết bài toán nhà thông minh hiện đang thu hút sự quan tâm của nhiều doanh nghiệp, của người sử dụng và định hướng chính sách của chính phủ nói chung, của Hà Nội nói riêng, trong việc xây dựng thành phố thông minh Trong đó nhà thông minh là một trong những thành phần cơ bản của thành phố thông minh
Thứ hai, vấn đề luận văn thực hiện cũng đang là vấn đề được thế giới quan tâm Nó phù hợp với xu thế phát triển của cuộc sống đương đại với chất lượng cuộc sống của người dân ngày càng được nâng cao và được cải thiện
Trang 96 Tên đề tài
“Thiết kế hệ thống giám sát và điều khiển nhà thông minh từ xa trên cơ
sở Web nhúng”
7 Bố cục luận văn
Nội dung chính của luận văn được chia thành 3 chương chính như sau:
Chương 1: Tổng quan về công nghệ nhà thông minh
Chương 1 trình bày các kiến thức cơ sở về nhà thông mình và các công nghệ sử dụng trong nhà thông minh
Chương 2: Xây dựng hệ thống SHS2017
Chương 2 tiến hành thiết kế phần cứng, phần mềm hệ thống giám sát điều khiển từ xa nhà thông minh từ xa qua mạng Internet
Chương 3: Thử nghiểm và đánh giá kết quả
Chương này tiến hành xây dựng các kịch bản thử nghiệm, đề xuất kịch bản triển khai thực tế hệ thống giám sát điều khiển nhà thông minh sử dụng công nghệ Web nhúng
Ngoài ra còn phần mở đầu, phần kết luận và tài liệu tham khảo
Trang 10CHƯƠNG 1 TỔNG QUAN VỀ HỆ THỐNG NHÀ THÔNG MINH
1.1 Giới thiệu nhà thông minh
Nhà thông minh (Smart Home) hoặc hệ thống nhà thông minh là một
ngôi nhà/căn hộ được trang bị hệ thống tự động tiên tiến dành để điều khiển đèn chiếu sáng, nhiệt độ, truyền thông đa phương tiện, an ninh, rèm cửa, cửa và nhiều tính năng khác nhằm mục đích làm cho cuộc sống ngày càng tiện nghi, an toàn và góp phần sử dụng hợp lý các nguồn tài nguyên
Một hệ thống nhà thông mình là một hệ thống tích hợp nhiều công nghệ tiên tiến khác nhau như công nghệ điện tử, công nghệ thông tin, điều khiển và truyền thông nhằm tự động hóa mức cao các khía cạnh khác nhau của một ngôi nhà, giúp con người có môi trường sống thuận tiện hơn, chất lượng cuộc sống được nâng cao hơn và an toàn hơn
Hình 1.1 Mô hình nhà thông minh Một ngôi nhà thông minh cho phép thiết bị tiêu thụ điện năng đều được
tự động hóa công việc, lịch trình và có thể điều khiển trực tiếp trên màn hình điều khiển của thiết bị hoặc điều khiển từ xa qua ứng dụng được cài đặt trên các thiết bị smartphone, tablet, máy tính cá nhân PC, laptop Cụ thể nó có thể quản
lý hệ thống điện, tiêu thụ điện năng; cảnh báo cháy nổ; cảnh báo xâm nhập trái phép; điều khiển các thiết bị đa phương tiện trong nhà; tự động giám sát môi
Trang 11trường và tưới tiêu vườn rau cây cảnh; quản lý hệ thống chiếu sáng và ngay cả việc ứng dụng trí tuệ nhận tạo để hỗ trợ con người sống trong ngôi nhà tốt hơn
Hình 1.2 Kiến trúc nhà thông minh Hình 1.2 cho thấy kiến trúc cơ bản của một nhà thông minh Có thể thấy ngôi nhà thông minh chính là những ngôi nhà mà trống đó được cài đặt một hệ thống tích hợp những công nghệ hiện đại về kỹ thuật điện – điện tử để quản lý
và điều khiển các thiết bị điện tử theo nhu cầu sử dụng của chủ nhà mọi lúc, mọi nơi theo những chương trình được cài đặt theo ngữ cảnh, lịch trình, cảm biến tự động Việc tự động hóa hoàn toàn công việc nhà thông minh sẽ giúp chủ nhà tiết kiệm thời gian, tiết kiệm điện năng sử dụng, và an toàn, tiện nghi Hệ thống Nhà thông minh hiện nay hầu hết đều gồm 3 nhóm thành phần chính: Thiết bị vào :
Có chức năng chính là xử lý các tín hiệu nhận được từ các thiết bị như sensor, công tắc, nút nhấn … và truyền đến thiết bị xử lý trung tâm Gồm có 3 nhóm chính :
Nhóm thiết bị vào gồm:
o Các bộ điều khiển phòng
o Các thiết bị tự động (sensor ánh sáng, bộ phát hiện chuyển động,…)
Trang 12o Hệ thống điều khiển màn cửa
o Hệ thống điều khiển nhiệt độ, điều hòa không khí
o Hệ thống điều khiển ánh sáng
o Hệ thống điều khiển hệ thống âm thanh
Thiết bị hệ thống: Có chức năng nhận các tín hiệu từ thiết bị vào, xử lý theo các chương trình, tạo ra các lệnh phù hợp và truyền đến các thiết bị
ra
Các hệ thống nhà thông minh hiện nay đang được phát triển và cung cấp bởi nhiều nhà đầu tư khác nhau trên thị trường Việt Nam mà đi đầu nổi bật là các công ty như BAKV, Lumi, DiCom, Arkos…Nhược điểm lớn nhất của sản phẩm của các công ty này là giá thành cao, khó tích hợp các hệ thống có sẵn và hiện nay cũng chưa được nhiều khách hàng tin dùng
1.2 Những ưu điểm và hạn chế trong phát triển hệ thống nhà thông minh
1.2.1 Ưu điểm của nhà thông minh
- Tiện nghi : với hệ thống Nhà thông minh bạn có thể kiểm soát toàn bộ môi trường ánh sáng, điều kiện khí hậu trong căn nhà của bạn theo cách mà bạn muôn
- Đơn giản : chỉ với một nút nhấn đơn giản bạn có thể tắt, mở cùng lúc nhiều thiết bị theo một chế độ mà bạn đã thiết lập trước đó Việc lập trình cho ngôi nhà bạn thực sự rất đơn giản và thân thiện, không cần phải kết nối với máy tính
- Uyển chuyển: mọi chức năng của tất cả công tắc trong nhà bạn có thể được thay đổi và bổ xung vào bất cứ lúc nào bạn muốn
- Tiện lợi : mọi thiết bị trong nhà bạn có thể được điều khiển từ xa hay tại chổ Nhiều chọn lựa: dải sản phẩm của Nhà thông minh đa dạng về chủng loại
và màu sắc, đặc biệt là các loại công tắc, nút nhấn, giúp cho bạn dễ dàng lựa chọn loại thiết bị mà bạn cảm thấy phù hợp cho ngôi nhà của mình nhất
Trang 13- Kinh tế : hệ thống Nhà thông minh thực sự là một giải pháp đem lại nhiều lợi ích kinh tế khi so sánh với hệ thống điện truyền thống Nhà thông minh giảm thiểu chi phí về lắp đặt, bảo dưỡng, vận hành cũng như thời gian thay đổi,
bổ xung chức năng, và đặc biệt Nhà thông minh la một giải pháp tiết kiệm năng lượng cho ngôi nhà bạn
- An toàn: với việc sử dụng nguồn điều khiển thấp, toàn bộ hệ thống công tắc, nút nhấn trong ngôi nhà của bạn sẽ trở nên cực kỳ an toàn, giảm thiểu nguy
cơ về cháy nổ, điện giật
1.2.2 Một số những yếu tố hạn chế sự phát triển nhà thông minh
Mặc dù nhà thông minh có nhiều ưu điểm nổi bật và được các nhà chuyên môn và chính sách đánh giá là tất yếu, nhưng để phát triển mạnh công nghệ này hiện nay cũng có một số những hạn chế cản trở:
- Thứ nhất là do thói quen của khách hàng: Do thói quen sử dụng các thiết
bị điện thông thường tư lâu đã trở thành rào cản tâm lý quá lớn khiến nhiều người có suy nghĩ sử dụng thiết bị điện nhà thông minh là không cần thiết, mặc
dù có thừa khả năng về tài chính Ngoài ra, người dùng còn lo lắng hệ thống đầu
tư tốn kém nhưng dùng chưa lâu đã bị lỗi thời, thậm chí phải vứt bỏ sau một thời gian ngắn
- Thứ hai là lo ngại về việc khó lắp đặt và sử dụng: hệ thống điện truyền thống khó bị thay thế là vì cách điều khiển rất đơn giản là bật/tắt Nhưng khi nói đến nhà thông minh hầu như người sử dụng đều nghĩ đến ngay sự phức tạp khi điều khiển vì liên quan đến công nghệ cao Hoặc khi muốn lắp đặt, thì khách hàng thường nghĩ đến việc phải phá vỡ cấu trúc công trình của ngôi nhà để lắp đặt các thiết bị, hệ thống điện Những lo ngại của khách hàng hoàn toàn có cơ
sở, xong không phải với tất cả thiết bị nào cũng phải phá, đục tường để lắp đặt
- Thứ ba là do giá cả thiết bị thông minh quá cao: Nguyên nhân chính đó chính là giá thành của các thiết bị điện cho nhà thông minh Hầu hết, các sản phẩm thiết bị thông minh của các hãng công nghệ đều có giá thành khá cao so với các sản phẩm thông thường Để lắp đặt đồng bộ hoàn chỉnh một hệ thống điện nhà thông minh, thì chi phí, giá thành thiết bị cả các sản phẩm ngoại là rất đắt đỏ
Trang 141.3 Một số công nghệ ứng dụng trong nhà thông minh
1.3.1 Công nghệ Arduino
Arduino là công nghệ ra đời tại nước Ý vào năm 2005 bởi Massimo Banzi
và nó nhanh chonngs trở thành bộ não xử lý của nhiều thiết bị từ đơn giản đến phức tạp Arduino là nền tảng điển tử nguồn mở dựa trên phần cứng và phần mềm dẽ sử dụng Bảng mạch Arduino cho phép đọc tín hiệu đầu vào như phím bấm, các cảm biến … và đưa ra đầu ra để điều khiển các thiết bị như mô tơ, bật đền, chuyển mạch
…Công nghệ Arduino được sử dụng phổ biến vì nó dẽ sử dụng, không phụ thuộc vào hệ điều hành; môi trường lập trình đơn giản, rõ ràng; phần cứng, phần mềm đều là nguồn mở và có khả năng mở rộng; giá thành rẻ Arduino được sử dụng nhiều trong các ứng dụng như máy in 3D, Robot, thiết bị bay UAV, Game tương tác, điều khiển ánh sáng, kích hoạt chụp ảnh tốc độ cao …
a) Phần cứng Arduino:
Phần cứng Arduino được chế tạo dưới dạng modul Theo chức năng Arduino đươc chia làm 2 loại: Loại modul chính có chíp Atmega và loại mở rộng
- Loại modul chính chính về cơ bản là giống nhau về chức năng, tuy nhiên
về mặt cấu hình như số lượng I/O, dung lượng bộ nhớ, hay kích thước
có sự khác nhau Một số modul có trang bị thêm các tính năng kết nối như Ethernet và Bluetooth
- Loại modul mở rộng chủ yếu mở rộng thêm một số tính năng cho bo mạch chính ví dụ như tính năng kết nối Ethernet, Wireless, điều khiển động cơ v.v…
Modul Arduino sử dụng dòng vi xử lý 8-bit megaAVR của Atmel với hai chip phổ biến nhất là ATmega328 và ATmega2560 (bảng 1.1) Các dòng vi xử khiển này cho phép lập trình các ứng dụng điều khiển phức tạp do được trang bị cấu hình mạnh với các loại bộ nhớ ROM, RAM và Flash, các ngõ vào ra digital I/O trong đó có nhiều ngõ có khả năng xuất tín hiệu PWM, các ngõ đọc tín hiệu analog và các chuẩn giao tiếp đa dạng như UART, SPI, TWI (I2C)
Bảng 1.1 Cac bộ vi điều khiển sử dụng phổ biến trong Arduino
Trang 15Các tín hiệu phổ biến của modul Arduino:
Tín hiệu vào:
- Tín hiệu số: Các modul Arduino đều có các cổng số có thể cấu hình làm ngõ vào hoặc ngõ ra bằng phần mềm Tổng số lượng cổng số trên các mạch dùng Atmega328 là 14, và trên Atmega2560 là 54
- Tín hiệu tương tự: Các modul Arduino đều có trang bị các ngõ vào tương
tự với độ phân giải 10-bit Số lượng cổng vào tương tự là 6 đối với Atmega328,
và 16 đối với Atmega2560
Tín hiệu ra:
- Đầu ra số: Tương tự như các cổng vào số, người dùng có thể cấu hình trên phần mềm để quyết định dùng ngõ số nào là ngõ ra Tổng số lượng cổng số trên các mạch dùng Atmega328 là 14, và trên Atmega2560 là 54
- Đầu ra PWM: Một số cổng có thể dùng để xuất tín hiệu điều chế xung PWM Độ phân giải của các tín hiệu PWM này là 8-bit Số lượng cổng PWM đối với các modul dùng Atmega328 là 6, và đối với các modul dùng Atmega2560 là 14 PWM có nhiều ứng dụng trong viễn thông, xử lý âm thanh hoặc điều khiển động cơ mà phổ biến nhất là động cơ servos trong các máy bay
mô hình
Cac chuẩn Giao tiếp:
Serial: Chuẩn giao tiếp nối tiếp được dùng rất phổ biến trên các mudul
Arduino Mỗi modul 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…
USB: Các modul Arduino tiêu chuẩn đều có trang bị một cổng USB để thực hiện kết nối với máy tính dùng cho việc tải chương trình Tuy nhiên các chip AVR không có cổng USB, do đó các bo Ardunino phải trang bị thêm phần
Trang 16chuyển đổi từ USB thành tín hiệu UART Do đó máy tính nhận diện cổng USB này là cổng COM chứ không phải là cổng USB tiêu chuẩn
SPI: Chuẩn giao tiếp nối tiếp SPI có bus gồm có 4 dây cho phép modul Arduino dẽ ràng kết nối với các thiết bị như LCD, bộ điều khiển video game, bộ điều khiển cảm biến các loại, đọc thẻ nhớ SD và MMC…
TWI (I2C): Chuẩn giao tiếp I2C có bus hai dây cho phép modul Arduino
dẽ ràng kết nối với một số loại cảm biến phổ biến như thermostat của CPU, tốc
độ quạt, một số màn hình OLED/LCD, đọc real-time clock, chỉnh âm lượng cho một số loại loa…
b) Môi trường lập trình Arduino IDE
Hình 1.3 Môi trường Arduino IDE Arduino IDE (hình 1.3) là 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 Java Nó có một tập các thư viện code được viết sẵn và được chia sẻ bởi cộng đồng nguồn mở 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
Trang 17Để hỗ trợ phát triển ứng dụng Arduino có một hệ thống thư viện vô cùng phong phú Các thư viện chuẩn của Arduino được thể hiện như bảng 1.2
Bảng 1.2 Các thư viện chuẩn của Arduino IDE
1 EEPROM Đọc/viết bộ nhớ EEPROM
2 Ethernet / Ethernet 2 Thu viên dùng kết nối Internet
3 Firmata Thu viện truyền thông với ứng dụng trên PC sử dụng giao
thức tuần tự chuẩn
5 LiquidCrystal Thư viện điều khiển hiển thị LCD
6 SD Thư viện đọc / viết thẻ nhớ SD
7 Servo Thư viện điều khiển moto servo
8 SPI Thư viện truyền thông chuẩn SPI
9 SoftwareSerial Thư viện truyền thông tuần tự với mọi chân tín hiệu số
10 Stepper Thư viện điều khiển mô tơ bước
11 TFT Thư viện vẽ text, đồ họa, ảnh với màn hình TFT
12 WiFi Thư viện kết nối Internet sử dụng Arduino WiFi shield
13 Wire Thư viện gửi/ nhận dữ liệu với chuẩn TWI/I2C
1.3.2 Công nghệ Web Server nhúng
Web Server nhúng (EWS) là một phần mềm hoạt động với giao thức HTTP và được nhúng vào trong phần cứng, chủ yếu là các vi điều khiển dưới dạng Firmware (MiniWeb) Nó cho phép truy cập tới trang web nhúng trong nó qua mạng Internet bằng các trình duyệt thông dụng EWS được sử dụng phổ biến trong các hệ thống điều khiển trên cơ sở giao thức HTTP, trong các thiết bị thông dụng như máy in, máy photocopy, máy Fax, …giao thức HTTP là giao thức cơ bản của công nghệ Web nói chung, Web nhúng nói riêng HTTP sử dụng kết nối TCP truyền thông với 2 thông điệp: Thông điệp yêu cầu ( Request Message) và thông điệp đáp ứng (Response Message) Nó gồm nhiều phương thức khác nhau, trogn đó 2 phương thức GET và POST được sử dụng chủ yếu trong EWS Hình 1.4 thể hiện truy cập EWS với phương thức POST và GET
Trang 18
Hình 1.4 Truy cập EWS với phương thức GET và POST
Hình 1.4 là cấu trúc của một hệ thống nhúng trong đó có EWS, trong đó Web Server chạy trên nền hệ điều hành nhúng thời gian thực RTOS Nhưng các trong các ứng dụng nhỏ với các vi điều khiển có khả năng hạn chế thì EWS có thể được nhúng trực tiếp xuống các vi điều khiển sử dụng bộ TCP/IP Stack và
có thể sử dụng thẻ nhớ để hỗ trợ Web nhúng TCP/IP Stack là bộ giao thức rút gọn từ bộ giao thức TCP/IP với một số giao thức quan trọng như HTTP, IP, ICMP, TFTP, DHCP, DNS, ARP TCP/IP Stack chia làm nhiều lớp, mỗi lớp cho phép các tầng dưới nó truy cập các dịch vụ của nó
Hình 1.5 Web Server trong hệ thống nhúng sử dụng hệ điều hành RTOS Công nghệ EWS được ứng dụng nhiều trong xây dựng nhà thông minh Nói cho phép người sử dụng có thể truy cập từ xa qua mạng Internet để giám sát
Trang 19và điều khiển hệ thống các thiết bị trong nhà thông minh với có chế an toàn bảo mật cao qua các thiết bị di động ở mọi nơi, mọi lúc Và nó cũng cho phép dẽ dàng tích hợp với các hệ thống khác của thành phố thông minh qua dịch vụ Web
1.3.3 Phát triển ứng dụng mạng với Socket
Socket đóng vai trò như điểm cuối (End point) của kết nối truyền thông
Nó là một cấu trúc logic với địa chỉ là tổ hợp của địa chỉ IP với địa chỉ cổng Để lập trình truyền thông với socket, các hãng đều tạo ra một tập các hàm thư viện
để hỗ trợ phát triển ứng dụng mạng với socket và được gọi là giao diện socket
Có 3 loại giao diện socket: Stream socket, Datagram socket, Raw socket:
Stream socket: sử dụng các giao thức truyền thông hướng kết nối mà tiêu biểu nhất là giao thức TCP (TCP socket) Đây là kiểu truyền thông điểm- điểm (point- to – point) Quá trình truyền thông của nó phải thông qua 3 giai đoạn: Thiết lập kết nối, truyền dữ liệu và hủy bỏ kết nối
Datagram socket: cho phép truyền thông với các giao thức hướng không kết nối mà tiêu biểu là giao thức UDP (UDP socket) Nó truyền thông theo kiểu điểm – đa điểm ( multipoint) Quá trình truyền thông theo kiểu này chỉ có một giai đoạn duy nhất là truyền dữ liệu
Raw socket: Kểu giao diện này cho phép lập trình các ứng dụng truyền thông tới mức thấp hơn TCP, UDP mà tiêu biểu là giao thức ICMP Đây
là kiểu ứng dụng truyền thông can thiệp sâu hệ thống ác ứng dụng kiểu này ví dụ chương trình ping, tracer…
Chương trình ứng dụng mạng có thể phát triển theo nhiều mô hình khác nhau như mô hình client/server, peer- to – peer, multi-tier Trong mô hình client/ server ứng dụng gồm 2 chương trình:
Chương trình server: là chương trình chạy phía máy chủ có đặc điểm là chạy vô tận sau khi khởi động Nó chỉ dưng bởi người sử dụng hay máy tính xẩy ra lỗi Chương trình này sau khi khởi tạo nó thực hiện mở thụ động với một số hiệu cổng xác định và đặt ở trạng tháy lắng nghe yêu cầu
từ phía máy client Nếu có yêu cầu từ client, nó sẽ tiếp nhận xử lý và đáp ứng yêu cầu
Trang 20 Chương trình client: Chạy phía máy khách Chương trình này có thời gian chạy hữu hạn Sau khi khởi tạo nó gửi yêu cầu tới chương trình server, nhật đáp ứng từ server và kết thúc
Một chương trình server có thể phục vụ nhiều client đồng thời hoặc tuần tự Server đồng thời thường là server TCP Để phục vụ đồng thời nhiều client nó thường sử dụng kỹ thuật đa tiến trình (multi process) hoặc đa luồng (đa tiểu trình – multi thread) Còn server phục vụ tuần tự thường là server UDP sử dụng hàng đợi vào/ra và lần lượt xử lý từng gói tin của mỗi client tại mỗi thời điểm Thường trong các ứng dụng đo và điều khiển đều dùng kết hợp cả 2 kiểu server Khi cần truyền tin tin cậy như tín hiệu điều khiển thường dùng TCP, còn đối với tín hiệu cần xử lý nhanh như hình ảnh thì sử dụng UDP
Trong ứng dụng giám sát và điều khiển nhà thông minh, hệ thống SHS2017 sẽ sử dụng Web Serrve với cả 2 kiểu socket TCP và UDP để tạo ra ứng dụng giám sát và điều khiển từ xa hiệu quả
1.4 Kết luận
Trong chương 1 luận vẵn đã đề cập đến các vấn đề của một hệ thống nhà thông minh, thuật lợi và những hạn chế ảnh hưởng đến sự phát triển của hệ thống nhà thông minh Đồng thời trong chương 1 cũng đề cập đến các công nghệ sẽ được sử dụng để xây dựng hệ thống SHS2017, là hệ thống được luận văn đề xuất và xây dựng thử nghiệm, bao gồm công nghệ Arduino và cong nghệ Web nhúng Trong chương tiếp thep luận văn sẽ thực hiện xây dựng hệ thống SHS2017 với các cơ sở được trình bày trong chương 1
Trang 21Khối hiển thị LCD
Khối hệ thống chiếu sáng
Trang 22 Khối trung tâm
Khối cảnh báo cháy nổ
Khối điều khiển bao gồm khối công tắc thông minh, khối bàn phím và các điều khiển khác như điều khiển quạt, điều hòa, tủ lạnh …
Khối đo lường các thông số điện, nước
Khối hiển thị
Khối máy chủ và đám mây
Khối Relay
Khối hệ thống chiếu sáng
Khối nhận dạng ảnh, âm thanh và nhận dạng thới quen của chủ nhân
Khối mạng cảm biến vô tuyến
Khối WiFi
Khối client
2.1.1.1 Khối trung tâm
Khối trung tâm là bộ não của hệ thống, trong đó sử dụng bộ vi điều khiển mạnh như PIC32, XMEGA hoặc STM32F4 Nhiệm vụ của khối trung tâm là thu thập dữ liệu từ các cảm biến trực tiếp hoặc qua mạng cảm biến vô tuyến, mạng WiFi và chuyển về mãy chủ lưu trữ trong CSDL Đồng thời nó cũng nhận lệnh
từ người sử dụng và thực hiện lệnh Lệnh điều khiển có thể nhận trực tiếp thông qua khối bàn phím hoặc nhận qua mạng Internet Ngoài ra khối trung tâm cũng thực hiện các chế độ làm việc khác nhau theo lịch lập sẵn
2.1.1.2 Khối nhận dạng hình ảnh, âm thanh, thói quen của chủ nhà thông minh
Khối này ứng dụng trí tuệ nhận tạo với thuật toán học sâu, mạng nơ ron CNN và các thuật toán kết hợp… trong khai phá dữ liệu cho phép nhận dạng khuôn mặt, vân tay, giọng nói của cac thành viên trong gia đình chủ nhà thông minh; nhận dạng vân tay, giọng nói trong đóng/mở cửa tự động; nhận biết đồ dùng cá nhân của mỗi thành viên; phân biệt chủ và khách Đồng thời nó cũng cho phép phát hiện thói quen của các thành viên sinh sống trong nhà thông minh
từ đó có thể tư vấn, nhắc nhở các thành viên trong nhà thông minh…
2.1.1.3 Khối bàn phím nhập dữ liệu
Khối này cho phép người sử dụng có thể thiết đặt chế độ, lập lịch trực tiếp đối với bộ điều khiển trung tâm trong trường hợp cần thiết Còn bình thường các công việc này được thực hiện từ xa thông qua hệ thống Web nhúng
Trang 232.1.1.4 Khối điều khiển thiết bị
Khối này bao gồm các công tắc đèn chiếu sáng, bộ điều khiển quạt, điều hòa, tủ lạnh… trực tiếp trong trường hợp cần thiết Bình thường bảng điều khiển này được thực hiện thông qua bảng điều khiển mềm qua máy tính bảng hoặc điện thoại hoặc qua các thiết bị điều khiển chuyên dụng của từng thiết bị này
2.1.1.5 Khối đo lường điện , nước
Khối này cho phép người sử dụng giám sát tiêu thụ điện năng và nước sinh hoạt theo tháng, quí Nó sử dụng các cảm biến đo dòng nước và đo công suất tiêu thụ điện năng và chuyển đến người sử dụng theo lịch đã đặt sẵn hoặc người sử dụng có thể truy cập từ xa để tra cứu trực tuyến
2.1.1.6 Khối điều khiển Relay
Khối này gồm các rơ le liên quan đến bơm nước, đóng mở các van, bật tắt tưới vườn cây, đóng mở cổng, rèm,…lệnh điều khiển các khối này được lập lịch hoặc ra lệnh trực tiếp từ người sử dụng từ xa qua mạng hoặc điều khiển trức tiếp từ bảng điều khiển
2.1.1.7 Khối chiếu sáng
Khối này gồm hệ thống chiếu sáng của nhà thông minh Nó bao gồm các hệ thống chiếu sáng với các chế độ khác nhau Công suất chiếu sáng được điều khiển bằng độ rộng xung tùy theo nhu cầu sử dụng Nó cũng được điều khiển theo lịch hoặc điều khiển trực tiếp từ xa bởi người sử dụng
2.1.1.8 Khối mạng cảm biến vô tuyến
Khối này kết nối với mạng cảm biến vô tuyến để giám sát cháy nổ, giám sát xâm nhập trái phép hoặc thu nhận các thông số môi trường từ vườn cây, vườn hoa…và gửi dữ liệu về trung tâm xử lý để đưa ra quyết định để báo động hoặc điều khiển phun nước tưới cây…
2.1.1.9 Khối WiFi
Khối này cho phép nối với một hệ thống Camera giám sát an ninh Nó cho phép người sử dụng có thể quan sát điều khiển camera từ xa Đồng thời khối này cũng cho phép kết nối vô tuyến với các mạng cảm biến vô tuyến trong nhà thông minh qua WiFi; cho phép người sử dụng truy cập Internet bất cứ ở đâu trong nhà thông minh
2.1.1.10 Máy chủ và đám mây
Máy chủ cho phép lưu CSDL thu thập và trạng thái của hệ thống Hệ thống SHS2017 cũng cho phép lưu dữ liệu lên đám mây khi có nhu cầu với cơ chế mã hóa an toàn bảo mật cao
2.1.1.11 Khối cảnh báo cháy nổ
Trang 24Khối này bao gồm các cảm biến Gas, khí và các cảm biến nhiệt độ Khi xẩy ra dò gỉ Gas khí hoặc phát hiện khói hoặc tăng nhiệt quá giới hạn thì khối trung tâm sẽ xử lý và phát tín hiệu chuông báo động Đồng thời nó cũng tự động quay số điện thoại kết hợp với nhẵn tin tới 2 số điện thoại của chủ nhà Ngoài ra
để giám sát chặt chẽ cháy nổ những vị trí nhạy cảm như nhà bếp, chỗ dẽ xẩy ra cháy chập điện gây hỏa hoạn thì mạng cảm biến vô tuyến cũng được sử dụng với mật độ dày để kịp thời cảnh báo Hình 2.2 là sơ đồ bố trí cảnh báo cháy sử dụng cảm biến khói và nhiệt
- Chế độ client: Trong chế độ này bộ trung tâm đóng vài trò là client kết nối với máy chủ Hệ thống SHS2017 sử dụng chế độ này lưu dữ liệu vào cơ sở dữ liệu Hình 2.3 cho thấy quá trình hoạt động của 2 chế độ này Trong chế độ Server (Server Mode) đầu tiến client gửi yêu cầu kết nối tớiWeb Server (Connet Request) để yêu cầu kết
Trang 25Hình 2.3 Hai chế độ hoạt động của SHS2017 nối Nếu kết nối thành công thì quá trình trao đổi dữ liệu sẽ được thực hiện Quá trình kết thúc khi client hoặc server gửi yêu cầu kết thúc (Disconnect) Trong chế độ Client (Client Mode), khối trung tâm lại đóng vài trò client và thiết lập với máy chủ CSDL để truyền CSDL lưu trữ trên máy chủ Quá trình sẽ kết thúc khi khối trung tâm hoặc máy chủ chấm dứt kết nối
2.1.2 Cấu trúc phần cấp của hệ thống SHS2017
Hệ thống SHS2017 gồm một hệ thống chính và nhiều hệ thống con Hình 2.4 thể hiện hệ thống chính và một số hệ thống con tiêu biểu trong nhà thông minh Việc thu thập dữ liệu giữa hệ thống chính và hệ thống con thực hiện theo kiểu phân cấp chức năng và tạo ra sự hoạt động nhiều chức năng con song song đồng thời, nhằm đảm bảo cho hệ thống chính hiệu quả, đáp ứng thời gian thực Giữa hệ thống chính và các hệ thống con trao đổi dữ liệu thông qua vùng nhớ chung Mỗi hệ thống con có một vùng nhớ riêng đầu vào và vùng nhớ riêng đầu
ra tương ứng Các đầu vào của mỗi hệ thống con luôn cập nhật trạng thái mới vào vùng nhớ vào của nó, hệ thống chính theo chu kỳ quét sẽ xử lý và cập nhật tới vùng nhớ ra tương ứng; thiết bị đầu ra sẽ quét qua vùng nhớ ra và cập nhật trạng thái mới
Trang 26Hình 2.4 Hệ thống phân cấp của SHS2017
2.1.3 Cơ chế hoạt động của SHS2017
Sau khi khởi động hệ thống chương tình chính sẽ đi vào vòng lặp chính (hình 2.5) Vòng lặp chính sẽ quét qua tất cả vùng nhớ đầu vào của các hệ thống con và cập nhật
ra vùng nhớ ra của hệ thống Còn các hệ thống con là các tiến trình chạy song song đồng thời như sau:
Hình 2.5 Chu trình hoạt động của hệ thống SHS2017
Xử lý truyền thông
Đầu
vào
Vòng quét đầu vào
Vòng quét đầu ra
Thiết bị đầu ra Vòng quét chính
Chu kỳ quét chính
Communication
Hệ thống SHS2017
Hệ thống giám sát môi trường và tưới tiêu
Hệ thống điều hòa/
quạt gió
Hệ thống cửa/ an ninh/
Camer
a
Hệ thống quản
lý điện
Hệ thống nhận dạng hình ảnh/âm thanh và thói quen
Trang 27- Các hệ thống con đầu vào liên tục quét đầu vào của nó và cập nhật vào bộ nhớ đầu vào
- Các hệ thống con đầu ra luôn quét vùng nhớ ra của nó để cập nhật trạng thái thiết bị đầu ra
Các vùng nhớ vào/ra là các đơn vị ghép nối giữa vòng quét chính với mỗi vòng quét thành phần Trong vòng quét chính, theo chu kỳ, hệ thống sẽ quét đầu vào,
xử lý cập nhật đầu ra, thực hiện xử lý truyền thông và các hoạt động nội bộ nó sẽ lặp lại quá trình trên theo thời gian thực
2.2 Thiết kế phần cứng
Trong luận văn này với mục đích thử nghiệm, đề tài sẽ được thực hiện ở mức đơn giản sử dụng Web nhúng với công nghệ Arduino Hệ thống gồm phần cứng khối trung tâm, các cảm biến đầu vào, modul relay đầu ra…
2.2.1 Thiết kế phần cứng khối trung tâm
Phần cứng khối trung tâm SHS2017 thiết kế dựa trên tích hợp 2 modul Arduino (hình 2.6):
- Modul Arduino R3 UNO đóng vài trò modul xử lý trung tâm
- Modul Arduino Internet Shield cho phép kết nối với mạng Internet, phối hợp với modul xử lý trung tâm để thực hiện Web nhúng
Hình 2.6 Khối trung tâm SHS2017 đơn giản
Trang 282.2.1.1 Modul xử lý trung tâm Arduino R3 UNO
Modul này có cấu trúc các thành phần như hình 2.7 và các thông số như bảng 2.1 gồm:
- Vi điều khiển: sử dụng chíp Atmega 328
- Khối chuyển đổi UART– USB: Khối này cho phép giao tiếp giữa máy tính với Vi điều khiển thông qua chip ghép nối CH340
- Khối nguồn: cân bằng điện áp cho đúng với điện áp yêu cầu, cung cấp nguồn điện cho modul
- Các cổng cung cấp điện áp: cung cấp điện áp đầu ra cho các thiết bị
- Các cổng Analog in: cổng logic 0-1 vào với mức điện 0-5V tương ứng
- Khối các cổng Digital in-out: là các cổng vào/ra số Các cổng này có thể xuất xung PWM
Hình 2.7 Cái thành phần chính của mạch Arduino Uno R3
Bảng 2.1 Thông số và đặc điểm của bo mạch Arduno UNO R3
Điện áp hoạt động 5V – DC
Trang 29Dòng tối đa mỗi chân I/O 30 mA
Dòng ra tối đa chân 5V 500 mA
Dòng ra tối đa chân 3.3V 50 mA
Bộ nhớ Flash 32KB (0.5 KB sử dụng làm bootloader)
a) Vi điều khiển Atmega
Arduino Uno có thể sử dụng 3 vi điều khiển họ 8 bit là ATmega8, ATmega168, ATmega328 Điểm khác biệt của 3 vi điều khiển này là dung lượng bộ nhớ Flash
Trong hệ thống này ta sử dụng ATmega328p (hình 2.8)
Hình 2.8 Vi điều khiển ATmega328
Trang 30Đặc điểm:
- Cấu trúc RISC với khoảng 133 lệnh ASM, hầu hết thực hiện trong một chu kỳ máy
- 32 thanh ghi đa năng làm việc như các vùng nhớ tốc độ cao
- Tốc độ thực hiện lệnh tối đa 16 MIPS (với thạch anh 16 MHz, không chia tần)
- 32KB bộ nhớ Flash, dùng làm bộ nhớ chương trình, cho phép nạp xoá
- 1 KB EEPROM, dùng để lưu các biến, dữ liệu ngay cả khi không được cấp điện
- 2 KB SRAM dùng để lưu kết quả trung gian, làm bộ nhớ vào ra và dùng cho stack
- Giao diện JTAG, cho phép nạp xoá Flash 10.000 lần, EEPROM 100.000 lần, Fulse Bits, Lock Bits
- Các chức năng ngoại vi tích hợp sẵn: 2 bộ Timer 8 bit với nhiều chế độ hoạt động, 2 bộ Timer 16 bit có bộ chia tần riêng, các chế độ đếm, định thời, so sánh (compare mode) và chế độ bắt giữ (capture mode)
- Bộ đồng hồ thời gian thực
- 2 kênh điều chế độ rộng xung PWM có độ phân giải 8 bit
- 4 kênh điều chế độ rộng xung PWM có độ phân giải 2 đến 16 bit
- Bộ chuyển đổi ADC 10 bit
- Chuẩn giao tiếp TWI (I2C)
- Chuẩn truyền thông USART
- Giao diện SPI master/slave
Trang 31Mộ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 mức TTL Arduino Uno có thể giao tiếp với thiết
bị khác thông qua 2 chân này
- Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép xuất ra xung PWM với độ phân giải 8 bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite()
- 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: Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi bấm nút Reset, đè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 sử dụng, LED sẽ sáng
Hình 2.9 Các chân cắm của ArduinoUno R3
Trang 32Arduino UNO 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 Chân AREF trên board cho phep đưa vào điện áp chuẩn khi sử dụng các chân analog Tức là nếu cấp điện áp 2.5V vào chân này nó sẽ cho phép 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à 10 bit
2.2.1.2 Modul Arduino Internet Shield
Modul này có nhiệm vụ kết nối khối trung tâm với Internet Trung tâm của modul này là chip Internet Wiznet W5100 Chíp W5100 cung cơ chế hoạt động trên cả giao thức TCP và UDP Nó hỗ trợ tối đa 4 kết nối đồng thời Arduino Internet Shield sử dụng cổng ghép nối RJ45 tiêu chuẩn, có thể sử dụng năng lượng trực tiếp thông qua Power over Ethernet (PoE) Ngoài ra trên modul còn có khe gắn thẻ micro SD cho phép sử dụng để lưu file khi muốn chia sẻ chúng thông qua mạng hoặc chứa các tếp chương trình của Web Server Các mạch Arduino giao tiếp với W5100 và thẻ SD thông qua SPI bus (sử dụng các chân ICSP) Trên Arduino Mega là các chân 50, 51 và 52 Chân số 10 được sử dụng làm chân chọn chip cho W5100, chân số 4 chọn thẻ SD Các chân này
không được thiết lập làm các chân In-Out
Hình 2.10 Chip W5100 và modul Arduino Internet Shield
Trang 33Đặc điểm:
- Hoạt động ở điện áp 5V (cung cấp trực tiếp bởi mạch Arduino)
- 16KB bộ nhớ đệm
- Tốc độ: 10/100 Mbps
- Kết nối với Arduino qua cổng SPI
Arduino Internet Shield có sẵn các đèn báo tín hiệu :
- PWR: hiển thị trạng thái module (bật-tắt)
- LINK: hiển thị trạng thái mạng, nhấp nháy khi nhận hoặc gửi dữ liệu
- FULLD: hiển thị trạng thái song công (full duplex)
- 100M: hiển thị trạng thái kết nối mạng 100Mbps
- RX: nhấp nháy khi nhận được dữ liệu
- TX: nhấp nháy khi gửi dữ liệu
Hình 2.11 là sơ đồ ghép nối tín hiệu giữa vi điều khiển với chip W5100 bao gồm các chân tín hiệu chọn chí (CS), tín hiệu cho phép ghi (WR), cho phép đọc (RD), các tính hiệu địa chỉ (ADDR) và đường ghép bus dữ liệu (DATA)
Hình 2.12 cho thấy cấu trúc tổng thể các thành phần cũng như các giao diên ghép nối giữa W5100 với cổng kết nối mạng và ghép nối giữa W5100 với
vi
Hình 2.11 Các tín hiệu ghép nối giưa MCU với W5100 điều khiển và các cấu trúc tầng trên như chương trình Driver và ứng dụng Để thực hiện truyền thông với Internet, W5100 có cấu trúc lõi TCP/IP cứng gồm các giao thức truyền thông cơ bản của Internet (TCP/IP) và địa chỉ MAX
Trang 34Hình 2.12 Cấu trúc phân tầng và tổ chức bộ nhớ của W5100
Cấu trúc bộ nhớ của W5100 gồm các thanh ghi chung, các thanh ghi Socket, bộ nhớ Tx và bộ nhớ Rx
Thanh ghi Socket gọi là thanh ghi Sn với n =0, 1, 2, 3 tương ứng là Socket0, Socket1, Socket2, Socket3 Thanh ghi Sn gồm các thanh ghi sau:
Sn_MR: Thanh ghi chế độ Sn dùng để thiết lập tùy chọn socket hoặc kiều giao thức đối với mỗi gói tin
Thanh ghi Sn-CR: Thanh ghi lệnh Thanh ghi này dùng để khởi tao, đóng, thiết lập kết nối, truyền dữ liệu và nhận lệnh Sau khi thực hiện các lệnh giá trị của thanh ghi Sn-CR bị xóa về 0x00
Thanh ghi Sn-IR: Thanh ghi ngắt Thanh ghi này dùng để thông báo sự thiết lập và kết thúc kết nối, nhật dữ liệu và Timeout Thanh ghi Sn-IR bị xóa khi ghi vào nó giá trị 1
Thanh ghi trạng thái Sn-SR: Thanh ghi này thể hiện trạng thái của Socket n
Trang 352.2.2 Các cảm biến đầu vào
Các cảm biến đầu vào bao gồm các cảm biến nhiệt độ như LM35, 18B20, các cảm biến báo khí GAS, các cảm biến cảnh báo cháy qua nhiệt độ, cảm biến khói Đây là các cảm biến hiện rất thông dụng trên thị trường Việt Nam và giá thành rẻ Hiện nay đa số các cảm biến đều chế tạo sẵn dưới dạng modul và cho phép ghép nối với đơn vị xử lý theo kiểu số Bảng 2.2 liệt kê một số cảm biến phổ biến trên thị trường được sử dụng cho nhà thông minh
Bảng 2.2 Một số modul cảm biến thông dụng STT Cảm biến hoặc
modul cảm biến
Hình ảnh modul cảm biến
4 Modul ACS712 Cảm biến dòng điện Hall 20 A
5 Modul MQ-135 Cảm biến chất lượng không khí
8 Modul
LGAQS-HT01
Cảm biến 5 in 1: CO2, VOC, TVOC, độ ẩm, nhiệt độ
Trang 36 Cho phép chọn tín hiệu kích Relay thấp hoặc cao
Tiếp điểm đóng ngắt 220v -10 A hoặc 30 VDC- 10 A
Các Relay bố trí thành cách modul 2, 4, 8 hoặc 16 Relay ví dụ như hình 2.13
Hình 2.13 Các modul Relay 8, 16 rơ le
2.3 Thiết kế phần mềm cho hệ thống SHS2017
Phần mềm của hệ thống SHS2017 được phát triển trong môi trương IDE Arduino Phần mềm này được lưu trữ trên thẻ nhớ gắn với bo mạch Arduino Internet Shield ( do kích thước lớn) và nó được truy xuất thông qua trình duyệt Web Phần mềm gồm nhiều modul khác nhau bao gồm các hoạt động kết nối, thu thập dữ liệu, điều khiển, phát tín hiệu cảnh báo, …
- Thủ tục kết nối với máy chủ hoặc đám mây
- Thủ tục quét dữ liệu đầu vào
- Thủ tục cập nhật dữ liệu cho đầu ra và CSDL
- Thủ tục xử lý lệnh mới
- Thủ tục dừng hệ thống
Trang 372.3.2 Chương trình truyền thông của hệ thống SHS2017
2.3.2.1 Quá trình truyền thông của W5100
Hoạt động truyền thông của W5100 gồm 2 pha: Pha khởi tạo và truyền thông
Khởi tạo: Begin
Khởi động hệ thống SHS2017
Thiết lập các tham số mặc đinh cho hệ thống Kết nối máy chủ
Trang 38o Thiết lập cơ sở: sử dụng các thành ghi
Thanh ghi chế độ (MR)
Thanh ghi mặt nạ ngắt (IMR)
Thanh ghi giá trị thời gian (RTR)
Thanh ghi đếm (RCR)
o Thiết lập thông tin mạng: Sử dụng các thanh ghi sau:
Thanh ghi địa chỉ GateWay (GAR)
Thanh ghi địa chỉ phần cứng nguồn (SHAR)
Thanh ghi mặt nạ mạng con (SUBR)
Thanh ghi địa chỉ IP nguồn (SIPR)
o Thiết lập thông tin bộ nhớ Socket: Giai đoạn này thiết lập thông tin
bộ nhớ Socket Tx/Rx Địa chỉ cơ sở và địa chỉ mặt nạ của mỗi socket là cố định và được lưu giữ trong giai đoạn này Để cấp bộ nhớ cho mỗi Socket W5100 cho phép thực hiện thông qua các khối công việc sau:
Trong trường hợp gắn 2 K bộ nhớ cho mỗi Socket:
{
RMSR = 0x55; //Gán 2K bộ nhớ rx/ socket
gS0_RX_BASE = chip_base_address +
RX_memory_base_address(0x6000);
gS0_RX_MASK = 2K – 1 ; // 0x07FF, lấy địa chỉ offsetđể gán bộ nhớ
gS1_RX_MASK = 2K – 1 ;
Trường hợp gán 4K, 2K, 1K, 1K:
Trang 39{ RMSR = 0x06; // Gán 4K,2K,1K,1K cho bộ nhớ RX/ socket gS0_RX_BASE = chip_base_address +
RX_memory_base_address(0x6000);
gS0_RX_MASK = 4K – 1 ; // 0x0FFF, fLấy địa chỉ Offset của bộ
a) Chế độ Server: Lưu đồ thuật toán của chương trình làm việc trong chê sđộ này thể hiện như hình 2.15 Nó gồm các giai đoạn sau: