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

thiết kế và thực hiện hệ thống hỗ trợ cảnh báo nguy cơ sạt lở bờ sông

65 438 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 65
Dung lượng 2,71 MB

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

Nội dung

Ngoài ra trong đề tài có áp dụng giải pháp lưu trữ dữ liệu trên nền điện toán đám mây của Google đã được thực hiện trước đó bởi các anh sinh viên khóa trước và cho kết quả tương đối tốt.

Trang 1

LUẬN VĂN TỐT NGHIỆP

THIẾT KẾ VÀ THỰC HIỆN HỆ THỐNG

HỖ TRỢ CẢNH BÁO NGUY CƠ

SẠT LỞ BỜ SÔNG

Trang 2

LUẬN VĂN TỐT NGHIỆP

THIẾT KẾ VÀ THỰC HIỆN HỆ THỐNG

HỖ TRỢ CẢNH BÁO NGUY CƠ

SẠT LỞ BỜ SÔNG

Trang 3

TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ

BỘ MÔN ĐIỆN TỬ VIỄN THÔNG

Luận văn được thực hiện bởi:

1 Họ tên: Nguyễn Đức Khanh, MSSV: 1117976, Lớp: Kỹ thuật máy tính

2 Họ tên: Trần Vận Toàn, MSSV: 1118028, Lớp: Kỹ thuật máy tính

Tựa đề luận văn:

Thiết kế và thực hiện hệ thống hỗ trợ cảnh báo nguy cơ sạt lở bờ sô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 ngành Điện tử Viễn thông/ Kỹ thuật máy tính, Bộ môn Điện tử Viễn thông vào ngày 19 tháng 05 năm 2015

