Node-RED của IBM đang hack mạng internet mọi thứ như thế nào

Việc hack thế giới xung quanh bạn để bẻ cong nó theo ý muốn của bạn ngày càng dễ dàng hơn.

Cho dù thiết lập đèn có nhấp nháy khi ai đó gọi lại cho bạn hoặc hệ thống để nhắn tin cho bạn khi giặt xong, công việc sẽ diễn ra để giúp máy nói chuyện với máy đơn giản hơn.

Kết nối sự giàu có của máy tính, cảm biến và dịch vụ trực tuyến trong thế giới hiện đại có thể dẫn đến những sáng tạo kỳ lạ và tuyệt vời, ví dụ như máy bay không người lái điều khiển còi này.

Nhưng sự khó chịu khi làm việc với mạng internet này là một sự lặp đi lặp lại. Để loại bỏ một số nhà nghiên cứu đáng gờm ở IBM đã nảy ra ý tưởng xây dựng một hộp công cụ mã có thể tái sử dụng mà mọi người có thể sử dụng để dễ dàng kết nối các phần mềm và thiết bị với nhau thành các hệ thống hữu ích.

Các nhà nghiên cứu của IBM đang tìm cách đơn giản hóa quá trình kết nối các hệ thống và cảm biến với nhau khi xây dựng các công nghệ bằng chứng cho khách hàng.

"Chúng tôi đã trò chuyện và Nick nói 'Phải có cách dễ dàng hơn để làm điều này'", Dave Conway-Jones, nhà phát minh cao cấp tại IBM, nói.

Conway-Jones đang đề cập đến Nick O'Leary, chuyên gia công nghệ mới nổi tại IBM, người lúc đó đang thử nghiệm sử dụng các công cụ đồ họa kéo và thả để xây dựng mã cần thiết để cho các dịch vụ web, phần mềm và phần cứng giao tiếp. Chính những công cụ này sẽ phát triển thành Node-RED.

Node-RED là một công cụ xử lý sự kiện về cơ bản ngăn chặn tin tặc phần cứng và phần mềm phải liên tục phát minh lại bánh xe. O'Leary sử dụng ví dụ về việc phải viết mã để gửi dữ liệu đến thiết bị qua cổng nối tiếp mỗi khi họ bắt đầu một dự án mới.

"Dave và tôi biết cách viết mã để nói chuyện với một cổng nối tiếp nhưng có thể sẽ mất một chút thời gian để nhớ cách thực hiện và viết nó."

"Để nói chuyện với một cổng nối tiếp bằng Node-RED, đó chỉ là một trường hợp kéo vào một nút và cung cấp cho nó các chi tiết về cổng nối tiếp và bạn đã hoàn thành. Nó mang lại cho chúng tôi sự linh hoạt để nhanh chóng tạo nguyên mẫu."

Node-RED không loại bỏ hoàn toàn nhu cầu viết mã, nhưng nó làm giảm nó, và trong quá trình này làm giảm thanh kỹ thuật và cho phép mọi người tập trung vào việc tạo, thay vì thực hiện.

Conway-Jones nói: "Giống như một bảng tính cho phép bạn chơi xung quanh với các con số, Node-RED là một công cụ tốt để chơi xung quanh với các sự kiện".

"Những người không phải lập trình viên có thể bắt đầu suy nghĩ 'Tôi đã có Twitter ở đây và tôi muốn phân tích những gì được nói và xuất bản nó thành một tài liệu ở đây, làm thế nào tôi có thể làm điều đó?'. Ví dụ, bạn có thể có một nguồn cấp dữ liệu Twitter đến, làm một chút phân tích tình cảm trên các tweet và gửi tất cả những người tốt đến một địa chỉ email.

"Những người làm việc ở hầu hết các chức năng ở cấp độ kinh doanh, không hoàn toàn nhưng đạt đến cấp độ đó, có thể làm điều này. Đó là cấp độ mà chúng tôi muốn đạt được."

