Hiện nay có rất nhiều ứng dụng đã đượcứng dụng mang tính thực tiễn cao kiểu Ngôi nhà thông minh, ổn định nhiệt độ trang trại…Vì vậy em chọn đề tài cho Đồ án tốt nghiệp của em là “Thiết
Tổng quan về Arduino
1.1.1 Giới thiệu chung về Arduino
Arduino là nền tảng lập trình dễ sử dụng, lý tưởng cho người mới bắt đầu, cho phép tạo ra các dự án điều khiển ánh sáng, âm thanh và chuyển động thông minh Khả năng ứng dụng đa dạng của Arduino bao gồm nhạc cụ, robot, điêu khắc ánh sáng, trò chơi, đồ nội thất tương tác và cả thời trang công nghệ cao.
Arduino phổ biến trong giáo dục toàn cầu, đặc biệt hữu ích cho nhà thiết kế và nghệ sĩ sáng tạo mà không cần kiến thức kỹ thuật sâu rộng Phần mềm Arduino thân thiện với người dùng, cung cấp nhiều ví dụ, giúp dễ dàng tiếp cận và sử dụng.
Arduino, với phần cứng thiết kế tinh tế nhưng dễ sử dụng, thu hút cả kỹ sư và người dùng ứng dụng nhúng nhờ khả năng phần cứng mạnh mẽ và phần mềm tiện dụng, hỗ trợ tối ưu quá trình hiện thực hóa ý tưởng.
Arduino nổi tiếng với phần cứng, nhưng cần phần mềm để lập trình Cả phần cứng và phần mềm tạo nên hệ thống Arduino hoàn chỉnh.
Arduino là nền tảng mã nguồn mở, cho phép tạo các dự án điều khiển vật lý với chi phí thấp nhờ các board mạch giá rẻ hoặc thiết kế tự do Cộng đồng Arduino toàn cầu, bao gồm diễn đàn và Wikimedia, hỗ trợ người dùng tích cực.
Phần mềm Arduino, gọi là sketches, được viết và biên dịch trên môi trường phát triển tích hợp (IDE) IDE cho phép tạo, chỉnh sửa code và upload (nạp) lên board Arduino để phần cứng thực thi.
Arduino sử dụng các board điều khiển để thực thi chương trình, tương tác với thế giới thực qua các cảm biến (chẳng hạn như cảm biến siêu âm, gia tốc kế, công tắc) và thiết bị truyền động (như đèn, motor, loa, màn hình).
Hầu hết các board Arduino sử dụng kết nối kiểu USB dùng để cấp nguồn và upload dữ liệu cho board Arduino.
Hình1.1 Board cơ bản Arduino Uno
Arduino Uno tích hợp hai vi điều khiển: ATmega8U2 xử lý kết nối USB, cho phép nạp chương trình và giao tiếp với các thiết bị USB; ATmega328 thực thi chương trình người dùng Hầu hết các board Arduino, bao gồm cả Arduino Uno, Arduino Fio, Arduino Nano và Arduino Mega, sử dụng chip FTDI để kết nối với máy tính.
2560 Với tùy vào ứng dụng có thể chọn các loại board nhỏ hoặc board hỗ trợ nhiều chân TX và RX như Arduino 2560.
1.1.2 Cấu trúc phần cứng a Thông số kỹ thuật
Arduino Uno sở hữu cổng USB, đèn nguồn, nút Reset, các chân giao tiếp (bao gồm chân digital, analog, PWM), LED chân 13, đèn báo truyền nhận nối tiếp, và giao tiếp I2C (SDA, SCL) Bo mạch tích hợp khả năng đọc tín hiệu số và tương tự.
- Điện áp đầu vào tới hạn 6-20V
- Chân vào ra số là 14 chân( trong đó có 6 chân băm xung PWM)
- Chân đầu vào tương tự có 6 chân
- Dòng DC vào ra trên chân là 40mA
- Dòng đầu ra ở chân 3.3V là 50mA
- Bộ nhớ Flash 32KB(ATMega328) trong đó 0.5KB sử dụng cho bootloader
Sơ đồ nguyên lý Arduino (Hình 1.3) sử dụng hai chip vi điều khiển: ATMega328 (chạy chương trình ứng dụng) và ATMega16U2 (kết nối USB, chứa bootloader nạp chương trình) Nguồn nuôi được cung cấp cho mạch.
Arduino hoạt động với nguồn 6-20V (khuyến nghị 7-12V) qua USB hoặc nguồn ngoài Nguồn cấp dưới 5V có thể gây bất ổn, trên 12V dễ làm nóng bộ chuyển đổi.
Chân VIN của Arduino cho phép cấp nguồn từ nguồn điện ngoài, thay vì nguồn 5V USB hoặc nguồn jack cắm riêng Cung cấp điện áp vào Arduino qua chân VIN.
Chân 5V trên bo mạch cung cấp điện cho vi điều khiển, các thành phần khác và thiết bị ngoại vi được kết nối.
Chân 3V3: Cung cấp nguồn cho các thiết bị cảm biến.
Chân GND : Chân nối đất c Chân giao tiếp đầu vào và đầu ra
Arduino sở hữu 14 chân tín hiệu, có thể cấu hình làm chân vào/ra dữ liệu cho thiết bị ngoại vi, hoạt động ở 5V với dòng tối đa 50mA/chân và điện trở kéo nội 20-50 kOhms (mặc định ngắt) Một số chân có chức năng đặc biệt.
Chân 0 (Rx) : Chân được dùng để nhận dữ liệu nối tiếp
Chân 1 (Tx) : Chân được dùng để truyền dữ liệu nối tiếp
Chân 2 và 3: Chân ngắt ngoài
Chân 3, 5, 6, 9, 10 và 11: Chân để điều chế độ rộng xung PWM
Chuẩn giao tiếp SPI: Sử dụng chân 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
Chuẩn giao tiếp I 2 C: Sử dụng chân đầu vào tương tự A4 (SDA) và A5 (SCL).
Chân Aref : Tham chiếu điện áp đầu vào analog.
1.1.3 Lập trình Arduino a Giới thiệu môi trường lập trình Để có môi trường lập trình Arduino thì bước đầu tiên các bạn phải có file.rar do nhà sản xuất Arduino cung cấp được download tại trang chủ theo link sau http://arduino.cc/en/Main/Software
Hình 1.4 Link download phần mềm Arduino.
Sau khi giải nén chạy Arduino.exe như sau:
Hình 1.5 Hình ảnh khi bật giao diện arduino.
Và đây là giao diện lập trình:
Hình 1.6 Giao diện lập trình Arduino. b Sử dụng môi trường lập trình
Khi muốn lập trình bạn phải khởi động giao diện lập trình trên giao diện có các chức năng được mô tả như sau:
Hình 1.7 Sử dụng giao diện lập trình.
Trong giao diện lập trình căn bản khi lập trình cần chú ý các bước:
Bước 1: Tạo file biên dịch mới
Bước 3: Lập trình code điều khiển
Bước 4: Biên dịch file để kiểm tra lỗi
Bước 5: Nạp chương trình vào Board.
Tổng quan về Xbee 802.15.4
- Cự ly truyền thông trong nhà lên tới 30m
- Cự ly truyền ngoài trời lên tới 90m
- Công suất truyền đi là 1mW(dBm)
- Tốc độ truyền dữ liệu RF là 250.000 bps
- Tốc độ dữ liệu giao tiếp nhận nối tiếp là 1200 bps-250 kps.
- Độ nhạy thu là -92dBm(1% tỷ lệ gói lỗi)
- Sử dụng dải tần 2.4 GHz
- Mạng hỗ trợ: Point to Point, Point to MultiPoint, peer to peer.
- Dải nhiệt độ hoạt động -40-85 độ C.
2 DOUT Output Đầu ra UART
3 DIN Input Đầu vào UART
4 D08 output Đầu ra chân số 8
5 Reset input Khởi tạo trạng thái của Xbee
6 PWM0/RSSI output Chân băm xung, chỉ số độ dài tín hiệu Rx
7 PWM1 output Đầu ra băm xung 1
9 DTR.SLEEP_RQ,DI8 input Điều khiển sleep và đầu ra số8
11 AD4.DI04 Cả hai Đầu tương tự4, hoặc vào ra số 4
12 CTS.DIO7 Cả hai Cờ điều khiển xóa khi truyền, vào ra số7
13 ON/SLEEP Output Chỉ số trạng thái module
14 VREF input Điện áp tham chiếu chân
Cả hai Chân kết hợp, tương tự 5 và vào ra số 5
16 RTS/ AD6 / DIO6 Cả hai Cờ yêu cầu gửi dữ liệu, tương tự 6 và vào ra số 6
17 AD3 / DIO3 Cả hai Tương tự 3 và vào ra số 3
18 AD2 / DIO2 Cả hai Tương tự 2 và vào ra số 2
19 AD1 / DIO1 Cả hai Tương tự 1 và vào ra số 1
20 AD0 / DIO0 Cả hai Tương tự 0 và vào ra số 0
1.2.2 Truyền thông Xbee a Truyền thông nối tiếp RF
Hình 1.20 Hoạt động truyền thông RF
Như hình trên các Module Xbee giao tiếp với vi điều khiển bởi các chân
DI nhận data, DO truyền data, các cờ báo truyền nhận CTS và RTS Dữ liệu ở đây cũng là dạng truyền thông nối tiếp truyền thống.
Hình 1.21 Khung truyền UART Khung truyền bao gồm 1 bit Start 8 bit data và một 1 stop. b Truyền thông kiểu API
Truyền thông API là giao diện lập trình ứng dụng được ứng dụng cho các module Xbeevới mục đích nâng cao khả năng truyền thông, giảm xác xuất lỗi
Module XBee sử dụng chuẩn API riêng, cho phép mở rộng khung dữ liệu tùy ý Dữ liệu truyền (pin 3) gồm khung dữ liệu RF và lệnh AT, dữ liệu nhận (pin 2) gồm khung dữ liệu RF và phản hồi lệnh.
Chế độ API cho phép Xbee hoạt động ở 3 chế độ:
AP=0 : đây là chế độ mặc định của Xbee( truyền thông nối tiếp bình thường)
AP=1 : Hoạt động ở chế độ API
AP=2 : Hoạt động ở chế độ API( với ký tự thoát).
Hệ thống tự động loại bỏ ký tự phân cách trong dữ liệu nhận được Dữ liệu bị lỗi hoặc checksum không khớp sẽ bị bỏ qua.
Hoạt động API ở chết độ 1(AP=1)
Khi chế độ API được cho phép thì khung dữ liệu được xác định như sau:
Hình 1.22 Cấu trúc khung API chế độ 1 Khung bao gồm 1 byte bắt đầu 0x7E, 2byte độ dài của khung dữ liệu , các byte dữ liệu và 1 byte checksum.
Chế độ API ở chế độ 2 (AP=2)
Khi hoạt động ở chế độ 2 với ký tự thoát thì khung API được xác định như sau:
Hình 1.23 Khung API ở chế độ 2
Truyền nhận dữ liệu UART cần đánh dấu ký tự thoát bằng cách chèn byte 0x7D trước ký tự đó và XOR với 0x20.
Ví dụ khung dữ liệu cần đánh dấu bao gồm:
Vì vậy khung dữ liệu trước lúc được đánh dấu có dạng như sau: 0x7E 0x00 0x02 0x23 0x11 0xCB
Sau khi đánh dấu nó sẽ trở về như sau: 0x7E 0x00 0x02 0x23 0x7D 0x31 0xCB vì 0x11 đã được đánh dấu bằng các XOR với 0x20.
Tính toán Byte Checksum như sau : lấy 0xFF- tất cả các byte dữ liệu trừ byte xác định khung và các byte độ dài. c Các kiểu API
Khung API có cấu trúc như sau:
Hình 1.24 Cấu trúc cụ thể khung API.
Khung API trong phần khung dữ liệu bao gồm có byte xác định API và dữ liệu.
Truyền thông với 64 bít địa chỉ
Giá trị xác định khung API là 0x00
Một khung RF sẽ gửi đi tới module RF tới module nhận.
Hình 1.25 API truyền 64 bít địa chỉ
Địa chỉ đích (byte 6-13) là 0x000000000000FFFF cho kiểu quảng bá, byte 14 tùy chọn (0x01: tắt ACK, 0x04: gửi tất cả PANID), còn lại là 0 Dữ liệu tối đa 100 byte.
Truyền thông với 16 bít địa chỉ
Giá trị xác định khung là 0x01
Một khung RF sẽ gửi đi tới module RF tới module nhận.
Hình 1.26 API truyền 16 bít địa chỉ
Byte 6-7 trong khung dữ liệu xác định địa chỉ đích (0xFFFF cho truyền bá) Byte 14 là tùy chọn: 0x01 tắt ACK, 0x04 gửi tới tất cả PAN ID, còn lại là 0 Khung dữ liệu hỗ trợ tối đa 100 byte.
Giá trị xác định của khung API là 0x89
Khi truyền thành công module sẽ gửi trạng thái như khung dưới đây.
Hình 1.27 Khung trạng thái truyền
Gói nhận 64 bít địa chỉ
Giá trị API là 0x80 khi Xbee nhận được dữ liệu sẽ gửi ra UART của Arduino một bản tin như sau:
Hình 1.28 Khung nhận 64 bít địa chỉ
Byte 5-12 địa chỉ của nơi truyền tới, byte 13 đây là chỉ số nhận độ nhạy thu của Xbee được đánh giá là dBm Byte 14 đây là tùy chọn với giá trị 0 dự trữ, giá trị 1 là địa chỉ broadcast, giá trị 2 PAN broadcast.
Gói nhận 16 bít địa chỉ
Giá trị là 0x81 khi Xbee nhận được gói data sẽ gửi ra UART của Arduino một bản tin như sau:
Hình 1.29 Khung nhận 16 bít địa chỉ
Byte 5-6 địa chỉ của nơi truyền tới, byte 7 đây là chỉ số nhận độ nhạy thu của Xbee được đánh giá là dBm Byte 14 đây là tùy chọn với giá trị 0 dự trữ, giá trị 1 là địa chỉ broadcast, giá trị 2 PAN broadcast.
Kết nối internet
Máy chủ web (web server) là máy tính chạy phần mềm web server; đôi khi thuật ngữ này cũng chỉ phần mềm đó Tất cả web server đều xử lý file *.htm và *.html, nhưng mỗi loại lại hỗ trợ các kiểu file riêng, ví dụ IIS của Microsoft hỗ trợ *.asp, *.aspx, còn Apache hỗ trợ *.php.
Máy chủ web (web server) là hệ thống lưu trữ thông tin website, sở hữu dung lượng lớn và tốc độ cao, đóng vai trò như một ngân hàng dữ liệu trực tuyến.
Web server sử dụng giao thức HTTP để truyền tải trang web đến máy khách thông qua internet HTTP được thiết kế để gửi file đến trình duyệt web và các ứng dụng khác.
Every web server possesses an IP address, or alternatively, a domain name Typing "http://www.abc.com" into a browser's address bar and pressing Enter sends a request to the server with the domain name www.abc.com This server then locates the webpage "index.htm" and transmits it to the user's browser.
Việc biến bất kỳ máy tính nào thành web server chỉ cần cài đặt phần mềm server và kết nối internet.
Máy tính gửi yêu cầu truy cập thông tin website đến web server Web server nhận yêu cầu và trả về thông tin cần thiết.
Phần mềm máy chủ web (Web Server Software) là một ứng dụng phần mềm cài đặt và chạy trên máy tính chủ, cho phép truy cập và chạy chương trình từ bất kỳ máy tính nào trên internet.
Phần mềm máy chủ web có khả năng tích hợp với cơ sở dữ liệu (CSDL), điều khiển kết nối và truy xuất thông tin từ CSDL, hiển thị trên trang web và truyền tải đến người dùng.
Máy chủ cần hoạt động liên tục 24/7/365 để cung cấp thông tin trực tuyến Vị trí đặt máy chủ ảnh hưởng trực tiếp đến chất lượng và tốc độ truyền dữ liệu Mô hình Client-Server là một cấu trúc quan trọng trong hoạt động này.
Hình 1.30 Mô hình client-server Trong mô hình này, chương trình ứng dụng được chia thành 2 thành phần:
Máy chủ (Server) là các quá trình cung cấp dịch vụ như: lưu trữ tập tin, in ấn, thư điện tử và web.
Một số quá trình khác có yêu cầu sử dụng các dịch vụ do các server cung cấp được gọi là các quá trình khách hàng hay Client.
Client và server giao tiếp bằng cách trao đổi thông điệp: client gửi yêu cầu (Request Message), server xử lý và trả về kết quả (Reply Message) nếu có Giao thức ứng dụng định dạng và ý nghĩa của các thông điệp này.
Hình 1.31 Quá trình truyền nhận client-server b Cách thức xử lý một trang web tĩnh
Trang tĩnh là file chữ dạng thô, nội dung được hiển thị trực tiếp từ web server lên trình duyệt khi có yêu cầu, chỉ thay đổi khi nhà phát triển can thiệp.
Hình 1.32 Xử lý web tĩnh đơn giản
Trình duyệt người dùng gửi yêu cầu đến web server Server xử lý và trả về trang web tĩnh Quá trình này bắt đầu từ việc người dùng nhập địa chỉ hoặc click liên kết.
Trình duyệt gửi yêu cầu HTTP đến web server để lấy file cần thiết Yêu cầu này, định dạng theo giao thức HTTP, chỉ định chính xác file mà trình duyệt muốn truy xuất.
Web server nhận HTTP Request, truy xuất trang web từ ổ đĩa và trả về HTML trong HTTP Response cho trình duyệt hiển thị.
Phân tích hệ thống
2.1.1 Tìm hiểu về ngôi nhà thông minh
Hình 2.1 Ngôi nhà thông minh
Ngôi nhà thông minh trong hình đáp ứng mọi nhu cầu của cuộc sống hiện đại, cung cấp trải nghiệm thoải mái tối đa với các tính năng như hệ thống an ninh, camera giám sát, điều khiển thiết bị, kết nối internet và quản lý từ xa.
Nhà thông minh sử dụng công nghệ vi điều khiển để tự động hóa và quản lý các thiết bị trong nhà, mang lại sự tiện nghi, an toàn và tiết kiệm năng lượng.
Nhà thông minh tiết kiệm điện năng, góp phần bảo vệ môi trường bằng cách giảm thiểu hiệu ứng nhà kính do sử dụng nhiên liệu hóa thạch quá mức trong sản xuất điện.
Nhà thông minh là sự kết hợp của:
Cảm biến chuyển động (hay Pir motion) tự động bật/tắt đèn khi phát hiện chuyển động của người, tiết kiệm năng lượng và tăng tính tiện lợi.
Cảm biến quang (photo quang) tự động điều chỉnh cường độ ánh sáng trong phòng dựa trên cường độ ánh sáng mặt trời, tối ưu hóa chiếu sáng và tiết kiệm năng lượng bằng cách giảm thiểu ánh sáng không cần thiết.
Cảm biến độ ẩm điều khiển nhiệt độ phòng, tác động đến điều hòa để tối ưu hóa nhiệt độ môi trường, tiết kiệm điện năng.
Thiết bị hẹn giờ giúp kiểm soát chính xác việc sử dụng thiết bị điện, tự động tắt/mở, tiết kiệm thời gian và công sức, đặc biệt hữu ích khi đi công tác xa.
Tự động hóa chiếu sáng sân vườn mang đến sự tiện lợi tối đa, giúp bạn dễ dàng kiểm soát đèn, không cần dậy sớm tắt đèn hay bật đèn vào ban đêm.
-Tưới nước cho cây trồng khi chúng ta đi xa chính xác tới từng giây tránh cho việc tưới tiêu quá mức , hoặc quên tưới làm chết cây.
-Thiết bị đèn quảng cáo được bật tắt đúng thời gian.
-Hệ thống bơm nước cho gia đình ở các khu vực hay bị mất nước được tự động hóa ngay cả khi chúng ta không có nhà.
-Hệ thống đèn ban công , sân thượng.
Sử dụng các giải pháp tiết kiệm năng lượng không chỉ mang lại sự tiện nghi và dễ dàng hơn mà còn giúp kiểm soát chi phí điện năng và bảo vệ môi trường.
Hệ thống giám sát an ninh toàn diện bao gồm camera Analog, IP, cảm biến chuyển động, còi báo động, cảm ứng từ cửa, đèn báo trộm/cháy, cùng thiết bị báo khói, nhiệt và rò rỉ gas.
Camera giám sát bảo vệ ngôi nhà bạn mọi lúc, mọi nơi, cho phép kiểm soát hoạt động từ xa, ngay cả khi bạn ở cách xa hàng nghìn cây số Tăng cường an ninh và sự an tâm tuyệt đối.
- Thiết bị cảm biến phát hiện chuyển động loại hồng ngoại và Rada
- Hồng ngoại thích hợp gắn nơi sân vườn
- Cảm biến Rada thích hợp gắn mọi nơi với khả năng xuyên thấu các vật liệu giúp giám sát chặt chẽ sự ra vào của mọi đối tượng.
- Còi báo động báo cho bạn biết khi có người lạ xâm nhập hay hỏa hạn
Cảm ứng từ gắn cửa thông minh bảo vệ gia đình bạn toàn diện, phát hiện sự xâm nhập trái phép và ngăn trẻ nhỏ tiếp cận khu vực nguy hiểm như bình gas, hóa chất.
- Đèn báo thông báo cho chủ nhà tình trạng nguy hiểm.
- Báo khói , báo nhiệt ,báo gas bảo vệ bạn và gia đình an toàn.
Lựa chọn cảm biến thông minh cần dựa trên mục đích sử dụng nhà ở, đảm bảo an toàn, tiện nghi và hiệu quả.
2.1.2 Yêu cầu và giải quyết vấn đề
Bài toán nghiên cứu quản lý nhà thông minh từ xa qua internet, cho phép chủ nhà giám sát và điều khiển thiết bị (cảm biến khí ga, khói, chuyển động) ngay cả khi vắng nhà, đảm bảo an ninh và sự yên tâm ở bất cứ đâu có kết nối internet.
Với yêu cầu đó thì em sẽ phải giải quyết như sau:
Lựa chọn phần cứng điều khiển cần đảm bảo tính tiện dụng, dễ lập trình, thiết kế đơn giản, tốc độ đáp ứng nhanh và đáp ứng đầy đủ yêu cầu Arduino, với độ ổn định cao và sử dụng chip AVR, là lựa chọn phù hợp nhờ khả năng tích hợp dễ dàng vào các hệ thống nhúng, đặc biệt là hệ thống nhà thông minh.
Thiết kế phần cứng
Hình 2.2 Mô hình hệ thống
Hệ thống sử dụng một máy chủ cố định truy cập qua internet Nút cảm biến kết nối internet bằng giao thức HTTP theo mô hình client-server, gửi dữ liệu về máy chủ bằng phương thức GET Quản lý hệ thống thực hiện thông qua giao diện web, kết nối đến cơ sở dữ liệu trên máy chủ Khả năng quản lý và điều khiển thiết bị từ xa được đảm bảo ở bất cứ nơi nào có internet.
2.2.2 Sơ đồ khối của nút cảm biến kết nối internet
Hình 2.3 Sơ đồ khối nút cảm biến
Arduino Mega2560 là bộ xử lý trung tâm, nhận dữ liệu từ cảm biến và truyền dữ liệu này lên server qua Arduino shield internet.
Arduino Mega2560, using an internet shield, connects to the internet, requests data from a server, and receives responses to control operations.
Khối Xbee cho phép truyền và nhận tín hiệu giữa các nút con trong mạng, hỗ trợ quản lý và thu thập dữ liệu từ nhiều nút thông qua lập trình điều khiển.
2.2.2 Sơ đồ nguyên lý nút cảm biến kết nối internet a Nguyên lý Xbee
Sơ đồ mạch (Hình 2.4) minh họa module Xbee kết nối với Arduino qua chân RX và TX, sử dụng nguồn 3.3V để điều khiển, tích hợp đèn LED báo trạng thái mạng.
Sơ đồ mạch Arduino (Hình 2.5) tích hợp cảm biến nhiệt độ, độ ẩm và dòng điện, kết nối lần lượt vào chân A4, A5, 10, 11, 12 để thu thập dữ liệu và truyền lên server.
Thiết kế phần mềm
2.3.1 Lưu đồ xử lý dữ liệu trên webserver
Bài viết hướng dẫn sử dụng dịch vụ 000webhost.com để đăng ký tên miền và hosting miễn phí, sau đó upload code PHP lên server để xây dựng website Server sẽ tự động kết nối và xử lý dữ liệu.
Hình 2.6 Lưu đồ thuật toán xử lý dữ liệu trên web Trong lưu đồ trên có hai phần cần lưu ý:
- Phần giao diện web kết nối vào server để lấy dữ liệu ra và hiển thị lên giao diên trang web Thực hiện bởi phương thức GET/do=view
- Phần request từ client là node cảm biến kết nối internet thực hiện bằng cách GET/do=updata&p=1&nhietdo…
Thuật toán kiểm tra nguồn kết nối: Nếu là phần cứng, lưu dữ liệu vào cơ sở dữ liệu; nếu là người dùng, lấy dữ liệu và hiển thị trên web.
2.3.2 Thiết kế cơ sở dữ liệu
Cơ sở dữ liệu đề tài được xây dựng trên 2 bảng :
Một bảng User chứa cơ sở dữ liệu của người dùng, gồm tên và password để đăng nhập:
Hình 2.7 Bảng CSDL User Đây là bảng chứa tên và password đăng nhập khi người dùng vào web để đăng nhập xem và quản trị thiết bị
Bảng cơ sở dữ liệu quản trị thiết bị (Hình 2.8) quản lý số phòng, nhiệt độ, độ ẩm, ánh sáng, chuyển động, dòng điện, khí ga và trạng thái thiết bị Dữ liệu được cập nhật trực tiếp vào cơ sở dữ liệu này khi có thay đổi.
2.3.3 Lưu đồ thuật toán nút kết nối internet a Lưu đồ thuật toán GET dữ liệu lên Web
Hình 2.9 Lưu đồ thuật toán kết nối server
Chương trình khởi tạo Xbee hoặc chế độ nhận API để đọc gói dữ liệu Nếu khung API là 0x81 (chế độ API của module Xbee), chương trình lấy dữ liệu và GET dữ liệu lên SERVER nếu ID khớp với nút mạng.
Sau khi kết nối thành công đến server, hệ thống đọc lại gói dữ liệu từ khung API Lưu đồ thuật toán mô tả chi tiết quá trình đọc dữ liệu từ server.
Hình 2.10 Lưu đồ đọc dữ liệu từ Server
Server ban đầu trả về phản hồi HTML chứa dữ liệu cần thiết Dữ liệu này được định dạng trên server, bắt đầu bằng “@” và kết thúc bằng […].
Để xử lý dữ liệu chính xác, hệ thống kiểm tra dữ liệu trả về từ server Dữ liệu hợp lệ bắt đầu bằng "@" và kết thúc bằng "$" Lưu đồ thuật toán mô tả quy trình điều khiển thiết bị.
Hình 2.11 Lưu đồ thuật toán xử lý thiết bị
Webserver trả về dữ liệu Dữ liệu được phân tích để xác định ID điều khiển Xbee được khởi tạo và truyền dữ liệu đến nút có ID tương ứng.
Sản phẩm
3.1.1 Sản phầm của đồ án
Trong sản phẩm đồ án của em có cả sản phầm phần cứng và sản phầm phần mềm:
Hình 3.1 Nút cảm biết kết nối internetNút cảm biến kết nối internet được cắm shield xbee để thu thập dữ liệu và truyền lên server.
Hình 3.2 Tổng quan hệ thống khi chưa ghép nối
Trong hệ thống ngoài nút cảm biến kết nối internet chúng ta còn có các nút thu thập nhiệt độ, nút cơ cấu chấp hành với các Relay từ.
Hình 3.3 Giao diện quản lý thiết bị trên Webside
Giao diện webserver hiển thị quản lý thiết bị các phòng, mỗi phòng tích hợp cảm biến (chuyển động, nhiệt độ, độ ẩm, ánh sáng) và điều khiển (quạt, đèn).
3.1.2 Hướng dẫn sử dụng sản phẩm
Hướng dẫn quản lý và điều khiển trên WEB
Hiển thị giá trị đọc được từ cảm biến ánh sáng, ở mỗi nút khác nhau sẽ khác nhau.
Hiển thị trạng thái của cảm biến chuyển động Có người thì đỏ không có người thì màu xanh.
Hiển thị giá trị nhiệt độ thu thập được từ cảm biến nhiệt độ
Hiển thị giá trị của độ ẩm thu thập được Điều khiển thiết bị, ở đây có 2 thiết bị
Hiển thị giá trị của cảm biến Gas và dòng điện
3.1.3 Xây dựng testbed truyền thông a Các bước chuẩn bị:
- Bước 1: Cấu hình cho Xbee như phụ lục 1.1.
- Bước 2 : Chuẩn bị các nút
Hình 3.4 Nút Sink Đây là nút thu thập dữ liệu từ các Xbee đồng thời kết nối tới internet.
Hình 3.5 Nút cơ cấu chấp hành
Nút cảm biến tích hợp đa chức năng (nhiệt độ, độ ẩm, ánh sáng, chuyển động, khí ga) điều khiển thiết bị 220V qua relay Ứng dụng được kiểm thử trên Testbed.
2 nút cơ cấu chấp hành.
Hình 3.6 Nút thu thập dữ liệuTrong bài sử dụng 2 nút, trên nút này sử dụng Arduino Fio và cảm biến nhiệt độ, cảm biến độ ẩm.
Bước 3: Chuẩn bị nguồn 12V, dây kết nối internet và PIN ( kèm theo). a Xây dựng kịch bản TEST
Bài test được thực hiện trong một phòng, các nút được bố trí hợp lý và cảm biến nhiệt độ đặt tại cửa ra vào.
Hình 3.7 Cảm biến chuyển động Cắm nguồn cho các thiết bị, sau đó triển khai đặt vị trí các nút
Khởi động giao diện web kiểm tra kết quả.
Hình 3.8 Kết quả hiển thị trên giao diệnTrên giao diện có thể điều khiển và xem dữ liệu từ các nút gửi về.
KẾT LUẬN
Điều khiển thiết bị qua internet ngày nay rất quan trọng, cho phép trao đổi thông tin hiệu quả mọi lúc, mọi nơi Xu hướng này là tất yếu nhờ sự phổ biến của công nghệ điện toán đám mây.
Chi phí sản xuất và giá thành cao là rào cản lớn cho việc nghiên cứu và ứng dụng công nghệ này Đồ án tốt nghiệp đã nghiên cứu và giải quyết một phần vấn đề điều khiển thiết bị qua mạng internet.
Hệ thống hiệu suất cao đòi hỏi server mạnh mẽ và phần cứng chất lượng cao để đáp ứng nhanh chóng các yêu cầu thông minh Triển khai thực tế hoàn toàn khả thi.