(Quyết định thành lập Hội đồng số: 133/QĐ-CN ngày 24 tháng 04 năm 2015 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 1: Ths Trương Phong Tuyên

Thành viên 2: TS Lương Vinh Quốc Danh

Thành viên 3: Ths Nhan Văn Khoa

Trang 4

i

LỜI CAM ĐOAN

Đề tài “Thiết kế và thực hiện hệ thống hỗ trợ cảnh báo nguy cơ sạt lở bờ sông”

được thực hiện bởi hai sinh viên: Nguyễn Đức Khanh và Trần Vận Toàn, sinh viên lớp

Kỹ thuật máy tính, khóa 37, khoa Công nghệ, Đạ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 còn hạn chế nhưng những nội dung trình bày trong quyển báo cáo này đều là những 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

Chúng tôi xin cam đoan rằng những 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 từ bất kỳ công trình nào đã 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 11 tháng 05 năm 2015

Nhóm sinh viên thực hiện

Trang 5

LỜI CẢM ƠN

Đầu tiên, nhóm chúng tôi xin bày tỏ lòng biết ơn với gia đình đã động viên, hỗ trợ

và giúp đỡ chúng tôi trong quá trình thực hiện đề tài

Kế đến, chúng tôi xin gửi lời cảm ơn chân thành đến thầy Trương Phong Tuyên,

là người trực tiếp đưa ra ý tưởng, hướng dẫn và động viên nhóm chúng tôi trong suốt quá trình thực hiện đề tài luận văn tốt nghiệp Thầy đã cung cấp cho nhóm những kiến thức và kinh nghiệm thực tế hữu ích để nhóm có hướng đi đúng đắn trong việc tím hiểu, giải quyết và hoàn thành đề tài

Sau cùng, xin chân thành cảm ơn các anh khóa trước và các bạn đã giúp đỡ và hỗ trợ nhóm trong suốt quá trình tìm hiểu, nghiên cứu và thực hiện đề tài

Xin chân thành cảm ơn!

Nhóm sinh viên thực hiện đề tài

Nguyễn Đức Khanh Trần Vận Toàn

Trang 6

iii

MỤC LỤC

DANH MỤC HÌNH ẢNH 1

DANH MỤC BẢNG 2

TÓM TẮT 3

CHƯƠNG 1 TỔNG QUAN 4

1.1 ĐẶT VẦN ĐỀ 4

1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ 4

1.3 PHẠM VI ĐỀ TÀI 5

1.4 PHƯƠNG PHÁP NGHIÊN CỨU 5

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

2.1 GIỚI THIỆU MỘT SỐ CHUẨN GIAO TIẾP 6

2.1.1 Chuẩn UART 6

2.1.2 Chuẩn SPI 8

2.2 TỔNG QUAN VỀ MỘT SỐ DỊCH VỤ CỦA GOOGLE 10

2.2.1 Giới thiệu Google Drive 10

2.2.2 Google Spreadsheet 10

2.2.3 Google Chart API 11

2.3 NGÔN NGỮ LẬP TRÌNH C/C++ VÀ MỘT SỐ NGÔN NGỮ LẬP TRÌNH WEB 12

2.3.1 Ngôn ngữ lập trình C/C++ 12

2.3.2 Tổng quan về một số ngôn ngữ lập trình web 13

2.4 GIỚI THIỆU GIAO THỨC HTTP VÀ HTTPS 15

2.4.1 Giao thức HTTP 15

2.4.2 Giao thức HTTPS 16

2.5 GIỚI THIỆU KHÁI QUÁT VỀ XỬ LÝ ẢNH 16

2.5.1 Một số khái niệm cơ bản trong xử lý ảnh 17

2.5.2 Các giải thuật xử lý ảnh được sử dụng trong đề tài 17

2.5.3 Giới thiệu phần mềm Qt Creator 20

Trang 7

2.6 TÌM HIỂU VỀ ARDUINO VÀ CÁC LINH KIỆN SỬ DỤNG TRONG ĐỀ TÀI

20

2.6.1 Tổng quan về Arduino 20

2.6.2 Board Arduino Mega 2560 21

2.6.3 Module WIFI ESP8266 22

2.6.4 Module RF CC1101 433MHz giao tiếp SPI 26

2.6.5 Module camera hồng ngoại màu JPEG LS-Y201 giao tiếp UART 27

2.6.6 Module Micro SD card 29

2.6.7 Cảm biến độ ẩm đất và cảm biến lưu lượng nước 29

CHƯƠNG 3 THIẾT KẾ HỆ THỐNG VÀ KẾT QUẢ THỰC NGHIỆM 32

3.1 TỔNG QUAN VỀ HỆ THỐNG 32

3.2 THIẾT KẾ PHẦN CỨNG 33

3.2.1 Bộ gửi dữ liệu 33

3.2.2 Bộ nhận dữ liệu 34

3.2.3 Bộ thu thập hình ảnh 35

3.3 THIẾT KẾ PHẦN MỀM 36

3.3.1 Lập trình phần mềm cho hệ thống 36

3.3.2 Giao diện web cho hệ thống 40

3.3.3 Giao diện phần mềm xử lý ảnh 41

3.3.4 Giao thức gửi dữ liệu lên Google Spreadsheet 44

3.4 KẾT QUẢ THỰC NGHIỆM 48

KẾT LUẬN VÀ ĐỀ NGHỊ 56

1 KẾT QUẢ ĐẠT ĐƯỢC 56

2 ĐỀ NGHỊ HƯỚNG PHÁT TRIỂN 56

TÀI LIỆU THAM KHẢO 58

Trang 8

1

DANH MỤC HÌNH ẢNH

Hình 2 1 Một khung truyền/nhận theo UART 7

Hình 2 2 Giao diện kết nối giữa SPI Master và Slave 8

Hình 2 3 Truyền dữ liệu SPI 9

Hình 2 4 Ví dụ tạo biểu đồ bằng URL 11

Hình 2 5 Mô hình giao tiếp Client-Server của giao thức HTTP 15

Hình 2 6 Ví dụ gửi dữ liệu bằng phương thức GET thông qua URL 16

Hình 2 7 Các bước cơ bản của một hệ thống xử lý ảnh 17

Hình 2 8 Ảnh màu (ảnh trái) và ảnh đã phân ngưỡng của một tờ giấy trắng

(ảnh phải) 18

Hình 2 9 Ảnh đã phân ngưỡng (ảnh trái) và ảnh sau khi lọc đường biên của một tờ giấy trắng (ảnh phải) 19

Hình 2 10 Hình ảnh thực tế của Board Arduino Mega 2560 21

Hình 2 11 Hình ảnh thực tế và sơ đồ chân của module Wifi ESP8266 23

Hình 2 12 Hình ảnh thực tế và sơ đồ chân module RF CC1101 433MHz 27

Hình 2 13 Module camera hồng ngoại màu JPEG giao tiếp UART 28

Hình 2 14 Module micro SD card 29

Hình 2 15 Cảm biến đo độ ẩm đất 30

Hình 2 16 Cảm biến lưu lượng nước S201 31

Hình 3.1 Mô hình tổng quan của hệ thống 32

Hình 3.2 Sơ đồ khối của Bộ gửi dữ liệu 33

Hình 3.3 Sơ đồ khối của Bộ nhận dữ liệu 34

Hình 3.4 Sơ đồ khối của Bộ thu thập hình ảnh 35

Hình 3 5 Lưu đồ giải thuật gửi dữ liệu lên web bằng module Wifi ESP8266 38

Hình 3 6 Lưu đồ giải thuật chụp ảnh và lưu trữ trong thẻ SD 39

Hình 3 7 Giao diện web của hệ thống 40

Hình 3 8 Giao diện phần mềm xử lý ảnh 41

Hình 3 9 Lưu đồ giải thuật phân ngưỡng ảnh màu 42

Hình 3 10 Lưu đồ giải thuật lọc đường biên 43

Hình 3 11 Lưu đồ giải thuật trừ ảnh 44

Hình 3 12 Cấu tạo của một Bridge Server 45

Hình 3 13 Các lệnh chính của một file code PHP sử dụng trong đề tài 46

Hình 3 14 Giao diện bảng tính trong đề tài 46

Hình 3 15 Mô hình upload dữ liệu lên Google Spreadsheet 47

Hình 3 16 Các khối phần cứng trong đề tài 48

Trang 9

Hình 3 17 Dữ liệu thu được từ cảm biến và lưu trữ trên Google Spreadsheet 49

Hình 3 18 Biểu đồ dữ liệu thu được từ cảm biến 50

Hình 3 19 Hình ảnh tham chiếu gốc và đã qua xử lý lấy đường biên thu được từ camera 51

Hình 3 20 Hình ảnh được tham chiếu và đã qua xử lý lấy đường biên 52

Hình 3 21 Kết quả ảnh trừ của ảnh tham chiếu gốc và ảnh được tham chiếu 53

Hình 3 22 Hình ảnh khúc cây được đặt ở vị trí xa góc chụp camera hơn và đã qua xử lý lấy đường biên 54

Hình 3 23 Kết quả ảnh trừ giữa ảnh tham chiếu gốc với ảnh ở Hình 3.22 55

DANH MỤC BẢNG Bảng 2 1 Các chân SPI trên Arduino Mega 2560 22

Bảng 2 2 Các cổng Serial dành cho giao tiếp UART trên Arduino Mega 2560 22

Bảng 2 3 Các chân ngắt ngoài trên Arduino Mega 2560 22

Bảng 2 4 Chức năng các chân kết nối của module Wifi ESP8266 23

Bảng 2 5 Các lệnh AT sử dụng trong giao tiếp với module ESP8266 24

Bảng 2 6 Các lệnh trong firmware NodeMCU được sử dụng trong đề tài 25

Bảng 2 7 Giao thức giao tiếp với module camera hồng ngoại màu JPEG LS-Y201 28

Bảng 3 1 Các lệnh sử dụng trong đề tài để kết nối board Arduino với Internet 36

Bảng 3 2 Các mã HEX được truyền cho camera phục vụ việc chụp ảnh 39

Trang 10

3

TÓM TẮT

Đồng bằng sông Cửu Long là vùng có hệ thống kênh rạch chằng chịt dẫn đến vấn đề sạt lở bờ sông xảy ra ở nhiều nơi và gây ra nhiều hậu quả nghiêm trọng Thấy

được điều đó, nhóm đã chọn đề tài “Thiết kế và thực hiện hệ thống hỗ trợ cảnh báo

nguy cơ sạt lở bờ sông” làm đề tài tốt nghiệp cho mình Mục tiêu của đề tài là nhằm

tìm ra một giải pháp có thể phát hiện sớm nguy cơ sạt lở bờ sông để có cách khắc phục

và xử lý hiệu quả, kịp thời, tránh những hậu quả nặng nề do việc phát hiện chậm trễ Quá trình giám sát dựa trên các yếu tố như: lưu lượng nước, độ ẩm đất được thu thập thông qua các cảm biến Ngoài ra, còn có một Camera giám sát sẽ chụp lại hình ảnh nơi bờ sông có nguy cơ sạt lở Tất cả dữ liệu cảm biến sẽ được upload lên web một cách tự động, cụ thể là upload lên dịch vụ điện toán đám mây của Google: Google Drive Người giám sát có thể truy cập vào web để theo dõi, cập nhật dữ liệu ở bất kì nơi đâu có Internet Hoặc có thể giám sát thông qua các ảnh chụp về bờ sông sau khi chúng ta đã xử lý chúng thông qua một phần mềm xử lý ảnh tự thiết kế Hệ thống được thiết kế với chi phí thấp, dễ sử dụng và có thể mở rộng để giám sát nhiều vị trí

Từ khóa: cảm biến, camera, upload, điện toán đám mây, xử lý ảnh

ABSTRACT

Mekong Delta is the region with complex canal system leading to river bank erosion problems occured in many places and caused serious consequences Seeing

that, we have chosen the topic “Design and implementation a system which

supports warning river bank erosion” to make thesis for us. The purpose of this research is to find a solution that can detect early risk for river bank erosion to have clearance and processing efficiently, uptime, avoiding severe consequences due to the

detecting late Monitoring process based on factors such as water flow, soil moisture

be collected through the sensors Besides, there is also a surveillance camera to take

picture where the river bank have eroding risk All sensor data will be uploaded to the

web automatically, namely upload to cloud computing service of Google: Google Drive The supervisor can access the web for monitoring, updating data in anywhere with internet Or they can monitor through the photos of river bank after we have processed them through an image processing software The system is designed for low cost, easy to use and can be expanded to monitor multiple locations

Keywords: sensor, camera, upload, cloud computing, process image

Trang 11

CHƯƠNG 1 TỔNG QUAN

Chương này sẽ tập trung trình bày các vấn đề sau:

- Đặt vấn đề: “Bối cảnh xuất hiện của đề tài”

- Lịch sử giải quyết đề tài

lở theo Lâu dần, đất đai cũng bị sạt lở

Từ những vấn đề trên, cần có một hệ thống giám sát và đánh giá nhằm giúp phát hiện sớm nguy cơ sạt lở để có thể đưa ra giải pháp khắc phục và xử lý kịp thời, hiệu quả, tránh được những hậu quả nặng nề Vì vậy nhóm đã quyết định thực hiện đề tài

“Thiết kế và thực hiện hệ thống hỗ trợ cảnh báo nguy cơ sạt lở bờ sông” nhằm tạo ra một hệ thống đáp ứng được các yêu cầu trên và góp phần ứng dụng công nghệ vào trong thực tiễn

1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ

“Thiết kế và thực hiện hệ thống hỗ trợ cảnh báo nguy cơ sạt lở bờ sông” là một đề tài thuộc lĩnh vực khá phổ biến ở Việt Nam, đặc biệt là ở vùng Đồng bằng sông Cửu Long do nơi đây có hệ thống sông ngòi chằng chịt

Một số đề tài và văn bản có liên quan đến hiện tượng sạt lở bờ sông như sau:

- “Vĩnh Long: Nghiên cứu hiện tượng bồi lắng, sạt lở bờ sông, xác định nguyên nhân, đề xuất các giải pháp phòng chống, khắc phục.” Nguồn: Sở KH&CN Vĩnh Long

- “Cảnh báo nguy cơ sạt lở đất ven sông, ven biển và thực hiện các biện pháp ứng phó, xử lý” Nguồn:Văn bản số 47/PCLB ngày 03 tháng 3 năm 2008 của Ban Chỉ huy phòng chống lụt bão thành phố

Trang 12

5

- Lê Ngọc Thanh, Nguyễn Văn Giảng Góp phần xác định nguyên nhân sạt lở bờ

sông Tiền và sông Sài Gòn bằng các khảo sát địa vật lý gần mặt đất Tháng 09

năm 2012

Ngoài ra trong đề tài có áp dụng giải pháp lưu trữ dữ liệu trên nền điện toán đám mây của Google đã được thực hiện trước đó bởi các anh sinh viên khóa trước và cho kết quả tương đối tốt

xa, ở bất kỳ đâu có Internet

1.4 PHƯƠNG PHÁP NGHIÊN CỨU

Nhóm đã giải quyết đề tài theo hướng chia nhỏ từng phần Tiếp theo sẽ giải quyết từng phần, mỗi phần sẽ trải qua các giai đoạn: nghiên cứu lý thuyết, tiến hành thực nghiệm để kiểm chứng, cuối cùng là ghép các phần lại

Giai đoạn nghiên cứu lý thuyết: nhóm tiến hành tìm hiểu tài liệu thông qua sự hướng dẫn của giáo viên Đồng thời, nhóm cũng thông qua mạng Internet để tìm các tài liệu có liên quan ở trong và ngoài nước

Giai đoạn thực nghiệm để kiểm chứng: nhóm tiến hành chia nhỏ và thiết kế các khối chức năng của hệ thống: khối gửi dữ liệu đọc được từ cảm biến, khối nhận dữ liệu

và upload dữ liệu lưu trữ trên Google Drive và khối thu thập hình ảnh Ngoài ra, về phần mềm nhóm sẽ thiết kế một giao diện web để giúp dễ dàng tương tác và truy cập vào dữ liệu hệ thống; thiết kế một phần mềm xử lý hính ảnh phục vụ cho việc giám sát đoạn đường có nguy cơ sạt lở Sau đó kiểm tra toàn bộ hệ thống với thực tế để xem xét

sự hoạt động và tính ổn định của nó

Trang 13

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

Chương này sẽ tập trung trình bày các vấn đề sau:

- Giới thiệu một số chuẩn giao tiếp

- Tổng quan về một số dịch vụ của Google

- Giới thiệu ngôn ngữ lập trình C/C++ và một số ngôn ngữ lập trình web

- Giới thiệu giao thức HTTP/HTTPs

- Giới thiệu khái quát về xử lý ảnh

- Tìm hiểu về Arduino và các linh kiện sử dụng trong đề tài

2.1 GIỚI THIỆU MỘT SỐ CHUẨN GIAO TIẾP

2.1.1 Chuẩn UART

UART là viết tắt của Universal Asynchronous Receiver – Transmitter, còn được gọi là truyền thông nối tiếp không đồng bộ, thường là một mạch tích hợp được sử dụng trong việc truyền dẫn dữ liệu nối tiếp giữa máy tính và các thiết bị ngoại vi Khác với cách truyền đồng bộ, truyền thông “không đồng bộ” chỉ cần một đường truyền cho một quá trình “Khung dữ liệu” đã được chuẩn hóa bởi các thiết bị nên không cần đường xung nhịp báo trước dữ liệu đến Ví dụ 2 thiết bị đang giao tiếp với nhau theo phương pháp này, chúng đã được thỏa thuận với nhau rằng cứ 1ms thì sẽ có 1 bit dữ liệu truyền đến, như thế thiết bị nhận chỉ cần kiểm tra và đọc đường truyền mỗi mili-giây để đọc các bit dữ liệu và sau đó kết hợp chúng lại thành dữ liệu có ý nghĩa Truyền thông nối tiếp không đồng bộ vì thế hiệu quả hơn truyền thông đồng bộ (không cần nhiều đường truyền) Tuy nhiên, để quá trình truyền thành công thì việc tuân thủ các tiêu chuẩn truyền là hết sức quan trọng

Các thông số cơ bản trong truyền thông UART

- Baud rate (tốc độ baud): như trong ví dụ trên về việc truyền 1 bit trong 1ms,

chúng ta thấy rằng để việc truyền và nhận không đồng bộ xảy ra thành công thì các thiết bị tham gia phải “thống nhất” nhau về khoảng thời gian dành cho 1 bit truyền, hay nói cách khác tốc độ truyền phải được cài đặt như nhau trước, tốc độ này gọi là tốc độ Baud Theo định nghĩa, tốc độ baud là số bit truyền trong 1 giây Ví dụ nếu tốc độ baud được đặt là 19200 thì thời gian dành cho 1 bit truyền là 1/19200 ~ 52.083us

- Frame (khung truyền): do truyền thông nối tiếp mà nhất là nối tiếp không

đồng bộ rất dễ mất hoặc sai lệch dữ liệu, quá trình truyền thông theo kiểu này phải tuân theo một số quy cách nhất định Bên cạnh tốc độ baud, khung truyền

Trang 14

7

là một yếu tố quan trọng tạo nên sự thành công khi truyền và nhận Khung truyền bao gồm các quy định về số bit trong mỗi lần truyền, các bit “báo” như bit Start và bit Stop, các bit kiểm tra như Parity, ngoài ra số lượng các bit trong một data cũng được quy định bởi khung truyền Hình 2.1 là một ví dụ của một khung truyền theo UART, khung truyền này được bắt đầu bằng một start bit St, tiếp theo là 8 bit data, sau đó là 1 bit parity P dùng kiểm tra dữ liệu và cuối cùng

là 2 bits stop Sp

Hình 2 1 Một khung truyền/nhận theo UART1

- Start bit: start là bit đầu tiên được truyền trong một frame truyền, bit này có

chức năng báo cho thiết bị nhận biết rằng có một gói dữ liệu sắp được truyền tới Start là bit bắt buộc phải có trong khung truyền

- Data: data hay dữ liệu cần truyền là thông tin chính mà chúng ta cần gởi và

nhận Data không nhất thiết phải là gói 8 bit, chúng ta có thể quy định số lượng bit của data là 5, 6, 7, 8 hoặc 9 Trong truyền thông nối tiếp UART, bit có ảnh hưởng nhỏ nhất (LSB) của data sẽ được truyền trước và cuối cùng là bit có ảnh hưởng lớn nhất (MSB)

- Parity bit: parity là bit dùng để kiểm tra dữ liệu truyền đúng hay không. Có 2 loại parity là parity chẵn (even parity) và parity lẻ (odd parity) Parity chẵn nghĩa là số lượng số 1 trong dữ liệu bao gồm bit parity luôn là số chẵn Ngược lại tổng số lượng các số 1 trong parity lẻ luôn là số lẻ Parity bit không phải là bit bắt buộc và vì thế chúng ta có thể loại bit này khỏi khung truyền

- Stop bit: Stop bit là một hoặc các bit báo cho thiết bị nhận rằng một gói dữ liệu

đã được gởi xong Sau khi nhận được Stop bit, thiết bị nhận sẽ tiến hành kiểm tra khung truyền để đảm bảo tính chính xác của dữ liệu Stop bit là các bit bắt buộc xuất hiện trong khung truyền

Việc ứng dụng giao tiếp UART trong đề tài được thể hiện qua việc kết nối Board Arduino MEGA 2560 với camera JPEG UART trong giám sát và thu thập hình ảnh từ

hệ thống; với module WIFI ESP8266 để kết nối board Arduino với một Access Point cho việc upload dữ liệu lên dịch vụ điện toán đám mây của Google (Google Drive)

1

http://smart-techvn.com/6724-hoc-msp430-voi-kit-msp430-launchpad-bai-5-uart.html

Trang 15

2.1.2 Chuẩn SPI

SPI (Serial Peripheral Bus) là một chuẩn truyền thông nối tiếp tốc độ cao do hãng Motorola đề xuất Đây là kiểu truyền thông Master-Slave, trong đó có 1 chip Master điều phối quá trình tuyề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 là một cách truyền song công (full duplex) nghĩa là tại cùng một thời điểm quá trình truyền và nhận có thể xảy ra đồng thời SPI đôi khi được gọi là chuẩn truyề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 Output), MOSI (Master Ouput Slave Input) và SS (Slave Select) Hình 2.2 thể hiện một kết nối SPI giữa một chip Master và 3 chip Slave thông qua 4 đường