Node-ĐỎ là gì?

Thoạt nhìn, giao diện cho Node-RED có thể nhắc nhở người dùng về Scratch, công cụ đồ họa do MIT phát triển cho phép trẻ em viết mã các chương trình đơn giản bằng cách kéo và thả các lệnh phần mềm.

Giống như Scratch, Node-RED cung cấp GUI nơi người dùng kéo và thả các khối đại diện cho các thành phần của hệ thống lớn hơn, trong trường hợp của Node-RED thường là các thiết bị, nền tảng phần mềm và dịch vụ web được kết nối. Các khối tiếp theo có thể được đặt ở giữa các thành phần này để thể hiện các chức năng phần mềm làm xáo trộn và biến đổi dữ liệu trong quá trình.

Có lẽ cách tốt nhất để hiểu Node-RED là gì khi nhìn thấy nó. Dưới đây là đại diện của Node-RED trong chương trình "Hello World", thường được sử dụng để giới thiệu cho ai đó về công nghệ mới hoặc ngôn ngữ lập trình. Đối với những người không quen thuộc, chương trình này thường là một thói quen rất đơn giản in thông báo 'Hello World' trên màn hình.

Thói quen Hello World trong Node-RED Image: IBM

Tại đây, bạn có thể thấy giao diện người dùng đồ họa của Node-RED và cách nền tảng chia các hệ thống thành các bộ phận cấu thành của chúng.

Mỗi khối được làm tròn mà bạn có thể thấy trên màn hình là một nút, là một đại diện trực quan của một khối mã JavaScript được thiết kế để thực hiện một tác vụ cụ thể.

Để xây dựng chương trình 'Hello World', người dùng kéo vào cửa sổ trung tâm một 'nút tiêm', một nút được thiết kế để xuất thông báo đến các nút khác.

Nút tiêm này được chỉnh sửa để xuất chuỗi 'Xin chào'.

Tiếp theo, một nút chức năng được kéo vào và chỉnh sửa để xác định hàm JavaScript nối thêm chuỗi 'Thế giới' vào bất kỳ thông báo nào nó nhận được.

Hai nút này sau đó được nối với nhau. Hầu hết các nút có một vòng tròn màu xám trên cạnh trái của chúng, đại diện cho cổng đầu vào của chúng và trên cạnh phải của chúng, đại diện cho cổng đầu ra của chúng. Nhấp chuột trái và kéo cổng đầu ra của nút 'Xin chào' đến cổng đầu vào của nút 'Thế giới' kết nối cả hai với nhau.

Giai đoạn cuối cùng là thêm một nút Debug in thông báo mà nó nhận được trong cửa sổ Debug. Nút gỡ lỗi này sau đó được nối với đầu ra của nút 'Thế giới'.

Quá trình hiện đã sẵn sàng để chạy và sau khi được triển khai sẽ hiển thị chuỗi 'Hello World' trong hộp Gỡ lỗi, được hiển thị ở bên phải màn hình.

Chương trình hoàn thành này là một ví dụ về cái được gọi là luồng trong Node-RED.

Điều thú vị về Node-RED là nó có thể làm được nhiều hơn ngoài việc đưa ra một thông điệp đơn giản, nó cũng có thể kết dính các dịch vụ web và phần cứng với nhau, và đó là nơi nó bắt đầu trở nên mạnh mẽ.

Hãy sử dụng Node-RED này bởi nhiếp ảnh gia và nhân viên IBM, Dom Bramley, người chụp những hình ảnh của bầu trời đêm. Thiết bị anh ta sử dụng không chống nước nhưng cần được để bên ngoài qua đêm để chụp ảnh các ngôi sao.

