LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC THỰC HIỆN MẠNG CẢM BIẾN KHÔNG DÂY THU THẬP DỮ LIỆU VỀ ĐỘ RUNG, NHIỆT ĐỘ CỦA CÁC CÔNG TRÌNH XÂY DỰNG Sinh viên thực hiện Họ và tên sinh viên 1: Trần Lê Minh
Trang 1LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
THỰC HIỆN MẠNG CẢM BIẾN KHÔNG DÂY THU THẬP DỮ LIỆU VỀ ĐỘ RUNG, NHIỆT ĐỘ CỦA CÁC CÔNG TRÌNH XÂY DỰNG
Sinh viên thực hiện
Họ và tên sinh viên 1: Trần Lê Minh Nhựt
Trang 2“Thực hiện mạng cảm biến không dây thu thập dữ liệu về độ rung động, nhiệt độ của các công trình xây dựng” là đề tài thực hiện bởi hai sinh viên: Trần Lê Minh Nhựt
và Trương Văn Nhờ, ngành kỹ thuật máy tính, khoá K37, khoa Công Nghệ, Trường Đại
học Cần Thơ
Trong quá trình thực hiện đề tài, có thể còn nhiều thiếu sót do thời gian có hạn và kiến thức hạn chế nhưng tất cả nội dung trình bài trong quyển báo cáo này đều là kiến thức hiểu biết và là thành quả nghiên cứu của chúng tôi dưới sự hướng dẫn tận tình của thầy Trương Phong Tuyên
Các nội dung trong quyển báo cáo được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian công bố
Chúng tôi xin cam đoan rằng: các nội dung được trình bày trong quyển báo cáo Luận văn Tốt nghiệp này không phải là bản sao chép của bất kỳ công trình nào đã được thực hiện trước đây Nếu không đúng sự thật chúng tôi xin chịu mọi trách nhiệm trước nhà Trường
Cần Thơ, ngày…tháng…năm… Sinh viên thực hiện
Trần Lê Minh Nhựt Trương Văn Nhờ
Trang 3Trong quá trình học tập và sinh hoạt tại Trường Đại học Cần Thơ, đặc biệt là trong khoảng thời gian chúng em thực hiện Luận văn Tốt nghiệp, chúng em đã nhận được sự giúp đỡ tận tình về mọi mặt của quý thầy, cô giáo trong trường Nay chúng em xin chân thành gửi lời cảm ơn đến:
Trường Đại học Cần Thơ và Ban Giám Hiệu trường Nhờ Trường Đại học Cần Thơ
đã đào tạo cũng như cung cấp những điều kiện học tập tốt nhất cho chúng em trong suốt thời gian qua để chúng em có thể hoàn thành tốt khóa học
Chúng em xin chân thành cảm ơn đến toàn thể quý thầy cô Bộ môn Điện Tử -Viễn Thông, Khoa Công Nghệ, giúp đỡ nhóm học tập và nghiên cứu tại đây
Đặc biệt em xin gửi lời cảm ơn đến thầy Trương Phong Tuyên đã tận tình hướng dẫn và cung cấp kiến thức chuyên môn cũng như kinh nghiệm thực tế để chúng em có thể hoàn thành Luận văn Tốt nghiệp
Cuối cùng, chúng em cũng xin cảm ơn gia đình đã tích cực động viên, khuyến khích, tạo mọi điều kiện và trực tiếp hỗ trợ kinh phí, tinh thần để đề tài tốt nghiệp được hoàn thành đúng thời hạn
Xin chân thành cảm ơn!
Nhóm sinh viên thực hiện đề tài
Trần Lê Minh Nhựt Trương Văn Nhờ
Trang 41 Trương Văn Nhờ, MSSV: 1117999, Lớp: TC11Z5A1
2 Trần Lê Minh Nhựt , MSSV: 1118001, Lớp: TC11Z5A1
Đề tài:
THỰC HIỆN MẠNG CẢM BIẾN KHÔNG DÂY THU THẬP DỮ LIỆU VỀ
ĐỘ RUNG ĐỘNG, NHIỆT ĐỘ CỦA CÁC CÔNG TRÌNH XÂY DỰNG
Luận văn đã nộp và báo cáo tại Hội đồng chấm bảo vệ Luận văn tốt nghiệp Đại học Cần Thơ ngành Điện tử Truyền thông/ Kỹ thuật máy tính, Bộ môn Điện tử Viễn thông vào ngày … tháng … năm … (Quyết định số: /QĐ-CN ngày … tháng … năm … của trưởng khoa Công Nghệ)
Kết quả đánh giá: _
Chữ ký của các thành viên Hội đồng:
Thành viên hội đồng 1 (CBHD): ThS Trương Phong Tuyên
Thành viên hội đồng 2: ThS Trần Hữu Danh
Thành viên hội đồng 3: ThS Trần Thanh Quang
Trang 5DANH MỤC HÌNH ẢNH 7
DANH MỤC BẢNG 8
KÍ HIỆU VÀ VIẾT TẮT 9
TÓM TẮT 9
CHƯƠNG 1: TỔNG QUAN 1
ĐẶT VẤN ĐỀ 1
LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ 1
PHẠM VI CỦA ĐỀ TÀI 2
PHƯƠNG PHÁP NGHIÊN CỨU 2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 3
GIỚI THIỆU CHUNG VỀ MẠNG CẢM BIẾN KHÔNG DÂY 3
2.1.1 Khái niệm 3
2.1.2 Cấu trúc mạng cảm biến không dây 3
2.1.3 Kiến trúc giao thức của mạng cảm biến không dây 4
2.1.4 Ứng dụng của mạng cảm biến không dây 4
2.1.5 Khó khăn trong mạng cảm biến không dây 7
GIỚI THIỆU CHUẨN GIAO TIẾP SPI 8
GIỚI THIỆU KHÁI QUÁT VỀ NGÔN NGỮ LẬP TRÌNH WEB 10
2.3.1 Ngôn ngữ HTML 11
2.3.2 Ngôn ngữ PHP 11
2.3.3 Ngôn ngữ Javascript 12
2.3.4 Google Apps Script (GAS) 12
SƠ LƯỢT VỀ NGÔN NGỮ LẬP TRÌNH C/C++ 13
Trang 62.4.2 Ngôn ngữ C++ 14
GIỚI THIỆU KHÁI QUÁT CÁC DỊCH VỤ CỦA GOOGLE 14
2.5.1 Khái quát về Google Drive 14
2.5.2 Giới thiệu khái quát Google Spreadsheet 15
2.5.3 Giới thiệu khái quát về Google Charts API 15
2.5.4 Giới thiệu khái quát về Google Maps API 17
GIỚI THIỆU KHÁI QUÁT GIAO THỨC HTTP/HTTPS 17
2.6.1 Giao thức HTTP 17
2.6.2 Giao thức HTTPS 18
GIỚI THIỆU CÁC LINH KIỆN SỬ DỤNG TRONG ĐỀ TÀI 19
2.7.1 Board Arduino mega 2560 R3 19
2.7.2 Board Arduino Ethernet Shield 20
2.7.3 Giới thiệu khái quát module NRF24L01 20
2.7.4 Cảm biến độ rung động ADXL001 23
2.7.5 Cảm biến nhiệt độ và độ ẩm 24
CHƯƠNG 3: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 25
TỔNG QUAN HỆ THỐNG 25
KIẾN TRÚC HỆ THỐNG 26
THIẾT KẾ PHẦN CỨNG 26
3.3.1 Khối nút cảm biến 26
3.3.2 Khối nút quản lý trung tâm 28
THIẾT KẾ PHẦN MỀM 28
3.4.1 Đặt vấn đề 28
3.4.2 Phương thức hoạt động 29
3.4.3 Mô hình upload dữ liệu lên Web 31
Trang 7TÀI LIỆU THAM KHẢO 37
DANH MỤC HÌNH ẢNH Hình 2.1 Ứng dụng mạng cảm biến trong quân đội 5
Hình 2.2 Mạng cảm biến cảnh báo cháy rừng 5
Hình 2.3 Khảo sát sức khỏe công trình cầu 6
Hình 2.4 Ứng dụng trong chăm sóc sức khỏe 7
Hình 2.5 Ứng dụng nhà thông minh 7
Hình 2.6 Giao diện SPI 9
Hình 2.7 Truyền dữ liệu SPI 9
Hình 2.8 Sơ đồ chân ICSP trên Arduino 10
Hình 2.9 Sơ đồ kết nối với chân SPI trên Arduino 10
Hình 2.10 Ví dụ minh họa biểu đồ thông qua URL 16
Hình 2.11 Một đoạn code demo việc cập nhật biểu đồ khi CSDL thay đổi 16
Hình 2.12 Mô hình Clien-Server 17
Hình 2.13 Ví dụ link truy cập HTTPS 18
Hình 2.14 Board Arduino Mega 2560 R3 19
Hình 2.16 Board Arduino Ethernet Shield 20
Hình 2.17 Module nRF24L01 và sơ đồ chân nRF24L01 22
Hình 2.18 Enhanced ShockBurst™ packet with payload (0-32 bytes) 22
Hình 2.19 Hình ảnh về ADXL001 23
Hình 2.20 DHT11 và ứng dụng tiêu biểu 24
Hình 3.1 Mô hình tổng quan của hệ thống 25
Trang 8Hình 3.3 Mô hình của nút cảm biến 26
Hình 3.4 Nút cảm biến thực tế 27
Hình 3.5 Mô hình sử dụng năng lượng mặt trời 27
Hình 3.6 Sơ đồ khối nút quản lý trung tâm 28
Hình 3.7 Sơ đồ khối nút xử lý trung tâm thực tế 28
Hình 3.8 Lưu đồ giải thuật của chương trình tại nút cảm biến 29
Hình 3.9 Lưu đồ giải thuật của chương trình tại nút quản lý trung tâm 30
Hình 3.10 Google Apps Script và các ứng dụng web trên Google 31
Hình 3.11 Phương pháp nhập dữ liệu lên Google Spreadsheet 31
Hình 3.12 Mô hình upload dữ liệu lên web 32
Hình 3.13 Phần cứng tại nút cảm biến và nút quản lý trung tâm 33
Hình 3.14 Dữ liệu từ mạng cảm biến được lưu trên Google Spreadsheet 33
Hình 3.15 Biểu đồ thể hiện tại các nút cảm biến 34
DANH MỤC BẢNG Bảng 2.1 Sơ đồ chức năng mỗi chân module nRF24L01 22
Bảng 2.2 Sơ đồ chân ADXL001 23
Bảng 2.3 Bảng đánh giá mức độ nghiêm trọng của độ rung động 34
Trang 9HTML – HyperText Markup Language
HTTP – HyperText Tranfer Protocol
HTTPS – Hypertext Transfer Protocol Secure
MCU – Micro Controller Unit
MISO – Master Input Slave Ouput
MOSI – Master Ouput Slave Input
PHP – Hypertext Preprocessor
SCK – Serial Clock
SHMS – Structural Health Monitoring System
SPI – Serial Peripheral Interface
SS – Slave Select
WSN – Wireless Sensor Network
Trang 10TÓM TẮT
Hệ thống quan trắc công trình xây dựng (SHMS) bắt đầu được đưa vào ứng dụng
và phát triển trên thế giới trong những năm gần đây Phần lớn các công tình cầu lớn trên thế giới đều lắp đặt những hệ thống quan trắc khác nhau nhằm liên tục theo dõi và thu thập dữ liệu trong suốt quá trình hoạt động của cầu Từ những vấn đề trên, nhóm chúng tôi thực hiện đề tài “Thực hiện mạng cảm biến không dây thu thập dữ liệu về độ rung động, nhiệt độ của các công trình xây dựng” để làm đề tài tốt nghiệp cho mình Mục tiêu của đề tài là sử dụng mạng cảm biến không dây dựa trên công nghệ nRF24L01
và kit phát triển Arduino để thu thập dữ liệu về độ rung động, nhiệt độ, của công trình cầu Bên cạnh đó hệ thống này có khả năng lưu trữ dữ liệu trên điện toán đám mây của Google Drive và cung cấp giao diện Web để người dùng xem dữ liệu dễ dàng Qua đó
số liệu mà hệ thống thu thập được sẽ phục vụ cho công tác quản lý, vận hành và khai thác công trình cầu một cách hiệu quả
Từ khóa: quan trắc, SHMS, mạng cảm biến không dây, nRF24L01, Arduino, điện toán đám mây
ABSTRACT
Structural Health Monitoring System (SHMS) has been applied and developed in recent years Most of the major bridge in the world, especialy cable-stayed bridge, are installing by the Structural Health Monitoring Systems to continuously monitoring and gathering datas during the operation time Therefore, our group to implement the project "Implementing wireless sensor networks to collect data on vibration, temperature of the construction works" to do for themselves graduation thesis The objective of this project is to use the wireless sensor networks based on technology nRF24L01 and Arduino development kit to gathering data on vibration, temperature, humidity of bridge works Besides that this system is capable of storing data in cloud computing of Google Drive and provides a Web interface for users to view data easily Through that data collection system that will cater to management work, operation and exploitation of effective bridge works
Keywords: Monitoring, SHMS, Wireless sensor network, nRF24L01, Arduino, cloud computing
Trang 11CHƯƠNG 1: TỔNG QUAN
Chương này trình bày các vấn đề:
Đặt vấn đề:” Bối cảnh xuất hiện của đề tài”
Để khắc phục, mạng cảm biến không dây đã được phát triển để thu thập và ghi dữ liệu của các công trình xây dựng trong thời gian dài Module nRF24L01 của hãng Nordic’s là board mạch thiết kế cho giải pháp truyền dữ liệu không dây Để sử dụng được cần ít nhất 2 module giao tiếp với nhau, tuy nhiên module chỉ hoạt động ở điện thế thấp
Với sự phát triển của nhiều công nghệ khác nhau trong các lĩnh vực hệ thống nhúng, mạng cảm biến không dây, hệ thống điều khiển, tự động hóa trong công nghệ của Internet of Thing (IoT) Các thiết bị được lắp đặt thông qua hệ thống máy tính hoạt động trong cơ sở hạ tầng của mạng Internet gửi lên điện toán đám mây, giúp cho dễ dàng thu thập dữ liệu ở các địa điểm cách xa nhau
Từ những vấn đề trên, chúng ta cần một hệ thống có thể giám sát liên tục các đại lượng vật lý trong suốt quá trình hoạt động và khai thác của cầu
LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Ngày nay, mạng cảm biến không dây rất phổ biến trên thế giới và nó được ứng dụng trong nhiều lĩnh vực khác nhau nhằm cải thiện tối ưu khả năng truyền dữ liệu Ứng dụng mạng cảm biến không dây vào việc giám sát sức khỏe công trình xây dựng
là một lĩnh vực rất quan trọng được nhiều nước quan tâm
Sử dụng mạng cảm biến không dây để thu thập dữ liệu vẫn còn khá mới đối với nước ta, nhưng đã được ứng dụng trong vài năm gần đây ở một số nước phát triển
Trang 12Một số đề tài có liên quan đến giám sát sức khỏe công trình cầu:
“Vibration testing of a steel girder bridge using cabled and wireless sensors” của Zhu, D., Wang, Y and Brownjohn, J, năm 2011,Frontiers of Architecture and Civil Engineering in China
“Sensors and bridge monitoring system” của Zhishen Wu, Koichi Yokoyama, Department of Urban and Civil Engineering, Ibaraki University, Japan
“Long term structural health monitoring system for cable stayed bridge in Vietnam” của Lương Minh Chính, Transportation Department, Faculty of Civil Engineering, Hanoi Water Resourse University, 2013
“Hệ thống khám sức khỏe cho cầu” của GS.TS Ngô Kiều Nhi, Trung tâm Nghiên cứu công nghệ và thiết bị công nghiệp Trường ĐH Bách khoa TP.HCM
PHẠM VI CỦA ĐỀ TÀI
Đề tài nghiên cứu nhằm mục đích tạo ra một hệ thống để giám sát liên tục các đại lượng vật lý của công trình cầu Hệ thống sử dụng một số loại cảm biến kết hợp với board mạch Arduino và module nRF24L01 để thu thập và truyền dữ liệu về độ rung, nhiệt độ Dữ liệu thu được sẽ được cập nhật trực tiếp và lưu trữ trên Google Drive
PHƯƠNG PHÁP NGHIÊN CỨU
Để tiến hành thực hiện đề tài nhóm tiến hành phương pháp nghiên cứu lý thuyết
và thực nghiệm (thực tiễn)
Phương pháp nghiên cứu lý thuyết: Tiến hành nghiên cứu các thiết bị phần cứng, ngôn ngữ lập trình cho phần mềm trên mạng internet, tham khảo tài liệu của giáo viên hướng dẫn gửi, ngoài ra còn tìm kiếm các tài liệu liên quan trên sách báo, tài liệu nước ngoài, tài liệu trên internet
Phương pháp nghiên cứu thực tiễn: Chúng tôi tiến hành chia làm hai công việc phải làm đầu tiên, thứ nhất thiết kế về phần cứng, thứ hai thiết kế phần mềm Qua quá trình tìm hiểu lý thuyết về phần cứng chúng tôi tiến hành viết chương trình giao tiếp giữa Arduino với module nRF24L01 và module cảm biến, kiểm tra chạy trên máy ảo bằng phần mềm Arduino sẵn có, hiển thị trên máy tính Về phần mềm chúng tôi sử dụng các dịch vụ web, chủ yếu là các dịch vụ trên nền tảng điện toán đám mây của Google
để làm cơ sở dữ liệu lưu trữ trên web
Trang 13CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Chương này trình bày các vấn đề:
Giới thiệu chung về mạng cảm biến không dây
Giới thiệu về chuẩn giao tiếp
Giới thiệu khái quát về ngôn ngữ lập trình web
Giới thiệu khái quát về ngôn ngữ lập C/C++
Giới thiệu khái quát về dịch vụ của Google
Giới thiệu khái quát về giao thức http/https
Giới thiệu các linh kiện sử dụng trong đề tài
GIỚI THIỆU CHUNG VỀ MẠNG CẢM BIẾN KHÔNG DÂY
2.1.1 Khái niệm
Mạng cảm biến không dây (WSN) được xây dựng bởi các nút mạng, trong đó các nút mạng nối kết với nhau bằng truyền không dây (sóng vô tuyến) Mạng cảm biến sử dụng các thiết bị nhỏ gọn, giá thành thấp, có sẵn nguồn năng lượng và có khả năng tự phân bố sắp xếp Mỗi nút bao gồm các bộ cảm biến, một bộ xử lý, bộ thu phát, tại mỗi nút mạng chúng có thể hoạt động độc lập trong các môi trường khác nhau như: nhiệt
độ, độ ẩm, áp suất, ánh sáng Ngoài ra mạng cảm biến không dây còn hạn chế được sự nguy hiểm cho con người trong môi trường khắc nghiệt (môi trường có độc tính hay nhiệt độ cao, áp suất cao )
2.1.2 Cấu trúc mạng cảm biến không dây
Cấu trúc mạng cảm biến không dây cần thiết kế sao cho sử dụng có hiệu quả nguồn tài nguyên hạn chế của mạng, khắc phục và kéo dài thời gian sống của mạng Vì vậy thiết kế cấu trúc mạng cần phải sử dụng một số cơ chế sau:
Giao tiếp không dây: Khi giao tiếp không dây là kỹ thuật chính, thì giao tiếp trực tiếp giữa hai nút có nhiều hạn chế do khoảng cách hay các vật cản Đặt biệt khi nút phát và nút thu đặt cách xa nhau cần phải có công suất phát lớn Vì vậy cần có một nút trung gian làm nút chuyễn tiếp để giảm công suất tổng thể
Hoạt động năng lượng hiệu quả: Để hỗ trợ kéo dài thời gian sống của toàn mạng, hoạt động năng lượng hiệu quả là kỹ thuật quan trọng trong mạng cảm biến không dây
Trang 14 Tự động cấu hình: Mạng cảm biến không dây cần phải cấu hình các thông
số một cách tự động Như các nút có thể xác định vị trí địa lý của nó thông qua các nút khác
2.1.3 Kiến trúc giao thức của mạng cảm biến không dây
Kiến trúc giao thức này kết hợp giữa công suất và chọn đường, kết hợp số liệu với các giao thức mạng, sử dụng công suất hiệu quả với môi trường vô tuyến và sự tượng tác giữa các nút cảm biến Kiến trúc giao thức bao gồm lớp vật lý, lớp liên kết dữ liệu, lớp mạng, lớp truyền tải, lớp ứng dụng:
Lớp ứng dụng: Tùy thuộc vào từng nhiệm vụ của mạng cảm biến mà các phần mềm ứng dụng khác nhau được xây dựng và sử dụng trong lớp ứng dụng
Lớp vận chuyển: Lớp truyền tải giúp duy trì luồng số liệu nếu ứng dụng mạng cảm biến yêu cầu Lớp truyền tải đặc biệt cần khi mạng cảm biến kết nối với mạng bên ngoài, hay kết nối với người dùng qua internet
Lớp mạng: Lớp mạng quan tâm đến việc định tuyến dữ liệu được cung cấp bởi lớp truyền tải Việc định tuyến trong mạng cảm biến phải đối mặt với rất nhiều thách thức như mật độ các nút dày đặc, hạn chế về năng lượng
Lớp kết nối dữ liệu: Lớp kết nối dữ liệu chịu trách nhiệm cho việc ghép các luồng dữ liệu, dò khung dữ liệu, điều khiển lỗi và truy nhập môi trường
Lớp vật lý: Lớp vật lý chịu trách nhiệm lựa chọn tần số, phát tần số sóng mang, điều chế và tách sóng
2.1.4 Ứng dụng của mạng cảm biến không dây
Mạng cảm biến không dây ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau của cuộc sống:
Ứng dụng trong quân sự và an ninh quốc gia
Giám sát các lực lượng, trang thiết bị và đạn dược: các lãnh đạo, sĩ quan sẽ theo dõi liên tục trạng thái lực lượng quân đội, điều kiện và sự có sẵn của các thiết bị và đạn dược trong chiến trường bằng việc sử dụng mạng cảm biến Đánh giá được sự nguy hiểm của chiến trường: trước và sau khi tấn công mạng cảm biến có thể được triển khai ở những vùng mục tiêu để nắm được mức độ nguy hiểm của chiến trường
Trang 15 Giám sát chiến trường
Bảo vệ an ninh cho các công trình trọng yếu
Thông tin, giám sát, điều khiển, theo dõi mục tiêu
Phát hiện phóng xạ hạt nhân
Hệ thống radars
Ứng dụng trong bảo vệ môi trường
Bằng việc phân tán các nút cảm biến trong rừng, một mạng cảm biến được tạo nên một cách tự phát Mỗi nút cảm biến có thể thu thập nhiều thông tin khác nhau liên quan đến cháy như nhiệt độ, khói Các dữ liệu thu thập được truyền tới trung tâm điều khiển để giám sát, phân tích, phát hiện và cảnh báo cháy sớm hơn ngăn chặn thảm họa cháy rừng
Phát hiện hoạt động núi lửa
Giám sát cháy rừng
Hình 2.2 Mạng cảm biến cảnh báo cháy rừng
Hình 2.1 Ứng dụng mạng cảm biến trong quân đội
Trang 16 Giám sát dịch bệnh
Sử dụng hiệu quả tài nguyên thiên nhiên
Ứng dụng trong công nghiệp
Trong lĩnh vực quản lý kinh doanh: giải phóng công việc bảo quản
và lưu giữ hàng hóa Cảm biến có thể được dùng để đo nhiệt độ và
độ ẩm Vào ban đêm chúng được đặt ở chế độ chống trộm Điều này đặt biệt có ích cho việc bảo vệ hàng hóa trong những khu vực lớn
Quản lý cầu đường: Những nút cảm biến này cũng có thể ứng dụng trong quản lý cầu đường Mỗi một công trình cầu có nhiều nút mạng trong mạng cảm biến và có thể ghi nhớ thông tin của nó một cách xác thực Việc liên lạc qua khoảng cách xa hơn có thể thực hiện mạng cảm biến không dây rất phổ biến hiện nay
Quản lý kiến trúc và xây dựng
Điều khiển nhiệt độ
Quản lý tải trong tiêu thụ điện năng
Ứng dụng trong y học
Một vài ứng dụng về sức khỏe đối với mạng cảm biến là giám sát bệnh nhân, các triệu chứng, quản lý thuốc trong bệnh viện, giám sát sự chuyển động và xử lý bên trong của côn trùng hoặc các động vật nhỏ khác, theo dõi và kiểm tra bác sĩ và bệnh nhân trong bệnh viện
Cảm biến gắn trực tiếp lên cơ thể người
Chăm sóc sức khỏe
Phân tích sức khỏe cá nhân
Hình 2.3 Khảo sát sức khỏe công trình cầu
Trang 17 Giám sát bệnh nhân, nhân viên y tế
Ứng dụng trong gia đình
Trong lĩnh vực tự động hóa nhà ở, các nút cảm biến được đặt ở các phòng
để đo nhiệt độ, phát hiện những dịch chuyển trong phòng và thông báo
thông tin này đến thiết bị báo động trong trường hợp không có ở nhà
Điều khiển từ xa các thiết bị trong gia đình
Hệ thống tự động trong gia đình, giám sát và cảnh báo an ninh
2.1.5 Khó khăn trong mạng cảm biến không dây
Vì mạng cảm biến không dây có những ứng dụng vô cùng to lớn trong cuộc sống, nhưng trong thực tế cũng có một vài hạn chế của mạng cảm biến như:
Bị giới hạn năng lượng
Bị giới hạn về dãi thông
Bị giới hạn về phần cứng
Kết nối mạng không ổn định
Hình 2.4 Ứng dụng trong chăm sóc sức khỏe
Hình 2.5 Ứng dụng nhà thông minh
Trang 18GIỚI THIỆU CHUẨN GIAO TIẾP SPI
SPI (Serial Peripheral Interface) là một giao thức dữ liệu chuẩn đồng bộ nối tiếp được sử dụng bởi vi điều khiển để giao tiếp với một hoặc nhiều thiết bị ngoại vi một cách nhanh chóng trên một khoảng cách ngắn Nó cũng có thể sử dụng giao tiếp giữa hai vi điều khiển để truyền dữ liệu ở chế độ song công toàn phần full-duplex (hai chiều, hai phía)
Chuẩn truyền thông SPI là chuẩn truyền thông nối tiếp tốc độ cao, đây là kiểu truyền thông Master-Slave, trong đó có một chip Master điều phối quá trình truyền thông và các chip Slaves được điều khiển bởi Master vì thế truyền thông chỉ xảy ra giữa Master và Slave SPI đôi khi được gọi là chuẩn chuyền thông “4 dây” vì có 4 đường giao tiếp trong chuẩn này đó là SCK (Serial Clock), MISO (Master Input Slave Ouput), MOSI (Master Ouput Slave Input) và SS (Slave Select)
SCK: Xung giữ nhịp cho giao tiếp SPI, vì SPI là chuẩn truyền đồng bộ nên cần
một đường giữ nhịp, mỗi nhịp trên chân SCK báo một bit dữ liệu đến hoặc đi Đây là điểm khác biệt với truyền thông không đồng bộ mà chúng ta đã biết trrong chuẩn UART
Sự tồn tại của chân SCK giúp quá trình truyền ít bị lỗi và vì thế tốc độ truyền của SPI
có thể đạt rất cao Xung nhịp chỉ được tạo ra bởi chip Master
MISO-Master Input / Slave Output: nếu là chip Master thì đây là đường Input
còn nếu là chip Slave thì MISO lại là Output MISO của Master và các Slaves được nối tiếp với nhau
SS-Slave Select: SS là đường chọn Slave cần giao tiếp, trên các chip Slave đường
SS sẽ ở mức cao khi không làm việc Nếu chip Master kéo đường SS của một Slave nào
đó xuống mức thấp thì việc giao tiếp sẽ xảy ra giữa Master và Slave đó Chỉ có một đường SS trên mỗi Slave nhưng có thể có nhiều đường điều khiển SS trên Master, tùy thuộc vào thiết kế của người dùng
Trang 19
Hoạt động: Mỗi chip Master hay Slave có một thanh ghi dữ liệu 8 bit Cứ mỗi
xung nhịp do Master tạo ra trên đường giữ nhịp SCK, một bit trong thanh ghi dữ liệu của Master được truyền qua Slave trên đường MOSI Do 2 gói dữ liệu trên 2 chip được gởi qua lại đồng thời nên quá trình truyền dữ liệu này được gọi là “song công”
Với tính năng truyền nhận của chuẩn SPI nên việc giao tiếp giữa Arduino với Enthernet Shield làm mạch điều khiển trung tâm có tốc độ truyền nhận nhanh hơn Trong đó Arduino mega 2560, Arduino Uno R3 điều có thể giao tiếp với Enthernet Shield
Ngoài ra MISO, MOSI, SCK có sẵn một vị trí phù hợp trên ICSP Các chân điều khiển trên ICSP đều được sử dụng giao tiếp với Shield Các chân này kết nối với Shield, các chân ICSP đều được hổ trợ của chuẩn SPI
Hình 2.6 Giao diện SPI
Hình 2.7 Truyền dữ liệu SPI
Trang 20GIỚI THIỆU KHÁI QUÁT VỀ NGÔN NGỮ LẬP TRÌNH WEB
Ngôn ngữ lập trình là một tập con của ngôn ngữ máy tính Đây là một dạng ngôn ngữ được thiết kế và chuẩn hóa để truyền các chỉ thị cho máy tính (hoặc máy khác có
bộ xử lý) Ngôn ngữ lập trình có thể được dùng để tạo ra các chương trình nhằm mục đích điều khiển máy tính hoặc mô tả các thuật toán để người dùng đọc hiểu
Trong đề tài có sử dụng một số ngôn ngữ web như: HTML, PHP, Javacript, Google Apps Script để thực hiện việc lưu trữ dữ liệu trên web, giúp cho người dùng dựa vào
số liệu để tính toán Các ngôn ngữ trên có những ưu điểm thuận lợi như:
Được mọi người sử dụng rất nhiều
Lõi ngôn ngữ đơn giản, cùng với hổ trợ chức năng trong suốt quá trình sử dụng thư viện
Cú pháp đơn giản, dễ tìm hiểu, thân thiện với người dùng
Dễ học khi biết HTML và C
Kết nối được nhiều ngôn ngữ trên một tập tin web
Hình 2.8 Sơ đồ chân ICSP trên Arduino
Hình 2.9 Sơ đồ kết nối với chân SPI trên Arduino
Trang 212.3.1 Ngôn ngữ HTML
HTML (HyperText Markup Language) là ngôn ngữ được thiết kế để tạo nên các
trang web với các mẫu thông tin được trình bày trên World Wide Web (www) HTML được định nghĩa như là một ứng dụng đơn giản của SGML (một hệ thống tổ chức và gắn thẻ yếu tố của một tài liệu) và được sử dụng trong các tổ chức cần đến các yêu cầu xuất bản phức tạp HTML đã trở thành một chuẩn Internet do tổ chức World Wide Web Consortium (W3C) duy trì
Phiên bản mới nhất của HTML là HTML 4.01 (1999) Sau đó, các nhà phát triển thay thế nó bằng XHTML Hiện nay, HTML đang được phát triển tiếp với phiên bản HTML5 Với phiên bản mới HTML5 này sẽ thay đổi nhiều so với phiên bản trước Ngôn ngữ HTML dùng các tag hoặc các mã lệnh để chỉ cho các trình duyệt (Web browsers) cách hiển thị các thành phần của trang như text và graghics, hầu hết các Web browser, đặc biệt là Microsoft Internet Explorer, Chrome, Firefox và nhận biết các tag của HTML vượt xa chuẩn HTML đặt ra Ngoài ra HTML còn sử dụng thẻ để giải thích nội dung của trang web Một trang HTML có phầm mở rộng là *.html
2.3.2 Ngôn ngữ PHP
PHP (Hypertext Preprocessor) được phát triển từ một sản phẩm có tên là PHP/FI
PHP/FI do Rasmus Lerdorf tạo ra 1994, ban đầu được xem như một tập con đơn giản theo dõi tình hình truy cập đến sơ yếu lý lịch của ông trên mạng Ông đã đặt tên cho mã kịch bản là ‘Personal Home Page Tools’ Khi cần đến chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để có thể truy vấn tới các cơ sở dữ liệu và giúp cho người sử dụng phát triển các ứng dụng web đơn giản
PHP là ngôn ngữ lập trình dùng để phát triển các ứng dụng cho máy chủ, mã nguồn
mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và java, dễ học và thời gian xây dựng sản phẩm ngắn hơn so với các ngôn ngữ khác nên PHP trở thành ngôn ngữ web phổ biến nhất trên thế giới
PHP là một ngôn ngữ lập trình kịch bản dùng để sinh ra mã html, không giống như javacript chạy ở client, PHP được sử dụng để chạy trên server Trong đề tài sử dụng PHP làm nhiệm vụ lấy dữ liệu đưa lên Google Drive
Trang 222.3.3 Ngôn ngữ Javascript
Javascipt là ngôn ngữ thông dịch, chương trình nguồn được nhúng hoặc tích hợp vào tập tin HTML Khi trang web được tải trong trình duyệt hổ trợ javascipt, trình duyệt
sẽ thông dịch và thực hiện các lệnh javascipt
Javascipt là ngôn ngữ lập trình phổ biến nhất thế giới, nó là ngôn ngữ cho HTML, web, server, PC, laptop, tablet, smartphone
Là một ngôn ngữ kịch bản (ngôn ngữ lập trình nhỏ)
Mã tập lệnh được chèn vào các trang HTML
Được chèn vào các trang web có thể chạy các trình duyệt web hiện đại
Một trong những đặc tính quan trọng của ngôn ngữ javascipt là khả năng tạo và
sử dụng đối tượng (Object) Các Object cho phép người lập trình sử dụng để phát triển ứng dụng
Trong javascipt, các Object được nhìn theo hai khía cạnh:
Các Object đã tồn tại
Các Object do người lập trình xây dựng
Trong đề tài, ngôn ngữ javascipt được sử dụng thiết kế trong các trang HTML, tạo
ra truy vấn đến Google Spredsheet lấy dữ liệu phục vụ cho ứng dụng web
2.3.4 Google Apps Script (GAS)
Google Apps Script là ngôn ngữ kịch bản của JavaScript trên nền tảng của điện toán đám mây cho phép bạn mở rộng Google Apps và xây dựng các ứng dụng web Kịch bản được phát triển trong trình soạn thảo kịch bản dựa trên trình duyệt của Google Apps Script, được chạy trong các máy chủ của Google
Google Apps Script là rất linh hoạt, dưới đây là một số ưu điểm khi sử dụng:
Trang 23 Xây dựng các chức năng tùy chỉnh trong bảng tính Google, mở rộng một
số sản phẩm Google Apps bằng cách tạo ra các menu tùy chỉnh liên quan đến kịch bản
Tạo và xuất bản các ứng dụng web, có thể chạy trên nền riêng của họ hoặc nhúng trong một trang web của Google
Lịch các tác vụ như tạo báo cáo và phân phối chạy chúng trên lịch trình tùy chỉnh
Tự động hóa quy trình công việc như tài liệu hoặc chi phí phê duyệt, thực hiện đơn hàng, theo dõi thời gian
Chúng ta có thể phát triển GAS trong trình duyệt, còn là trung tâm phát triển trình soạn thảo kịch bản, GAS còn cho phép quản lý các tập tin, các dự án hổ trợ sửa lỗi GAS chạy trên điện toán đám mây nên không có sử dụng phần mềm biên dịch nào, trong đó Google cung cấp trình biên dịch cho GAS thông qua trình duyệt web GAS là chương trình truy cập hầu hết các sản phẩm của Google (Google Docs, Gmail, Youtube, Google Spreadsheet,Google Forms, ) các ứng dụng của Google được viết bằng javascript thường xuyên và lưu trữ trên máy chủ của Google
SƠ LƯỢT VỀ NGÔN NGỮ LẬP TRÌNH C/C++
Ngôn ngữ lập trình C/C++ là một trong những ngôn ngữ lập trình hướng đối tượng mạnh và phổ biến hiện nay do tính mềm dẻo và đa năng trong lập trình, đơn giản về cú pháp Không chỉ các ứng dụng được viết trên C/C++ mà cả những chương trình hệ thống lớn đều được viết hầu hết trên nền tảng của C (hướng đối tượng C/C++) và được người dùng sử dụng rộng rãi
Đề tài sử dụng ngôn ngữ C/C++ để lập trình cho các board Arduino
2.4.1 Ngôn ngữ lập trình C
Ngôn ngữ lập trình C là một ngôn ngữ mệnh lệnh được phát triển từ đầu thập niên
1970 bởi Dennis Ritchie để dùng trong hệ điều hành UNIX Từ đó, ngôn ngữ này đã lan rộng ra nhiều hệ điều hành khác trở thành một trong những ngôn ngữ phổ biến nhất
C là ngôn ngữ rất có hiệu quả và được ưu chuộng nhất hiện nay để viết các phần mềm
hệ thống, mặc dù cũng được dùng cho việc viết các ứng dụng
C là một ngôn ngữ lập trình tương đối nhỏ gọn vận hành gần với phần cứng và nó giống với ngôn ngữ Assembler hơn hầu hết các ngôn ngữ bậc cao Hơn thế, C đôi khi được cho thấy sự khác nhau quan trọng giữa nó với ngôn ngữ bậc thấp như Assembler