Hình 2 2 Giao diện kết nối giữa SPI Master và Slave2

4 đường giao tiếp cơ bản trong giao tiếp SPI:

- SCK: Xung giữ nhịp cho giao tiếp SPI, vì SPI là chuẩn truyền đồng bộ nên cần

1 đường giữ nhịp, mỗi nhịp trên chân SCK báo 1 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 trong 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 trực tiếp với nhau

2

http://voer.edu.vn/m/giao-dien/229cccfc

Trang 16

9

- MOSI – Master Output / Slave Input: nếu là chip Master thì đây là đường

Output còn nếu là chip Slave thì MOSI là Input MOSI của Master và các Slaves được nối trực tiếp với nhau

- SS – Slave Select: SS là đường chọn Slave cần giap 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ó 1 đườ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

Hoạt động: mỗi chip Master hay Slave có một thanh ghi dữ liệu 8 bits 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, đồng thời một bit trong thanh ghi

dữ liệu của chip Slave cũng được truyền qua Master trên đường MISO 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” Quá trình truyền 1 gói dữ liệu bằng giao tiếp SPI được mô tả trong Hình 2.3, bên trái là chip Master và bên phải là Slave

Hình 2 3 Truyền dữ liệu SPI3

Với ưu điểm là truyền nhận dữ liệu tốc độ cao và ít bị lỗi, trong đề tài có sử dụng

