Jump to content

dotob

Administrators
  • Posts

    52
  • Đã tham gia

  • Last visited

  • Days Won

    3

Mọi thứ được đăng bởi dotob

  1. 1. FRED (Front End for Node-RED) FRED là một nền tảng được phát triển bởi Sense Tecnic Systems, cho phép người dùng triển khai và quản lý các luồng Node-RED trên đám mây. Đây là một trong những dự án nổi bật trong việc giúp người dùng triển khai nhanh chóng các ứng dụng IoT mà không cần phải thiết lập hạ tầng riêng. 2. Hệ thống nhà thông minh của người dùng cá nhân Nhiều người đam mê công nghệ đã sử dụng Node-RED để xây dựng hệ thống nhà thông minh tùy chỉnh. Một ví dụ điển hình là một dự án tự động hóa toàn bộ hệ thống chiếu sáng, an ninh và điều hòa không khí trong nhà, kết hợp với các dịch vụ như Alexa, Google Assistant và các cảm biến IoT. 3. Quản lý năng lượng tại trường đại học Nottingham Trường đại học Nottingham đã triển khai Node-RED để giám sát và quản lý tiêu thụ năng lượng trong khuôn viên trường. Hệ thống này giúp theo dõi mức sử dụng năng lượng theo thời gian thực, từ đó đưa ra các chiến lược tiết kiệm năng lượng và giảm thiểu tác động môi trường. 4. Dự án giám sát giao thông thông minh tại Úc Tại Úc, Node-RED đã được sử dụng trong một dự án giám sát giao thông thông minh. Hệ thống này thu thập dữ liệu từ các cảm biến giao thông, sau đó phân tích và điều chỉnh đèn tín hiệu để tối ưu hóa luồng xe, giảm ùn tắc. 5. Bảo trì dự đoán trong công nghiệp Node-RED được tích hợp vào các hệ thống bảo trì dự đoán, thu thập dữ liệu từ các cảm biến gắn trên máy móc trong nhà máy. Dữ liệu này sau đó được phân tích để dự đoán thời điểm cần bảo trì, giúp tránh các sự cố không mong muốn và tối ưu hóa hoạt động sản xuất. 6. Giám sát môi trường trong đô thị tại London Node-RED đã được sử dụng trong một dự án giám sát chất lượng không khí ở London. Dự án này kết hợp các cảm biến không khí và thiết bị IoT với Node-RED để thu thập dữ liệu và cảnh báo người dân về các mức độ ô nhiễm nguy hiểm. 7. Ứng dụng y tế thông minh tại bệnh viện Cleveland Clinic Cleveland Clinic đã sử dụng Node-RED để phát triển các ứng dụng giám sát sức khỏe từ xa cho bệnh nhân. Các thiết bị đeo và cảm biến y tế gửi dữ liệu trực tiếp về hệ thống, giúp các bác sĩ theo dõi tình trạng bệnh nhân liên tục và đưa ra quyết định kịp thời. 8. Open Energy Monitor Dự án Open Energy Monitor sử dụng Node-RED để giúp người dùng giám sát và quản lý việc sử dụng năng lượng trong nhà hoặc doanh nghiệp. Node-RED kết hợp dữ liệu từ các thiết bị đo năng lượng để phân tích và hiển thị thông tin theo thời gian thực, hỗ trợ việc tối ưu hóa sử dụng năng lượng. 9. Smart City tại Santander, Tây Ban Nha Trong dự án phát triển thành phố thông minh, Santander đã sử dụng Node-RED để kết nối và quản lý hàng ngàn cảm biến khắp thành phố. Hệ thống này giúp giám sát giao thông, chất lượng không khí, và quản lý chất thải một cách hiệu quả. 10. IBM Watson IoT Platform IBM đã tích hợp Node-RED vào nền tảng Watson IoT của mình, cho phép các doanh nghiệp tạo và triển khai các ứng dụng IoT phức tạp một cách dễ dàng. Node-RED trong Watson IoT giúp các nhà phát triển không chỉ kết nối các thiết bị mà còn tận dụng trí tuệ nhân tạo của Watson để phân tích dữ liệu. Những dự án này không chỉ chứng minh tính ưu việt của Node-RED mà còn mở ra nhiều cơ hội mới cho các nhà phát triển, kỹ sư và người dùng trong việc tạo ra các giải pháp sáng tạo cho cuộc sống và công nghiệp.
  2. Khám Phá Node-RED: Công Cụ Đột Phá Giúp Tự Động Hóa Cuộc Sống và Cộng Đồng Trong thế giới ngày càng số hóa, nhu cầu về các giải pháp tự động hóa thông minh và dễ tiếp cận ngày càng trở nên cấp thiết. Bạn có bao giờ mong muốn ngôi nhà của mình trở nên thông minh hơn, hay mơ về một cộng đồng với các dịch vụ công cộng được tối ưu hóa và thân thiện với môi trường? Node-RED chính là chìa khóa mở ra cánh cửa đến với những giấc mơ đó. Node-RED là gì? Node-RED là một nền tảng lập trình trực quan, cho phép bạn kết nối các thiết bị, dịch vụ và API một cách dễ dàng thông qua giao diện kéo-thả. Bất kể bạn là một nhà phát triển có kinh nghiệm hay chỉ là người mới bắt đầu khám phá IoT, Node-RED đều có thể giúp bạn xây dựng các giải pháp tự động hóa một cách nhanh chóng và hiệu quả. Ứng Dụng Thực Tế Của Node-RED Node-RED đã và đang được áp dụng rộng rãi vào nhiều lĩnh vực trong cuộc sống: Nhà Thông Minh (Smart Home): Tự động hóa các thiết bị trong nhà như đèn, máy điều hòa, và rèm cửa theo thời gian thực hoặc theo tình huống. Giám sát an ninh và quản lý năng lượng một cách thông minh để tiết kiệm chi phí và bảo vệ môi trường. Quản Lý Năng Lượng: Theo dõi và tối ưu hóa việc sử dụng điện năng, tích hợp hệ thống năng lượng tái tạo như điện mặt trời hay điện gió, giúp giảm chi phí và bảo vệ môi trường. Đô Thị Thông Minh (Smart City): Điều khiển đèn giao thông, giám sát chất lượng không khí, và quản lý các dịch vụ công cộng, tất cả đều có thể được thực hiện dễ dàng qua Node-RED, giúp nâng cao chất lượng cuộc sống cho cư dân đô thị. Chăm Sóc Sức Khỏe: Giám sát tình trạng sức khỏe từ xa, quản lý dữ liệu bệnh nhân và tích hợp các thiết bị y tế thông minh để đảm bảo chăm sóc sức khỏe toàn diện. Giáo Dục và Cộng Đồng: Node-RED không chỉ là một công cụ mà còn là một nền tảng học tập. Các trường học và cộng đồng có thể sử dụng nó để giảng dạy và phát triển các dự án công nghệ, nâng cao nhận thức và kỹ năng số cho mọi người. Tại Sao Bạn Nên Quan Tâm Đến Node-RED? Node-RED không chỉ đơn thuần là một công cụ lập trình; nó là một giải pháp toàn diện giúp bạn biến những ý tưởng sáng tạo thành hiện thực. Với Node-RED, bạn không cần phải là một chuyên gia công nghệ để tự động hóa cuộc sống và xây dựng những hệ thống thông minh cho cộng đồng của mình. Hơn nữa, Node-RED là mã nguồn mở và miễn phí, giúp mọi người dễ dàng tiếp cận và sử dụng. Tham Gia Cộng Đồng Node-RED Tại Việt Nam Nếu bạn hứng thú với Node-RED và muốn bắt đầu hành trình khám phá này, cộng đồng Node-RED tại Việt Nam trên diễn đàn nr.io.vn sẽ là nơi lý tưởng dành cho bạn. Tại đây, bạn có thể học hỏi, trao đổi kinh nghiệm với những người có cùng đam mê, và nhận được sự hỗ trợ từ những chuyên gia trong lĩnh vực. Hãy đăng ký ngay hôm nay để trở thành một phần của cộng đồng công nghệ tiên phong, khám phá tiềm năng vô hạn của Node-RED và cùng nhau tạo nên những giải pháp đột phá cho cuộc sống và cộng đồng! Link đăng ký: https://nr.io.vn/register/ Node-RED không chỉ là công cụ, mà là một cầu nối giúp chúng ta cùng nhau xây dựng tương lai thông minh và bền vững hơn. Hãy tham gia và bắt đầu hành trình của bạn ngay hôm nay!
  3. Node-RED đã được áp dụng vào nhiều ứng dụng thực tế trong các cộng đồng dân sinh, từ việc tự động hóa gia đình đến quản lý các hệ thống công cộng 1. Nhà thông minh (Smart Home) Tự động hóa thiết bị gia đình: Node-RED được sử dụng để kết nối và điều khiển các thiết bị thông minh trong nhà, như đèn chiếu sáng, máy điều hòa không khí, rèm cửa tự động, và hệ thống an ninh. Ví dụ, người dùng có thể cấu hình Node-RED để tự động bật đèn khi có người vào phòng hoặc tắt tất cả các thiết bị khi ra khỏi nhà. Giám sát và cảnh báo: Node-RED có thể tích hợp với các cảm biến như cảm biến khói, cảm biến nhiệt độ, và cảm biến chuyển động để giám sát tình trạng của ngôi nhà và gửi cảnh báo đến điện thoại di động khi phát hiện điều bất thường, chẳng hạn như khói hoặc đột nhập. 2. Quản lý năng lượng Giám sát tiêu thụ điện: Node-RED được triển khai để theo dõi mức tiêu thụ điện năng của các thiết bị trong nhà hoặc tòa nhà. Các dữ liệu này có thể được phân tích để tối ưu hóa việc sử dụng năng lượng, giúp tiết kiệm chi phí và giảm tác động môi trường. Tích hợp với hệ thống năng lượng tái tạo: Node-RED có thể được sử dụng để điều khiển và giám sát các hệ thống năng lượng tái tạo như điện mặt trời hoặc điện gió, tối ưu hóa việc lưu trữ và sử dụng năng lượng tái tạo trong gia đình. 3. Quản lý giao thông và đô thị thông minh (Smart City) Điều khiển đèn giao thông: Node-RED đã được sử dụng trong các hệ thống điều khiển đèn giao thông thông minh, giúp giảm ùn tắc và cải thiện lưu thông xe cộ. Hệ thống có thể dựa trên dữ liệu thực tế như lưu lượng xe và thời gian để điều chỉnh thời gian chờ đèn đỏ một cách tự động. Quản lý chất lượng không khí: Node-RED có thể tích hợp các cảm biến chất lượng không khí được đặt tại các điểm trong thành phố để giám sát mức độ ô nhiễm. Dữ liệu này có thể được hiển thị trên các bảng điện tử hoặc ứng dụng di động để cảnh báo người dân và chính quyền thành phố. 4. Ứng dụng chăm sóc sức khỏe Giám sát sức khỏe từ xa: Node-RED được sử dụng để thu thập dữ liệu từ các thiết bị đeo theo dõi sức khỏe như đồng hồ thông minh hoặc các cảm biến y tế. Dữ liệu như nhịp tim, mức đường huyết, hoặc huyết áp có thể được gửi đến bác sĩ hoặc người chăm sóc để theo dõi tình trạng sức khỏe của bệnh nhân từ xa. Quản lý dữ liệu bệnh nhân: Trong các cơ sở y tế, Node-RED có thể được triển khai để tích hợp và quản lý dữ liệu bệnh nhân từ nhiều nguồn khác nhau, giúp bác sĩ có cái nhìn toàn diện hơn về tình trạng của bệnh nhân và đưa ra quyết định điều trị phù hợp. 5. Giáo dục và trải nghiệm học tập Dạy lập trình IoT: Các trường học và trung tâm đào tạo sử dụng Node-RED như một công cụ giảng dạy để giúp học sinh và sinh viên học về lập trình và IoT. Với giao diện kéo thả, Node-RED làm cho việc hiểu và phát triển các ứng dụng IoT trở nên dễ dàng hơn, ngay cả đối với những người không chuyên về công nghệ. Xây dựng các dự án cộng đồng: Node-RED đã được sử dụng trong các dự án cộng đồng, nơi người dân có thể tham gia vào việc phát triển các giải pháp công nghệ cho các vấn đề địa phương như quản lý nước sạch, giám sát môi trường, hoặc phát triển ứng dụng cho các không gian công cộng. Những ứng dụng này minh chứng cho khả năng linh hoạt và mạnh mẽ của Node-RED trong việc giải quyết các vấn đề thực tế và cải thiện chất lượng cuộc sống trong cộng đồng dân sinh.
  4. 1. Hạ tầng phần cứng triển khai Node-RED Node-RED có thể triển khai trên nhiều hạ tầng phần cứng khác nhau, từ những thiết bị nhỏ gọn đến các máy chủ mạnh mẽ: Máy tính cá nhân (PC, laptop): Node-RED có thể chạy trên các máy tính chạy Windows, macOS hoặc Linux. Cài đặt thường qua Node.js. Máy chủ (Server): Node-RED có thể triển khai trên các máy chủ vật lý hoặc máy chủ ảo (VPS), hỗ trợ các môi trường như Docker. Thiết bị nhúng (Embedded devices): Node-RED có thể chạy trên các thiết bị nhỏ như Raspberry Pi, BeagleBone, hay các hệ thống dựa trên ARM khác. Đây là một lựa chọn phổ biến cho các dự án IoT. Cloud: Node-RED có thể được triển khai trên các nền tảng đám mây như Cloud riêng, AWS, Microsoft Azure, IBM Cloud, hoặc Google Cloud. Điều này cho phép tích hợp các dịch vụ đám mây vào hệ thống Node-RED. 2. Lợi ích của Node-RED áp dụng vào cộng đồng dân sinh Node-RED mang lại nhiều lợi ích khi áp dụng vào cộng đồng dân sinh: Tự động hóa nhà thông minh (Smart Home): Node-RED có thể tích hợp các thiết bị IoT trong nhà như đèn, cửa, điều hòa, và các cảm biến để tạo ra hệ thống nhà thông minh. Người dùng có thể dễ dàng lập trình các kịch bản tự động hóa mà không cần kiến thức lập trình sâu. Giám sát môi trường và năng lượng: Node-RED có thể tích hợp với các cảm biến môi trường như nhiệt độ, độ ẩm, chất lượng không khí, và các thiết bị đo lường năng lượng. Điều này giúp giám sát và tối ưu hóa việc sử dụng năng lượng trong các tòa nhà, giúp tiết kiệm chi phí và bảo vệ môi trường. Dịch vụ công cộng: Node-RED có thể được dùng để quản lý và giám sát các dịch vụ công cộng như cấp nước, điện, xử lý rác thải, và hệ thống giao thông. Tích hợp các cảm biến và thiết bị IoT giúp tự động hóa và tối ưu hóa các dịch vụ này, nâng cao chất lượng cuộc sống của người dân. Ứng dụng chăm sóc sức khỏe từ xa: Node-RED có thể hỗ trợ trong việc giám sát tình trạng sức khỏe từ xa, kết nối các thiết bị y tế với các dịch vụ y tế. Điều này đặc biệt hữu ích cho người cao tuổi hoặc những người có nhu cầu chăm sóc đặc biệt, giúp họ được theo dõi sức khỏe mà không cần đến bệnh viện thường xuyên. Giáo dục và nâng cao nhận thức công nghệ: Node-RED là một công cụ học tập hữu ích cho người mới bắt đầu học về lập trình và IoT. Các trường học và cộng đồng có thể sử dụng Node-RED để giảng dạy và nâng cao nhận thức về công nghệ trong xã hội. Node-RED không chỉ là một công cụ mạnh mẽ cho phát triển phần mềm mà còn có tiềm năng lớn trong việc cải thiện cuộc sống hàng ngày và thúc đẩy sự phát triển bền vững trong cộng đồng.
  5. 1. Hạ tầng phần cứng triển khai Node-RED Node-RED có thể triển khai trên nhiều hạ tầng phần cứng khác nhau, từ những thiết bị nhỏ gọn đến các máy chủ mạnh mẽ: Máy tính cá nhân (PC, laptop): Node-RED có thể chạy trên các máy tính chạy Windows, macOS hoặc Linux. Cài đặt thường qua Node.js. Máy chủ (Server): Node-RED có thể triển khai trên các máy chủ vật lý hoặc máy chủ ảo (VPS), hỗ trợ các môi trường như Docker. Thiết bị nhúng (Embedded devices): Node-RED có thể chạy trên các thiết bị nhỏ như Raspberry Pi, BeagleBone, hay các hệ thống dựa trên ARM khác. Đây là một lựa chọn phổ biến cho các dự án IoT. Cloud: Node-RED có thể được triển khai trên các nền tảng đám mây như Cloud riêng, AWS, Microsoft Azure, IBM Cloud, hoặc Google Cloud. Điều này cho phép tích hợp các dịch vụ đám mây vào hệ thống Node-RED. 2. Lợi ích của Node-RED áp dụng vào cộng đồng dân sinh Node-RED mang lại nhiều lợi ích khi áp dụng vào cộng đồng dân sinh: Tự động hóa nhà thông minh (Smart Home): Node-RED có thể tích hợp các thiết bị IoT trong nhà như đèn, cửa, điều hòa, và các cảm biến để tạo ra hệ thống nhà thông minh. Người dùng có thể dễ dàng lập trình các kịch bản tự động hóa mà không cần kiến thức lập trình sâu. Giám sát môi trường và năng lượng: Node-RED có thể tích hợp với các cảm biến môi trường như nhiệt độ, độ ẩm, chất lượng không khí, và các thiết bị đo lường năng lượng. Điều này giúp giám sát và tối ưu hóa việc sử dụng năng lượng trong các tòa nhà, giúp tiết kiệm chi phí và bảo vệ môi trường. Dịch vụ công cộng: Node-RED có thể được dùng để quản lý và giám sát các dịch vụ công cộng như cấp nước, điện, xử lý rác thải, và hệ thống giao thông. Tích hợp các cảm biến và thiết bị IoT giúp tự động hóa và tối ưu hóa các dịch vụ này, nâng cao chất lượng cuộc sống của người dân. Ứng dụng chăm sóc sức khỏe từ xa: Node-RED có thể hỗ trợ trong việc giám sát tình trạng sức khỏe từ xa, kết nối các thiết bị y tế với các dịch vụ y tế. Điều này đặc biệt hữu ích cho người cao tuổi hoặc những người có nhu cầu chăm sóc đặc biệt, giúp họ được theo dõi sức khỏe mà không cần đến bệnh viện thường xuyên. Giáo dục và nâng cao nhận thức công nghệ: Node-RED là một công cụ học tập hữu ích cho người mới bắt đầu học về lập trình và IoT. Các trường học và cộng đồng có thể sử dụng Node-RED để giảng dạy và nâng cao nhận thức về công nghệ trong xã hội. Node-RED không chỉ là một công cụ mạnh mẽ cho phát triển phần mềm mà còn có tiềm năng lớn trong việc cải thiện cuộc sống hàng ngày và thúc đẩy sự phát triển bền vững trong cộng đồng.
  6. Hướng dẫn về Node-RED cho người mới bắt đầu (Tiếng Anh)  
  7. 1. Thiết lập xác thực người dùng Node-RED cung cấp cơ chế xác thực người dùng. Bạn có thể kích hoạt bảo mật bằng cách chỉnh sửa file settings.js: Mở file settings.js nằm trong thư mục Node-RED, thường là ~/.node-red/settings.js. Tìm dòng adminAuth và bỏ ghi chú để kích hoạt xác thực người dùng: adminAuth: { type: "credentials", users: [{ username: "admin", password: "$2b$08$E2bFs1NzOR0QOn1IV3NU7u5KKjsGx8bFV1b/U14BdH4kz/OLTxKZi", permissions: "*" }] }, Sử dụng lệnh Node-RED sau để lấy mật khẩu đã mã hóa mật khẩu trước khi thêm hoặc thay thế vào file settings.js: node -e "console.log(require('bcryptjs').hashSync('your_password', 8));" 2. Thêm nhiều tài khoản người dùng Trong file settings.js, bạn có thể thêm nhiều người dùng bằng cách thêm các đối tượng vào mảng users trong mục adminAuth: adminAuth: { type: "credentials", users: [ { username: "user1", password: "$2b$08$hash_of_password1", permissions: "*" }, { username: "user2", password: "$2b$08$hash_of_password2", permissions: "read" } ] }, Trong đó với thông số: permissions: "*" cho phép người dùng toàn quyền (xem, chỉnh sửa). permissions: "read" chỉ cho phép người dùng xem flow mà không được chỉnh sửa. Ngoài ra sẽ còn một số phương pháp bổ sung để tăng thêm tính bảo mật sẽ được nêu chi tiết trong chủ đề "Bảo mật cơ bản cho việc truy cập Node-RED"
  8. Node-RED ra đời vào đầu năm 2013 bởi Nick O’Leary và Dave Conway-Jones thuộc nhóm những dịch vụ công nghệ mới nổi trội của IBM. Đây là một công cụ lập trình dùng để kết nối các phần cứng, các API và các dịch vụ trực tuyến với nhau theo những cách thú vị và mới mẻ. Nó sử dụng phương pháp lập trình low-code cho các ứng dụng hướng sự kiện (event-based program). Công cụ này cung cấp một giao diện trực quan trên trình duyệt mà ở đó, chúng ta có thể kết nối một cách đơn giản các luồng lại với nhau. Thêm vào đó, ta có thể sử dụng bộ thư viện khổng lồ các Node trong kho lưu trữ để tạo và triển khai chỉ với vài click chuột đơn giản. Các luồng được tạo trong Node-RED được lưu trữ bằng JSON nên dễ dàng import và export để chia sẻ với mọi người. Các thành phần trong Node-RED Sau khi cài đặt và thiết lập các tùy chọn cơ bản, ta sẽ có được giao diện như sau: Khi sử dụng Node-RED, chúng ta có tới 4 cách để có thể tạo một ứng dụng đơn giản, nhanh chóng: Sử dụng UI dashboard cung cấp sẵn. Đây là 1 package chưa rất nhiều các node mẫu như button, checkbox, switch, text input,… và rất nhiều UI khác chờ mọi người khám phá. Sử dụng HTML, CSS truyền thống để tạo nên ứng dụng thay vì sử dụng các UI có sẵn, giúp chúng ta custom nhiều thứ chúng ta muốn mà UI dashboard không thể làm được. Sử dụng các file JSON được export. Sử dụng project được export. Sau đây, chúng ta sẽ cùng tìm hiểu cách lập trình một ứng dụng đơn giản sử dụng giao diện Dashboard sẵn có của Node-RED. Tạo ứng dụng bằng UI Dashboard Đầu tiên mọi người khởi động Node-RED bằng cách mở cmd và chạy lệnh node-red. Tùy và từng hệ điều hành mà có cách khởi chạy khác nhau. Bài viết này sử dụng hệ điều hành Windows nên sau khi chạy xong sẽ được kết quả như sau: Mọi người sẽ thấy link đến node-red trên browser mặc định tại 127.0.0.1:1880. Truy cập vào link trên sẽ đi đến giao diện lập trình của Node-RED như bên dưới: Để có thể sử dụng package dashboard, chúng ta sẽ chọn menu ở phía trên bên phải, chọn Manage palette và cài đặt theo hướng dẫn như bên dưới: Tiến hành update hoặc cài đặt (install) như hình trên, ta sẽ có được package làm việc với node-RED. Package này hỗ trợ nhiều UI có sẵn để chúng ta tạo ứng dụng một cách nhanh chóng nhất. Sau khi cài đặt ta sẽ có giao diện như sau: Phần chuẩn bị xem như là hoàn tất, tiếp theo ta sẽ xây dựng 1 kịch bản App login đơn giản như sau: 1 text field dùng để nhập username 1 text field dùng để nhập password 1 button login dùng để đăng nhập 1 function 1 notification 1 debug Khi người dùng nhập đúng usename và password mặt định thì sẽ hiển thị thông báo “Wellcom to Node-RED” người lại thì message có nội dung “usename or password is incorrect”. Mọi người sẽ làm như sau đây để tạo ra flow như trên: Tiếp theo, chúng ta sẽ config các tham số cho các block để chúng có thể làm việc được với nhau: Config cho Text input và button. Config cho Function: Sau khi config ta ấn vào button Deploy. Vào địa chỉ 127.0.0.1:1880/ui/ để mở App mà chúng ta vừa deploy lên. Giao diện nhận được như sau: Tiến hành nhập username và password là “admin” và click button Login, ta sẽ thấy notification góc trên bên phải: Ngược lại nếu nhập sai 1 trong 2 thì: Đây là một vài những nét cơ bản về bộ công cụ Node-RED. Để tạo ra các sản phẩm nâng cao hơn các bạn có thể đăng ký thành viên Cộng Đồng Node-RED Việt Nam.
  9. Nền tảng phát triển low-code (LCDP) cung cấp một môi trường phát triển phần mềm, nơi bạn có thể tạo cho mình một ứng dụng hoàn chỉnh thông qua giao diện sử dụng trực quan. Một nền tảng low-code có khả năng tạo nên một ứng dụng hoạt động hoàn chỉnh, hoặc yêu cầu thêm code cho các tình huống cụ thể. Các nền tảng này giúp tiết kiệm thời gian phát triển theo cách truyền thống, rút ngắn thời gian doanh nghiệp nhận được sản phẩm. Lợi ích chung của nền tảng này là cho phép cả những người không có kiến thức kỹ thuật tham gia vào quá trình xây dựng app. Nó không chỉ cần những người có kỹ năng code mà còn yêu cầu quản trị tốt để có thể tuân thủ các quy tắc và quy định chung. Chắc hẳn mọi người đã từng nghe qua, thậm chí đã và đang làm việc với low-code. Trong thế giới lập trình, có rất nhiều ứng dụng cho phép chúng ta làm việc đó, từ các ứng dụng mobile cho tới web, thậm chí là các API. Một số ứng dụng dạng low-code nổi tiếng có thể kể đến là Labview, MIT App Inventor, App Creator, Node-RED, n8n … Trong bài viết này, chúng ta sẽ cùng tìm hiểu một công cụ low-code có tên Node-RED và cách tạo ứng dụng đơn giản từ Node-RED. Trước khi đi vào tìm hiểu, hãy cùng xem qua 2 bức hình bên dưới: Cụ thể nó có thể làm được những gì? Hãy đăng ký thành viên Cộng Đồng Node-RED Việt Nam để biết thêm nhiều thông tin và áp dụng cho công việc của bạn trở lên hiệu quả hơn
  10. Node-RED là một công cụ lập trình trực quan (visual programming) dựa trên dòng dữ liệu, chủ yếu được sử dụng để kết nối và điều khiển các thiết bị IoT (Internet of Things), API và dịch vụ trực tuyến. Node-RED được phát triển bởi IBM và cung cấp một môi trường phát triển tích hợp (IDE) trên nền tảng web, cho phép người dùng dễ dàng tạo các ứng dụng bằng cách kéo thả các nút (nodes) và kết nối chúng thông qua các dây (wires). Một số đặc điểm chính của Node-RED: Giao diện người dùng trực quan: Node-RED sử dụng giao diện web để thiết kế luồng dữ liệu, cho phép người dùng không cần có kỹ năng lập trình sâu vẫn có thể xây dựng các ứng dụng phức tạp. Các nút mở rộng: Node-RED cung cấp sẵn một thư viện các nút (nodes) phục vụ nhiều chức năng khác nhau như kết nối với các API, cơ sở dữ liệu, xử lý dữ liệu, và điều khiển các thiết bị IoT. Người dùng cũng có thể tạo ra các nút tùy chỉnh. Mã nguồn mở: Node-RED là một dự án mã nguồn mở, được cộng đồng phát triển và duy trì. Khả năng tích hợp rộng: Node-RED có thể dễ dàng tích hợp với các dịch vụ và nền tảng khác như MQTT, HTTP, WebSockets, và các dịch vụ đám mây như AWS, Microsoft Azure, hay Google Cloud. Phát triển nhanh: Do không yêu cầu nhiều kỹ năng lập trình và có thể tạo ứng dụng bằng cách kéo thả, Node-RED giúp giảm thời gian phát triển các ứng dụng và thử nghiệm nhanh chóng các ý tưởng mới. Node-RED thường được sử dụng trong các dự án IoT, tự động hóa nhà thông minh, phân tích dữ liệu thời gian thực, và các ứng dụng liên quan đến tích hợp hệ thống.
  11. VI.3. Tích hợp dữ liệu và API trong Node-RED Node-RED là một công cụ thời gian thực cho phép người dùng tạo các luồng dữ liệu phức tạp mà không cần viết mã. Để tích hợp dữ liệu và API trong Node-RED, các node sau đây có thể được sử dụng: Input Nodes: Node HTTP Request: Gửi yêu cầu HTTP đến các API hoặc URL. Node MQTT Input: Nhận và xử lý tin nhắn MQTT từ các broker. Node Event: Chờ các sự kiện được kích hoạt bên ngoài Node-RED. Output Nodes: Node HTTP Response: Gửi phản hồi HTTP tới các yêu cầu. Node MQTT Output: Xuất bản tin nhắn tới các broker MQTT. Node Call Service: Gọi dịch vụ Home Assistant để điều khiển các thiết bị hoặc truy xuất dữ liệu. Ví dụ: Tích hợp API thời tiết: 1. Kéo và thả một node HTTP Request vào canvas. 2. Cấu hình URL yêu cầu thành API thời tiết (ví dụ: "https://api.openweathermap.org/data/2.5/weather"). 3. Kéo và thả một node Debug. 4. Kết nối đầu ra của node HTTP Request với đầu vào của node Debug. 5. Nhấn nút "Deploy" để triển khai luồng. Khi bạn gửi một yêu cầu HTTP đến URL được chỉ định, luồng sẽ được kích hoạt và phản hồi từ API thời tiết sẽ được hiển thị trong cửa sổ gỡ lỗi. Tích hợp dữ liệu MQTT: 1. Kéo và thả một node MQTT Input vào canvas. 2. Cấu hình địa chỉ IP hoặc tên miền của broker MQTT và thông tin xác thực. 3. Cấu hình chủ đề của tin nhắn bạn muốn nhận. 4. Kéo và thả một node MQTT Output. 5. Kết nối đầu ra của node MQTT Input với đầu vào của node MQTT Output. 6. Nhấn nút "Deploy" để triển khai luồng. Khi tin nhắn trùng với chủ đề được chỉ định được nhận, luồng sẽ được kích hoạt và tin nhắn sẽ được xuất bản tới chủ đề được cấu hình.
  12. VI.2 Giám sát và Điều khiển với Node-RED Node-RED cung cấp các nút tích hợp cho phép bạn giám sát và điều khiển các thiết bị thông minh và hệ thống IoT. Dưới đây là một số nút thường được sử dụng cho mục đích này: Nút Đọc (Read): Đọc dữ liệu từ cảm biến hoặc thiết bị được kết nối. Ví dụ: nút "Read MQTT" đọc tin nhắn từ một broker MQTT. Nút Viết (Write): Gửi dữ liệu đến thiết bị hoặc hệ thống mục tiêu. Ví dụ: nút "Write MQTT" gửi tin nhắn đến một broker MQTT. Nút Xử lý Dữ liệu (Data Processing): Biến đổi hoặc xử lý dữ liệu trước khi giám sát hoặc điều khiển. Ví dụ: nút "Change" có thể thay đổi giá trị dữ liệu hoặc nút "Filter" có thể lọc dữ liệu theo các tiêu chí nhất định. Nút Hiển thị (Display): Hiển thị dữ liệu được giám sát trên giao diện dashboard. Ví dụ: nút "Gauge" hiển thị giá trị dữ liệu dưới dạng đồng hồ đo, còn nút "Text" hiển thị văn bản đơn giản. Nút Kiểm soát (Control): Cho phép người dùng tương tác với hệ thống để điều khiển các thiết bị. Ví dụ: nút "Button" cho phép người dùng gửi lệnh thủ công, trong khi nút "Slider" cho phép người dùng điều chỉnh giá trị. Ví dụ: Giả sử bạn muốn giám sát nhiệt độ trong phòng và bật quạt khi nhiệt độ vượt quá 25 độ C. Bạn có thể tạo luồng Node-RED sau: [Nhiệt kế] -> [Kiểm tra Nhiệt độ] -> [Quạt] Nhiệt kế: Nút đọc dữ liệu nhiệt độ từ cảm biến. Kiểm tra Nhiệt độ: Nút xử lý dữ liệu nhiệt độ và kiểm tra xem nó có vượt quá 25 độ C không. Quạt: Nút viết lệnh "bật" hoặc "tắt" đến quạt tùy thuộc vào kết quả kiểm tra. Trong ví dụ này, nút "Kiểm tra Nhiệt độ" có thể được cấu hình để sử dụng nút "Chuyển đổi" để chuyển đổi nhiệt độ từ độ C sang độ F trước khi thực hiện kiểm tra. Bạn cũng có thể thêm nút "Hiển thị" để hiển thị nhiệt độ hiện tại trên bảng điều khiển.
  13. VI. Các trường hợp sử dụng Node-RED VI.1. Tự động hóa nhà nhà thông minh với Node-RED Node-RED là một công cụ lập trình trực quan dựa trên luồng để kết nối các thiết bị, dịch vụ và API để tạo các luồng công việc tự động hóa. Trong bối cảnh tự động hóa nhà, Node-RED có thể được sử dụng để tạo các hệ thống thông minh điều khiển đèn, nhiệt độ, an ninh và các tiện nghi khác. Ví dụ: Điều khiển đèn tự động: Nhập: Đăng ký tin nhắn MQTT từ cảm biến chuyển động. Xử lý: Kiểm tra xem có chuyển động hay không. Xuất: Gửi tin nhắn đến một công tắc thông minh để bật đèn nếu có chuyển động. Điều chỉnh nhiệt độ thông minh: Nhập: Đăng ký dữ liệu từ cảm biến nhiệt độ. Xử lý: So sánh nhiệt độ hiện tại với nhiệt độ đặt. Xuất: Gửi lệnh đến bộ điều nhiệt để tăng hoặc giảm nhiệt độ. Theo dõi an ninh ngôi nhà: Nhập: Đăng ký tin nhắn MQTT từ cảm biến cửa sổ và cửa ra vào. Xử lý: Kiểm tra xem cửa sổ hoặc cửa ra vào có được mở khi không có người ở không. Xuất: Gửi thông báo đến điện thoại của người dùng hoặc kích hoạt báo động. Kết nối các tiện nghi khác: Ngoài các tính năng nêu trên, Node-RED cũng có thể được sử dụng để tự động hóa các tiện nghi khác như: Tưới cây Mở/đóng rèm cửa Phát nhạc Theo dõi mức tiêu thụ năng lượng Ưu điểm của Node-RED trong tự động hóa nhà thông minh: Giao diện trực quan và dễ sử dụng. Cung cấp nhiều nút xử lý dữ liệu và giao tiếp. Khả năng mở rộng cao để tích hợp với nhiều thiết bị và dịch vụ khác nhau. Cộng đồng lớn và tài nguyên trực tuyến hỗ trợ.
  14. V.2 Tương tự với Raspberry Pi Nếu bạn đã quen thuộc với Raspberry Pi thì Node-RED có thể cung cấp một trải nghiệm tương tự. Cả hai nền tảng đều dựa trên Linux và sử dụng GPIO (Đầu vào/Đầu ra mục đích chung) để tương tác với thế giới vật lý. Sử dụng GPIO Trong Node-RED, bạn có thể sử dụng nút "GPIO" để đọc hoặc viết dữ liệu vào pin GPIO. Ví dụ: [{"id":"7809b148.f8e2a8","type":"gpio","z":"3c8f99c4.ee1278","name":"LED","pin":"3","dir":"out","x":330,"y":130,"wires":[]},{"id":"fd291e83.0e38","type":"inject","z":"3c8f99c4.ee1278","name":"","topic":"","payload":"1","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":150,"y":160,"wires":[["7809b148.f8e2a8"]]},{"id":"a7ccca02.2d58c","type":"inject","z":"3c8f99c4.ee1278","name":"","topic":"","payload":"0","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":150,"y":200,"wires":[["7809b148.f8e2a8"]]}] Nút này tạo ra một đầu ra GPIO trên pin 3 và bật/tắt nó dựa trên tin nhắn nhận được. Điều khiển thiết bị Ngoài GPIO, Node-RED cũng có thể giao tiếp với các thiết bị bên ngoài thông qua các giao thức khác nhau, chẳng hạn như MQTT, HTTP và I2C. Bạn có thể sử dụng các nút để gửi tin nhắn, thực hiện yêu cầu HTTP hoặc đọc/ghi dữ liệu từ thiết bị. Ví dụ: [{"id":"81604274.7391ea","type":"mqtt in","z":"1b711317.02bdd","name":"","topic":"test/in","qos":"0","broker":"2bd75272.13b1f8","x":150,"y":120,"wires":[["1c880a1b.81dfc8"]]},{"id":"1c880a1b.81dfc8","type":"debug","z":"1b711317.02bdd","name":"","active":true,"console":"true","complete":"true","x":350,"y":120,"wires":[]}] Nút "mqtt in" này lắng nghe các tin nhắn trên chủ đề "test/in" và hiển thị chúng trong tab "Debug". Tự động hóa quy trình làm việc Một trong những điểm mạnh của Node-RED là khả năng tự động hóa các luồng công việc phức tạp. Bạn có thể kết nối các nút khác nhau để tạo các quy trình tự động thực hiện các hành động khi điều kiện cụ thể được đáp ứng. Ví dụ: [{"id":"5abac659.f755e8","type":"inject","z":"1b711317.02bdd","name":"","topic":"","payload":"ON","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":130,"y":170,"wires":[["98d9934e.436938"]]},{"id":"98d9934e.436938","type":"mqtt out","z":"1b711317.02bdd","name":"","topic":"test/out","qos":"0","retain":"","broker":"2bd75272.13b1f8","x":300,"y":160,"wires":[]}] Nút "inject" này gửi tin nhắn "ON" đến chủ đề "test/out" khi nút được kích hoạt, bật thiết bị được kết nối.
  15. V. Node-RED với Arduino và Raspberry Pi V.1 Kết nối và tương tác với Arduino bằng Node-RED Node-RED là một công cụ phát triển trực quan dựa trên trình chỉnh sửa lưu lượng cho Internet of Things (IoT). Nó cho phép bạn xây dựng các luồng dữ liệu phức tạp bằng cách kết nối các nút được cấu hình sẵn. Arduino là một nền tảng vi điều khiển nguồn mở được sử dụng rộng rãi trong các dự án IoT. Để kết nối Arduino với Node-RED, bạn có thể sử dụng cục môi giới MQTT, chẳng hạn như Mosquitto. MQTT là một giao thức nhẹ dạng xuất bản-đăng ký được thiết kế để truyền dữ liệu giữa các thiết bị IoT. Cấu hình Node-RED Trong Node-RED, lắp đặt các nút sau: mqtt in để nhận tin nhắn MQTT từ Arduino mqtt out để gửi tin nhắn MQTT đến Arduino function để xử lý dữ liệu được nhận Cấu hình Arduino Trong chương trình phác thảo Arduino của bạn: Bao gồm thư viện MQTT Kết nối với cục môi giới MQTT Đăng ký các chủ đề để nhận tin nhắn Xuất bản tin nhắn đến các chủ đề Luồng dữ liệu Tạo luồng dữ liệu trong Node-RED: 1. Kết nối nút mqtt in với nút function. 2. Cấu hình nút function để xử lý tin nhắn nhận được, chẳng hạn như trích xuất dữ liệu cảm biến. 3. Kết nối nút function với nút mqtt out. 4. Cấu hình nút mqtt out để gửi tin nhắn đến Arduino, chẳng hạn như lệnh điều khiển. Ví dụ Giả sử bạn muốn điều khiển đèn LED được kết nối với Arduino bằng nút trong Node-RED. Chương trình phác thảo Arduino: #include <PubSubClient.h> // Thay thế thông số cục môi giới và chủ đề bằng thông số của bạn const char* mqtt_server = ""; const char* mqtt_user = ""; const char* mqtt_password = ""; const char* mqtt_topic_in = ""; const char* mqtt_topic_out = ""; WiFiClient espClient; PubSubClient client(espClient); void setup() { // Thiết lập kết nối WiFi // Thiết lập kết nối MQTT client.connect("esp32-led", mqtt_user, mqtt_password); // Đăng ký chủ đề để nhận lệnh client.subscribe(mqtt_topic_in); } void loop() { client.loop(); // Kiểm tra xem có tin nhắn mới không if (client.available()) { // Nhận tin nhắn MQTT String message = client.readString(); // Kiểm tra nội dung tin nhắn if (message == "ON") { // Bật đèn LED } else if (message == "OFF") { // Tắt đèn LED } } } Luồng dữ liệu Node-RED: 1. Nút mqtt in được cấu hình để lắng nghe các tin nhắn trên chủ đề mqtt_topic_in. 2. Nút function được cấu hình để trích xuất lệnh "ON" hoặc "OFF" từ tin nhắn nhận được. 3. Nút mqtt out được cấu hình để gửi lệnh đến chủ đề mqtt_topic_out mà Arduino đang đăng ký. Khi nhấn nút trong Node-RED, một tin nhắn "ON" hoặc "OFF" sẽ được gửi đến Arduino, bật hoặc tắt đèn LED tương ứng.
  16. IV.2. Triển khai Luồng trên Thiết bị hoặc Dịch vụ Khác Node-RED cho phép triển khai luồng sang các thiết bị hoặc dịch vụ bên ngoài, mở rộng khả năng của nó ngoài môi trường cục bộ. Các Phương Pháp Triển khai 1. Hàm đám mây Node.js Triển khai luồng dưới dạng hàm đám mây được kích hoạt bởi các sự kiện nhất định. Ví dụ: Triển khai luồng để xử lý tin nhắn từ MQTT hoặc HTTP. 2. Docker Container Đóng gói luồng thành container Docker để chạy trên bất kỳ máy chủ được hỗ trợ Docker nào. Ví dụ: Triển khai luồng trên Raspberry Pi hoặc máy chủ đám mây (AWS, Azure, GCP). 3. Node-RED Agent Là máy khách Node.js nhỏ có thể kết nối với ứng dụng Node-RED từ xa và chạy luồng. Ví dụ: Triển khai luồng trên thiết bị IoT Edge để xử lý dữ liệu cục bộ. 4. Node-RED Dashboard Cho phép tạo giao diện người dùng web để tương tác với luồng từ xa. Ví dụ: Truy cập luồng từ thiết bị di động hoặc máy tính bảng. Các Bước Triển khai 1. Xuất Luồng Xuất luồng sang tệp JSON hoặc YAML. 2. Triển khai Luồng Hàm đám mây Node.js: Tạo hàm đám mây mới và triển khai tệp luồng. Docker Container: Xây dựng hình ảnh Docker và triển khai container. Node-RED Agent: Cài đặt Node-RED Agent và kết nối nó với ứng dụng Node-RED. Node-RED Dashboard: Triển khai luồng vào ứng dụng Node-RED Dashboard. Lưu ý: Đảm bảo rằng luồng tương thích với nền tảng triển khai. Xác minh chứng chỉ và quyền truy cập cần thiết. Theo dõi luồng được triển khai để phát hiện và khắc phục sự cố.
  17. IV. Lưu và triển khai luồng IV.1. Lưu luồng cục bộ và trên đám mây trong Node-RED Node-RED cung cấp hai tùy chọn lưu trữ luồng: Lưu trữ cục bộ: Luồng được lưu trữ trong hệ thống tệp cục bộ của node. Thuận tiện cho mục đích phát triển và gỡ lỗi. Tuy nhiên, nếu node sập, luồng sẽ bị mất. Lưu trữ trên đám mây: Luồng được lưu trữ trên đám mây (trong tài khoản lưu trữ mục đích chung GCS). Yêu cầu xác thực với tài khoản Google Cloud Platform (GCP). Đảm bảo sao lưu an toàn và có thể truy cập từ nhiều nút. Ví dụ: Lưu trữ cục bộ: const fs = require('fs'); RED.nodes.registerType('storage-local', { category: 'storage', name: 'Local Storage', inputs: 0, outputs: 1, func: async (msg) => { const filename = 'flows.json'; try { const data = JSON.stringify(RED.flows); await fs.promises.writeFile(filename, data); msg.payload = `Successfully saved to ${filename}`; return msg; } catch (err) { msg.payload = `Failed to save: ${err.message}`; return msg; } } }); Lưu trữ trên đám mây: const {Storage} = require('@google-cloud/storage'); RED.nodes.registerType('storage-cloud', { category: 'storage', name: 'Cloud Storage', inputs: 0, outputs: 1, func: async (msg) => { const storage = new Storage(); const filename = 'flows.json'; try { const data = JSON.stringify(RED.flows); await storage.bucket(RED.settings.storage.bucket).file(filename).save(data); msg.payload = `Successfully saved to ${filename}`; return msg; } catch (err) { msg.payload = `Failed to save: ${err.message}`; return msg; } } }); Ưu điểm và nhược điểm: Lưu trữ cục bộ: Ưu điểm: Dễ dàng thiết lập và sử dụng. Nhược điểm: Dễ bị mất nếu node sập. Lưu trữ trên đám mây: Ưu điểm: Sao lưu an toàn, có thể truy cập từ nhiều nút. Nhược điểm: Cấu hình phức tạp hơn, yêu cầu xác thực GCP.
  18. III.2 Thêm và kết nối các node Thêm nút (Node): Menu Palette: Nhấp vào tab "Palette" trong cửa sổ Node-RED để xem các nút có sẵn. Thanh tìm kiếm: Nhập tên của nút bạn muốn tìm hoặc sử dụng các bộ lọc để lọc các kết quả. Kéo và thả: Kéo một nút từ bảng màu và thả nó vào vùng làm việc. Kết nối các nút (Node): Nhấp và kéo: Nhấp vào đầu ra của một nút và kéo đến đầu vào của nút khác. Menu ngữ cảnh: Nhấp chuột phải vào một nút và chọn "Connect" từ menu ngữ cảnh. Sau đó, chọn đầu ra hoặc đầu vào mà bạn muốn kết nối. Ví dụ về kết nối nút (Node): Kết nối nút "input" với nút "output": [input] -> [output] Kết nối nhiều nút "input" với một nút "output": [input1] -> [output] [input2] -> [output] Kết nối một nút "output" với nhiều nút "input": [output] -> [input1] [output] -> [input2] Kết nối hai nút "output" với một nút "input": [output1] -> [input] [output2] -> [input] Mẹo: Sử dụng các vòng lặp "wire debug" (có biểu tượng tia chớp) để theo dõi luồng dữ liệu giữa các nút. Nhấp vào nút "Deploy" ở góc trên bên phải để lưu và kích hoạt luồng của bạn. Sử dụng nút "Inject" để nhập dữ liệu thủ công vào luồng. Sử dụng nút "Debug" để theo dõi đầu ra của các nút.
  19. III. Tạo và sử dụng Node III.1 Các Loại Node trong Node-RED Node Cổng (Input) Nhận dữ liệu từ các nguồn bên ngoài, chẳng hạn như HTTP, MQTT hoặc các thiết bị IoT. Ví dụ: Node "http in" nhận dữ liệu từ yêu cầu HTTP. Node Xử lý Thực hiện các thao tác trên dữ liệu nhận được, chẳng hạn như lọc, chuyển đổi hoặc tính toán. Ví dụ: Node "function" cho phép bạn viết JavaScript để xử lý dữ liệu. Node Cổng (Output) Gửi dữ liệu đến các đích bên ngoài, chẳng hạn như cơ sở dữ liệu, máy chủ HTTP hoặc các thiết bị IoT. Ví dụ: Node "http out" gửi dữ liệu đến trình duyệt web. Node Dữ liệu Lưu trữ dữ liệu cục bộ trong luồng dữ liệu đang chảy qua. Ví dụ: Node "delay" lưu trữ dữ liệu và trì hoãn việc phát hành trong thời gian đã chỉ định. Node Thông báo Gửi và nhận thông báo giữa các node khác trong luồng dữ liệu. Ví dụ: Node "trigger" kích hoạt một luồng dữ liệu khác khi thông báo được nhận. Node Social Tích hợp với các nền tảng mạng xã hội như Twitter và Facebook. Ví dụ: Node "twitter in" nhận dữ liệu từ nguồn cấp dữ liệu Twitter. Node Khác Các node khác cung cấp chức năng chuyên biệt, chẳng hạn như: Node "subflow" để tạo các luồng dữ liệu con Node "debug" để in dữ liệu đến bảng điều khiển Node "inject" để đưa dữ liệu vào luồng dữ liệu thủ công
  20. II.2 Thanh Công cụ và Menu trong Node-RED Thanh công cụ và menu Node-RED cung cấp nhiều tùy chọn để quản lý và chỉnh sửa các lưu đồ Node-RED: Thanh Công cụ: Mở Dự án: Mở một lưu đồ đã lưu. Lưu Dự Án: Lưu lưu đồ hiện tại. Nhập Dự Án: Nhập một lưu đồ từ tệp. Xuất Dự Án: Xuất lưu đồ thành tệp. Nhân bản Dự Án: Tạo một bản sao của lưu đồ hiện tại. Xóa Dự Án: Xóa lưu đồ hiện tại. Thùng rác: Hiển thị các thay đổi đã bị xóa và cho phép khôi phục chúng. Phóng to: Phóng to giao diện lưu đồ. Thu nhỏ: Thu nhỏ giao diện lưu đồ. Phù hợp: Tự động thay đổi kích thước giao diện lưu đồ để vừa với cửa sổ trình duyệt. Lưu bố cục: Lưu vị trí và kích thước của các nút trên lưu đồ. Tải bố cục: Tải bố cục đã lưu cho lưu đồ hiện tại. Menu: Tệp: Chứa các tùy chọn mở, lưu và in lưu đồ. Chỉnh sửa: Chứa các tùy chọn sao chép, dán, cắt và xóa các nút khỏi lưu đồ. Xem: Chứa các tùy chọn để hiển thị hoặc ẩn các thành phần khác nhau của giao diện lưu đồ, chẳng hạn như thanh bên và bảng thông tin. Nút: Chứa các tùy chọn để quản lý các nút trên lưu đồ, chẳng hạn như tạo, xóa và nhập/xuất. Lưu đồ: Chứa các tùy chọn để quản lý các lưu đồ, chẳng hạn như tạo mới, nhân bản và hợp nhất. Nguồn dữ liệu: Chứa các tùy chọn để quản lý nguồn dữ liệu được sử dụng trong lưu đồ. Trợ giúp: Chứa tài liệu và liên kết đến các tài nguyên hỗ trợ Node-RED. Ví dụ: Để mở một lưu đồ hiện có, hãy nhấp vào nút "Mở Dự án" trên thanh công cụ. Để lưu lưu đồ đang hiện hành, hãy nhấp vào nút "Lưu Dự án" trên thanh công cụ. Để xóa một nút khỏi lưu đồ, hãy chọn nút đó và nhấn nút "Xóa" trên menu "Chỉnh sửa". Để thêm một nút mới vào lưu đồ, hãy nhấp vào menu "Nút", chọn loại nút mong muốn và kéo nó vào giao diện lưu đồ. Để quản lý nguồn dữ liệu được sử dụng trong lưu đồ, hãy nhấp vào menu "Nguồn dữ liệu" và chọn tùy chọn mong muốn.
  21. II. Giao diện Node-RED II.1 Bố cục và các thành phần của giao diện Node-RED Bố cục: Giao diện Node-RED được chia thành ba phần chính: Thanh công cụ: Nằm ở đầu màn hình, cung cấp các nút điều khiển cho các hành động chung như lưu, triển khai và quản lý cấu hình. Bảng chỉnh sửa: Khu vực làm việc chính, nơi bạn xây dựng và sửa đổi luồng. Bảng điều khiển: Nằm ở bên trái, cung cấp các phím tắt đến thư viện nút, bảng chú thích và cài đặt. Các thành phần chính: 1. Nút (Node): Các khối chức năng cơ bản của Node-RED, đại diện cho các xử lý hoặc hành động cụ thể. Có nhiều loại nút khác nhau có sẵn, bao gồm nút nhập, nút xuất, nút xử lý và nút mạng. 2. Dây nối (Connection): Kết nối các nút với nhau, chỉ ra luồng dữ liệu và sự phụ thuộc giữa các nút. 3. Cửa sổ thông báo: Nằm ở góc dưới cùng bên phải, hiển thị các thông báo và nhật ký liên quan đến quá trình chỉnh sửa luồng. 4. Cửa sổ triển khai: Nằm ở góc dưới cùng bên trái, hiển thị trạng thái triển khai của luồng và cung cấp các tùy chọn để triển khai hoặc gỡ cài đặt luồng. 5. Tab thông tin: Cung cấp thông tin chi tiết về nút hoặc dây nối đã chọn, bao gồm mô tả, cài đặt và các tùy chọn cấu hình. 6. Tab cài đặt: Cho phép bạn tùy chỉnh cài đặt chung của Node-RED, chẳng hạn như chủ đề MQTT, cài đặt bảo mật và tùy chọn chỉnh sửa nâng cao.
  22. I.2 Cấu hình Node-RED Node-RED là một nền tảng lập trình ngôn ngữ Low-code (Mã ngắn) cho phép tạo các ứng dụng thông qua một giao diện trực quan. Để sử dụng Node-RED, bạn cần phải cấu hình nó một cách chính xác. Giao diện người dùng (UI) Khi Node-RED khởi chạy, bạn có thể truy cập giao diện người dùng (UI) tại http://localhost:1880. UI (Giao diện người dùng) bao gồm: Bảng điều khiển: Hiển thị các thông báo và lỗi. Palette: Bao gồm các node mà bạn có thể thêm vào luồng. Canvas: Nơi bạn xây dựng luồng các nút. Cấu hình cơ bản Dưới đây là một số tùy chọn cấu hình cơ bản có thể được sửa đổi trong tệp settings.js: port: Cổng mà UI Node-RED lắng nghe (mặc định là 1880). httpAdminRoot: Đường dẫn gốc của UI Node-RED (mặc định là "/"). httpNodeRoot: Đường dẫn gốc của các nút HTTP (mặc định là "/api"). userDir: Thư mục chứa các luồng và nút được triển khai (mặc định là "~/.node-red"). Bảo mật Nếu bạn định triển khai Node-RED trong môi trường sản xuất, bạn nên thực hiện các bước để đảm bảo bảo mật. Bạn có thể: Bật xác thực người dùng. Sử dụng HTTPS để mã hóa giao thức. Hạn chế quyền truy cập vào UI. Ví dụ Dưới đây là ví dụ về một tệp settings.js cấu hình: module.exports = { port: 1880, httpAdminRoot: "/admin", httpNodeRoot: "/api", userDir: "~/.my-flows", ui: { theme: "dark" }, editorTheme: { projects: { enabled: true } } };
  23. I. Cài đặt và cấu hình Node-RED I.1 Cài đặt Node-RED trên Máy tính Yêu cầu: Node.js phiên bản 14 trở lên npm (được cài đặt khi cài đặt Node.js) Các bước cài đặt: 1. Cài đặt Node.js Nếu bạn chưa có Node.js, hãy cài đặt từ trang web chính thức: https://nodejs.org/en/download/ hoặc có thể tải tại đây NodeJS Setup 2. Cài đặt Node-RED Sử dụng npm để cài đặt Node-RED toàn cục: npm install -g node-red 3. Khởi chạy Node-RED Để khởi chạy Node-RED, hãy chạy lệnh sau trong terminal: node-red 4. Truy cập Giao diện web Node-RED Giao diện web Node-RED sẽ mở ra trong trình duyệt mặc định của bạn tại địa chỉ sau: http://localhost:1880 Ví dụ: Hãy sử dụng một ví dụ đơn giản để minh họa cách cài đặt và sử dụng Node-RED. 1. Tạo một nút "Hello world" Sau khi khởi chạy Node-RED, hãy kéo và thả nút "inject" vào không gian làm việc. Nhấp đúp vào nút và nhập "Hello world" vào trường "Payload". 2. Tạo một nút "debug" Kéo và thả một nút "debug" vào không gian làm việc. Nút này sẽ hiển thị tin nhắn "Hello world" trong bảng điều khiển của Node-RED. 3. Kết nối các nút Sử dụng một dòng kẻ để kết nối đầu ra của nút "inject" với đầu vào của nút "debug". 4. Triển khai luồng hoạt động (Flow) Nhấp vào nút "Deploy" ở góc trên bên phải để triển khai dòng chảy và kích hoạt nút "inject". 5. Xem tin nhắn trong bảng điều khiển Bảng điều khiển Node-RED sẽ hiển thị tin nhắn "Hello world" trong chế độ đầu ra.
×
×
  • Create New...