G IỚI THIỆU ĐỀ TÀI
Chuyển đổi số trong đời sống và công nghiệp đang trở thành một vấn đề quan trọng, đặc biệt trong bối cảnh dịch bệnh Covid-19 hiện nay, khi mọi hoạt động đều dựa vào hệ thống truyền tải dữ liệu trực tuyến Việc phát triển các ứng dụng sáng tạo với đầy đủ chức năng phục vụ cho các ngành nghề như truy xuất dữ liệu, nhập/xuất hàng hóa, thu thập dữ liệu thị trường, y tế, và logistics là rất cần thiết Những ứng dụng này được thiết kế trực quan, giúp người sử dụng dễ dàng nắm bắt thông tin cần thiết.
M ỤC ĐÍCH NGHIÊN CỨU
Sử dụng Node-RED, Google Sheets, AppSheet và MongoDB để quét màu sắc sản phẩm và nhập dữ liệu vào hệ thống, giúp hiển thị và lưu trữ thông tin lên Google Sheets hoặc MongoDB Từ đó, người dùng có thể xuất dữ liệu ra AppSheet hoặc liên kết hiển thị các biểu đồ cần thiết, tạo điều kiện thuận lợi cho việc giám sát và truy xuất thông tin hàng hóa.
Đ ỐI TƯỢNG NGHIÊN CỨU
-Xử lí ảnh màu RGB
-Giao tiếp các module trong Node-red
- Giao tiếp Webcam với Node-red
P HẠM VI NGHIÊN CỨU
Dịch vụ này có thể được sử dụng bởi tất cả mọi người, với yêu cầu cần có thiết bị như điện thoại thông minh, máy tính bảng, máy tính xách tay hoặc PC, cùng với kết nối internet ổn định.
D Ự KIẾN KẾT QUẢ
Quét mã sẽ cho phép Node-RED xử lý dữ liệu và tự động nhập thông tin hàng hóa vào Google Sheets và MongoDB Dữ liệu sau đó được hiển thị từ Google Sheets và MongoDB, tạo ra các biểu đồ trên Appsheet hoặc các biểu đồ trực tuyến từ MongoDB.
CƠ SỞ LÍ THUYẾT
T ÌM HIỂU VỀ XỬ LÍ ẢNH MÀU RGB
Ảnh được định nghĩa là một hàm 2 chiều f(x, y), trong đó x và y là tọa độ của điểm ảnh trong không gian Tập hợp hữu hạn các điểm ảnh được tổ chức dưới dạng ma trận 2 chiều, với mỗi phần tử tương ứng với một pixel (picture element) Mỗi pixel có mức xám phù hợp để gần với điểm ảnh thật, và độ lớn của hàm f được gọi là độ sáng.
(intensity) hay độ xám (gray level) của ảnh tại điểm được xét.
Hệ màu RGB có thể biểu diễn dưới dạng số 24bit, 32bit,16bit,8bit,…
Hình 2.1 Độ chính xác màu sắc của các loại ảnh
Hệ màu RGB kết hợp ba màu cơ bản là Đỏ, Xanh lá và Xanh dương, tạo ra một bảng màu phong phú với 16.777.216 màu trong hệ màu 24 bit Được ứng dụng rộng rãi trong các thiết bị như màn hình tivi và laptop, hệ màu RGB mang lại độ chính xác cao trong việc phối màu, giúp tạo ra những hình ảnh sống động và chân thực.
Hệ màu RGB 24 bit là một trong những mô hình màu phổ biến nhất, trong đó mỗi điểm ảnh được biểu diễn bằng ba giá trị RGB Các giá trị này dao động từ 0 đến 255, cho phép tạo ra hàng triệu màu sắc khác nhau.
Hình 2.3 Bảng mã màu RGB
Ứ NG DỤNG CỦA HỆ MÀU RGB
Dùng cho các sản phẩm sử dụng trên các màn hình điện tử:
Thiết kế màu sắc web
Bảng quảng cáo điện tử
2.2.1 Độ phủ màu của các hệ màu RGB thương mại hiện nay
Hình 2.3 Bảng mã màu RGB thương mại
T ÌM HIỂU VỀ W EBCAM
Khái niệm quyền webcam thông qua mạng Internet Tùy vào chất lượng của webcam sẽ cho chất lượng hình ảnh phù hợp với yêu cầu của người sử dụng
Webcam có thể được xem như một máy ảnh kỹ thuật số với chất lượng thấp hơn Sự khác biệt chính nằm ở việc các chức năng của webcam phụ thuộc vào phần mềm yêu cầu quyền truy cập, điều này cho phép người dùng kiểm soát và sử dụng webcam trên máy tính của mình.
Webcams operate by capturing images through an image sensor, typically utilizing either a charge-coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS).
Hình 2.5 Cảm biến thu nhận hình ảnh
Cảm biến hình ảnh là một thiết bị silicon với từ 75.000 đến 300.000 điểm ảnh, nhận ánh sáng và chuyển đổi thành dòng điện Những dòng điện này được số hóa, nén lại và truyền qua cổng USB đến máy tính Ứng dụng yêu cầu quyền điều khiển webcam sẽ giải nén và chuyển dữ liệu đến các phần mềm cần thiết.
Cấu tạo của môt webcam gắn ngoài
Hình 2.6 Hình ảnh mô cả cấu tạo của 1 webcam cơ bản
4 Vòng chỉ rõ nét hình ảnh
6 Đầu cắm USB vào máy tính
7 Đầu cắm Micro vào thiết bị
8 Cảm biến ánh sáng (mắt thu webcam).
Webcam giá rẻ và webcam tích hợp trên laptop thường có độ phân giải 640 x 480 pixel Trong khi đó, nhiều laptop cao cấp và webcam gắn ngoài có khả năng cung cấp hình ảnh với độ phân giải fullHD hoặc 2K, đồng thời truyền tải hình ảnh tới phần mềm điều khiển với tốc độ 30-60 khung hình mỗi giây (30-60fps).
Đáp ứng nhu cầu truyền tải và thu nhận hình ảnh, video call, camera an ninh, sản phẩm này phù hợp cho các mục đích bảo mật, quay phim, chụp ảnh, cũng như quét mã QR và mã vạch.
Hình 2.7 Ứng dụng của Webcam
T ÌM HIỂU VỀ N ODE RED
Node-RED là một công cụ lập trình trực quan, cho phép người dùng lập trình thông qua việc kéo thả các module có sẵn Với trình soạn thảo tích hợp trên trình duyệt, Node-RED giúp dễ dàng kết nối các module bằng cách sử dụng các khối trong bảng công cụ (palette), cho phép người dùng thực hiện thao tác kéo thả các node vào vùng làm việc (workspace).
Hình 2.9 Giao diện của node-red
Hình 2.9 phương pháp kéo thả của node-red
2.3.2 Chức năng các module trong Node-red :
Hình 2.8 Thẻ chức năng khác của Node red
Manage Palette : Quản lý thêm/xóa các thư viện module
Workspace : Nơi kéo thả Node vào và kết nối với nhau tạo thành các luồng.
Sliderbar : Chứa các bảng cung cấp các số liệu và các công cụ trong quá trình chỉnh sửa.
Nút Deploy : triển khai, kết nối các luồng đã được tạo.
Bạn có thể tải lên các flow có sẵn từ internet qua tab Import, hoặc lưu các flow hiện tại dưới định dạng file txt hoặc json để dễ dàng sao lưu và chuyển sang thiết bị khác thông qua tab Export Bên cạnh đó, bạn cũng có thể thêm và tải các thư viện Node chức năng mới cho Palette qua thẻ Manage palette.
T ÌM HIỂU VỀ G OOGLE S HEETS
Google Sheets, hay còn gọi là Google Trang Tính, là một trong những sản phẩm nổi bật của bộ ứng dụng Google, cung cấp miễn phí và dựa trên trình duyệt web Nó cho phép người dùng tạo, chỉnh sửa và chia sẻ bảng tính một cách dễ dàng, với nhiều tính năng ưu việt, thậm chí vượt trội hơn cả Microsoft Excel Google Sheets hỗ trợ nhập liệu và quản lý dữ liệu hoàn toàn trực tuyến, mang lại trải nghiệm tiện lợi cho người dùng.
Hình 2.9 Tổng quan về GoogleSheets
2.4.2 Ưu điểm của GoogleSheets so với các trình nhập liệu đang có trên thị trường
Form nhập liệu dễ làm quen
Kết nối các bảng tính với nhau
Gợi ý cấu trúc câu lệnh trực tiếp
Có rất nhiều Add-Ons thú vị trên GoogleSheets
Hỗ trợ tốt bảo mật và chia sẻ vô cùng dễ dàng
T ÌM HIỂU VỀ A PPSHEET
AppSheet là nền tảng phát triển ứng dụng miễn phí của Google, cho phép người dùng tạo ứng dụng cho thiết bị di động và máy tính để bàn một cách nhanh chóng Nền tảng này sử dụng dữ liệu có sẵn của bạn và không yêu cầu kiến thức sâu về lập trình, giúp mọi người dễ dàng xây dựng ứng dụng theo nhu cầu.
AppSheet là nền tảng phát triển phần mềm linh hoạt, cho phép người dùng tạo ứng dụng hoạt động trên cả máy tính và điện thoại thông minh (bao gồm iOS và Android) Nền tảng này hỗ trợ nhiều nguồn dữ liệu đầu vào, trong đó có Google Sheets, giúp người dùng dễ dàng quản lý và theo dõi dữ liệu Với AppSheet, người dùng có thể truy cập ứng dụng từ bất kỳ đâu, trên điện thoại hay máy tính bảng.
Hình 2.10 Liên kết dữ liệu Appsheet và các database
2.5.2 Ưu điểm và nhược điểm Ưu điểm:
Không cần biết viết chương trình
Không yêu cầu hiểu biết ngôn ngữ lập trình
Bảo mật,và không sợ virut
Chỉ cần có internet là có thể sử dụng.
Dữ liệu cập nhật lên app bị giới hạn (5Mb-10Mb).
Tài khoản sử dụng bị giới hạn ( cho phép 10 tài khoản đối với bản miễn phí,200 tài khoản đối với bản trả phí $50).
Appsheet chỉ cho phép lọc (filter) 10.000 dòng dữ liệu.
Giới hạn về dạng kiểu xem (20-30 Table hoặc 20-30 View).
Giới hạn về Google map và số hình ảnh (1000 vị trí địa lý trên tháng).
Ứng dụng này phù hợp với mọi đối tượng, từ doanh nghiệp đến cá nhân, và đặc biệt hữu ích trong các lĩnh vực cần quản lý cơ sở dữ liệu Nó hỗ trợ nhập, xuất dữ liệu, tạo báo cáo và truy xuất thông tin một cách hiệu quả.
THIẾT KẾ VÀ THI CÔNG
S Ơ ĐỒ KHỐI CỦA HỆ THỐNG
Hình 3.1 Sơ đồ khối hệ thống
T HIẾT KẾ GIAO DIỆN
Thiết kế giao diện, sử dụng các module kéo thả các Node như hình:
Hình 3.2 Thiết kế giao diện Node red
Các chức năng của các module node-red cơ bản
: bật tắt webcam trên Dashboard.
: chuyển dữ liệu màu sắc thành msg.payload để chuyển dữ liệu vào GoogleSheets
: Giá trị module function xác định màu:
: hiển thị thông tin ra màn hình Dashboard.
: gộp các thông tin đầu vào lại thành một mảng hoặc 1 object.
: liên kết, nhập dữ liệu với ggsheet.
: liên kết, xóa dữ liệu với ggsheet
: chuyển dữ liệu màu sắc, thời gian thành msg.payload để chuyển dữ liệu vào MongoDB
:Giá trị module function màu của sản phẩm
:giá trj function thời gian
: liên kết, chuyển dữ liệu với MongoDB
: so sánh và gán giá trị.
:tạo nút nhấn trong dashboard
Giao diện hiển thị của node-red dashboard
Bước 1: Tạo các trang tính
Nhấp vào biểu tượng “+” góc dưới cùng bên trái của Google Sheets để tạo trang tính
Ta tạo 2 trang tính: Sản phẩm đã quét, Thống kê
Hình 3.6 Tạo trang tính Sản phẩm đã quét
Từ đây ta có thể chia sẻ quyền truy cập Googlesheet cho gmail khác, ta vào mục:
“chia sẻ” và thêm gmail người mà ta cho phép truy cập:
Hình 3.8 Phân quyền cho các user
Chọn tab Tiện ích mở rộng sau đó chọn Appsheet, Tạo ứng dụng
Bước 3: Chọn “Start for free” -> “Google Sheets and Forms” -> Chọn email đăng nhập.
Bước 4: Chọn “Make a new app” để tạo một ứng dụng mới.
Bước 5: Chọn “Data” -> chọn “New table” để thêm các dữ liệu từ GoogleSheets vào.
Bước 6: Chỉnh sửa các kiểu dữ liệu cho các mục vừa thêm bằng các chọn “View Columns”.
Ta chỉnh sửa các cột Type theo kiểu tương ứng như hình:
Bước 7: Tạo giao diện UX
Chọn thẻ UX -> “New View”.Điều này sẽ giúp tạo ra các mục trên Appsheet để ta có thể thấy và thao tác nhập liệu trên đó.
Hình 3.14 Tạo giao diện hiển thị cho Appsheet 1
Bước 8: Chọn kiểu hiển thị cho các mục UX vừa tạo như các hình bên dưới
Hình 3.15 Tạo giao diện hiển thị cho Appsheet 2
Bước 1: Tạo tài khoản với Gmail
Bước 2: Chọn thẻ “Security” -> vào “Quickstart” để khởi tạo username và mật khẩu.
Bước 3: Chọn tab “New project” để tạo dự án mới.
Bước 4: Chọn tab “+Create” để tạo một database mới và đặt tên là “test0”
Bước 5: Chọn tab “Browse Collections” -> tab “Create database” -> Đặt tên cho Database name và Collection name
Ta đặt Database có name là “test0” và Collection name là “ColorID”
Bước 6: Chọn tab “Chart” và chọn tab “Add Dashboard”
In Step 7, select "Add Charts" and assign names to the newly created charts Choose the data source as the database named "test()" and specify the collection name as "ColorID" that was created earlier.
Hình 3.20 Biểu đồ thống kê
Bước 8: Chọn chart 1 và cấu hình chart như sau: Chart type chọn “Circula”
Hình 3.21 Chọn Data Source và cài đặt cho biểu đồ 1
Chọn chart 2, cấu hình chart như sau:
Hình 3.22 Chọn Data Source và cài đặt cho biểu đồ 2
Bước 9: cấu hình thời gian cập nhật của các chart
Vào tab “Charts” ->chọn “Refesh” -> chọn “Auto-refesh settings”-> đặt giá trị là 10s
Vào tab “Atlas” ->chọn “Network Access” -> Ở phần ip addres ta cấu hình như sau:
Hình 3.24 Chỉnh sửa IP truy cập
Vào tab “Charts” ->chọn “Share” -> chọn tab “public link”-> tích vào ô “Anyone with this link can view”
Anyone can monitor your chart if you configure it as described and share the public URL, such as: https://charts.mongodb.com/charts-project-0-wyjdu/public/dashboards/61c1eb05-ae73-4e3d-8625-5b0b79e316f2.
Để chia sẻ quyền truy cập các biểu đồ, người dùng có thể phân quyền theo Gmail với các quyền như thêm hoặc bớt dữ liệu trong bộ sưu tập, xóa dự án, hoặc cho phép các người dùng khác tham quan và xem dữ liệu.
Vào tab “Atlas”-> “Invite to project”
Hình 3.26 Chia sẻ quyền truy cập các chart
Thêm Gmail người được mời và phân quyền
Hình 3.27 Thêm user tham gia
Hình 3.28 các lựa chọn phân quyền cho user
User có thể được phân cho các quyền như sau:
Project Owner: đây là phân quyền cao nhất, có toàn quyền quyết định thêm bớt user, xóa dữ liệu
Project Cluster Manager: có khả năng xóa cluster, xóa user, dữ liệu nhưng không xóa được project
Project Data Access Admin: có khả năng thêm bớt user, xóa dữ liệu nhưng không xóa được owner
Project Data Access Read/Write: chỉ có khả năng chỉnh sửa dữ liệu
Dự án Truy cập Dữ liệu Chỉ Đọc cho phép người dùng đọc dữ liệu mà không thể chỉnh sửa, trong khi Dự án Chỉ Đọc chỉ cho phép xem thông tin bên ngoài mà không có quyền truy cập vào bộ sưu tập để xem dữ liệu.
Hình 3.29 Các mức độ phân quyền cho user
GIẢI THUẬT VÀ ĐIỀU KHIỂN
H OẠT ĐỘNG CỦA HỆ THỐNG
Trước tiên, cần tạo dashboard cho Node-RED, AppSheet và MongoDB Tiếp theo, truy cập vào dashboard của Node-RED để quét sản phẩm, và thông tin sau khi quét sẽ được hiển thị trên dashboard này Dữ liệu sẽ được lưu trữ tại Google Sheets và MongoDB AppSheet sẽ tự động cập nhật dữ liệu từ Google Sheets, trong khi các biểu đồ của MongoDB cũng sẽ tự động cập nhật dựa trên dữ liệu đã được đưa vào.
HOẠT ĐỘNG THỰC TẾ
T IẾN TRÌNH THỰC NGHIỆM
Bước 1: Thực hiện quét sản phẩm bằng Node red Dashboard
Bước 2: kiểm tra thông tin sản phẩm
Hình 5.2 Thông tin sản phẩm
Bước 3: kiểm tra dữ liệu GoogleSheets
Hình 5.3 Dữ liệu nhập vào trên GoogleSheets
Bước 4: kiểm tra dữ liệu MongoDB:
Hình 5.4 Dữ liệu nhập vào bên MongoDB
Bước 5: kiểm tra dữ liệu xuất ra bảng AppSheets
Hình 5.5 Dữ liệu được đưa lên AppSheets
Bước 6: Kiểm tra chart dữ liệu trên MongoDB, AppSheets
Hình 5.6 Chart dữ liệu MongoDB
Bước 7: xóa dữ liệu được nhập vào
Trong bài viết này, chúng tôi sẽ khám phá các phương pháp xóa dữ liệu hiệu quả, bao gồm cách xóa dữ liệu trên Google Sheets, xóa dữ liệu từ MongoDB, xóa dữ liệu theo ngày và xóa dữ liệu trong MongoDB dựa trên các trường dữ liệu cụ thể.
Hình 5.7 xóa dữ liệu GoogleSheet hoặc MongoDB
Hình 5.8 xóa dữ liệu MongoDB thời gian mong muốn
Hình 5.9 xóa dữ liệu MongoDB theo trường màu sắc
K ẾT LUẬN THỰC NGHIỆM
Mục tiêu của đề tài là phát triển một phần mềm linh động, trực quan và dễ quan sát, cho phép người dùng dễ dàng thay đổi và tùy biến theo nhu cầu sử dụng của họ.