Giới thiệu về IoT (tiếp theo)

0
919

Bài viết gồm các nội dung:

– Các thành phần của ứng dụng IoT

– Vi điều khiển trong IoT

– Máy tính một bảng mạch trong IoT

  1. Các thành phần của ứng dụng IoT

Ứng dụng IoT có hai thành phần: Internet và Thing

* “Thing”

 Phần “Thing” của IoT đề cập đến thiết bị có thể tương tác với thế giới vật lý. Các thiết bị này thường là các máy tính nhỏ, giá rẻ, chạy ở tốc độ thấp và sử dụng công suất thấp. Ví dụ: các bộ vi điều khiển đơn giản với kilobyte RAM (trái ngược với gigabyte trong PC) chỉ chạy ở vài trăm megahertz (trái ngược với gigahertz trong một PC), do tiêu thụ rất ít công suất nên chúng có thể chạy pin trong nhiều tuần, tháng hoặc thậm chí nhiều năm.

Các thiết bị này tương tác với thế giới vật lý bằng các cảm biến để thu thập dữ liệu từ môi trường xung quanh hoặc bằng cách kiểm soát đầu ra hoặc bộ truyền động để thực hiện thay đổi vật lý. Ví dụ điển hình là bộ điều chỉnh nhiệt thông minh – thiết bị có cảm biến nhiệt độ để đặt nhiệt độ mong muốn bằng màn hình cảm ứng hoặc quay số và kết nối với hệ thống sưởi hoặc làm mát được bật khi cảm biến nhiệt độ phát hiện nhiệt độ nằm ngoài phạm vi mong muốn.

Có rất nhiều thiết bị khác nhau hoạt động như các thiết bị IoT, từ phần cứng chuyên dụng đến các thiết bị mục đích chung, thậm chí cả điện thoại thông minh. Điện thoại thông minh có thể sử dụng các cảm biến để phát hiện thế giới xung quanh và bộ truyền động để tương tác với thế giới như sử dụng cảm biến GPS để phát hiện vị trí và loa cung cấp hướng dẫn điều hướng đến đích.

* Internet

Phần Internet của một ứng dụng IoT bao gồm các ứng dụng mà thiết bị IOT có thể kết nối để gửi và nhận dữ liệu cũng như các ứng dụng khác để xử lý dữ liệu từ thiết bị IOT giúp đưa ra quyết định về những yêu cầu để gửi đến các thiết bị truyền động IOT.

Với mỗi thiết lập điển hình, thiết bị IOT sẽ kết nối một loại dịch vụ đám mây để xử lý bảo mật, nhận tin nhắn từ thiết bị IOT và gửi tin nhắn trở lại thiết bị. Dịch vụ đám mây này sau đó kết nối với các ứng dụng khác nhằm xử lý hoặc lưu trữ dữ liệu cảm biến hoặc sử dụng dữ liệu cảm biến với dữ liệu từ các hệ thống khác để đưa ra quyết định.

Không phải lúc nào các thiết bị cũng kết nối trực tiếp với Internet. Một số thiết bị sử dụng “mesh networking” để giao tiếp dựa trên các công nghệ như Bluetooth, kết nối qua thiết bị HUB có kết nối internet.

Trong ví dụ về bộ điều chỉnh nhiệt thông minh, bộ điều chỉnh nhiệt sẽ kết nối bằng cách sử dụng WiFi cho dịch vụ đám mây chạy trong đám mây. Dữ liệu về nhiệt độ được gửi đến dịch vụ đám mây và được ghi vào cơ sở dữ liệu cho phép người dùng kiểm tra nhiệt độ hiện tại và quá khứ bằng ứng dụng điện thoại. Người dùng cài đặt nhiệt độ mong muốn thông qua dịch vụ khác trong đám mây do đó khi nhiệt độ ngoài phạm vi mong muốn, nó sẽ gửi tin nhắn trở lại thiết bị IoT điều khiển hệ thống sưởi ấm bật hoặc tắt.

Một phiên bản thông minh hơn sử dụng AI trong đám mây với dữ liệu từ các cảm biến khác được kết nối với các thiết bị IoT khác như cảm biến chiếm dụng phát hiện phòng nào đang sử dụng, cũng như dữ liệu về thời tiết, thậm chí là lịch trình của bạn để đưa ra quyết định về cách đặt nhiệt độ theo mong muốn một cách thông minh. Ví dụ: nó có thể tắt hệ thống sưởi dựa vào lịch trình của bạn nếu bạn đang đi nghỉ dưỡng hoặc tắt hệ thống sưởi từng phòng cụ thể tùy thuộc vào những phòng bạn sử dụng, học từ dữ liệu ngày càng chính xác theo thời gian.

