Tự dựng hệ thống Internet of Thing đơn giản

Internet of Thing (IOT) đang phát triển mạnh mẽ với vô vàn thiết bị trong nhà thông minh, thành phố thông minh, y tế, công nghiệp… Ước tính, năm 2014 có khoảng 2 tỷ thiết bị được kết nối internet. Đến năm 2020, số thiết bị kết nối internet được dự đoán sẽ thành 8 tỷ. Việc xây dựng các hệ thống IOT ngày càng nhanh chóng và hiệu quả nhờ vào các công nghệ và sản phẩm giành riêng cho IOT. Bài viết này nhằm giới thiệu một số cách thiết kế và xây dựng hệ thống IOT điển hình.

1. IOT là gì?

Trước hết, chúng ta sẽ nhìn hệ thống IOT dưới góc nhìn của người phát triển chứ không phải người dùng: IOT gồm có sensors & thiết bị + kết nối + con người/quy trình.

Sensors (cảm biến): Chúng ta đang kết nối thế giới vào 1 mạng khổng lồ thông qua các sensors: dữ liệu định vị nhờ GPS sensor, mắt và tai sử dụng camera và microphone, cùng với vô vàn sensors có thể đo rất nhiều thứ từ môi trường. Một số loại sensors thông dụng như: ánh sáng, chạm, nhiệt độ, độ ẩm, âm thanh, khí (ga, CO, CO2, O2, bụi,…), áp lực nước, áp suất, điện năng…

Kết nối: các dữ liệu từ sensors được số hoá và kết nối vào. Ngày nay, các công nghệ không dây trở nên phổ biến do chúng có hiệu năng cao, giá thành hạ và tiêu thụ điện năng thấp. Hiện nay, tốc độ kết nối tăng gấp 10 lần, giá thành giảm 10 lần so với 1990. Chính điều này đã góp phần lớn vào sự bùng nổ của các hệ thống IOT. Các kết nối phổ biến gồm: NFC, bluetooth, wifi, RF, 3G, ZigBee…

Con người/quy trình: các dữ liệu từ sensors sẽ được kết nối vào 1 hệ thống IOT để cung cấp dữ liệu và hỗ trợ các quyết định một cách hiệu quả. Một số dịch vụ đang và sẽ được cung cấp liên quan tới con người như ….

2. Cách xây dựng hệ thống IOT

Hiện nay, việc xây dựng 1 hệ thống IOT trở nên dễ dàng và nhanh chóng nhờ sự phát triển mạnh mẽ của hàng loạt các công nghệ hỗ trợ về cả phần cứng và phần mềm. Phần này trình cách xây dựng các hệ thống IOT từ tự làm đến áp dụng các công nghệ sẵn có.

a. Tự làm từ A tới Z

Chúng ta cần tự thiết kế mạch, hàn mạch, viết ứng dụng điều khiển tương ứng. Để làm việc này, chúng ta cần có kiến thức về cả điện tử và lập trình. Do vậy, cách làm này đòi nhiều nhiều thời gian và công sức nhất.

Tuy nhiên, có rất nhiều dự án mẫu trên internet cho một số bộ điều khiển phổ biến (ví dụ: Adruino, Rashberry Pi, …). Chúng ta có thể học theo các dự án mẫu này cả về cách thiết kế mạch và viết phầm mềm điều khiển.

Hình 1 là ví dụ về cách thiết kế mạch sử dụng 2 sensors phổ biến là đo nhiệt độ và độ ẩm. Hai sensors này sẽ được kết nối với bộ điều khiển Raspberry Pi 2. Ngoài ra, chúng ta cần viết 1 ứng dụng nhỏ trên mạch Raspberry Pi 2 để lấy dữ liệu từ 2 sensors này.

 

Hình 1: Một thiết kế mạch sensors nhiệt độ, độ ẩm sử dụng Rashberry Pi 2

b. Sử dụng các mạch thiết kế sẵn

Một lựa chọn khác phù hợp với những người không chuyên về phần cứng hoặc/và muốn ra sản phẩm nhanh là sử dụng các mạch sensors được thiết kế chuyên nghiệp. Có rất nhiều hãng đã đưa ra các mạch thiết kế khác nhau, bài viết này sẽ trình bày 3 cách thiết kế sẵn phổ biến và được đánh giá cao trong thời gian gần đây.

Mạch sensors thiết kế sẵn:

Có một số nhà sản xuất đã thiết kế sẵn mạch của hàng trăm sensors và thiết bị khác, cho phép chúng ta có thể phát triển các ứng dụng của IOT mà không cần lo lắng về việc thiết kế hay hàn mạch. Hình 2 là một ví dụ về cách thiết kế này. Đây là 1 bộ Grove Kit của SeedStudio với sensors, thiết bị được thiết kế mạch sẵn, và một shield để nối các mạch sensor này vào bộ điều khiển Adruino. Chúng ta chỉ cần cắm các mạch sensors, mạch thiết bị vào bộ điều khiển thông qua shield. Việc lập trình cũng được hỗ trợ lớn từ thư viện cung cấp miễn phí của SeedStudio. Sản phẩm của Seeedstudio thích hợp cho những người dùng phổ thông với mong muốn các trải nghiệm đa dạng với chi phí phải chăng (chưa đến 200$ cho một bộ sản phẩm).

 