“Module RF CC1101 SPI” để giao tiếp với Board Arduino MEGA 2560 thông qua chuẩn SPI trong việc truyền nhận dữ liệu đọc được từ các cảm biến

3

http://www.hocavr.com/index.php/lectures/spi

Trang 17

2.2 TỔNG QUAN VỀ MỘT SỐ DỊCH VỤ CỦA GOOGLE

2.2.1 Giới thiệu Google Drive

Google Drive là một dịch vụ trực tuyến được Google phát hành chính thức vào ngày 27 tháng 04 năm 2012, cho phép người dùng lưu trữ dữ liệu trên máy chủ của Google thông qua tài khoản Gmail, từ đó chúng ta có thể tận dụng làm các việc sau:

- Có thể tải các dữ liệu thường dùng lên để có thể truy cập, sử dụng ở bất kỳ đâu

có đường truyền internet

- Dữ liệu trên máy chủ được đồng bộ với một ổ dữ liệu trên máy tính cá nhân, thiết bị di động, do đó thao tác Copy, Paste như việc sử dụng máy tính bình thường

- Chia sẻ file cho người khác bằng cách gửi đường dẫn (link) để người nhận download, do vậy email sẽ nhẹ, gửi nhanh, nhận nhanh đồng thời không làm tăng dung lượng hòm thư người nhận nhiều

- Dữ liệu trên máy chủ của Google được đảm bảo an toàn theo chính sách bảo mật của Google

Google Drive bao gồm một bộ các ứng dụng tiện ích văn phòng: Spreadsheet (bảng tính), Form (biểu mẫu), Docs (tài liệu), Presentations (trình bày) và nhiều ứng dụng khác như: Drawing (bản vẽ), Fusion Table (biểu bảng), Script (tập lệnh), được Google cung cấp miễn phí cho người dùng với dung lượng lưu trữ lên đến 15GB Google với nền tảng đám mây cho phép người dùng có thể tương tác, đồng bộ dễ dàng với Google Drive và các dịch vụ khác của mình thông qua các trình duyệt hoặc ứng dụng trên máy tính, điện thoại và các thiết bị thông minh khác

2.2.2 Google Spreadsheet

Google Spreadsheet là một trong số các ứng dụng nằm trong Google Drive, cho phép người dùng lưu trữ thông tin, dữ liệu dưới dạng bảng tính tương tự như Microsoft Excel trong Office nhưng nó hoạt động trên nền web

Việc đưa dữ liệu vào lưu trữ trong Google Spreadsheet có thể được thực hiện thông qua nhiều cách như: người dùng tự nhập hoặc nhập dữ liệu thông qua Form hoặc nhập dữ liệu thông qua lập trình Script

Ngoài ra, Google Spreadsheet còn cho phép chúng ta chèn thêm hình ảnh, biểu đồ

và nhiều tiện ích khác vào trong bảng tính

Trang 18

11

Chính bởi những ưu điểm này nên nhóm đã chọn Google Spreadsheet làm cơ sở

dữ liệu cho việc lưu trữ các dữ liệu đọc từ cảm biến gửi lên thông qua board Arduino Mega 2560

2.2.3 Google Chart API

Google Chart API là một công cụ của Google giúp bạn tạo ra những biểu đồ một cách đơn giản và nhanh chóng Đây là một công cụ miễn phí với rất nhiều tính năng mạnh mẽ Cho phép hiển thị những số liệu, những bảng xếp hạng trên web một cách trực quan Google Chart API cung cấp rất nhiều loại biểu đồ, từ những biểu đồ tròn, biểu đồ cột , biểu đồ đường đơn giản đến những biểu đồ cây phân cấp phức tạp

