Tài Liệu Thực Hành IoT Chi Tiết Tại Học Viện Công Nghệ Bưu Chính Viễn Thông

Tài liệu thực hành IoT chi tiết với 7 buổi học tại Học viện Công nghệ Bưu chính Viễn thông, giúp nâng cao kỹ năng và kiến thức chuyên sâu.

Người đăng

Ẩn danh

Thể loại

hướng dẫn

2024

83
1
0

Phí lưu trữ

30 Point

Mục lục chi tiết

1. BUỔI 1: THỰC HÀNH LẬP TRÌNH CƠ BẢN VI ĐIỀU KHIỂN

1.1. Viết và nạp một chương trình cho Arduino Uno

1.2. Giới thiệu cơ bản về Arduino Uno

1.3. Lập trình cho vi điều khiển hiển thị dòng chữ lên màn hình LCD

1.4. Lập trình cho vi điều khiển nháy Led RGB

1.5. Lập trình cho vi điều khiển giao tiếp bàn phím

2. BUỔI 2: THỰC HÀNH GIAO TIẾP CẢM BIẾN-VI ĐIỀU KHIỂN- THIẾT BỊ CHẤP HÀNH

2.1. Thực hành cho vi điều khiển thu thập dữ liệu từ cảm biến nhiệt độ, độ ẩm và hiển thị kết quả ra màn hình

2.2. Thực hành cho vi điều khiển điều khiển bóng đèn qua relay

2.3. Thực hành cho vi điều khiển điều khiển động cơ bước

3. BUỔI 3: THỰC HÀNH CÁC GIAO THỨC TRUYỀN NHẬN DỮ LIỆU SPI/I2C/UART

3.1. Chuẩn giao tiếp SPI

3.2. Chuẩn giao tiếp I2C

3.3. Chuẩn giao tiếp UART

3.4. So sánh giữa các giao thức

3.5. Baudrate

3.6. Khung truyền (frame)

Tóm tắt

I. Hướng Dẫn Cài Đặt Arduino IDE Để Lập Trình Arduino Uno

Cài đặt phần mềm Arduino IDE là bước đầu tiên để bắt đầu lập trình với Arduino Uno. Phần mềm này cung cấp giao diện thân thiện cho việc viết mã và tải lên vi điều khiển. Để cài đặt, truy cập trang web chính thức của Arduino và tải xuống phiên bản phù hợp với hệ điều hành. Sau khi tải về, mở file cài đặt và làm theo hướng dẫn. Đảm bảo cài đặt tất cả các driver cần thiết để kết nối với Arduino Uno.

1.1. Cách Tải Về Phần Mềm Arduino IDE

Truy cập vào trang web chính thức của Arduino. Chọn phiên bản phù hợp với hệ điều hành của máy tính. Nhấn vào nút 'Download' để tải về.

1.2. Hướng Dẫn Cài Đặt Arduino IDE

Mở file cài đặt đã tải về. Chọn nơi cài đặt và nhấn 'Install'. Sau khi cài đặt, phần mềm sẽ yêu cầu cài đặt driver cho vi điều khiển.

II. Giới Thiệu Về Arduino Uno và Các Tính Năng Nổi Bật

Arduino Uno là một trong những board vi điều khiển phổ biến nhất. Nó sử dụng chip ATmega328P với 14 chân đầu vào/đầu ra kỹ thuật số và 6 chân đầu vào tương tự. Board này hỗ trợ nhiều giao thức giao tiếp như I2C và SPI, giúp kết nối với các cảm biến và thiết bị khác dễ dàng. Arduino Uno cũng có khả năng lập trình bằng ngôn ngữ C++ thông qua Arduino IDE.

2.1. Các Chân Kết Nối Trên Arduino Uno

Arduino Uno có 14 chân digital, 6 chân analog và các chân hỗ trợ giao tiếp như RX, TX. Mỗi chân có chức năng riêng, cho phép điều khiển và nhận dữ liệu từ các thiết bị khác.

2.2. Tính Năng Giao Tiếp Của Arduino Uno

Arduino Uno hỗ trợ giao tiếp I2C và SPI, cho phép kết nối với nhiều cảm biến và thiết bị ngoại vi. Điều này mở rộng khả năng ứng dụng của board trong các dự án thực tế.

