CHƯƠNG 1. TỔNG QUAN - Chương 5: Kết luận và hướng phát triển: Chương này sẽ đưa ra các kết quả đạt được sau khi thực hiện đồ án, các hướng phát triển và mở rộng của đồ án. 3 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.
Giới thiệu về Raspberry Pi: Hiện tại ở Việt Nam và trên thế giới có rất nhiều KIT điện tử được sử dụng phổ biến như: Raspberry Pi, Arduino, STM32F103, Mini 2440,. Trong đó, Raspberry Pi và Arduino là 2 KIT được sử dụng phổ biến nhất với giá thành vừa phải và có thể đáp ứng được yêu cầu đặt ra cho việc thực hiện điều khiển các thiết bị và truyền thông tin qua Internet. Arduino thường áp dụng với hệ thống linh hoạt với các khả năng giao tiếp với hầu hết các thiết bị đồng thời cũng là hệ thống lý tưởng để học tập lần đầu và nhiều dự án nhỏ hơn. Raspberry Pi thích hợp cho những dự án lớn hơn với yêu cầu cần hiển thị hay cần kết nối mạng.
Với các chức năng tương tự như một máy tính mini chạy hệ điều hành Linux, cùng với việc thực hiện được nhiều dự án lớn, Raspberry Pi sẽ là lựa chọn hợp lý cho nhóm nghiên cứu để thực hiện đề tài “THIẾT KẾ VÀ THI CÔNG MÔ HÌNH GIÁM SÁT CHUNG CƯ THÔNG QUA INTERNET”. Giới thiệu về bo mạch Raspberry Pi 3: Raspberry Pi – Chiếc máy tính mini bắt đầu được sản xuất bởi Quỹ Raspberry Pi vào tháng 12/2011. Chiếc máy tính này chỉ có kích cỡ bằng một chiếc thẻ tín dụng với đầy đủ các kết nối và tuỳ dung lượng RAM mà người mua lựa chọn. Được phát triển bởi Raspberry Pi Foundation là tổ chức phi lợi nhuận với tiêu chí xây dựng hệ thống mà nhiều người có thể sử dụng được trong những công việc tùy biến khác nhau.
Raspberry Pi sản xuất bởi 3 OEM: Sony, Qsida, Egoman. Và được phân phối chính bởi Element14, RS Components và Egoman. Đặc tính của Raspberry Pi xây dựng xoay quanh bộ xử lí SoC Broadcom BCM (là chip xử lí mobile mạnh mẽ có kích thước nhỏ hay được dùng trong điện thoại di động) bao gồm CPU, GPU, bộ xử lí âm thanh /video, và các tính năng khác… tất cả được tích hợp bên trong chip có điện năng thấp này. Raspberry Pi không thay thế hoàn toàn hệ thống để bàn hoặc máy xách tay.
Không thể chạy Windows trên Raspberry Pi vì BCM2837 dựa trên cấu trúc ARM nên không hỗ trợ mã x86/x64, nhưng vẫn có thể chạy bằng Linux với các tiện ích như lướt web, môi trường Desktop và các nhiệm vụ khác. Tuy nhiên Raspberry Pi là một thiết bị đa năng đáng ngạc nhiên với nhiều phần cứng có giá thành rẻ nhưng rất hoàn hảo cho những hệ thống điện tử, những dự án DIY, thiết lập hệ thống tính toán rẻ tiền cho những bài học trải nghiệm lập trình. 4 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Hình 2 - 1: Bo mạch Raspberry Pi 3 2.
Cấu hình Raspberry Pi 3: Raspberry Pi 3 Model B là thế hệ thứ 3 và mới nhất tính đến thời điểm hiện tại dòng Raspberry Pi, được ra đời vào tháng 2 năm 2016. Cấu hình Raspberry Pi 3: Bảng 2 - 1: Cấu hình phần cứng Raspberry Pi 3 Stt Chức năng Phần cứng 1 CPU (Centra Broadcom BCM 2837 64bit ARMv8 Cortex A53 Process Unit) Quad Core, tốc độ 1.2GH 2 Bộ nhớ microSD 3 RAM 1GB LPDDR2 (900 MHz) 4 GPU Broadcom VideoCore IV 3D 4 USB 2.0, ngõ ra HDMI, ngõ ra RCA, 1 audio 6 Kết nối 3.5mm, Camera Serial Interface(CSI), 10/100 Ethernet, 2.11n wireless, hỗ trợ Display Serial Interface(DSI), Tích hợp Bluetooth 4.1, 40 GPIO,2 SPI BUS 7 Nguồn 5V qua cổng Micro USB – dòng 2500 mA (12.5 W) 5 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Bảng 2 - 2: Chân Raspberry Pi3 Pin Tên chân 1 3.3v DC Power 2 DC Power 5v 3 GPI002 (SDA1 , PC) 4 DC Power 5v 5 GPI003 (SCL1 , I2C) 6 Ground 7 GPI004 (GPIO_GCLK) 8 (TXDO) GPI014 9 Ground 10 (RXDO) GPI015 11 GPI017 (GPIO_GENO) 12 (GPI0_GEN1) GPI018 13 GPI027 (GPIO_GEN2) 14 Ground 15 GPI022 (GPIO_GEN3) 16 (GPIO_GEN4) GPI023 17 3.3v DC Power 18 (GPIO_GEN5) GPI024 19 GPIOIO (SPI_MOSI) 20 Ground 21 GPI009 (SPI_MISO) 22 (GPIO_GEN6) GPI025 23 GPIO11 (SPI_CLK) 24 (SPI_CE0_N) GPI008 6 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT 25 Ground 26 (SPI_CE1_N) GPI007 27 ID_SD (I2C ID EEPROM) 28 (PC I2C EEPROM) ID_SC 29 GPI005 30 Ground 31 GPI006 32 GPI012 33 GPI013 34 Ground 35 GPI019 36 GPI016 37 GPI026 38 GPI020 39 Ground 40 GPI021 2.
Tổng quan MQTT: Để giao tiếp với Raspberry Pi qua Internet có rất nhiều cách, nhưng thông dụng nhất gồm có các giao thức và framework sau: MQTT, CoAP, WebblOPi. Trong đó MQTT là 1 giao thức đơn giản, sử dụng băng thông thấp trong môi trường có độ trễ cao và được sử dụng trong môi trường không ổn định nên nó là một giao thức lý tưởng cho các ứng dụng M2M. Giới thiệu MQTT: MQTT (Message Queuing Telemetry Transport) là một giao thức gởi dạng publish/subscribe sử dụng cho các thiết bị Internet of Things, là một chuẩn giao thức nhắn tin dựa trên tiêu chuẩn ISO (ISO / IEC PRF 20922). Nó được thiết kế cho các kết nối với các địa điểm từ xa, nơi cần phải có một "dấu vết mã nhỏ" hoặc băng thông mạng bị giới hạn.
7 do an CHƯƠNG 2. Đặc điểm giao thức MQTT: Đặc điểm MQTT: - Là các chuẩn mở - Phù hợp hơn HTTP đối với các môi trường bị hạn chế - Cung cấp cơ chế truyền tin không đồng bộ - Chạy trên IP (Internet Protocol) 2. Cấu trúc giao thức MQTT: MQTT có mô hình client/server, nơi mà mỗi cảm biến là một khác hàng (client) và kết nối đến một máy chủ, có thể hiểu như một nhà môi giới (broker), thông qua giao thức TCP (Transmission Control Protocol) MQTT là giao thức định hướng bản tin. Mỗi bản tin là một đoạn rời rạc của tín hiệu và broker không thể nhìn thấy.
Mỗi bản tin được publish một địa chỉ, có thể hiểu như một kênh. Client đăng kí vào một vài kênh để nhận/gửi dữ liệu, gọi là đăng ký. Máy con có thể đăng ký vào nhiều kênh. Mỗi máy con sẽ nhận được dữ liệu khi bất kì trạm nào khác gửi dữ liệu vào kênh đã đăng kí.
Khi một client gửi một bản tin đến một kênh vào đó, gọi là publish. Ví dụ: một mạng đơn giản gồm 2 máy con, 1 điện thoại và một broker trung tâm. Cả 3 mở kết nối TCP với Broker. Điện thoại đăng kí tới kênh của máy con 1 và 2 topic 1 và topic 2.
Từ đó server sẽ thông báo data từ máy con 1 và máy con 2 cho điện thoại. Hình 2 - 2: Cơ chế giao thức MQTT 8 do an CHƯƠNG 2. Tầng ứng dụng( qualities of server): Có 3 tùy chọn khi đăng kí kênh và gửi bản tin: - “Delivered at least once”: Gửi ít nhất một lần: Cần ít nhất 1 lần xác nhận từ đầu cuối tức là có thể có nhiều hơn một lần xác nhận đã nhận bản tin. - “Delivered exactly once”: Chỉ gửi một lần: Đảm bào khi gửi bản tin, phía nhận chỉ nhận được đúng 1 lần, quá trình này cần qua nhiều bước bắt tay - “Fire and forget”: Gửi và quên: Broker/Client sẽ gửi dữ liệu đúng 1 lần, quá trình gửi được xác nhận bởi giao thức TCP/IP.
Các client MQTT có thể đăng ký một bản tin tùy chỉnh được gửi bởi broker nếu các client ngắt kết nối. Những bản tin này có thể được dùng để báo cho các Clients đã đăng ký Subscriber khi một thiết bị ngắt kết nối. Khả năng duy trì bản tin: - MQTT hỗ trợ lưu trữ các bản tin trong Broker để duy trì bản tin. Khi publish các bản tin, các Client có thể yêu cầu broker duy trì các bản tin.
Chỉ có các bản tin mới nhất được lưu lại. Khi một Client đăng kí đến một kênh, bất kì bản tin nào đã được đăng kí lưu trữ sẽ được gửi đến Client. - Không giống như một hàng đợi bản tin, broker của MQTT không cho phép duy trì các bản tin để sao lưu vào máy chủ. Bảo mật: MQTT broker có thể yêu cầu tên người dùng và mật khẩu xác thực từ client để kết nối.
Để đảm bảo tính bảo mật, kết nối TCP có thể được mã hóa với SSL/TLS (Transport Layer Security (TLS) protocol, Secure Sockets Layer (SSL) protocol). Mặc dù MQTT được thiết kế gọn nhẹ, nó có hai nhược điểm làm hạn chế các thiết bị: Mỗi client MQTT phải hỗ trợ TCP và thường sẽ giữ một kết nối mở đến broker ở mọi thời điểm. Đối với một số môi trường mà xác suất mất bản tin cao hay không có sẵn máy tính thì đây là cả một vấn đề. Tên kênh MQTT thường là các chuỗi dài làm chúng không thỏa đáng với tiêu chuẩn 802.4 Cả hai thiếu sót được giải quyết bằng giao thức MQTT-SN, trong đó xác định một ánh xạ UDP của MQTT và thêm khả năng lập chỉ mục (indexing) tên các kênh cho broker.
9 do an CHƯƠNG 2. Tổng quan M-JPEG: Để stream video trong các KIT điện tử ta sẽ sử dụng các chuẩn nén ảnh như: M-JPEG, H264, MPEG, MPEG-2, MPEG-4,… Nhưng yêu cầu với độ trễ thấp, số lượng khung ảnh/giây cao khi stream và phần cứng trong mô hình chỉ sử dụng camera hổ trợ tối đa 640x480 pixels, nên nhóm lựa chọn chuẫn MJPEG để stream hình ảnh từ camera. Giới thiệu M-JPEG: MJPEG (Motion JPEG) là chuẩn nén video mà trong đó mỗi khung hình video của một chuỗi video kỹ thuật số được nén riêng như một hình ảnh JPEG. Được phát triển cho các ứng dụng PC đa phương tiện, M-JPEG hiện đang được sử dụng bởi các thiết bị bắt hình video như máy ảnh kỹ thuật số, camera IP, và webcam, cũng như các hệ thống chỉnh sửa video không tuyến tính.
Nó được hỗ trợ bởi QuickTime Player, giao diện điều khiển PlayStation và các trình duyệt web như Safari, Google Chrome, Mozilla Firefox và Microsoft Edge. Đặc điểm M-JPEG: M-JPEG thường được sử dụng trong các hệ thống chỉnh sửa video không tuyến tính. Các CPU máy tính để bàn hiện đại đủ mạnh để làm việc với video độ nét cao, vì vậy không cần phần cứng đặc biệt. M-JPEG lần lượt cung cấp truy cập ngẫu nhiên một cách ngẫu nhiên vào một khung hình.
Hỗ trợ M-JPEG cũng phổ biến rộng rãi trong thiết bị chụp và chỉnh sửa video. Một số tính năng của M-JPEG: - Độ trễ thấp khi xem trực tiếp. - Tốn ít tài nguyên CPU máy tính khi xử lý hình ảnh. - Lưu được 30 FPS trở lên.
- Chi phí phần cứng xử lý hình ảnh rẻ hơn các chuẩn khác. - Sử dụng băng thông cao. - Yêu cầu dung lượng lưu trữ cao. - Không hỗ trợ đồng bộ âm thanh.
- Khả năng nén hình ảnh không cao.