Chúng ta có thể nhúng những biểu đồ này vào trang web một cách dễ dàng bằng một URL (viết tắt của Uniform Resource Locator, được dùng để tham chiếu tới tài nguyên trên Internet) dựa trên Google Chart API, hoặc nâng cao hơn, là nhúng những đoạn Javascript vào trang HTML của mình Hình 2.4 dưới đây là một ví dụ về tạo một biểu đồ bằng URL:

http://chart.googleapis.com/chart?cht=p&chtt=Browser+Statistics+05/2013&chd

=t:12.6,27.7,52.9,4,1.6&chdl=IE|Firefox|Chrome|Safari|Opera&chl=IE|Firefox|Ch rome|Safari|Opera&chs=400x250&chco=FF9900|3399CC|80C65A|990066|76A4F B&chp=2.1

Hình 2 4 Ví dụ tạo biểu đồ bằng URL4

Tận dụng những ưu điểm này của Google Chart API, trong đề tài nhóm đã sử dụng công cụ này để tạo ra những biểu đồ về các dữ liệu thu được từ cảm biến để giúp

4

http://enews.agu.edu.vn/?act=VIEW&a=14677

Trang 19

người sử dụng có một cái nhìn trực quan và bao quát hơn về sự thay đổi của các dữ liệu Nhóm sử dụng cách tạo biểu đồ bằng cách nhúng những đoạn Javascript vào trang HTML của mình, tuy cách này sẽ phức tạp hơn nhưng việc nhúng các script này sẽ cho chúng ta một biểu đồ trực quan, sinh động hơn, hiển thị được nhiều thông tin hơn, đồng thời chuyển đổi qua lại giữa các biểu đồ cũng dễ dàng hơn Và đặc biệt, là có thể tương tác với chúng

2.3 NGÔN NGỮ LẬP TRÌNH C/C++ VÀ MỘT SỐ NGÔN NGỮ LẬP TRÌNH WEB

2.3.1 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 của nó, cú pháp cũng tương đối đơn giản và dễ hiểu, được viết không chỉ cho các ứng dụng thông thườ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

Ưu điểm của ngôn ngữ C là rất mạnh và linh động, có khả năng thể hiện bất cứ ý tưởng nào, chạy nhanh, cú pháp đơn giản, tường minh, tập lệnh đầy đủ và có thể tái sử dụng các hàm hay thư viện hàm do người lập trình khởi tạo

2.3.1.2 Ngôn ngữ lập trình C++

C++ là ngôn ngữ lập trình hướng đối tượng được phát triển trên nền tảng của ngôn ngữ C Do vậy, C++ có ưu điểm là kế thừa được các điểm mạnh truyền thống của ngôn ngữ C như uyển chuyển, tương thích với các thiết bị phần cứng

Đến với C++, người lập trình sẽ được tiếp cận với một kỹ thuật lập trình mới đó

là lập trình hướng đối tượng-phương pháp lập trình lấy đối tượng làm nền tảng để xây dựng giải thuật, xây dựng chương trình Đây là kỹ thuật được sử dụng trong hầu hết các ngôn ngữ lập trình phổ biến hiện nay

Trang 20

2.3.2 Tổng quan về một số ngôn ngữ lập trình web

Trong đề tài có sử dụng một số ngôn ngữ lập trình web như: PHP, HTML, Google Apps Script, để phục vụ cho việc lập trình lưu trữ dữ liệu lên Google Drive

và thiết kế giao diện web tương tác với người dùng

Việc lựa chọn sử dụng các ngôn ngữ trên là bởi các ưu điểm sau:

- Thông dụng, phổ biến và được nhiều người sử dụng

- Mã nguồn mỡ và miễn phí

- Nguồn tài liệu phong phú để tìm hiểu và học tập

- Cú pháp tương đối đơn giản và dễ hiểu

2.3.2.1 Ngôn ngữ HTML

HTML (viết tắt cho HyperText Markup Language, hay là "Ngôn ngữ Đánh dấu Siêu văn bản") là một ngôn ngữ đánh dấu đượ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 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 chính thức 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 hứa hẹn mang lại diện mạo mới cho Web với nhiều tính năng vượt trội

HTML được xem là một ngôn ngữ trình bày hơn là một ngôn ngữ lập trình Tập tin HTML là một văn bản có chứa các thẻ đánh dấu (markup tags), các thẻ đánh dấu này giúp các trình duyệt Web hiểu được cách trình bày và hiển thị trang Web Tập tin HTML thường có phần mở rộng là html hay htm và có thể được tạo ra bằng bất cứ chương trình xử lý văn bản đơn giản nào

Trang 21

Trong tập HTML các phần tử (Element) được đánh dấu bằng các thẻ HTML Các thẻ này được bao bởi dấu < và dấu > Thông thường các thẻ HTML được dùng theo một cặp (thẻ bắt đầu, thẻ mở) và (thẻ kết thúc, thẻ đóng), văn bản nằm giữa cặp thẻ này

là nội dung của phần tử, một số thẻ không cần thẻ kết thúc (thẻ đóng) Các thẻ HTML không phân biệt chữ hoa và chữ thường, có nghĩa là các kiểu chữ đều được xem như nhau

2.3.2.2 Ngôn ngữ PHP

PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ (Không giống như javascript chạy ở client, PHP được sử dụng để chạy phía server), mã nguồn mở, dùng cho mục đích tổng quát

PHP rất thích hợp với web và có thể dễ dàng nhúng vào các trang HTML Do được tối ưu hóa cho 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 tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới

Tập tin PHP có phần mở rộng là.php Do là ngôn ngữ chạy phía server nên việc thực thi và đáp ứng các yêu cầu trong PHP được thực hiện tại máy chủ server và không phụ thuộc vào môi trường (cho phép PHP chạy trên hầu hết các hệ điều hành khác nhau) Kết quả được trả về cho trình duyệt web dưới dạng HTML

Trong đề tài sử dụng ngôn ngữ PHP để viết một dịch vụ trung gian hỗ trợ lấy dữ liệu từ cảm biến và lưu trữ trên Google Drive, cụ thể là Google Spreadsheet

2.3.2.3 Google Apps Script (GAS)

Google Apps Script (GAS) là một ngôn ngữ kịch bản JavaScript điện toán đám mây được phát triển bởi Google, 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, và chúng được lưu trữ trong và chạy từ các máy chủ của Google

Do được phát triển trên nền JavaScript nên cú pháp, lệnh, từ khóa và các hàm chức năng của GAS cũng tương tự như JavaScript GAS chạy trên nền tảng điện toán đám mây của Google nên không có bất kỳ một phần mềm biên dịch nào Thay vào đó, Google cung cấp sẵn một trình biên tập và biên dịch cho GAS thông qua trình duyệt web

Google Apps Script được Google áp dụng cho các ứng dụng trong Google Drive (trong đó có Google Docs, Google Spreadsheet, Google Forms, Google Sites…) GAS

Trang 22

15

giúp việc tương tác với các dịch vụ này trở nên dễ dàng và thuận tiện thông qua các gói API được Google cung cấp đầy đủ và miễn phí Đề tài sử dụng GAS để viết chương trình hỗ trợ việc upload dữ liệu từ cảm biến lên Google Spreadsheet

2.4 GIỚI THIỆU GIAO THỨC HTTP VÀ HTTPS

2.4.1 Giao thức HTTP