III. Hướng Dẫn Lập Trình Cơ Bản Cho Arduino Uno

Lập trình Arduino Uno có thể thực hiện thông qua Arduino IDE. Người dùng có thể viết mã C++ để điều khiển các chân I/O, đọc dữ liệu từ cảm biến và thực hiện các tác vụ khác. Một ví dụ đơn giản là lập trình để hiển thị chữ 'Hello World' trên Serial Monitor. Việc này giúp người dùng làm quen với cú pháp lập trình và cách thức hoạt động của board.

3.1. Viết Chương Trình Đầu Tiên Trên Arduino

Mở Arduino IDE và tạo một sketch mới. Viết mã để hiển thị 'Hello World' trên Serial Monitor. Nhấn nút Upload để nạp chương trình vào board.

3.2. Kiểm Tra Kết Quả Trên Serial Monitor

Sau khi nạp chương trình, mở Serial Monitor trong Arduino IDE để xem kết quả. Nếu mọi thứ hoạt động đúng, chữ 'Hello World' sẽ hiển thị trên màn hình.

IV. Ứng Dụng Thực Tiễn Của Arduino Uno Trong Dự Án

Arduino Uno có thể được sử dụng trong nhiều dự án khác nhau, từ các ứng dụng đơn giản như điều khiển đèn LED đến các hệ thống phức tạp hơn như robot tự hành. Việc sử dụng các cảm biến và module mở rộng giúp tăng cường khả năng của board. Các dự án này không chỉ giúp người dùng thực hành lập trình mà còn phát triển kỹ năng thiết kế hệ thống.

4.1. Dự Án Điều Khiển Đèn LED RGB

Sử dụng Arduino Uno để điều khiển đèn LED RGB. Viết mã để thay đổi màu sắc của đèn LED theo thời gian hoặc theo tín hiệu từ cảm biến.

4.2. Dự Án Giao Tiếp Với Cảm Biến Nhiệt Độ

Kết nối cảm biến nhiệt độ với Arduino Uno để thu thập dữ liệu và hiển thị trên màn hình LCD. Dự án này giúp người dùng hiểu rõ hơn về cách thức hoạt động của cảm biến.

V. Kết Luận Về Lập Trình Arduino Uno và Tương Lai

Lập trình Arduino Uno mở ra nhiều cơ hội cho những ai muốn tìm hiểu về điện tử và lập trình. Với sự phát triển không ngừng của công nghệ, Arduino Uno vẫn là một công cụ hữu ích cho việc học tập và phát triển dự án. Tương lai của Arduino hứa hẹn sẽ có nhiều cải tiến và ứng dụng mới, giúp người dùng dễ dàng hơn trong việc tạo ra các sản phẩm sáng tạo.

5.1. Tương Lai Của Arduino Trong Giáo Dục

Arduino sẽ tiếp tục được sử dụng rộng rãi trong giáo dục STEM, giúp học sinh và sinh viên phát triển kỹ năng lập trình và tư duy sáng tạo.

5.2. Xu Hướng Phát Triển Các Dự Án Mới

Với sự phát triển của IoT, Arduino Uno sẽ được tích hợp vào nhiều ứng dụng thông minh, từ nhà thông minh đến các hệ thống tự động hóa công nghiệp.

10/07/2025

Trích đoạn nội dung tài liệu

