Việc phát triển các ứng dụng IoT ngày càng dễ tiếp cận hơn bao giờ hết, đó là nhờ vào các nền tảng phần cứng nhúng, các bộ tạo mẫu só sẵn trên thị trường, với chi phí thấp. Các platform này được thiết kế để có thể cung cấp nhiều tính năng linh hoạt. Bạn có thể thay thế các thành phần cần thử nghiệm, chạy thử cảm biến với các thông số khác nhau hoặc bạn có thể nâng cấp mạng, khả năng xử lý và lưu trữ dữ liệu theo các yêu cầu phát triển giải pháp ứng dụng. Có nhiều thiết bị nhúng đã được thương mại và tập trung vào 2 loại đó là bộ xử lý trung tâm dùng vi điều khiển và các dòng máy tính nhúng hoặc máy tính công nghiệp.
2.2.1. Bộ xử lý trung tâm dùng vi điều khiển
Vi điều khiển là một SoC (system on chip) cung cấp khả năng xử lý và lưu trữ dữ liệu. Cấu trúc một vi điều khiển bao gồm một hoặc đa lõi xử lý, bộ nhớ RAM, bộ nhớ chỉ đọc có thể lập trình được EPROM, có thể xóa để lưu trữ các chương trình tùy chỉnh chạy trên vi điều khiển.
Các cảm biến và thiết bị chấp hành kết nối với vi điều khiển thông qua các chân I/O số (DI/DO) hoặc tương tự (AI/AO) hoặc thông qua mạng. Các giao thức mạng tiêu biểu được vi điều khiển hỗ trợ đó là giao thức I2C, SPI, UART.
Bộ kít phát triển ngoài lõi là vi điều khiển, còn có nhiều mạch điện tử bổ sung để hỗ trợ vi điều khiển trong thu thập dữ liệu, điều khiển và truyền tải dữ liệu giúp thuận lợi hơn cho việc tạo mẫu, lập trình trên chíp phù hợp với các ứng dụng cụ thể trong thực tiễn cuộc sống.
Hiện nay, các hãng sản xuất vi điều khiển đều thiết kế có bộ kít phát triển cho các ứng dụng IoT và bán ra thị trường cho các nhà phát triễn ứng dụng. Một số bộ kít phát triển có cộng đồng sử dụng nhiều trên thế giới như sau:
Arduino
Arduino là một nền tảng thiết bị nhúng mã nguồn mở, với một cộng đồng người dùng tích cực đang tạo ra các công cụ tương thích và các bo mạch phát triển lớn mạnh. Arduino có hàng chục thiết bị nhúng khác nhau được phát triển chẳng hạn như Arduino uno, Arduino Mega … và đặc biệt ESP8266 đang hỗ mạnh cho việc tạo mẫu các dự án IoT bởi vì ESP8266 có vi điều khiển công suất thấp, chi phí thấp với tích hợp sẵn mạng wifi. Một số tùy chọn phần firmware cho ESP8266 đã được phát triển bởi cộng đồng nhà sản xuất và nguồn mở, cho phép các nhà phát triển IoT lập trình cho kít này bằng các ngôn ngữ khác nhau như Lua, Python và JavaScript.
Microchip
Các bộ kít phát triển IoT của Microchip được thiết kế để cho phép bạn kết nối nhanh chóng và dễ dàng một hệ thống nhúng với máy chủ điện toán đám mây như AWS IoT, Azure của Microsoft. Các bộ kít phát triển giúp các nhà phát triển ứng dụng có thể tạo mẫu và đẩy nhanh chu trình phát triển các giải pháp ứng dụng IoT.
Texas Instruments
SimpleLink SensorTag kit, Bộ Kit này dùng vi điều khiển CC2650 của TI, và có hỗ trợ mạng không dây công suất thấp với cảm biến trên bo mạch. Bộ cảm biến bao gồm cảm biến nhiệt độ, chuyển động, độ ẩm, áp suất khí quyển, gia tốc kế, con quay hồi chuyển, từ kế / la bàn và cảm biến dòng / điện áp trong một thiết kế nguồn mở (cả phần cứng và phần mềm).
Theo mặc định, kít hỗ trợ kết nối mạng Bluetooth năng lượng thấp (BLE) với một ứng dụng chạy trên IOS hoặc Android trong phạm vi 50 – 100 mét, để nó có thể gửi dữ liệu cảm biến lên đám mây. Tuy nhiên, kít cũng có thể được định cấu hình để sử dụng các giao thức mạng 2.4GHz tương thích với chuẩn IEEE 802.15.4 khác (như Zigbee hoặc 6LoWPAN) để truyền dữ liệu qua thiết bị IoT gateway.
2.2.2. Máy tính nhúng
Máy tính nhúng là một bước phát triển của vi điều khiển, bởi vì chúng cho phép bạn gắn thêm các thiết bị ngoại vi như bàn phím, chuột và màn hình, cũng như cung cấp thêm bộ nhớ và sức mạng lõi xử lý. Các máy tính nhúng nổi bật hiện nay được sử dụng trong tạo mẫu các ứng dụng IoT chi tiết đó là Raspberry Pi 3 Model B, BeagleBone Black và DragonBoard 410c. Sự khác biệt giữa vi điều khiển và máy tính nhúng tùy thuộc vào từng loại thiết bị, cụ thể như sau:
Bảng . Bảng mô tả thông số kỹ thuật các máy tính nhúng
Đặc tính
Thông số kỹ thuật
Raspberry Pi 3 Model B
BeagleBone Black
Qualcomm DragonBoard 410c
Thu thập dữ liệu và điều khiển
GPIO pins
40 I/O pins, including 29 Digital
65 Digital – 8 PWM
7 Analog
12 Digital
Logic level voltage
3.3V
5V
1.8V
Lưu trữ và xử lý dữ liệu
Processor
ARM Cortex A53
AM335X ARM Cortex A8
ARM Cortex A53
Processor speed
1.2GHz
1 GHz
1.2 GHz
Memory
1 Gb
4 Gb
1Gb, 8Gb Flash
Khả năng kết nối mạng
Network Interfaces
Wifi, Ethernet, Bluetooth
Ethernet, Wifi, Bluetooth
Wifi, Bluetooth, GPS
Nguồn cấp
Power Supply
5V 2.5A micro USB port
5V 1.2A – 2A barrel
6.5 to 18V 2A barrel
Giống như vi điều khiển, máy tính nhúng có thể được mở rộng thêm các mô đun tính năng để có thể thu thập dữ liệu, điều khiển các thiết bị công nghiệp như các mo đun điều khiển động cơ, các mo đun chuyển đổi tương tự số (DAC) để giảm thiểu các hạn chế và khả năng tích hợp thiết bị của máy tính nhúng.
Nhiều máy tính nhúng giống như một PC thu nhỏ và chạy hệ điều hành nhúng Linux. Do đó, có nhiều công cụ phát triển và có nhiều sự lựa chọn ngôn ngữ lập trình hơn so với vi điều khiển. Tuy nhiên, máy tính nhúng thực sự cấu hình phức tạp hơn, tiêu tốn năng lượng lớn hơn và dễ gặp các vấn đề hư hỏng như thẻ SD, bộ nhớ flash.
2.2.3. Lựa chọn kít vi điều khiển hay máy tính nhúng
Dù kít phát triển dựa trên vi điều khiển và máy tính nhúng có thể chỉ giúp bạn bước đầu tạo mẫu nhanh một giải pháp IOT, nhưng đây là bước ban đầu trong toàn bộ quá trình thiết kế một giải pháp IoT hoàn chỉnh. Để bắt đầu thiết kế cần xem xét các đặc điểm chính của thiết bị IoT theo các yêu cầu ứng dụng, cụ thể:
Xác định loại và số lượng cảm biến, số lượng đầu ra cần điều khiển thiết bị ngoại vi.
Chọn vi điều khiển hoặc máy tính nhúng để thực hiện thu thập dữ liệu từ cảm biến và điều khiển các thiết bị ngoại vi.
Chọn giao thức mạng truyền thông cần sử dụng để trao đổi dữ liệu giữa các thiết bị (ví dụ chọn giao thức I2C để vi điều khiển đọc dữ liệu từ các cảm biến).
Chọn phần cứng và giao thức mạng phù hợp cần sử dụng để truyền/nhận dữ liệu với các IoT gateway, IoT node khác hoặc với máy chủ điện toán đám mây.
Ngay khi bạn muốn tiếp tục cải tiến các bản mẫu cho ứng dụng IoT và phần mềm nhúng, bạn có thể định kỳ đánh giá lại bản mẫu theo các yêu cầu về chức năng như hiệu suất, độ tin cậy, bảo mật và xem xét lại các lựa chọn này khi cần thiết.