HTTP (Hypertext Transfer Protocol hay Giao thức truyền siêu văn bản) là một giao thức không trạng thái (stateless) nằm ở tầng ứng dụng, đảm nhiệm việc giao tiếp giữa các hệ thống phân tán với nhau, và nó là nền tảng của web

HTTPđược ứng dụng để truyền tải tài liệu và các tệp siêu văn bản giữa máy chủ Web (Web server) và máy khách Web (Web client) thông qua một trình duyệt Web.HTTP cho phép giao tiếp giữa rất nhiều loại server/client với nhau, chủ yếu thông qua TCP/IP, tuy nhiên bất kỳ giao thức đáng tin cậy nào khác cũng có thể được dùng Cổng giao tiếp chuẩn là 80, tuy nhiên có thể dùng bất kỳ cổng khác Giao tiếp giữa client và server dựa vào một cặp request/response Client khởi tạo HTTP request và nhận HTTP response từ server gửi về Mô hình hoạt động của giao thức HTTP như hình sau:

Hình 2 5 Mô hình giao tiếp Client-Server của giao thức HTTP 5

Trong giao thức này có một số phương thức để gửi yều cầu từ máy khách (Client) đến máy chủ (Server) như: GET, POST, PUT, DELETE, HEAD, Trong đề tài sử dụng phương thức GET để đưa dữ liệu cảm biến từ board Arduino lên web server

- Phương thức GET: là phương thức dùng để gửi yêu cầu từ Client lên Server để gửi hoặc cung cấp dữ liệu thông qua đường dẫn URL (Uniform Resource Locator) nằm trên thanh địa chỉ của Browser Server sẽ nhận đường dẫn đó và phân tích trả về kết quả cho Client Phương thức GET có tốc độ xử lý và thực

5

http://codekeo.com/website-la-gi-bon-cu-soan-lai/

Trang 23

thi nhanh hơn POST mặc dù chức năng cũng tương tự nhau, dữ liệu được gửi tường minh và có thể nhìn thấy trên URL Vì vậy nhóm đã chọn phương thức này để gửi dữ liệu lên web

Hình 2 6 Ví dụ gửi dữ liệu bằng phương thức GET thông qua URL

2.4.2 Giao thức HTTPS

HTTPS (Hypertext Transfer Protocol Secure) là một sự kết hợp giữa giao thức HTTP và giao thức bảo mật SSL hay TLS cho phép trao đổi thông tin một cách bảo mật trên Internet Giao thức HTTPS thường được dùng trong các giao dịch nhạy cảm cần tính bảo mật cao

Khác với HTTP, HTTPS sẽ hỗ trợ việc xác thực tính chính danh của các Website

mà người dùng truy nhập thông qua việc kiểm tra xác thực bảo mật (security certificate) Các xác thực bảo mật này được cung cấp và xác minh bởi các CA (Certificate Authority) có uy tín Với các xác thực từ CA, người sử dụng có thể biết rằng mình đã truy nhập đúng vào Website cần truy nhập chứ không phải một Website giả danh bất kỳ nào khác

Hiện nay, phần lớn các ứng dụng và trang web của Google đều sử dụng giao thức HTTPS nhằm nâng cao tính bảo mật, trong đó có ứng dụng trên nền tảng điện toán đám mây là Google Drive Vì vậy việc tác động từ board Arduino sẽ gặp phải khó khăn

do Arduino chỉ đủ mạnh để sử dụng giao thức HTTP, nên trong đề tài để phục vụ cho việc gửi dữ liệu cảm biến và lưu trữ trên Google Drive, phải thiết kế thêm một dịch vụ trung gian để chuyển đổi giao thức HTTP-HTTPS cho Arduino

2.5 GIỚI THIỆU KHÁI QUÁT VỀ XỬ LÝ ẢNH

Con người thu nhận thông tin qua các giác quan, trong đó thị giác đóng vai trò quan trọng nhất Những năm trở lại đây với sự phát triển của phần cứng máy tính, xử lý ảnh và đồ hoạ phát triển một cách mạnh mẽ và có nhiều ứng dụng trong cuộc sống Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm cho ra ảnh kết quả như mong muốn

Sơ đồ tổng quát của một hệ thống xử lý ảnh :

Trang 24

Hình 2 7 Các bước cơ bản của một hệ thống xử lý ảnh

2.5.1 Một số khái niệm cơ bản trong xử lý ảnh

Ảnh: là tập hợp hữu hạn các điểm ảnh với mức xám phù hợp dùng để mô tả ảnh gần với ảnh thật Số điểm ảnh xác định độ phân giải của ảnh Ảnh có độ phân giải càng cao thì càng thể hiện rõ nét các đặt điểm của tấm hình càng làm cho tấm ảnh trở nên thực và sắc nét hơn

Điểm ảnh (Pixel): là một phần tử của ảnh số tại toạ độ (x,y) với độ xám hoặc màu

nhất định Kích thước và khoảng cách giữa các điểm ảnh đó được chọn thích hợp sao cho mắt người cảm nhận sự liên tục về không gian và mức xám (hoặc màu) của ảnh số gần như ảnh thật Mỗi phần tử trong ma trận được gọi là một phần tử ảnh

Mức xám của điểm ảnh: là cường độ sáng của nó được gán bằng giá trị số tại

điểm đó

Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256 (Mức 256 là mức phổ dụng Lý do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức xám: Mức xám dùng 1 byte biểu diễn: 28=256 mức, tức là từ 0 đến 255)

Ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt, tức dùng 1 bit mô tả 21 mức khác nhau Nói cách khác: mỗi điểm ảnh của ảnh nhị phân chỉ có thể là 0 hoặc 1

Ảnh đen trắng (ảnh mức xám): là ảnh chỉ có hai màu đen, trắng với mức xám ở các điểm ảnh có thể khác nhau (có nhiều giá trị mức xám, khác với ảnh nhị phân)

2.5.2 Các giải thuật xử lý ảnh được sử dụng trong đề tài

Trong đề tài, hệ thống của nhóm có phần yêu cầu thu thập hình ảnh để xử lý rút ra được đường biên của đoạn đường có nguy cơ sạt lở để người giám sát có thể dễ dàng quan sát và đánh giá độ sụt, lún của đoạn đường đó Để giải quyết các vần đề trên, nhóm đã sử dụng các kỹ thuật phân ngưỡng ảnh, lọc đường biên bằng kỹ thuật Sobel

và kỹ thuật trừ ảnh để phục vụ cho việc xử lý hình ảnh

Trang 25

2.5.2.1 Giới thiệu kỹ thuật phân ngưỡng ảnh

Kỹ thuật phân ngưỡng ảnh sẽ quét từng điểm ảnh và lấy giá trị mức xám của từng điểm ảnh để so sánh với độ phân ngưỡng được đề ra Nếu mức xám lớn hơn độ phân ngưỡng thì mức xám sẽ được điều gán bằng 255, và ngược lại mức xám sẽ bằng 0 Phân ngưỡng ảnh sẽ chuyển ảnh mức xám thành ảnh nhị phân Một ngưỡng được xem

là tốt nếu sau quá trình phân ngưỡng, ảnh thu được có thể giữ lại những chi tiết mong muốn và loại bỏ các chi tiết thừa

Trước khi ứng dụng kỹ thuật này vào hình ảnh thực tế nhóm đã xử lý ảnh chụp của một tờ giấy trắng đặt trên bàn gỗ để kiểm tra các giải thuật xử lý ảnh có thực hiện đúng yêu cầu đề ra hay không Hình 2.8 dưới đây bao gồm ảnh chụp từ camera sử dụng trong đề tài và ảnh sau khi phân ngưỡng với độ phân ngưỡng 110