5/15/24, 3:13 PM OPEN LAB HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Posts and Telecommunications Institute of Technology openlab@gmail.com TRANG CHỦ LỚP THIẾT BỊ LỚP MẠNG LỚP ỨNG DỤNG DASHBOARD BrokerMQTT REPORT Danh sách video Vào làm bài BUỔI 1 : THỰC HÀNH LẬP TRÌNH CƠ BẢN VI ĐIỀU KHIỂN Hướng dẫn tải và cài đặt phần mềm Arduino IDE Bước 1: Truy cập vào địa chỉ: https://www.cc/en/software Bước 2: Chọn 1 trong tất cả các phiên bản đã cho.82:3000/home/IoTNode/detailNode?idNode=4 1/11 5/15/24, 3:13 PM OPEN LAB Bước 3: Chọn “Just dowload” để tải về. Bước 4: Sau khi tải về, cho chạy file mới tải Bước 5: Cho nơi cài đặt chương trình Arduino IDE xong ấn “Install”. Bước 6: Sau khi đã cài đặt xong phần mềm sẽ yêu cầu Cài một số Driver để nạp chương trình cho vi điều khiển, bạn chỉ cần ấn Install tất cả Driver phần mềm đề nghị.82:3000/home/IoTNode/detailNode?idNode=4 2/11 5/15/24, 3:13 PM OPEN LAB I.2: Viết và nạp một chương trình cho Arduino Uno Giao diện Arduino IDE khi mới khởi động Các chức năng nút lệnh trên Arduino: Icon Chức năng Biên dịch chương trình đang soạn thảo để kiểm tra các lỗi lập trình Biên Dịch và upload chương trình đang soạn thảo Gỡ lỗi chương trình đang soạn thảo Board đang được chọn để nạp chương trình vào Hiển thị đồ thị các đầu ra giữa máy tính và Board Arduino Hiển thị các dữ liệu được gửi và nhận dữ liệu giữa máy tính và board Arduino Soạn một chương trình đơn giản: Hiển thị chữ “Hello World” ra Serial Monitor: Chọn Cổng COM và Board đang sử dụng (Arduino UNO): 192.82:3000/home/IoTNode/detailNode?idNode=4 3/11 5/15/24, 3:13 PM OPEN LAB Nhấn Upload để nạp, màn hình báo Done uploading là hoàn thành: I.3: Giới thiệu cơ bản về Arduino Uno Arduino Uno là một vi điều khiển dựa trên ATmega328P. Nó có 14 chân đầu vào/đầu ra kỹ thuật số (trong đó 6 chân có thể được sử dụng làm đầu ra PWM), 6 đầu vào tương tự, tinh thể thạch anh 16 MHz, kết nối USB, giắc cắm nguồn, header ICSP và nút reset.

Mạch chứa mọi thứ cần thiết để hỗ trợ vi điều khiển, chỉ cần kết nối với máy tính bằng cáp USB hoặc cấp nguồn bằng bộ chuyển đổi AC-to-DC hoặc qua chân nguồn để bắt đầu. • Sơ đồ chân Arduino Uno: Chức năng các chân: • VIN: dùng để cung cấp nguồn khi không dùng USB hoặc các nguồn khác, điện áp 7-12VDC • 5V: Chân này xuất ra nguồn 5V • 3V3: Nguồn cung cấp 3. • GND: Là chân mang điện cực âm trên board. • IOREF: chân này dùng để cung cấp tham chiếu điện áp mà bộ vi điều khiển hoạt động.

• Reset: dùng để kết nối với nút reset ra bên ngoài.82:3000/home/IoTNode/detailNode?idNode=4 4/11 5/15/24, 3:13 PM OPEN LAB Trên Board Arduino Uno có 14 chân Digital được sử dụng để làm chân đầu vào và đầu ra, chúng sử dụng các hàm pinMode(), digitalWrite(), digitalRead(). Điện áp trên mỗi chân là 5V, dòng trên mỗi chân là 20mA và bên trong có điện trở kéo lên là 20-50 ohm. Dòng tối đa trên mỗi chân I/O không vượt quá 40mA để tránh trường hợp gây hỏng board mạch. Uno có 6 chân đầu vào Analog từ A0 đến A5, mỗi chân cung cấp 10 bit độ phân giải (tức là 1024 giá trị khác nhau).

• Serial: chân 0 (RX) và 1 (TX): Được sử dụng để nhận dữ liệu (RX) và truyền dữ liệu (TX) TTL. • Ngắt ngoài: chân 2 và 3 • PWM (điều chế độ rộng xung): chân 3, 5, 6, 9 và 11 cung cấp đầu ra xung PWM với độ phân giải 8 bit bằng hàm analogWrite (). Các chân này hỗ trợ giao tiếp SPI bằng thư viện SPI. • TWI/I2C: A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác.