* IoT xử lý tại biên

Mặc dù I trong IoT là viết tắt của Internet nhưng các thiết bị này không nhất thiết phải kết nối với Internet. Trong một số trường hợp, các thiết bị có thể kết nối với các thiết bị ‘biên’ là các thiết bị cổng chạy trên mạng cục bộ nghĩa là bạn có thể xử lý dữ liệu mà không cần thực hiện cuộc gọi qua Internet. Điều này giúp nhanh hơn khi có nhiều dữ liệu hoặc kết nối internet chậm, cho phép chạy ngoại tuyến ở nơi không có kết nối Internet như trên tàu hoặc trong khu vực thảm họa khi phản ứng với cuộc khủng hoảng nhân đạo và cho phép bạn giữ dữ liệu riêng tư. Một số thiết bị chứa mã xử lý được tạo bằng các công cụ đám mây và chạy cục bộ để thu thập và phản hồi dữ liệu mà không cần sử dụng kết nối Internet để đưa ra quyết định.

Ví dụ về thiết bị nhà thông minh như Homepod Apple, Amazon Alexa hoặc Google Home, sẽ lắng nghe giọng nói của bạn bằng các mô hình AI được đào tạo trong đám mây, nhưng chạy cục bộ trên thiết bị. Các thiết bị này sẽ ‘thức dậy’ khi nghe thấy một từ hoặc cụm từ nhất định và sau đó gửi bài thông tin qua Internet để xử lý. Thiết bị sẽ ngừng gửi gửi dữ liệu tại thời điểm thích hợp, như khi phát hiện bạn tạm dừng điều khiển. Tất cả những gì bạn nói trước khi thức dậy với Wake Word và sau khi thiết bị đã ngừng nghe sẽ không được gửi qua Internet cho nhà cung cấp thiết bị do đó dữ liệu đó là riêng tư.

* Bảo mật trong IOT.

Khi kết nối internet, cần đặc biệt quan tâm đến vấn đề bảo mật. Các thiết bị IoT kết nối với dịch vụ đám mây do đó chỉ an toàn như dịch vụ đám mây đó. Nếu dịch vụ đám mây của bạn cho phép kết nối bất kỳ thiết bị nào thì các thiết bị đó có thể gửi dữ liệu độc hại hoặc các cuộc tấn công vi-rút. Điều đó đôi khi gây ra hậu quả lớn như các thiết bị IoT tương tác và kiểm soát các thiết bị khác. Ví dụ, Stuxnet can thiệp và làm hỏng các van trong máy ly tâm. Tin tặc cũng tận dụng sự bảo mật kém để can thiệp vào truy cập của trẻ em và các thiết bị giám sát trong nhà khác.

Đôi khi các thiết bị IoT và các thiết bị biên trên mạng được cách ly hoàn toàn khỏi Internet để giữ tính riêng tư cho dữ liệu và đảm bảo bảo mật. Điều này được gọi là “air-gapping”.

2. Vi điều khiển trong IoT

* CPU

CPU là ‘bộ não’ của vi điều khiển. Nó là bộ xử lý chạy mã, có thể gửi và nhận dữ liệu từ bất kỳ thiết bị nào được kết nối. CPU có thể chứa một hoặc nhiều lõi, về cơ bản một hoặc nhiều CPU có thể hoạt động cùng nhau để chạy mã.

CPU sử dụng khái niệm clock để mô tả giá trị hàng triệu hoặc hàng tỷ lần / 1 giây. Với mỗi lần với thời gian của một clock, CPU có thể thực thi một lệnh từ một chương trình, như lấy dữ liệu từ một thiết bị bên ngoài hoặc thực hiện phép toán học. Chu trình thông thường này cho phép hoàn thành tất cả các hành động trước khi xử lý hướng dẫn tiếp theo.

Chu kỳ càng nhanh, càng nhiều lệnh được xử lý mỗi giây do đó CPU chạy càng nhanh. Tốc độ CPU được đo bằng Hertz (Hz)- đơn vị tiêu chuẩn. Tốc độ CPU thường đến hàng MHz hoặc GHz.

Bộ vi điều khiển có tốc độ xung nhịp thấp hơn nhiều so với máy tính, thậm chí thấp hơn hầu hết các điện thoại thông minh. Ví dụ, thiết bị đầu cuối WIO có CPU chạy ở mức 120 MHz hoặc 120.000.000 chu kỳ mỗi giây.