Ông đã sử dụng Node-RED để xây dựng một hệ thống cảnh báo thời tiết cá nhân, hoạt động bằng cách điều khiển đèn trong nhà. Bramley đã xây dựng một luồng kết nối với API thời tiết dự báo.io cứ sau ba phút để kiểm tra dự đoán lượng mưa cục bộ. Một nút thứ hai lấy phản hồi từ dự báo.io và sử dụng nó để tính toán bao nhiêu phút cho đến khi mưa đến nhà anh ta. Một đèn xung quanh trong phòng khách của anh ta sau đó chuyển màu dựa trên số phút cho đến khi mưa đến, trong khi đèn ngủ bật lên nếu lượng mưa đủ gần để được coi là không an toàn.

Hai luồng điều khiển ánh sáng trong nhà, một luồng tạo ra giá trị RGB thay đổi màu sắc của ánh sáng xung quanh dựa trên độ gần của mưa. Cái thứ hai gửi tín hiệu đến Arduino kết nối MQTT điều khiển ổ cắm cắm 433 MHz, bật đèn ngủ nếu điều kiện không an toàn được kích hoạt.

Node-RED là chất keo kết hợp hệ thống cảnh báo thời tiết với nhau, cho phép Bramley lấy dữ liệu từ API.io.io, để lấy một cái nhìn sâu sắc hữu ích từ nó và sử dụng thông tin đó để thao túng các hệ thống tự động trong nhà.

Dòng chảy Node-RED cho hệ thống cảnh báo thời tiết. DLB

Xây dựng mạng internet

Luồng cảnh báo thời tiết của Bramley cho thấy cách Node-RED cho phép người sáng tạo xây dựng dựa trên công việc của người khác.

Chẳng hạn, để lấy dữ liệu từ dự báo.io Bramley đã nhập một nút hiện có để gửi các yêu cầu HTTP GET. Tất cả những gì anh phải làm là chỉnh sửa URL mà yêu cầu được thực hiện và thêm một chuỗi đặt truy vấn của anh.

Đổi lại, hệ thống cảnh báo thời tiết của Bramley có sẵn cho những người khác nhập vào Node-RED để họ có thể sử dụng và lạm dụng nó khi họ thấy phù hợp. Ngay cả khi họ không muốn toàn bộ dòng chảy, họ chỉ có thể ăn thịt nó cho các bộ phận, có lẽ chỉ cần cài đặt nút để thay đổi màu sắc của hệ thống chiếu sáng xung quanh.

"Trong Node-RED, bạn có thể gói bất kỳ bit chức năng nào, đóng gói chức năng đó như một nút trong bảng màu của chúng tôi", O'Leary - liệt kê các mô-đun cho máy khách MQTT và nói chuyện với các cổng nối tiếp trên phần cứng như các ví dụ về chức năng được tích hợp vào các nút .

"Bảng các nút này không được mã hóa cứng để bạn có thể thả các nút mới và khi bạn bắt đầu, bạn có chức năng mới.

"Đó là hệ sinh thái của các nút làm cho Node-RED trở thành một nền tảng mà mọi người có thể đóng góp trở lại.

"Điều đó có nghĩa là chúng tôi không phải mất thời gian lo lắng về cách xử lý các thách thức kỹ thuật cụ thể. Chúng tôi có thể tập trung vào những gì chúng tôi muốn ứng dụng này làm. Bạn có thể tập trung vào những gì, thay vì làm thế nào."

Các nút mới để tương tác với phần cứng, phần mềm và dịch vụ web đang được thêm vào mọi lúc. Các bổ sung gần đây bao gồm các nút để điều khiển ổ cắm điều khiển từ xa Belkin WeMo và đèn màu sắc của Philips. Các nút cũng có thể được viết để tận dụng các nền tảng phần mềm, với các nút để gửi tin nhắn SMS qua Twilio và tin nhắn qua Twitter.

Thanh kỹ thuật để viết một nút không đặc biệt cao, vì một nút chỉ đơn giản là đóng gói một số mã JavaScript đang chạy trong môi trường node.js.