Hình 2 8 Ảnh màu (ảnh trái) và ảnh đã phân ngưỡng của một tờ giấy trắng (ảnh phải)

2.5.2.2 Giới thiệu kỹ thuật lọc đường biên Sobel

Khái niệm đường biên : biên là một vấn đề chủ yếu trong phân tích ảnh vì các kỹ thuật phân đoạn ảnh chủ yếu dựa vào biên Một điểm ảnh có thể được coi là điểm biên nếu tại đó có sự thay đổi đột ngột về mức xám Tập hợp các điểm biên tạo thành biên hay đường bao của ảnh Ví dụ : trong ảnh nhị phân có một điểm gọi là biên nếu nó là điểm đen và có ít nhất một điểm trắng lân cận

Có nhiều kỹ thuật lọc đường biên như Sobel, gradient, prewitt, Nhưng với đề tài này, nhóm đã chọn kỹ thuật Sobel Kỹ thuật Sobel sử dụng tích chập ảnh theo 2 hướng x và y, ta có:

Hx = (

)

Trang 26

và chính pixel trung tâm

Hướng x sẽ cho chúng ta kết quả là một bộ lọc biên dọc và hướng y sẽ cho chúng

ta kết quả là một bộ lọc biên ngang

Dưới đây là hình đã được lọc đường biên của tờ giấy đã được phân ngưỡng ở mục 2.5.2.1:

Hình 2 9 Ảnh đã phân ngưỡng (ảnh trái) và ảnh sau khi lọc đường biên của một tờ giấy trắng

(ảnh phải)

2.5.2.3 Kỹ thuật trừ ảnh

Khi hai ảnh đầu vào được xử lý xong Nhóm sẽ sẽ sử dụng kỹ thuật trừ ảnh để nhằm mục đích làm rõ sự khác biệt giữa các đường biên hỗ trợ người giám sát phán đoán được tình hình sạt lở Kỹ thuật trừ ảnh có hai ảnh vào bao gồm: ảnh tham chiếu

và ảnh được tham chiếu Ảnh tham chiếu và ảnh được tham chiếu đều được xử lý với

độ phân ngưỡng giống nhau và đều được lọc đường biên bằng kỹ thuật Sobel Ảnh được tham chiếu sẽ được đem trừ cho ảnh tham chiếu để tìm ra sự khác biệt giữa hai ảnh nếu có sự thay đổi

Trang 27

2.5.3 Giới thiệu phần mềm Qt Creator

Qt là nền tảng xây dựng các ứng dụng chạy được trên nhiều hệ điều hành Phần lớn các ứng dụng xây dựng bằng Qt đều có giao diện đồ họa, do vậy Qt còn được coi như là một bộ công cụ (widget toolkit) Ban đầu Qt ra đời như một sản phẩm thương mại và cũng được dùng để viết môi trường KDE, nhưng về sau được bổ sung giấy phép LGPL, theo đó có thể được sử dụng tự do để phát triển các phần mềm nguồn mở hay đúng hơn là có thể sử dụng trong các phần mềm thương mại nếu muốn Bản quyền thương mại của Qt hiện nay đã được chuyển qua hình thức thu phí hỗ trợ Chúng ta có thể dùng Qt như một thư viện để viết phần mềm thương mại, nếu có sửa đổi nào trong

bộ nguồn chính của Qt thì chúng ta chỉ phải cung cấp mã nguồn đã sửa ra chứ không yêu cầu phải mở toàn bộ mã nguồn hay phải mua giấy phép thương mại như trước kia

Qt Creator là một IDE rất được các lập trình viên ngày nay ưa chuộng vì từ ngày Microsoft đã hết mặn mà với MFC và chuyển sang NET thì các lập trình viên đang dần chuyển sang Qt Qt đã được Nokia mua lại từ năm 2008 vì vậy hiện giờ cộng động

Qt ngày càng lớn mạnh và gia tăng rất nhanh Qt hỗ trợ rất mạnh trong lập trình giao diện, tương tác với Database, Graphics

Trong đề tài, nhóm sử dụng phần mềm Qt Creator để làm môi trường soạn thảo

và biên dịch chương trình ứng dụng thành một phần mềm xử lý ảnh phục vụ việc xử lý các hình ảnh thu được từ camera của hệ thống

2.6 TÌM HIỂU VỀ ARDUINO VÀ CÁC LINH KIỆN SỬ DỤNG TRONG ĐỀ TÀI

2.6.1 Tổng quan về Arduino

Arduino là một nền tảng mã nguồn mở được sử dụng để xây dựng các ứng dụng điện tử Arduino gồm có board mạch có thể lập trình được (thường gọi là vi điều khiển), được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit hoặc ARM Atmel 32-bit

và các phần mềm hỗ trợ phát triển tích hợp IDE (Integrated Development Environment) dùng để soạn thảo, biên dịch code và nạp chương cho board Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau

Được giới thiệu vào năm 2005, Những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những nhiết bị có khả năng tương tác với môi trường thông qua các cảm biến và các cơ cấu chấp hành Những ví dụ phổ biến cho những

Trang 28

là shield Vài shield truyền thông với board Arduino trực tiếp thông qua các chân khác nhau, nhưng nhiều shield được định địa chỉ thông qua serial bus I²C-nhiều shield có thể được xếp chồng và sử dụng dưới dạng song song

2.6.2 Board Arduino Mega 2560

Arduino Mega 2560 sử dụng vi điều khiển ATmega2560 cho tốc độ, ngoại vi và

số chân nhiều nhất, board hoàn toàn có cấu trúc chân tương thích với các board như Uno và chạy ở điện áp 5VDC

Hình 2 10 Hình ảnh thực tế của Board Arduino Mega 25606

Các thông số kỹ thuật của board Arduino Mega 2560:

- Vi điều khiển: Atmega2560

Trang 29

Chân 50 hoặc ICSP 1 51 hoặc ICSP 4 52 hoặc ICSP 3 53

Bảng 2 2 Các cổng Serial dành cho giao tiếp UART trên Arduino Mega 2560

2.6.3 Module WIFI ESP8266

Đây là module truyền nhận WiFi đơn giản dựa trên chip ESP8266 SoC (System

on Chip)

ESP8266 là một chip tích hợp được thiết kế dùng cho chuẩn kết nối mới Có thể dùng nó để đưa những dự án của bạn kết nối đến Internet Đơn giản nó sử dụng ngõ giao thức nối tiếp với tốc độ Baud 9600 (mặc định) Kết nối mạng không dây, giống như một máy chủ hoặc một cầu nối trung gian và có thể download dữ liệu từ Internet ESP8266 có xử lý và khả năng lưu trữ mạnh mẽ cho phép nó được tích hợp với các bộ cảm biến, vi điều khiển và các thiết bị ứng dụng cụ thể khác thông qua GPIOs với một chi phí tối thiểu và một PCB tối thiểu

Trang 30

23

Các tính năng cơ bản của module Wifi ESP8266:

- Hỗ trợ chuẩn 802.11 b/g/n

- Wi-Fi 2.4 GHz, hỗ trợ WPA/WPA2

- Chuẩn điện áp hoạt động: 3.3V

- Chuẩn giao tiếp nối tiếp UART với tốc độ Baud lên đến 115200