Một PC hoặc Mac trung bình có CPU nhiều lõi chạy với tốc độ hàng Gigahertz.

Mỗi chu kỳ đồng hồ tiêu thụ điện năng và tạo nhiệt. Tốc độ càng nhanh, càng tiêu thụ nhiều năng lượng và nhiều nhiệt hơn. PC có tản nhiệt và quạt để loại bỏ nhiệt. Bộ vi điều khiển thường không có tản nhiệt do tốc độ chậm hơn và mức tỏa nhiệt thấp hơn. PC khi ngắt khỏi nguồn điện có thể sử dụng pin lớn trong vài giờ, vi điều khiển có thể chạy trong nhiều ngày, tháng hoặc thậm chí nhiều năm qua pin nhỏ. Vi điều khiển cũng có các lõi chạy ở các tốc độ khác nhau, chuyển sang lõi công suất thấp chậm hơn khi nhu cầu trên CPU thấp để giảm mức tiêu thụ điện năng.

* Bộ nhớ

Bộ vi điều khiển thường có hai loại bộ nhớ: bộ nhớ chương trình và bộ nhớ truy cập ngẫu nhiên (RAM).

Bộ nhớ chương trình là không bị mất dữ liệu khi ngắt nguồn điện. Đây là bộ nhớ lưu trữ mã chương trình.

RAM là bộ nhớ được sử dụng để chạy, chứa các biến được phân bổ bởi chương trình và dữ liệu được thu thập từ các thiết bị ngoại vi. Khi ngắt nguồn điện, các dữ liệu trong RAM sẽ bị mất.

Giống  với CPU, bộ nhớ trên vi điều khiển thường theo nhu cầu người dùng và có dung lượng nhỏ hơn PC hoặc Mac. Một PC thông thường có thể có 8 gigabyte (GB) RAM, với mỗi byte đủ dung lượng lưu trữ một chữ cái hoặc một số từ 0-255. Một vi điều khiển sẽ chỉ có kilobyte (KB) RAM. Đầu cuối WIO có 192kb RAM, ít hơn 40.000 lần so với PC trung bình!

Sơ đồ dưới đây cho thấy sự khác biệt kích thước tương đối giữa 192kb và 8GB – chấm nhỏ ở trung tâm đại diện cho 192kb.

Bộ nhớ chương trình cũng nhỏ hơn PC. Một PC thông thường có thể có ổ cứng 500 GB để lưu trữ chương trình, trong khi một vi điều khiển có thể chỉ có bộ lưu trữ hàng kilobyte hoặc có thể là một vài megabyte (MB). Đầu cuối WIO có 4 MB lưu trữ chương trình.

* Đầu ra, đầu vào

Các bộ vi điều khiển cần các kết nối đầu vào, ra (I/O) để đọc dữ liệu từ các cảm biến và gửi tín hiệu điều khiển đến bộ truyền động. Chúng thường chứa một số chân đầu vào/đầu ra mục đích chung (GPIO). Các chân này được cấu hình trong phần mềm nhận được tín hiệu (đầu vào) hoặc gửi tín hiệu (đầu ra).

– Các chân đầu vào sử dụng để đọc các giá trị từ các cảm biến

– Các chân đầu ra gửi hướng dẫn đến bộ truyền động

* Kích thước vật lý

Các bộ vi điều khiển thường có kích thước nhỏ, với kích thước nhỏ nhất là một Freescale Kinetis KL03 MCU đủ nhỏ để phù hợp với nếp uốn của một quả bóng golf. CPU trong PC kích thước 40mm x 40mm không bao gồm các bồn nhiệt và quạt cần thiết để đảm bảo CPU có thể chạy trong hơn vài giây mà không quá nóng, lớn hơn đáng kể so với vi điều khiển hoàn chỉnh. Bộ phát triển thiết bị đầu cuối của WIO với vi điều khiển, vỏ, màn hình và một loạt các kết nối và các thành phần không lớn hơn nhiều so với CPU Intel I9 trần và nhỏ hơn đáng kể so với CPU với tản nhiệt và quạt!

* Khung và hệ điều hành

Do kích thước bộ nhớ và tốc độ thấp, vi điều khiển không chạy hệ điều hành. Hệ điều hành máy tính (Windows, Linux hoặc MacOS) cần rất nhiều bộ nhớ và khả năng xử lý để chạy các tác vụ hoàn toàn không cần thiết cho một vi điều khiển. Vi điều khiển thường được lập trình để thực hiện một hoặc nhiều nhiệm vụ cụ thể, không giống như một máy tính có mục đích chung như PC hoặc Mac cần hỗ trợ giao diện người dùng, phát nhạc hoặc phim, cung cấp các công cụ để viết tài liệu hoặc mã hay truy cập mạng.