Hình 2: Grove kit với các mạch sensors/thiết bị được thiết kế sẵn

Một dạng mạch thiết kế sẵn khác là các board mạch với các cổng thiết kế sẵn cho phép cắm các sensors/thiết bị khác nhau. Hình 3 là ví dụ về dạng thiết kế này. Đây là Gases Sensor Board của Libelium cho phép cắm các sensors khác nhau để đo nồng độ các loại khí (CO, CO2, O2, CH4, H2,…).

Bên cạnh đó, Libelium cũng cung cấp thiết bị và nền tảng kết nối không dây đa dạng, cho phép xây dựng mạng sensors với hàng nghìn nút. Ngoài các thư viện cung cấp sẵn, hãng cũng đưa ra 1 phần mềm cho phép cấu hình và thiết lập mạng sensors một cách hiệu quả.

Tất nhiên, giá thành các sản phẩm của Libelium tương đối cao. Để có thể thực hiện được 1 thử nghiệm IOT gồm nhiệt độ, độ ẩm,… chi phí dự tính khoảng 600$ trở nên .

Bù lại, libelium có khả năng cài đặt ngoài trời và có thể dễ dàng cài đặt, độ bền lớn, có thể áp dụng vào các hệ thống đo đạc ngoài trời như phòng chống cháy rừng, lâm nghiệp, nông nghiệp…

 

Hình 3: Gases Sensor Board để đo nồng độ các loại khí

 3. Ví dụ về hệ thống cảnh báo nguy hiểm đơn giản  

Phần này sẽ giới thiệu cách thiết kế 1 hệ thống theo dõi và cảnh báo nguy hiểm đơn giản có thể thử ngay tại nhà mà không cần lo lắng tới việc hàn mạch. Hệ thống sẽ đo chất lượng không khí (nhiệt độ, độ ẩm, khí ga…) và cảnh báo khi nồng độ khí ga quá cao (ví dụ khi hở ga), hoặc nhiệt độ quá cao (ví dụ khi có hoả hoạn), hoặc khi độ ẩm quá lớn. Hệ thống có thể đem vào ứng dụng thực tế luôn với mức độ lập trình tương đối đơn giản.

Thiết bị khuyến nghị:

– 1 Raspberry Pi 2

– 1 Shield để kết nối Raspberry Pi với các sensors

– 1 Air quality sensors

– 1Humidity & Temperature sensor

Lắp đặt phần cứng:

Chúng ta không cần thiết kế cũng như hàn mạch mà chỉ cần cắm 1 shield GrovePi vào Raspberry Pi. Sau đó, chúng ta sẽ cắm các mạch sensors vào các cổng đã định trước (hình 4).

Một ưu điểm của việc dùng GrovePi là tính mở rộng cao. Chúng ta có thể dễ dàng thêm các sensors khác (cường độ ánh sáng, mật độ O2,…), hoặc các thiết bị khác (loa, màn hình…) chỉ đơn giản bằng cách cắm các mạch này vào GrovePi.

 

Hình 4: bộ thiết bị đo nhiệt độ, độ ẩm, chất lượng không khí được thiết kế sẵn.

Xây dựng hệ thống:

Module 1: 1 phần mềm chạy trên Rashberry Pi 2 để lấy dữ liệu từ sensors sử dụng GrovePi. Seedstudio đã cung cấp sẵn thư viện để có thể làm việc này một cách dễ dàng.

Module 2: 1 web server để đẩy dữ liệu đã lấy từ Module 1 lên internet. Đến đây RaspBerry Pi 2 bắt đầu phát huy thế mạnh với khá nhiều web server mini được cung cấp sẵn, tiêu biểu như Botttle, Flask.

Module 3: Một phần mềm trên thiết bị di động kết nối với web server. Phần mềm này sẽ đọc dữ liệu từ webserver, cho phép chúng ta theo dõi thường xuyên trạng thái nhiệt độ, độ ẩm, chất lượng không khí và đưa ra các cảnh báo nguy hiểm tương ứng. Hình 5 là màn hình ứng dụng trên thiết bị di động cảnh báo khi nồng độ khí ga quá cao (Hình 5.a) và khi nhiệt độ quá cao (Hình 5.b).

                                 H5a

  1. Cảnh báo nồng độ khí ga              b. Cảnh báo nhiệt độ cao

Hình 5: Màn hình phần mềm hệ thống cảnh báo nguy hiểm trên di động

Tổng kết

Cùng với sự bùng nổ của thiết bị IOT, các nhà sản xuất đã đem tới thị trường vô vàn lựa chọn cho phép phát triển các thiết bị IOT từ đầu hoặc ở mức lắp ghép. Bạn có thể mua 1 mỏ hàn và bắt đầu lắp mạch, hoặc đơn giản, cắm và chạy. Vậy tại sao bạn không thử khám phá xu hướng công nghệ đang hot này?


CodeFights – Hướng dẫn chi tiết cách giải các dạng bài tập