• AREF: điện áp tham chiếu cho các đầu vào tương tự Nội dung 1. Lập trình cho vi điều khiển hiển thị dòng chữ lên màn hình LCD Màn hình LCD 16x2: - LCD 16×2 có 16 chân trong đó 8 chân dữ liệu (D0 – D7) và 3 chân điều khiển (RS, RW, EN). - chân còn lại dùng để cấp nguồn và đèn nền cho LCD 16×2. - Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh hoặc chế độ dữ liệu.

- Chúng còn giúp ta cấu hình ở chế độ đọc hoặc ghi. Thông số kĩ thuật: - Điện áp hoạt động là 5 V - Địa chỉ I2C: 0x27 (có thể thay đổi theo đơn hàng của nsx ví dụ như: 0x3F ) - Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780). - Có đèn led nền, có thể dùng biến trở hoặc PWM điều chình độ sáng để sử dụng ít điện năng hơn. - Có thể được điều khiển với 6 dây tín hiệu • Module I2C Arduino: - LCD có quá nhiều nhiều chân gây khó khăn trong quá trình đấu nối và chiếm dụng nhiều chân trên vi điều khiển.

Do đó Module I2C LCD ra đời để giải quyết vấn đề này. Thay vì phải mất 6 chân vi điều khiển để kết nối với LCD 16×2 (RS, EN, D7, D6, D5 và D4) thì module IC2 bạn chỉ cần tốn 2 chân (SCL, SDA) để kết nối.82:3000/home/IoTNode/detailNode?idNode=4 5/11 5/15/24, 3:13 PM OPEN LAB Arduino LCD GND GND VCC VCC SDA/A4 SDA SCL/A5 SCL • • Code tham khảo: - Thư viện cho LCD: “LiquidCrystal I2C ” của Frank de Brabander Link tham khảo có code mẫu: https://github.com/johnrickman/LiquidCrystal_I2C - Có thể mô phỏng qua đường link đây: https://wokwi.com - Code : #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd ( 0x 27 , 16 , 2 ) ; // Khai báo địa chỉ của LCD gồm 16 cột, 2 dòng void setup () { lcd. init () ; // Khởi động màn hình lCD lcd. backlight () ; // Bật đèn nền LCD lcd.

setCursor ( 0 , 0 ) ; //Đưa con trỏ vị trí tới hàng 1 cột 1, nếu là (1,0) thì là hàng 1 cột thứ 2 lcd. print ( "Hello, world!" ) ; // In ra màn hình LCD lcd. setCursor ( 0 , 1 ) ; // Đưa con trỏ tới vị trí hàng 1 cột 2 lcd. print ( "IoT LAB" ) ; // In ra màn hình LCD } void loop () { } Kết quả: Nội dung 2.

Lập trình cho vi điều n háy Led RGB Led RGB - Đèn led hay còn gọi là điốt phát quang, là một biến thể của diode cơ bản, nó xác định độ chênh lệch điện áp nhỏ nhất giữa Anode (+ ) và Cathode (-), led khác diode ở chỗ là tạo ra ánh sáng khi dòng điện đi qua. Đèn led cần được kết nối đúng âm dương của nguồn điện để hoạt động. L ed RGB có 3 màu : đỏ, xanh lá, xanh dươ ng .82:3000/home/IoTNode/detailNode?idNode=4 6/11 5/15/24, 3:13 PM OPEN LAB - Điện áp: Mỗi đèn led đều có một mức điện áp đầu vào nhất định (led 5mm dao động 1.2 Vol), nếu cung cấp không đủ đèn sẽ không phát sáng hoặc cung cấp nguồn lớn hơn thì cần phải sử dụng trở để giảm điện thế vào led. Nếu bạn mắc nhiều đèn led nối tiếp, song song thì cần phải tính toán mức điện áp, dòng điện cung cấp cho tất cả các led.

