CHƯƠNG I: CƠ SỞ LÝ THUYẾT I. Giới thiệu IOT: I. Khái niệm IOT: - IoT, viết tắt của Internet of Things, là một thuật ngữ chỉ đến việc kết nối các thiết bị điện tử thông minh với nhau và với internet để chúng có thể trao đổi dữ liệu và thực hiện các nhiệm vụ tự động hoặc từ xa. Các thiết bị này có thể bao gồm các cảm biến, máy móc, thiết bị điện gia dụng, đồng hồ thông minh, đèn chiếu sáng, các thiết bị y tế và nhiều thiết bị điện tử khác.
- Trong một hệ thống IoT, các thiết bị có khả năng thu thập thông tin, chia sẻ dữ liệu và kết nối với nhau thông qua internet, mà không cần sự can thiệp của con người. Thông qua việc kết nối và trao đổi thông tin, các thiết bị IoT có thể tự động thực hiện các nhiệm vụ, dễ dàng quản lý và giám sát các quy trình hơn, giảm thiểu sai sót và tiết kiệm thời gian và chi phí. “Mọi đồ vật sẽ trở nên thông minh hơn” – đấy là lợi ích mà IoT mang lại. Chúng ta đã quá quen với smartphone, smart tivi, hay gần hơn là smarthome, smartkey, …, thì giờ với IoT chúng ta có mọi thứ xung quanh đều thông minh: đèn thông tin – biết lúc nào cần bật khi có người và tắt để tiết kiệm điện, máy giặt thông minh – tự điều chỉnh lượng nước phù hợp với số lượng quần áo, hay ngay đến rèm cửa cũng thông minh – chủ động đóng mở theo ánh sáng mặt trời.
Xu hướng phát triển thế giới với IOT: - IoT đang trở thành một xu hướng quan trọng trong công nghệ và cách mà con người sử dụng các công nghệ thông tin trong cuộc sống hàng ngày. Nó đang được áp dụng trong nhiều lĩnh vực khác nhau, từ công nghiệp đến y tế, giao thông và kinh doanh. IoT là yếu tố quan trọng trong sự phát triển của các thành phố thông minh và các ứng dụng của trí tuệ nhân tạo và học máy. - IoT sẽ đóng vai trò rất quan trọng trong tăng cường kết nối giữa các thiết bị và người dùng thông qua internet.
Các thiết bị thông minh sẽ được kết nối với nhau và truyền tải thông tin nhanh chóng và hiệu quả hơn. - IoT đang đóng vai trò quan trọng trong phát triển các ứng dụng mới trong các lĩnh vực khác nhau, từ y tế đến quản lý tài sản, giáo dục và tự động hóa. Các ứng dụng này có thể giúp cải thiện quản lý và giám sát các quy trình, nâng cao hiệu suất và tiết kiệm thời gian và chi phí. - IoT sẽ đóng vai trò rất quan trọng trong việc phát triển các thiết bị thông minh, mở ra nhiều cơ hội cho các ứng dụng mới và tiện ích mới.
Những thiết bị này không chỉ làm cho cuộc sống dễ dàng hơn mà còn giúp cải thiện sức khỏe, giảm thiểu rủi ro và tiết kiệm năng lượng. - Với sự phát triển của IoT, các vấn đề liên quan đến an ninh và bảo mật cũng được quan tâm nhiều hơn. Việc đảm bảo an toàn và bảo mật cho các dữ liệu và thông tin truyền tải trên mạng được coi là vô cùng cần thiết. -> Trong tương lai, IoT dự kiến sẽ đóng vai trò quan trọng như một yếu tố quan trọng giúp cải thiện cuộc sống và quản lý đời sống một cách thông minh và tiên tiến hơn.
- Theo Gartner, đến năm 2020 thế giới có khoảng 20 tỷ thiết bị đã sử dụng IoT và con số này dự kiến sẽ lên tới 41,6 tỷ thiết bị IoT được kết nối. Rõ ràng thị trường IoT thực sự rất lớn và tiềm năng: 6 Hình 2: Biểu đồ xu hướng IoT 7 I. Lập trình hệ thống nhúng I. Khái niệm lập trình nhúng Hình 3: Lập trình nhúng - Lập trình nhúng (embedded programming) là quá trình phát triển phần mềm cho các thiết bị điện tử nhúng, bao gồm các vi điều khiển, hệ thống thông minh và các thiết bị tự động hoá.
Lập trình nhúng sử dụng các ngôn ngữ và công cụ lập trình như C/C++, Python, và các IDE (Integrated Development Environment) để phát triển phần mềm. - Với sự phát triển và tiên tiến của công nghệ, các thiết bị nhúng ngày càng trở nên thông minh và phức tạp hơn. Lập trình nhúng cung cấp các công cụ và kỹ thuật để phát triển các thiết bị này với độ tin cậy và hiệu quả cao. Thành phần cơ bản lập trình nhúng Hình 4: Thành phần của lập trình nhúng Có nhiều thành phần tiêu biểu trong lập trình nhúng, trong đó bao gồm Rom, RAM, MCU và các thiết bị ngoại vi như ADC, DAC, I2C, UART.
- Rom chứa các chương trình và dữ liệu được fix cố định trong thiết bị, nhưng hiện nay thường sử dụng EEPROM hoặc FLASH để thay thế cho ROM vì khả năng ghi xóa và cập nhật chương trình mới. - RAM là thành phần hỗ trợ lưu trữ chương trình thực thi và các biến tạm. - MCU là bộ xử lý trung tâm hỗ trợ tính toán. Các thành phần này đóng vai trò quan trọng trong lập trình nhúng và giúp điều khiển các thiết bị và hệ thống tự động.
- ADC (Analog-to-Digital Converter) là một thiết bị ngoại vi, cho phép chuyển đổi tín hiệu analog sang tín hiệu số để chương trình có thể đọc và xử lý. - DAC (Digital-to-Analog Converter) là một thiết bị ngoại vi, cho phép chuyển đổi tín hiệu số sang tín hiệu analog để thiết bị đầu ra có thể xử lý ra được. - I2C (Inter-Integrated Circuit) và UART (Universal Asynchronous Receiver Transmitter) là các giao thức giao tiếp ngoại vi dùng để kết nối các thiết bị khác, cho phép các thiết bị trao đổi dữ liệu giữa chúng. Các thành phần này đóng vai trò rất quan trọng trong lập trình nhúng, đảm bảo các hoạt động của các thiết bị điện tử nhúng được thực hiện chính xác và hiệu quả.
Ứng dụng của lập trình nhúng - Lập trình nhúng có rất nhiều ứng dụng trong nhiều lĩnh vực khác nhau, bao gồm: + Các thiết bị di động: Lập trình nhúng được sử dụng để phát triển các hệ thống điện tử trong điện thoại di động, máy tính bảng, thẻ SIM, các thiết bị hỗ trợ giám sát sức khỏe, v. + Các hệ thống thông minh: Lập trình nhúng là một phần không thể thiếu trong phát triển các hệ thống thông minh, bao gồm nhà thông minh, xe thông minh, hệ thống an ninh, v. + Các thiết bị y tế: Lập trình nhúng được sử dụng để phát triển các thiết bị y tế, bao gồm các dụng cụ hỗ trợ y tế, máy giúp đọc được chỉ số sinh lý, máy đo đường huyết, các loại máy xét nghiệm khác. +Công nghiệp và hệ thống tự động hóa: Lập trình nhúng được sử dụng trong các hệ thống tự động hóa công nghiệp, bao gồm các thiết bị giám sát điều khiển, hệ thống đo lường, máy khoan, các thiết bị làm sạch, chiếu sáng và các thiết bị phân tán khác.
+ Internet of Things (IoT): Lập trình nhúng được sử dụng trong các thiết bị IoT, bao gồm các thiết bị kết nối, hệ thống thực tế ảo, các thiết bị giám sát lượng khí thải và các hệ thống thông minh trong các đô thị. + Điều khiển các thiết bị gia dụng: Lập trình nhúng được sử dụng để điều khiển các thiết bị gia dụng, bao gồm tủ lạnh, máy giặt, máy sấy, máy hút bụi, v. Tóm lại, lập trình nhúng là một lĩnh vực phát triển phần mềm rất quan trọng, đóng vai trò quan trọng trong việc phát triển các thiết bị điện tử nhúng thông minh và kết nối. Các ứng dụng của lập trình nhúng rất đa dạng và được áp dụng trong nhiều lĩnh vực khác nhau.
Tổng quan mô hình đề tài - Mô hình đề tài về robot dò line tránh vật cản là một dự án điện tử nhúng sử dụng các thành phần cơ bản như cảm biến siêu âm,cảm biến hồng ngoại, modul điều khiển động cơ L298N kết hợp arduino uno R3). để tạo ra một robot di động có khả năng di chuyển trên một đường line trong điều kiện môi trường thử thách với các vật cản. - Mô hình này sử dụng cảm biến siêu âm, cảm biến hồng ngoại để xác định vị trí và khoảng cách đến các vật cản và điều khiển robot di chuyển theo hướng cần thiết để tránh vật cản và tiếp tục đi theo đường đi bằng line. Đồng thời, mô hình đề tài này còn sử dụng 10 module truyền thông để truyền dữ liệu giữa robot và máy tính để hiển thị các thông số đo được của các cảm biến cũng như thông tin điều khiển của người dùng.
Người dùng có thể cài đặt các thông số, chức năng và điều khiển robot thông qua giao diện trên máy tính - Mô hình đề tài này có nhiều ứng dụng trong thực tế như tự động hóa hệ thống giao thông, nhà máy sản xuất, khai thác mỏ, giải trí và các ứng dụng tương tự. Đồng thời, nó cũng có thể được sử dụng như một sản phẩm giáo dục hoặc thử nghiệm để giúp học sinh nắm bắt các khái niệm cơ bản trong ngành điện tử và lập trình nhúng. CHƯƠNG II: ARDUINO VÀ CÁC MODULE ĐIỀU KHIỂN II. Tổng quan về Arduino - Arduino là một nền tảng phát triển phần cứng và phần mềm mã nguồn mở được sử dụng rộng rãi cho các ứng dụng điện tử nhúng và các dự án kỹ thuật số phổ biến.
Nền tảng này được tạo ra bởi một nhóm các nhà phát triển ở Italy vào năm 2005. - Arduino gồm hai phần chính: board và phần mềm. + Board Arduino chứa các thành phần như bộ điều khiển (microcontroller), đầu vào/đầu ra số, đầu vào/đầu ra analog, các thiết bị ngoại vi giao tiếp như USB, I2C, UART, và một loạt các chân kết nối để kết nối với mạch bên ngoài. + Phần mềm đi kèm với Arduino bao gồm các thư viện lập trình và môi trường lập trình tích hợp (IDE) cho phép người dùng lập trình và tải chương trình lên board Arduino.
- Board Arduino có nhiều phiên bản khác nhau, từ các phiên bản cơ bản đến các phiên bản cao cấp hơn, với nhiều tính năng khác nhau như Wi-Fi, Bluetooth, GPS và thậm chí là kết nối mạng điện thoại. - Arduino có thể được sử dụng để phát triển nhiều ứng dụng khác nhau như đèn led tự động, robot, các hệ thống giám sát môi trường, các cảm biến và hệ thống thông minh, các hệ thống nhà thông minh và trong nông nghiệp, v. Nền tảng này cũng rất phổ biến trong giáo dục và đào tạo điện tử, giúp người học có thể nhanh chóng và dễ dàng bắt đầu với lập trình nhúng và phát triển các dự án điện tử.