Để lập trình vi điều khiển mà không cần hệ điều hành, cần một số dụng cụ cho phép xây dựng mã chạy được trên vi điều khiển, sử dụng API có thể giao tiếp với bất kỳ thiết bị ngoại vi nào. Mỗi vi điều khiển là khác nhau, vì vậy các nhà sản xuất thường hỗ trợ các khung tiêu chuẩn cho phép theo dõi ‘công thức’ tiêu chuẩn để xây dựng mã và chạy trên bất kỳ vi điều khiển nào hỗ trợ khung đó.

Bạn có thể lập trình vi điều khiển bằng hệ điều hành – thường được gọi là hệ điều hành thời gian thực (RTOS), vì chúng được thiết kế để xử lý việc gửi dữ liệu đến và từ các thiết bị ngoại vi trong thời gian thực. Các hệ điều hành này rất nhẹ và cung cấp các tính năng như:

– Đa luồng, cho phép chạy nhiều khối mã cùng một lúc trên nhiều lõi hoặc bằng cách thay phiên nhau trên một lõi

– Mạng cho phép giao tiếp qua internet an toàn

– Các thành phần Giao diện người dùng đồ họa (GUI) để xây dựng giao diện người dùng (UI) trên các thiết bị có màn hình.

* Arduino

Arduino là khung vi điều khiển phổ biến nhất, đặc biệt là với sinh viên. Arduino là nền tảng điện tử nguồn mở kết hợp phần mềm và phần cứng. Bạn có thể mua các bảng tương thích Arduino từ chính Arduino hoặc từ các nhà sản xuất khác, sau đó mã bằng cách sử dụng khung Arduino.

Bảng Arduino được mã hóa bằng C hoặc C++ cho phép biên dịch rất nhỏ và chạy nhanh. Cốt lõi của một ứng dụng Arduino được gọi là bản phác thảo và là mã C/ C ++ với 2 chức năng: thiết lập và vòng lặp. Khi bảng khởi động, mã Arduino Framework sẽ chạy chức năng thiết lập một lần, sau đó nó sẽ chạy lại chức năng vòng lặp và một lần nữa, chạy liên tục cho đến khi tắt nguồn.

Bạn sẽ viết mã thiết lập, như kết nối với các dịch vụ wifi và đám mây hoặc khởi tạo các chân cho đầu vào và đầu ra. Mã vòng lặp sau đó chứa mã xử lý như đọc từ cảm biến và gửi giá trị lên đám mây. Ví dụ, nếu bạn chỉ muốn gửi dữ liệu cảm biến cứ sau 10 giây, bạn sẽ thêm độ trễ 10 giây ở cuối vòng lặp để vi điều khiển có thể nghỉ, tiết kiệm năng lượng, sau đó chạy Loop một lần nữa khi cần sau 10 giây.

Kiến trúc chương trình này được gọi là vòng lặp sự kiện hoặc vòng lặp tin nhắn. Kiến trúc này là tiêu chuẩn cho hầu hết các ứng dụng máy tính chạy trên các ứng dụng giống như Windows, MacOS hoặc Linux. Vòng lặp nghe tin nhắn từ các thành phần giao diện người dùng như các nút hoặc thiết bị như bàn phím và phản hồi với chúng.

Arduino cung cấp các thư viện tiêu chuẩn để tương tác với vi điều khiển và chân I/O để chạy trên các bộ vi điều khiển khác nhau. Ví dụ: chức năng trễ sẽ tạm dừng chương trình trong một khoảng thời gian nhất định, hàm DigitalRead sẽ đọc một giá trị cao hoặc thấp từ chân đã cho, bất kể mã nào được chạy. Các thư viện tiêu chuẩn này là mã Arduino được viết cho một bảng có thể được biên dịch lại cho bất kỳ bảng Arduino nào khác giả sử rằng các chân giống nhau và các bảng hỗ trợ các tính năng tương tự.

Có một hệ sinh thái lớn của các thư viện Arduino của bên thứ ba cho phép thêm các tính năng bổ sung cho các dự án arduino, như sử dụng các cảm biến và bộ truyền động hoặc kết nối với các dịch vụ Cloud IoT.

3. Máy tính một bảng mạch trong IoT

* Raspberry Pi.