- Có 3 chế độ hoạt động: Client, Access Point, Both Client and Access Point

- Hỗ trợ các chuẩn bảo mật như: OPEN, WEP, WPA_PSK, WPA2_PSK,

WPA_WPA2_PSK

- Hỗ trợ cả 2 giao tiếp TCP và UDP

- Làm việc như các máy chủ có thể kết nối với 5 máy con

Hình 2 11 Hình ảnh thực tế và sơ đồ chân của module Wifi ESP82667

Bảng 2 4 Chức năng các chân kết nối của module Wifi ESP8266

1 RX Chân Rx của giao thức UART, kết nối đến chân Tx của vi

điều khiển

2 VCC Kết nối với nguồn 3.3VDC, dòng lên tới 300mA

3 GPIO 0 Kéo xuống thấp cho chế độ update firmware

4 RESET Chân Reset, xảy ra khi được kéo xuống mass

5 CH_PD Kích hoạt chip, sử dụng cho Flash Boot và updating lại

module Thường giữ ở mức cao khi sử dụng

7 TX Chân Tx của giao thức UART, kết nối đến chân Rx của vi

điều khiển

7

display/

Trang 31

http://laptrinhpic.info/esp8266-wifi-module-hien-thi-thong-tin-thoi-tiet-len-lcd-esp8266-weather-8 GND Nối mass

Để giao tiếp với module Wifi ESP8266, chúng ta có thể truyền các lệnh AT qua kết nối UART đối với firmware mặc định hoặc truyền các lệnh đơn giản và dễ hiểu hơn đối với firmware mới “NodeMCU”

2.6.3.1 Tập lệnh AT

Các lệnh AT hay sử dụng trong giao tiếp với module Wifi ESP8266 đối với

firmware mặc định đƣợc trình bày trong bảng sau:

Bảng 2 5 Các lệnh AT sử dụng trong giao tiếp với module ESP8266

về "OK"

AT+CWMODE =<mode> Cài đặt chế độ 1 = Station

2 = Access Point

3 = Both

AT+CWMODE? Truy vấn chế độ đã cài đặt

AT+CIPMUX = <mode> Cài đặt số lƣợng các

Trang 32

2.2.3.2 Các lệnh trong firmware NodeMCU

Do các lệnh trong firmware NodeMCU đơn giản và dễ hiểu, nên trong đề tài nhóm đã sử dụng firmware này trong việc giao tiếp module với board Arduino Mega

2560 Các lệnh sử dụng trong đề tài đƣợc liệt kê trong Bảng 2.6:

Bảng 2 6 Các lệnh trong firmware NodeMCU đƣợc sử dụng trong đề tài

node.restart() Khởi động lại chip

wifi.setmode(mode) Thiết lập chế độ hoạt

wifi.sta.config(ssid, password) Kết nối với 1 mạng wifi

wifi.sta.getip() Xem đỉa chỉ IP, netmask,

gateway

Ngày đăng: 22/12/2015, 11:45

HÌNH ẢNH LIÊN QUAN

Hình 2. 2 Giao diện kết nối giữa SPI Master và Slave 2 - thiết kế và thực hiện hệ thống hỗ trợ cảnh báo nguy cơ sạt lở bờ sông
Hình 2. 2 Giao diện kết nối giữa SPI Master và Slave 2 (Trang 15)
Hình 2. 3 Truyền dữ liệu SPI 3 - thiết kế và thực hiện hệ thống hỗ trợ cảnh báo nguy cơ sạt lở bờ sông
Hình 2. 3 Truyền dữ liệu SPI 3 (Trang 16)
Hình 2. 5 Mô hình giao tiếp Client-Server của giao thức HTTP  5 - thiết kế và thực hiện hệ thống hỗ trợ cảnh báo nguy cơ sạt lở bờ sông
Hình 2. 5 Mô hình giao tiếp Client-Server của giao thức HTTP 5 (Trang 22)
Hình 3. 5 Lưu đồ giải thuật gửi dữ liệu lên web bằng module Wifi ESP8266 - thiết kế và thực hiện hệ thống hỗ trợ cảnh báo nguy cơ sạt lở bờ sông
Hình 3. 5 Lưu đồ giải thuật gửi dữ liệu lên web bằng module Wifi ESP8266 (Trang 45)
Hình 3. 7 Giao diện web của hệ thống - thiết kế và thực hiện hệ thống hỗ trợ cảnh báo nguy cơ sạt lở bờ sông
Hình 3. 7 Giao diện web của hệ thống (Trang 47)
Hình 3. 8 Giao diện phần mềm xử lý ảnh - thiết kế và thực hiện hệ thống hỗ trợ cảnh báo nguy cơ sạt lở bờ sông
Hình 3. 8 Giao diện phần mềm xử lý ảnh (Trang 48)
Hình 3. 9 Lưu đồ giải thuật phân ngưỡng ảnh màu - thiết kế và thực hiện hệ thống hỗ trợ cảnh báo nguy cơ sạt lở bờ sông
Hình 3. 9 Lưu đồ giải thuật phân ngưỡng ảnh màu (Trang 49)
Hình 3. 15 Mô hình upload dữ liệu lên Google Spreadsheet - thiết kế và thực hiện hệ thống hỗ trợ cảnh báo nguy cơ sạt lở bờ sông
Hình 3. 15 Mô hình upload dữ liệu lên Google Spreadsheet (Trang 54)
Hình 3. 16 Các khối phần cứng trong đề tài - thiết kế và thực hiện hệ thống hỗ trợ cảnh báo nguy cơ sạt lở bờ sông
Hình 3. 16 Các khối phần cứng trong đề tài (Trang 55)
Hình 3. 18 Biểu đồ dữ liệu thu đƣợc từ cảm biến - thiết kế và thực hiện hệ thống hỗ trợ cảnh báo nguy cơ sạt lở bờ sông
Hình 3. 18 Biểu đồ dữ liệu thu đƣợc từ cảm biến (Trang 57)
Hình 3. 19 Hình ảnh tham chiếu gốc và đã qua xử lý lấy đường biên thu được từ camera - thiết kế và thực hiện hệ thống hỗ trợ cảnh báo nguy cơ sạt lở bờ sông
Hình 3. 19 Hình ảnh tham chiếu gốc và đã qua xử lý lấy đường biên thu được từ camera (Trang 58)
Hình 3. 20 Hình ảnh được tham chiếu và đã qua xử lý lấy đường biên - thiết kế và thực hiện hệ thống hỗ trợ cảnh báo nguy cơ sạt lở bờ sông
Hình 3. 20 Hình ảnh được tham chiếu và đã qua xử lý lấy đường biên (Trang 59)
Hình 3. 21 Kết quả ảnh trừ của ảnh tham chiếu gốc và ảnh đƣợc tham chiếu - thiết kế và thực hiện hệ thống hỗ trợ cảnh báo nguy cơ sạt lở bờ sông
Hình 3. 21 Kết quả ảnh trừ của ảnh tham chiếu gốc và ảnh đƣợc tham chiếu (Trang 60)
Hình 3. 23 Kết quả ảnh trừ giữa ảnh tham chiếu gốc với ảnh ở Hình 3.22 - thiết kế và thực hiện hệ thống hỗ trợ cảnh báo nguy cơ sạt lở bờ sông
Hình 3. 23 Kết quả ảnh trừ giữa ảnh tham chiếu gốc với ảnh ở Hình 3.22 (Trang 62)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

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

w