2.3.1 MQTT (Message Queue Telemetry Transport)
a. Giới thiệu chung về MQTT
Đây là một giao thức truyền thông điệp (message) theo mô hình publish/subscribe (xuất bản – theo dõi), sử dụng băng thông thấp, độ tin cậy cao và có khả năng hoạt động trong điều kiện đường truyền không ổn định.
Kiến trúc mức cao (high-level) của MQTT gồm 2 phần chính là Broker và Clients.
Trong đó, broker được coi như trung tâm, nó là điểm giao của tất cả các kết nối đến từ client. Nhiệm vụ chính của broker là nhận mesage từ publisher, xếp các message theo hàng đợi rồi chuyển chúng tới một địa chỉ cụ thể. Nhiệm vụ phụ của broker là nó có thể đảm nhận thêm một vài tính năng liên quan tới quá trình truyền thông như: bảo mật message, lưu trữ message, logs,…
Client thì được chia thành 2 nhóm là publisher và subscriber. Client là các software components hoạt động tại edge device nên chúng được thiết kế để có thể hoạt động một cách linh hoạt (lightweight). Client chỉ làm ít nhất một trong 2 việc là publish các message lên một topic cụ thể hoặc subscribe một topic nào đó để nhận message từ topic này.
Hình 2.7. Mô hình MQTT
MQTT Clients tương thích với hầu hết các nền tảng hệ điều hành hiện có: MAC OS, Windows, LInux, Androids, iOS…Có thể tưởng tượng broker giống như một sạp báo. Publisher là các tòa soạn báo. Tòa soạn in báo và chuyển cho sạp báo. Người đọc báo đến sạp báo, chọn tờ báo mình cần đọc (subscriber).
Bởi vì giao thức này sử dụng băng thông thấp trong môi trường có độ trễ cao nên nó là một giao thức lý tưởng cho các ứng dụng M2M (Machine to machine)
Giao thức MQTT ra đời năm 1999 và tính đến thời điểm hiện tại, MQTT phiên bản 3.1.1 được công nhận chuẩn OASIS.
b.Ưu điểm của MQTT
Giao thức MQTT cho phép hệ thống SCADA của bạn truy cập dữ liệu IoT. MQTT mang lại nhiều lợi ích :
+ Chuyển thông tin hiệu quả hơn. + Tăng khả năng mở rộng.
+ Giảm đáng kể tiêu thụ băng thông mạng. + Giảm tốc độ cập nhật xuống giây.
+ Rất phù hợp cho điều khiển và do thám. + Tối đa hóa băng thông có sẵn.
+ Chi phí cực nhẹ.
+ Được sử dụng bởi ngành công nghiệp dầu khí, Amazon, Facebook và các doanh nghiệp lớn khác.
+ Tiết kiệm thời gian phát triển.
Giao thức publish/subscribe thu thập nhiều dữ liệu hơn với ít băng thông hơn so với giao thức cũ.
c. Bảo mật
MQTT được thiết kế một cách nhẹ và linh hoạt nhất có thể. Do đó nó chỉ có 1 lớp bảo mật ở tầng ứng dụng: bảo mật bằng xác thực (xác thực các client được quyền truy cập tới broker).
Tuy vậy, MQTT vãn có thể được cài đặt kết hợp với các giải pháp bảo mật đa tầng khác như kết hợp với VPN ở tầng mạng hoặc SSL/TLS ở tầng transport.
MQTT được thiết kế nhằm phục vụ truyền thông machine-to-machine nhưng thực tế chứng minh nó lại linh hoạt hơn mong đợi. Nó hoàn toàn có thể áp dụng cho các kịch bản truyền thông khác như: machine-to-cloud, cloud-to- machine, app-to-app. Chỉ cần có một broker phù hợp và MQTT client được cài đặt đúng cách, các thiết bị xây dựng trên nhiều nền tảng khác nhau có thể giao tiếp với nhau một cách dễ dàng.
2.3.2 HTTP
HTTP là viết tắt của Hypertext Transfer Protocol. Đây là giao thức nền tảng của các web hiện đại
Hình 2.8. Giao thức http
Trọng tâm của giao thức HTTP web là các request được gửi đến một Uniform Resource Locators (URL). Các URL có một cấu trúc đơn giản mà bao gồm của các thành phần sau:
Hình 2.9. Cấu trúc đường dẫn theo giao thức http
Giao thức thường là http, nhưng phổ biến hơn hiện nay là https với tính năng bảo mật dữ liệu truyền nhận. Các cổng mặc định là 80, nhưng một
trong có thể thể được thiết lập một cách rõ ràng, như minh họa trong các hình ảnh ở trên. Các resource path là địa chỉ của resource được yêu cầu trên server.
Verbs
URLs tiết lộ các thông tin địa chỉ của các server mà chúng ta muốn giao tiếp, nhưng các verb là các hành động yêu cầu cần được thực hiện trên server được xác định thông qua HTTP.
Những verb yêu cầu phổ biến là:
GET: lấy một nguồn tài nguyên hiện có. URL chứa tất cả các thông tin cần thiết các máy chủ cần phải xác định vị trí và trả lại tài nguyên.
POST: tạo ra một nguồn tài nguyên mới. POST yêu cầu thường mang một tải trọng mà xác định các dữ liệu về tài nguyên mới.
PUT: cập nhật một nguồn tài nguyên hiện có. Tải trọng có thể chứa dữ liệu cập nhật của nguồn tài liệu.
DELETE: xóa một nguồn tài nguyên hiện có.
Status Code
Server sau khi xử lý request từ client thì sẽ trả về status code và nội dung thông báo trong response. Status code cho biết kết quả của việc xử lý. Các status code phổ biến:
2xx: Successful
Điều này nói với khách hàng rằng các yêu cầu đã được xử lý thành công. Các mã phổ biến nhất là 200 OK. Đối với một yêu cầu GET, máy chủ sẽ gửi tài nguyên trong nội dung thư. Có mã số ít được sử dụng khác:
3xx: Redirection
4xx: Request của client có lỗi. Phổ biến nhất là 404 Not Found mà mọi người khá quen thuộc
5xx: Server Error, máy chủ gặp lỗi trong quá trình xử lý. Thông dụng nhất là 500 Internal Server Error.
2.4. Chuẩn giao tiếp RS485
2.4.1 Khái niệm và nguyên lý Modbus RTU
a. Khái niệm:
Modbus là một giao thức truyền thông nối tiếp ban đầu được Modicon (nay là Schneider Electric) trình làng năm 1979 để sử dụng với các bộ điều khiển logic lập trình (PLC). Modbus đã trở thành một giao thức truyền thông tiêu chuẩn thực tế và hiện là phương tiện phổ biến để kết nối các thiết bị điện tử công nghiệp. Modbus thường được sử dụng để kết nối một máy tính giám sát với một thiết bị đầu cuối từ xa (RTU) trong các hệ thống điều khiển giám sát và thu thập dữ liệu (SCADA).
Giao thức Modbus RTU là một giao thức mở, sử dụng đường truyền vật lý RS232 hoặc RS485 và mô hình dạng Master-Slave. Đây là một giao thức được sử dụng rộng rãi trong nhiều lĩnh vực tự động hóa, công nghiệp.... vì những ưu điểm ổn định, đơn giản, dễ dùng.
Modbus được coi là giao thức truyền thông hoạt động ở tầng "Ứng dụng", cung cấp khả năng truyền thông Master/Slave giữa các thiết bị được kết nối thông qua các bus hoặc network. Trên mô hình OSI, Modbus được đặt ở lớp 7. Modbus được xác định là một giao thức hoạt động theo "hỏi/đáp" và sử dụng các "function codes" tương ứng để hỏi đáp.
b. Nguyên lý:
Modbus RTU hoạt động dựa trên nguyên tắc Master - Slave tức là một bên nhận (Master) và một bên truyền tín hiệu (Slave) thông qua địa chỉ thanh ghi. Phương thức truyền của Modbus RTU bằng đường truyền vật lý RS232 hoặc Modbus RTU RS485, Modbus TCP/IP thì truyền trên địa chỉ IT thông qua Internet.
Bộ chuyển đổi Z-8AI nhận 8 tín hiệu analog dạng 4-20mA hoặc 0-10V chuyển sang Modbus RTU 2 dây trên nên tảng RS485 thông qua hệ Hexadecimal.
Hình 2.10. Nguyên lý hoạt động Modbus RTU
2.4.2 Ưu nhược điểm của Modbus RTU
a. Ưu điểm của Modbus RTU
+ Tất cả các tín hiệu truyền trên 2 dây tín hiệu RS485 với khoảng cách truyền xa 1200m
+ Giảm tối thiểu dây kết nối vào PLC
+ Tiết kiệm một lượng lớn Modul mở rộng PLC
+ Giảm không gian lắp đặt do bộ chuyển đổi có thiết kế mỏng nhỏ gọn so với Module mở rộng của PLC
+ Độ ổn định và ít nhiễu so với tín hiệu analog 4-20mA + Các Module độc lập nhau nên quản lý dể dàng
+ Có thể dùng chung các hãng khác nhau có chuẩn Modbus RTU.
b. Nhược điểm của Modbus RTU
Tín hiệu không nhanh bằng việc dùng trực tiếp như analog hoặc digital
Chỉ phù hợp cho điều khiển có thời gian đáp ứng 1s trở xuống Cần PLC hay Scada có cấu hình mạnh đủ để đọc tất cả các thanh ghi khi dùng nhiều bộ chuyển đổi Modbus RTU
2.4.3. Phân biệt RS485 và RS232
a. Tổng quan về RS232
RS232 còn được gọi là cổng COM thường được thấy trong các máy tính bàn và tất cả đều có công truyền thông theo chuẩn RS232 để giao tiếp các thiết bị khác như máy in, máy fax ….
RS-232 sử dụng 3 dây Tx (truyền), Rx (nhận tín hiệu) và GND (đất). RS 232 hoạt động dựa trên sự chênh lệch áp giữa TX, RX và GND.
Nhược điểm của chuẩn truyền RS232 là tín hiệu không thể truyền đi xa, do việc mất mát tín hiệu không thể phục hồi được, và việc kết nối theo chuẩn RS232 chỉ được thực hiện giao tiếp giữa 2 thiết bị (point-to-point) nên hạn chế số lượng thiết bị có trong mạng.
Một số đặc điểm của chuẩn truyền RS232 là : khoảng cách truyền tối đa là 15m, tốc độ truyền là 20Kbps, hỗ trợ kết nối điểm-điểm trên một mạng.
Hình 2.11: Kết nối dùng cổng RS232
b.Tổng quan về RS485
Chuẩn RS485 chỉ truyền trên 2 dây A và B sử dụng sự chênh lệch áp giữa A và B theo logic 0 hoặc 1 chứ không hề so sánh với đất. Điều này đảm bảo tín hiệu truyền đi xa bởi khi nếu có trường hợp sụt áp thì đồng thời hai dây đều sụt áp nên tín hiệu vẫn đảm bảo logic 1 hoặc 0.
Hình 2.12: Mô hình giao tiếp RS485
Giả sử A=1, B=0 thì thì dữ liệu nhận biết data bằng 1 và khi A=0, B=1 thì dữ liệu nhận biết là data bằng 0. Do cách so sánh trên khi bị suy giảm thì sự chênh lệch điện áp vẫn không đổi chính vì thế mà tín hiệu truyền trên RS485 đi rất xa mà vẩn đảm bảo chính xác.
+ Khi sự chênh lệch điện áp giữa A và B nằm trong khoảng,-6V đến - 1.6V thì dữ liệu được nhận tương ứng với mức 1.
+ Khi sự chênh lệch điện áp giữa A và B nằm trong khoảng +1,5 đến +6V thì dữ liệu được nhận tương ứng với mức 0.
Ưu điểm lớn nhất của chuẩn RS485 chính là truyền đi xa tới 1200m và có thể kết nối nhiều thiết bị trên cùng một mạng chuẩn RS485 và kết nối tối đa 32 thiết bị cùng lúc.
c. Sự khác nhau giữa RS232 và RS485
RS232 chỉ cho phép truyền theo phương thức điểm (point) – điểm (point) trong khi RS485 truyền theo phương thức đa điểm. Tức là có thể truyền nhiều tín hiệu khác nhau trong cùng một mạng (max 32 thiết bị).
Tốc độ truyền của RS232 (20 Kbits/s) nhanh nhưng khoảng cách truyền ngắn (max 15m). Ngược lại, RS485 (10Mbit/s) có thể truyền đi xa (max 1200m)
2.4.4. IC max485
Hình 2.13: IC max485
Max 485 gồm bộ lái và bộ thu, tín hiệu vào bộ lái D logic TTL đổi thành 2 tín hiệu A và A, khi tín hiệu điều khiển DE mức thấp thì 2 chân AA cách ly với vi mạch. Tín hiệu vào bộ thu là A và A, tín hiệu ra R logic TTL tùy thuộc hiệu điện áp giữa A và A, khi RE logic 1 thì R cách ly với vi mạch.
Hình 2.14: Sơ đồ nối chân của IC max485 Stt chân Tên chân Chức năng 1 RO Nhận tín hiệu từ bus 485
2 RE Mức logic 0 trên chân này sẽ cho phép nhận tín hiệu
3 DE Mức logic 1 trên chân này sẽ cho phép gửi tín hiệu 4 DI Gửi dữ liệu ra bus 485
5 GND Nối đất
6 A Kết hợp với chân B mã hóa Visai dữ liệu 7 B Kết hợp với chân A mã hóa Visai dữ liệu 8 VCC Nguồn nuôi điện áp cấp 5V
Hình 2.15: Thông số chân của IC max485
Thông số kỹ thuật:
- Max485 là bộ truyền nhận dữ liệu năng lượng thấp dùng cho chuẩn RS485.
- Tốc độ bit Max= 2,5Mbps
- Điện áp hoạt động : -7V đến 12V (ổn định nhất ở 5V)
- Bus Max485 truyền dữ liệu vi sai bằng 2 dây A, B nên khoảng cách truyền lớn, khả năng chống nhiễu tốt.
- Với A-B > 200mV sẽ tạo mức logic 1. - Với B-A > 200mV sẽ tạo mức logic 0.
Max 485 làm việc theo chế độ master-slave, master cho DE mức 1 để truyền dữ liệu, còn các slave có DE=0, RE=0 chờ nhận dữ liệu. Khi master muốn nhận dữ liệu thì DE=0, RE=0 còn slave phát sẽ có DE=1, RE=1. Điều khiển các đường DE, RE bằng tín hiệu RTS hay mạch định thời.
2.5. Kết luận chương 2
Trong chương này, luận văn đã đi giới thiệu về Internet đồng thời đưa ra những ứng dụng của Internet nói chung cũng như ứng dụng của Internet trong giám sát kho lạnh.
Nội dung của chương cũng chỉ ra những phương pháp kết nối hiện thị dữ liệu lên mạng Internet, từ đó tác giả lựa chọn sử dụng phương thức html để đưa dữ liệu trên mạng.
Một phần quan trọng của chương là phần tìm hiểu về chuẩn RS485, và cụ thể là giao thức ModBus RTU. Đây là giao thức được sử dụng phổ biến trong công nghiệp, và cũng chính là giao thức được tác giả lựa chọn sử dụng trong phần thực nghiệm của luận văn này.
Tóm lại, kết quả cuối cùng của chương 2 chính là nghiên cứu, khảo sát và đưa ra phương án lựa chọn để xây dựng hệ thống giám sát nhiệt độ kho lạnh qua mạng Internet, bao gồm:
+ Sử dụng phương thức thu thập tín hiệu sử dụng ModBus RTU. + Đưa dữ liệu lên mạng sử dụng giao thức http.
Nội dung chi tiết về sơ đồ thiết kế, lựa chọn thiết bị sẽ được trình bày trong chương 3.
CHƯƠNG 3: THIẾT KẾ MÀN HÌNH GIÁM SÁT, HIỂN THỊ NHIỆT ĐỘ, ĐỘ ẨM CỦA KHO LẠNH
3.1 Mô tả bài toán
- Đối tượng giám sát: Nhiệt độ và độ ẩm trong kho lạnh
- Mô tả bài toán: Trong kho lạnh đặt 2 cảm biến nhiệt độ và độ ẩm ở 2 vị trí. Giá trị nhiệt độ và độ ẩm từ cảm biến báo về được hiển thị lên màn hình Lcd và được gửi lên mạng internet. Người dùng truy cập vào trang web đã tạo và theo dõi được thông số nhiệt độ và độ ẩm, đồng thời điều khiển được tốc độ quạt trong kho lạnh.
3.2. Sơ đồ khối thiết bị
Như theo kết luận của chương 2, ta có thể phân tích và chỉ ra rằng phần cứng của thiết bị sẽ gồm hai khối chính:
+ Khối cảm biến, đây là khối trực tiếp làm việc với cảm biến và đưa ra kết quả đo. Kết quả này được truyền về khối truyền thông thông qua đường truyền RS485.
+ Khối truyền thông, là khối có chức năng nhận tín hiệu từ cảm biến, hiển thị kết quả đo, đồng thời đưa những kết quả đo này lên mạng Internet để người sử dụng có thể truy cập và theo dõi.
Trong hệ thống có thể có một hoặc nhiều khối cảm biến đều được kết nối chung với đường truyền RS485. Vậy ta sẽ có những sơ đồ khối như sau:
Hình 3.1: Sơ đồ khối toàn hệ thống
Hình 3.2: Sơ đồ khối cảm biến
KHỐI CẢM BIẾN 01 KHỐI TRUYỀN THÔNG INTERNET KHỐI CẢM BIẾN 02 KHỐI CẢM BIẾN 03 R S 4 8 5 INTERNET KHỐI CHẤP HÀNH KHỐI XỬ LÝ TRUNG TÂM CẢM BIẾN NHIỆT ĐỘ, ĐỘ ẨM KHỐINGUỒN KHỐI TRUYỀN THÔNG RS 485
Hình 3.3: Sơ đồ khối khối truyền thông Chức năng các khối trong hệ thống
+ Khối nguồn: cung cấp nguồn nuôi cho toàn bộ hệ thống
+ Khối xử lý trung tâm: tiếp nhận các giá trị từ cảm biến, tiến hành tính toán điều khiển thiết bị chấp hành, gửi và nhận giữ liệu từ chuẩn RS485 và chuẩn Internet,
+ Khối hiển thị: hiển thị các thông số nhiệt độ độ ẩm lên màn hình LCD + Khối truyền thông: Tiến hành giao tiếp giữa các khối theo chuẩn RS485 và gửi giữ liệu nhiệt độ, độ ẩm lên internet và đồng thời nhận lệnh điều khiển từ Internet gửi về.
+ Khối cảm biến: Thu thập nhiệt độ độ ẩm gửi về khối xử lý. + Khối chấp hành: Điều chỉnh tốc độ quạt theo lệnh từ khối xử lý
KHỐI XỬ LÝ TRUNG TÂM KHỐI HIỂN THỊ KHỐINGUỒN KHỐI TRUYỀN THÔNG LÊN INTERNET KHỐI TRUYỀN THÔNG RS 485
3.3. Mạch nguyên lý
3.3.1 Mạch nguyên lý khối cảm biến
3.3.2 Mạch nguyên lý khối truyền thông