- Dòng điện: Nếu bạn cung cấp dòng điện vượt qua ngưỡng cho phép, tương đương với việc làm gia tăng nhiệt độ và làm giảm tuổi thọ của led. Dòng điện phù hợp với led 5mm thường ở mức 20mA, tối đa có thể là 30mA, chúng ta kiểm soát dòng điện bằng cách mắc một điện trở nối tiếp với đèn led,nó giúp dòng điện của led luôn ở mức cho phép. • Sơ đồ đấu nối: Arduino LED D7 R D8 G D9 B GND GND Code tham khảo: #define red 7 #define green 8 #define blue 9 void setup () { pinMode ( red, OUTPUT ) ; // Cấu hình chân D7 làm OUTPUT cho led red pinMode ( green, OUTPUT ) ; // Cấu hình chân D8 làm OUTPUT cho led green pinMode ( blue, OUTPUT ) ; // Cấu hình chân D9 làm OUTPUT cho led blue } void loop () { digitalWrite ( red,HIGH ) ; // Chân red lên mức Cao hay Bật Đèn Led delay ( 1000 ) ; // Đèn sáng tầm 1 giây 192.82:3000/home/IoTNode/detailNode?idNode=4 7/11 5/15/24, 3:13 PM OPEN LAB digitalWrite ( red,LOW ) ; // Chân red xuống mức Thấp hay Tắt Đèn Led digitalWrite ( green,HIGH ) ; // Chân green lên mức Cao hay Bật Đèn Led delay ( 1000 ) ; // Đèn sáng tầm 1 giây digitalWrite ( green,LOW ) ; // Chân green xuống mức Thấp hay Tắt Đèn Led digitalWrite ( blue,HIGH ) ; // Chân blue lên mức Cao hay Bật Đèn Led delay ( 1000 ) ; // Đèn sáng tầm 1 giây digitalWrite ( blue,LOW ) ; // Chân blue xuống mức Thấp hay Tắt Đèn Led } Kết quả: Nội dung 3. Lập trình cho vi điều n háy giao tiếp bàn phím B àn phím số (Key pad ) Bàn phím ma trận 3x4 nhựa cứng gồm có 16 nút bấm được sắp xếp theo ma trận 3 hàng, 4 cột.

Các nút bấm trong cùng một hàng và một cột được nối với nhau. Thông số kỹ thuật: • Kích thước : 7×5.9cm • Bàn Phím Ma Trận Nhựa Cứng 3x4 Keypad loại phím nhựa cứng. • Nhiệt độ hoạt động 0 ~ 70oC. • Đầu nối ra 7 chân.

• Kích thước bàn phím 65 x 64mm Sơ đồ chân: • Sơ đồ đấu nối: Arduino Key Pad 192.82:3000/home/IoTNode/detailNode?idNode=4 8/11 5/15/24, 3:13 PM OPEN LAB D3 (3,2) D4 (2,3) D5 (2,2) D6 (2,1) D7 (1,3) D8 (1,2) D9 (1,1) *Note: (3,2) trong bảng chân của Key Pad ở đây tương đương với hàng thứ 3 và cột thứ 2 trong bộ Kit Lập trình: #include <LiquidCrystal_I2C.h> const byte ROWS = 4 ; // 4 hàng const byte COLS = 3 ; // 3 cột String arr [ 8 ] = {} ; String password [ 8 ] = { "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" } ; int place = 0 ; int input = 6 ; bool value = true ; char keys [ROWS][COLS] = { { '1','2','3' } , { '4','5','6' } , { '7','8','9' } , { '*','0','#' } } ; LiquidCrystal_I2C lcd ( 0x 27 , 16 , 2 ) ; // Khai báo địa chỉ của LCD gồm 16 cột, 2 dòng byte rowPins [ROWS] = { 8 , 3 , 4 , 6 } ; // nối hàng của keypad byte colPins [COLS] = { 7 , 9 , 5 } ; // nối cột keypad Keypad keypad = Keypad ( makeKeymap ( keys ) , rowPins, colPins, ROWS, COLS ) ; void setup (){ lcd. init () ; // Khởi động màn hình lCD lcd. backlight () ; // Bật đèn nền LCD lcd. setCursor ( 0 , 0 ) ; //Đưa con trỏ vị trí tới hàng 1 cột 1, nếu là (1,0) thì lcd.

begin ( 9600 ) ; // khởi tạo serial } 192.82:3000/home/IoTNode/detailNode?idNode=4 9/11 5/15/24, 3:13 PM OPEN LAB void loop (){ // Kiểm tra nút được nhấn char key = keypad. print ( " Welcome!

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