Hiện đã có một cộng đồng tích cực thường xuyên tạo ra các nút mới và nền tảng Node-RED là một dự án nguồn mở được lưu trữ trên GitHub, vì vậy bất kỳ ai cũng có thể đóng góp.

Các luồng Node-RED được trình bày trong Ký hiệu đối tượng JavaScript hoặc JSON và có thể dễ dàng xuất sang bảng tạm để được nhập vào Node-RED hoặc chia sẻ trực tuyến.

IBM cũng đang xem xét làm cho nó đơn giản hơn để xây dựng dựa trên công việc của những người khác trong Node-RED bằng cách giới thiệu các luồng con. Các luồng con sẽ cho phép người dùng thu gọn các luồng của nhiều nút được liên kết thành một nút, cho phép logic phức tạp hơn được trừu tượng hóa thành một nút duy nhất.

Nhiều gương mặt của Node-RED

"Mọi người đến với nó với một nhận thức hoàn toàn khác nhau về Node-RED là gì hoặc nó có thể là gì", O'Leary nói, tham khảo cách tính linh hoạt của nền tảng đã dẫn đến việc mọi người nhìn thấy những khả năng ban đầu không được hình dung.

"Rõ ràng đó là một nền tảng có nhiều ứng dụng khác nhau, các lĩnh vực khác nhau nhìn thấy những thứ khác nhau trong đó.

"Chúng tôi đang xây dựng một nền tảng mà bất kỳ ai cũng có thể đóng góp các nút để nó giải quyết một số vấn đề cho họ, và sau đó đóng góp các nút đó trở lại."

Ví dụ, giáo dục không phải là trọng tâm của IBM khi thiết kế Node-RED, nhưng sự đơn giản kéo và thả của các chương trình xây dựng trong Node-RED đã dẫn đến một số trường tìm cách sử dụng nó như một nền tảng để dạy trẻ em về mã hóa và hack phần cứng.

Và O'Leary nói rằng theo thời gian, nhiều nút có thể được thêm vào để trừu tượng hóa nhiều mã hóa hơn, để làm cho Node-RED bớt khó khăn hơn với những người không có kiến ​​thức về lập trình.

"Chắc chắn có một không gian cho sự trừu tượng ở cấp độ cao hơn", ông nói.

Việc hạ thấp thanh kỹ thuật được thực hiện đơn giản hơn bằng cách dễ dàng mở rộng Node-RED bằng cách thêm các nút để thực hiện các cấu trúc lập trình phổ biến, chẳng hạn như vòng lặp For.

O'Leary cũng nói về khả năng ai đó tạo ra các luồng Node-RED để thể hiện các bài học để dạy trẻ em về điện tử và điện toán, do đó, một giáo viên có thể chuyển Raspberry Pi được kết nối với các cảm biến để chạy ở chế độ "bài học số một".

Node-RED hiện đang phổ biến để chạy tự động hóa gia đình, theo O'Leary, trích dẫn các trường hợp đã gạt đi "mớ hỗn độn của các tập lệnh Perl và Python" trước đây đã giữ các hệ thống này với nhau, ông nói.

Node-RED phù hợp như thế nào đối với tự động hóa gia đình trở nên rõ ràng khi bạn bước vào phòng thí nghiệm Công nghệ mới nổi của IBM ở Hursley, Anh. Các nhà nghiên cứu đã sử dụng Node-RED để cho phép cùng một công tắc không dây bật quạt, thay đổi màn hình trên một đèn LED hoặc bật và tắt đèn. Thay đổi những gì công tắc không đòi hỏi gì hơn là nhấp vào luồng Node-RED và thay đổi hệ thống dây giữa các nút, một nhiệm vụ mất vài giây để hoàn thành.

Thậm chí nhiều công dụng kỳ lạ hơn đã được tìm thấy cho Node-RED tại Hursley. Một dòng chảy đã được viết để điều khiển một máy bay không người lái bằng cách huýt sáo, một âm thanh nổi lên làm cho máy bay không người lái cất cánh và âm điệu giảm dần làm cho nó hạ cánh.