Quỹ Raspberry PI là một tổ chức từ thiện ở Vương quốc Anh được thành lập vào năm 2009 để thúc đẩy nghiên cứu về khoa học máy tính, đặc biệt là ở cấp trường. Họ đã phát triển máy tính một bảng mạch Raspberry PI. Raspberry PI hiện đang có sẵn trong 3 phiên bản – phiên bản kích thước đầy đủ, PI ZERO nhỏ hơn và mô-đun tính toán có thể được tích hợp vào thiết bị iOT cuối.

Phiên bản lặp lại mới nhất của Raspberry PI kích thước đầy đủ là Raspberry Pi 4b với CPU 4 lõi chạy ở tốc độ RAM 1,5 GHz, 2, 4 hoặc 8GB, WiFi Ethernet, WiFi, 2 cổng HDMI hỗ trợ màn hình 4K, cổng đầu ra video âm thanh và composite, cổng USB (2 USB 2.0, 2 USB 3.0), 40 chân GPIO, đầu nối camera cho mô-đun camera Raspberry PI và khe cắm thẻ SD. Tất cả các thành phần trên nằm trên một bảng 88mm x 58mm x 19,5mm và được cấp bởi nguồn điện USB-C 3A. Nó có giá 35 đô la Mỹ- rẻ hơn nhiều so với PC hoặc Mac.

PI ZERO nhỏ hơn nhiều, chạy năng lượng thấp hơn. PI ZERO có CPU 1GHz lõi duy nhất, RAM 512 MB, WiFi (trong mô hình Zero W), một cổng HDMI duy nhất, cổng Micro-USB, 40 chân GPIO, đầu nối camera cho mô-đun camera Raspberry Pi và thẻ SD.  PI ZERO có kích thước 65mm x 30mm x 5mm, chạy rất ít năng lượng. Số 0 là US$ 5, với phiên bản W với WiFi US$ 10.

CPU trong cả hai trong phiên bản này là các bộ xử lý ARM, trái ngược với bộ xử lý Intel/AMD X86 hoặc X64 trong hầu hết các PC và MAC. Chúng tương tự như CPU ​​ trong một số vi điều khiển, cũng như gần như tất cả các điện thoại di động, Microsoft Surface X và Apple Silicon mới dựa trên Mac.

Tất cả các phiên bản của Raspberry Pi chạy một phiên bản Debian Linux có tên Raspberry Pi OS. Vì hệ điều hành là phiên bản của Debian Linux nên bạn có thể cài đặt bất kỳ ứng dụng hoặc công cụ nào chạy trên Debian và được xây dựng cho bộ xử lý ARM bên trong PI.

* Lập trình máy tính một bảng mạch

Máy tính một bảng mạch là máy tính đầy đủ, chạy hệ điều hành đầy đủ. Có thể sử dụng nhiều ngôn ngữ lập trình, khung và công cụ để mã hóa chúng, không giống như các bộ vi điều khiển dựa trên hỗ trợ cho bảng trong các khung như Arduino. Hầu hết các ngôn ngữ lập trình có thư viện có thể kết nối các chân GPIO để gửi và nhận dữ liệu từ các cảm biến và bộ truyền động.

Ngôn ngữ lập trình phổ biến nhất để xây dựng các ứng dụng IoT trên Raspberry PI là Python. Có một hệ sinh thái khổng lồ của phần cứng được thiết kế cho PI. Một số trong số các hệ sinh thái này dựa trên ‘hats’ vì chúng nằm trên đỉnh của PI giống như một chiếc mũ và kết nối với một ổ cắm lớn đến chân 40 GPIO. Những “hats” này cung cấp các khả năng bổ sung như màn hình, cảm biến, xe điều khiển từ xa hoặc bộ điều hợp cho phép cắm cảm biến với cáp tiêu chuẩn.

* Sử dụng máy tính một bảng mạch trong triển khai IoT chuyên nghiệp

Các máy tính một bảng mạch được sử dụng để triển khai IoT chuyên nghiệp, không chỉ là bộ dụng cụ dành cho nhà phát triển. Họ có thể cung cấp một cách mạnh mẽ để kiểm soát phần cứng và chạy các tác vụ phức tạp như chạy mô hình học máy. cổng, được thiết kế để cài đặt vào phần cứng tùy chỉnh.

Biên dịch: Bắc Đặng

Để cập nhật tin tức công nghệ mới nhất và các sản phẩm của công ty AIoT JSC, vui lòng truy cập link: http://aiots.vn hoặc linhkienaiot.com

0 0 Phiếu bầu
Article Rating
Subscribe
Notify of
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả các bình luận