Hôm qua trong bài Raspberry Pi dành cho ai, mình nhận thấy nhiều anh em quan tâm đến việc học hỏi, tìm hiểu phát triển các ứng dụng IoT cho doanh nghiệp của anh em hoặc chỉ đơn giản là để học cho biết. Mình chia sẻ một chút kinh nghiệm mà mình tìm hiểu được thông qua vài dự án IoT thực tế để anh em tham khảo nhé. Ở đây mình không bàn tới mấy con MCU hay cụ thể là mấy mạch Arduino tại mình thấy nó phức tạp với mình quá.
Với một thằng ngoại đạo như mình (không biết gì về điện, điện tử, cơ học...) thì hồi xưa mình nhìn vào IoT như một thế giới mà mình không bao giờ rờ tới được. Gì mà dây điện rồi nối mạch rồi tụ điện các thứ.
Nhưng khi nhu cầu về việc ghi nhận dữ liệu BẰNG MỘT CÁI MÁY TÍNH NHỎ GỌN, thì mình bắt đầu nhận thấy sự tương đồng giữa việc phát triển IoT với kĩ thuật phần mềm (là cái mình rành, ví dụ như code backend, giao diện này nọ). Bạn có thể tận dụng Raspberry Pi hoặc Orange Pi hoặc bất kì một thiết bị điện toán cỡ nhỏ nào để xây dựng ứng dụng của mình trên đó. Khi bạn cần cảm biến nào thì gắn vào Pi, lúc đó code của bạn sẽ đọc dữ liệu từ cảm biến (ví dụ: đọc nhiệt độ theo độ C), còn xử lý tiếp như thế nào là tùy bạn (gọi lên server để lưu trữ, chuyển sang một thiết bị IoT khác trong mạng để bật tắt theo điều kiện...)
Đây cũng là một dạng máy tính nhỏ gọn chạy Linux nè, bạn không nhất thiết phải dùng tới mấy cái linh kiện điện, điện tử để làm quen. Bộ này mình mua lâu rồi mà cũng không dùng mấy, giờ chỉ yếu xài Raspberry Pi
IoT có khó không?
Với một thằng ngoại đạo như mình (không biết gì về điện, điện tử, cơ học...) thì hồi xưa mình nhìn vào IoT như một thế giới mà mình không bao giờ rờ tới được. Gì mà dây điện rồi nối mạch rồi tụ điện các thứ.
Nhưng khi nhu cầu về việc ghi nhận dữ liệu BẰNG MỘT CÁI MÁY TÍNH NHỎ GỌN, thì mình bắt đầu nhận thấy sự tương đồng giữa việc phát triển IoT với kĩ thuật phần mềm (là cái mình rành, ví dụ như code backend, giao diện này nọ). Bạn có thể tận dụng Raspberry Pi hoặc Orange Pi hoặc bất kì một thiết bị điện toán cỡ nhỏ nào để xây dựng ứng dụng của mình trên đó. Khi bạn cần cảm biến nào thì gắn vào Pi, lúc đó code của bạn sẽ đọc dữ liệu từ cảm biến (ví dụ: đọc nhiệt độ theo độ C), còn xử lý tiếp như thế nào là tùy bạn (gọi lên server để lưu trữ, chuyển sang một thiết bị IoT khác trong mạng để bật tắt theo điều kiện...)
Đây cũng là một dạng máy tính nhỏ gọn chạy Linux nè, bạn không nhất thiết phải dùng tới mấy cái linh kiện điện, điện tử để làm quen. Bộ này mình mua lâu rồi mà cũng không dùng mấy, giờ chỉ yếu xài Raspberry Pi
Việc này cũng giống y hệt như việc bạn đang có trong tay một cái máy tính, và bạn gắn thêm các thiết bị ngoại vi như chuột, bàn phím, webcam... thôi chứ chẳng khác gì cả. Mọi nguyên tắc của việc phát triển, xây dựng phần mềm đều áp dụng y chang, bạn cũng có thể connect mạng nữa do Pi có sẵn Wi-Fi và cổng LAN. Chỉ khác là chiếc Raspberry Pi và những thiết bị IoT nói chung nó nhỏ gọn hơn nhiều.
Ở đây mình chia sẻ về Pi dưới góc độ của một công ty cần đưa IoT vào việc vận hành của mình, chứ mình không nhắm tới việc tạo ra các sản phẩm IoT để đem bán hay thiết kế ra những món đồ nhỏ gọn. Cái đó không phải là mối quan tâm của mình.
Tóm lại, việc bạn bắt đầu xây dựng các ứng dụng IoT không hề khó, và bạn nào đang làm developer thì thậm chí còn thấy rất quen thuộc.
Từ từ khi nhu cầu nâng cao, bạn phải dùng tới các module không có sẵn trên thị trường, thì mới phải đụng tới mấy cái điện tử, nối mạch các kiểu.
IoT có thể phát triển bằng ngôn ngữ nào?
Mình thấy nhiều dự án IoT được viết bằng ngôn ngữ C++, nhưng mình thì không biết gì về ngôn ngữ này. Cái mình quen thuộc là Python, JavaScript, Java... và may mắn là con Pi hỗ trợ rất tốt cho việc này. Bạn có thể dùng code Python để đọc barcode từ máy quét đưa vào, bạn có thể dùng JavaScript hoặc Python để đọc nhiệt độ từ cảm biến, hay viết hẳn thành một web server để nhận thông tin từ các thiết bị gửi về con Pi để xử lý... Tất cả đều có thể làm quen và tiếp cận rất dễ dàng nhé. Bạn không nhất thiết phải biết C++ để làm việc này.
Sẵn tiện nếu bạn nào có làm Docker thì chạy Docker trên Pi cũng ngon lắm 😁 mình triển khai toàn bộ bằng Docker cho tiện quản lý, cấu hình, và tự động hóa cao.
Cái giao diện này thực chất là một trang web viết bằng JavaScript, server của web chạy ngay trên con Raspberry Pi, nó xuất hình ảnh ra màn hình bằng cổng HDMI cũng có sẵn trên con Pi
IoT có tốn kém không?
Quảng cáo
Tùy dự án, nhưng nếu chỉ để bắt đầu với các dự án nhỏ thì không đắt, bạn có thể mua con Raspberry Pi Model 3 với giá tầm 700k-800k hoặc Orange Pi với giá từ 300k đến 800k tùy model, sau đó mua thêm mấy cái cảm biến tầm chục nghìn đến trăm nghìn là đã có thể bắt đầu học hỏi rồi.
Mình còn nhớ dự án IoT đầu tiên của mình là đọc barcode bằng Raspberry Pi. Đầu đọc barcode có mấy loại rẻ rẻ trên thị trường tầm 800k-1 triệu (công ty có sẵn, mình lấy xài luôn, khỏi mua), con Raspberry Pi mua lại của mod @TDNC với giá chỉ 500k, vậy là đã có thể học hỏi rồi đấy :D Phần lớn thời gian của mình dành cho việc viết phần mềm (hay gọi hoa mỹ là firmware cho con IoT của mình chạy).
Làm sao để update phần mềm của vài trăm con Pi cùng lúc?
Cái này hay ho mình muốn chia sẻ với anh em. Bình thường máy tính của chúng ta khi cần update thì phải vào Settings này nọ, nhưng con Pi của mình sẽ được triển khai khắp cả nước với số lượng lên tới cỡ 200 máy. Mình không thể nào đi từng con để mà update, việc update từ xa từng con 1 cũng quá tốn thời gian và nhân lực.
Mình tìm hiểu nhiều giải pháp thì thấy có một đơn vị rất hay tên là Balena.io (trước đây tên là Resin.io). Balena có một hệ điều hành tùy biến của riêng họ chạy trên con Pi, nó sẽ chạy code của bạn trong các docker container, và khi update thì có thể update cả hệ điều hành lẫn code trong container cùng lúc. Chỉ với 1 câu lệnh duy nhất, code mới nhất của bạn sẽ hiện diện trên vài trăm con Pi khắp cả nước. Nghe hay đúng không :D
Phần này mình nói sơ vậy thôi, anh em nào có nhu cầu tương tự thì tìm hiểu thêm ở web https://www.balena.io nhé. Mình nói sâu quá sợ rối anh em mới bắt đầu tìm hiểu IoT hihi.
balena - The complete IoT fleet management platform
Manage massive fleets of small IoT Linux devices with balena's IoT management cloud platform. Your first 10 devices are full-featured and always free. Develop, deploy, manage and scale your IoT fleet with balena.
balena.io
Anh em có câu hỏi nào thì hãy comment vào bài này nhé.
Quảng cáo