Node-RED đã giúp IBM kết hợp các bằng chứng về trình diễn khái niệm cho khách hàng. Công ty gần đây đã chạy các luồng Node-RED trên các bảng Raspberry Pi để kết nối các bo mạch Arduino với webcam và các cảm biến nhiệt độ, áp suất và độ ẩm giám sát một dây chuyền sản xuất của nhà máy.

"Tất nhiên chúng tôi có thể đã viết mã để nắm bắt tất cả những thứ đó nhưng nó sẽ kém linh hoạt hơn nhiều, bởi vì khi bạn thêm các cảm biến mới, bạn phải đi vào và tìm ra nơi để thêm các đoạn mã mới", O'Leary nói.

Khi cùng một công ty gặp sự cố với các nhà xây dựng rút phích cắm máy chủ thu thập dữ liệu này - để họ có thể cắm các công cụ quyền lực của mình - IBM đã có thể, "trong khoảng năm phút", sử dụng Node-RED để kết nối một hệ thống với nhau tự động gửi email cho nhân viên chủ chốt nếu máy chủ gặp sự cố.

"Đối với chúng tôi, sự linh hoạt là giá trị", O'Leary nói, "nhưng những người khác thấy giá trị khác nhau."

Đối với các doanh nghiệp có giá trị có thể sắp xếp dữ liệu gần nơi thu thập dữ liệu ở rìa mạng, lọc tiếng ồn và chỉ gửi lại thông tin liên quan.

"Những gì chúng tôi có ở đây là thứ gì đó cho phép bạn đẩy logic và kiểm soát kinh doanh đến rìa mạng, ngay xuống Raspberry Pi hoặc một hộp Linux nhúng nhỏ", O'Leary nói.

"Đó là một khu vực thú vị. Nó phù hợp để chạy ở rìa mạng vì dấu chân của nó. Nó có thể theo dõi các sự kiện cục bộ và chỉ gửi một cái gì đó cho doanh nghiệp khi bạn cần, thay vì phải gửi tất cả dữ liệu của bạn lên trung tâm dữ liệu doanh nghiệp trung tâm và đối phó với nó ở đó. "

Hạn chế của Node-RED

Node-RED là một ứng dụng dựa trên node.js, nền tảng JavaScript phía máy chủ sử dụng mô hình I / O không chặn, hướng sự kiện phù hợp để tạo các ứng dụng thời gian thực, chuyên sâu về dữ liệu chạy trên các thiết bị phân tán.

Để một thiết bị hoặc dịch vụ hoạt động với Node-RED, cần phải có thư viện hoặc mô-đun node.js có khả năng nói chuyện với chúng.

Nhưng số lượng dịch vụ và thiết bị tương thích rất nhiều, một phần nhờ vào xu hướng nhiều nền tảng hiện đại để lộ dữ liệu và chức năng của chúng thông qua các API mở chấp nhận yêu cầu HTTP.

Và vì Node-RED chạy trên node.js, nó cũng có thể chạy một cách vui vẻ trên một loạt các thiết bị ít mạnh hơn, chẳng hạn như Raspberry Pi $ 35.

Điều gì tiếp theo cho Node-RED?

IBM đã mở nguồn nền tảng Node-RED vào tháng 9 và O'Leary cho biết IBM có "một bảng trắng chứa đầy các kế hoạch, ý tưởng và tính năng để từ từ thực hiện theo cách của chúng tôi".

Node-RED là một nền tảng phát triển mà O'Leary mong đợi sẽ tìm thấy khán giả mới khi cộng đồng xây dựng các công cụ mới trên đầu trang.

"Đây vẫn không phải là thứ mà mẹ tôi sẽ sử dụng, nhưng chắc chắn có rất nhiều người cho rằng điều này cho phép làm được nhiều hơn họ nghĩ họ có thể."

© Copyright 2020 | mobilegn.com