Thiết kế hệ thống nhúng với Arduino Designing Embedded System with Arduino ( Tiếng Việt)

170 20 0
Thiết kế hệ thống nhúng với Arduino  Designing Embedded System with Arduino ( Tiếng Việt)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mục đích của cuốn sách này là trình bày về kỹ thuật điện tử và kỹ thuật lập trình dựa trên nền tảng Arduino và để thảo luận chúng nhìn từ quan điểm sử dụng công nghệ vi điều khiển để điều khiển ứng dụng thực tế ngoài môi trường. Trong ba năm qua, nội dung trong cuốn sách này đã được sử dụng để hổ trợ cuộc thi Summer Progam for Innovative Engineering Design (SPIED), được thực hiện bởi ba nước, Nhật bản, Trung Quốc và Hàn Quốc luân phiên nhau (http:ireasia.orgirespied) Cuốn sách này có thể được sử dụng cho các bài học nâng cao cho sinh viên năm nhất về vi điều khiển và các ứng dụng. Một phần nội dung của cuốn sách này đã được sử dụng để hỗ trợ cho các nhà sản xuất về lĩnh vực điện tử và những người yêu thích về thiết kế hệ thống nhúng

TRƯỜNG CAO ĐẲNG KỸ THUẬT CAO THẮNG BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP BIÊN DỊCH: HUỲNH XUÂN DŨNG Share by: www.ungdungmaytinh.com - trungtamcadcam.com Giới thiệu Preface Trong giới có nhiều thiết bị thơng minh nhúng với vi xử lý, cảm biến phần mềm Cộng đồng người tự thực (Doit-yourself) bị lôi ứng dụng thực tế thiết kế xây dựng hệ thống thông minh cho tác vụ cụ thể Arduino tảng thay vi xử lý truyền thống để để xây dựng sản phẩm đặc sắc Người dùng tải chương trình lập trình IDE (Intergrated Development Environment) lập trình sử dụng ngôn ngữ C/C++ với thư viện Arduino (Arduino Core library), thư viện cung cấp nhiều hàm có sẵn hữu ích để lập trình Arduino dễ dàng đề thực ứng dụng phím cảm ứng, giao tiếp âm thanh, điều khiển vị trí, nhiệt độ ánh sáng… Cuộc thi SPIED (Summer Program for Innovative Engineering Design) nước Nhật, Trung Quốc Hàn Quốc xoay vòng kể từ năm 2013 Vai trò SPIED thiết lập kết nối sáng tạo giáo dục kỹ thuật ba nước Trong SPIED, đối tượng lập trình chuyên nghiệp Sinh viên từ Nhật, Hàn Trung Quốc làm việc với để lên kế hoạch, thiết kế, chế tạo trình bày đối tượng thuộc điện tử hệ thống Robot Bằng cách kết hợp kỹ thuật thiết kế với khả nhận dạng vấn đề từ quan điểm nhiều ngành, SPIED cung cấp cho người tham nhận được vai trị việc thực đề tài thông qua việc thiết kế tạo sản phẩm Tuy nhiên hệ thống điện tử robot liên quan đến kỹ thuật nhiều ngành Sinh viên cần phải cần có nhiều thời gian để thảo luận học công nghệ Và Arduino tảng độc đáo, sử dụng ai, người chưa lập trình chưa có kinh nghiệm mạch điện tử Arduino thiết bị có tảng mã nguồn mở (open-Source) đơn giản phần cứng phần mềm Nó thích hợp đề phát triển thiết bị mẫu Vì Arduino phù hợp cho sinh viên Trong sách này, chúng tơi muốn trình bày cách có hệ thống module kèm với tảng Arduino hướng dẫn người bắt đầu hiểu công nghệ Hơn chủ đề với thông tin khác cảm biến, ánh sáng, điện tử, điện tử, tính tốn toán học…cũng giới thiệu sách này, giúp cho người đọc khám phá phát triển hệ thống từ góc độ liên ngành Share by: www.ungdungmaytinh.com - trungtamcadcam.com Mục tiêu đối tượng Objective and Intended Audience Mục đích sách trình bày kỹ thuật điện tử kỹ thuật lập trình dựa tảng Arduino để thảo luận chúng nhìn từ quan điểm sử dụng cơng nghệ vi điều khiển để điều khiển ứng dụng thực tế ngồi mơi trường Trong ba năm qua, nội dung sách sử dụng để hổ trợ thi Summer Progam for Innovative Engineering Design (SPIED), thực ba nước, Nhật bản, Trung Quốc Hàn Quốc luân phiên (http://ire-asia.org/ire/spied/) Cuốn sách sử dụng cho học nâng cao cho sinh viên năm vi điều khiển ứng dụng Một phần nội dung sách sử dụng để hỗ trợ cho nhà sản xuất lĩnh vực điện tử người yêu thích thiết kế hệ thống nhúng Nội Dung Cuốn Sách Book Contents Mặc dù sách có tính chất mở (open source) phần cứng điện tử Bạn tìm nhiều chương trình mẫu (sample codes) Các chương trình mẫu sử dụng để cấu hình phần cứng chạy đươc chương trình mong muốn Các tác giả giảng viên chuyên nghiệp với nhiều kinh nghiệm lĩnh vực thiết kế hệ thông nhúng (Embedded System Design) Thông qua công tác, cố gắng đưa mơ hình mà giáo dục truyền thống kết hợp với nhà chế tạo thiết bị giới để tạo học có chiều sâu thơng qua thực tế học tập cách thụ động Các chương từ 1-6 viết Giáo Sư Tianhong Pan chương viết Tiến sĩ Biqi Sheng Giáo sư Yi Zhu Mở đầu sách (chương 1) Chú trọng vào đặc điểm khác board Arduino Tiếp theo tổng quan lịch sử, đặc trưng Arduino cách thức cài đặt driver phần mềm lập trình IDE Share by: www.ungdungmaytinh.com - trungtamcadcam.com Chương hai mô tả chức hệ thống nhúng, hàm có chức ghi đọc ngõ số tương tự cách chân ngõ vào ra, hàm ngắt, hàm tốn học, hàm truyền thơng nối tiếp Chương trình bày loại module cảm biến khác phù hợp với Arduino cảm biến nhiệt độ, module joystick, cảm biến âm tương tự, loại cảm biến khác không dành riêng có tương thích với Arduino Ngồi cịn thảo luận thông tin điện chân ngõ ra, sơ đồ nguyên lý phần mềm Chương Giải thích cách bạn điều khiển động với Arduino Nhiều loại động đề cập đến như: Động DC, động Servo, động bước Tất loại mạch drive sơ đồ nguyên lý chúng đề cập chương Chương tập trung vào kỹ thuật không giây như: truyền/nhận sóng hồng ngoại, Bluetooth, Zigbee, Wi-Fi … Các ví dụ chương minh họa cách kết nối Arduino tối thiết bị module để điều khiển từ xa thực tế Chương 6-8 Trình bà vài dự án để minh họa khả board Arduino module cảm biến Chúng thể cho biết cách Arduino áp dụng vào nhiều tình khác Mỗi ví dụ minh họa gồm có lý thuyết hoạt động, sơ đồ nguyên lý, liệt kê thành phần chi tiết, sơ đồ kết nối tổng qua chức phần mềm cần thiết Nhóm tác giả Tiahong Pan Yi Zhu Share by: www.ungdungmaytinh.com - trungtamcadcam.com MỤC LỤC Chương Bắt đầu với Arduino 1.1 Giới thiệu 1.2 Các loại Arduino khác 1.3 Cài đặt Driver 1.4 Arduino IDE 11 Chương 15 Các hàm 15 2.1 Tổng quan .15 2.2 Cấu trúc (Structure) 15 2.3 Các Hàm Vào/Ra Số (Digital I/O Functions) 16 2.4 Các Hàm Vào/Ra Tương Tự (Analog I/O Functions) 18 2.5 Các Hàm Vào/Ra Nâng Cao (Advanced I/O Functions) 21 2.6 Các Hàm Timer (Timer Functions) .24 2.7 Các hàm truyền thông (Communication Functions) 26 2.8 Các Hàm Ngắt (Interrupt Function) 31 2.9 Các Hàm Toán Học (Math Functions) 34 2.10 Tham Khảo Ngơn Ngữ Lập Trình .39 Chương 40 Sử dụng cảm biến với Arduino 40 3.1 Giới Thiệu (Introduction) .40 3.2 Cảm Biến Cảm Nhận Ánh Sáng 40 3.2.1 Giới thiệu 40 3.2.2 Diode quang (Photodiodes) .41 3.2.3 Ví dụ minh họa 42 3.3 Cảm biến nhiệt độ (Temperature Sensor) 43 3.3.1 Giới thiệu 43 3.3.2 Cảm Biến Nhiệt Độ Số (Digital Temperature Sensor) .44 3.3.3 Cảm Biến Nhiệt Độ Tương Tự (Analog Temperature Sensor) .50 3.4 Cảm biến nhiệt độ độ ẩm (Temperature and Humidity Sensor) 53 3.4.1 Giới thiệu 53 3.4.2 Ví dụ minh họa 54 Share by: www.ungdungmaytinh.com - trungtamcadcam.com 3.5 Cảm biến dò line (Line-Tracking Sensor) 56 3.5.1 Giới thiệu 56 3.5.2 Ví dụ minh họa 57 3.6 Cảm biến siêu âm (Ultrasonic Sensors) .59 3.6.1 Giới thiệu 59 3.6.2 HC-SR04 60 3.6.3 Ví dụ minh họa 60 3.7 Cảm biến hồng ngoại số phát di chuyển (Digital Infrared Motion Sensor) .62 3.7.1 Giới thiệu 62 3.7.2 Ví dụ minh họa 62 3.8 Joystick Module .65 3.8.1 Giới thiệu 65 3.8.2 Ví dụ minh họa 65 3.9 Cảm biến Gas (Gas Sensor) 67 3.9.1 Giới thiệu 67 3.9.2 ví dụ minh họa 67 3.10 Cảm biến Hall (Hall Sensor) .69 3.10.1 Giới thiệu .69 3.10.2 Ví dụ minh họa 69 3.11 Cảm biến màu (Color Sensor) 71 3.11.1 Giới thiệu .71 3.11.2 Ví dụ minh họa 72 3.12 Cảm biến độ nghiêng số (Digital Tilt Sensor) 74 3.12.1 Giới thiệu .74 3.12.2 Ví dụ minh họa 75 3.13 Cảm biến gia tốc ba trục (Triple Axis Acceleration Sensor) 77 3.13.1 Giới thiệu .77 3.13.2 Ví dụ minh họa 77 3.14 Cảm biến âm tương tự (Analog Sound Sensor) .80 3.14.1 Giới thiệu .80 3.14.2 Ví dụ minh họa 81 3.15 Module nhận dạng giọng nói (Voice Recognition Module) .83 3.15.1 Giới thiệu .83 Share by: www.ungdungmaytinh.com - trungtamcadcam.com 3.15.2 Ví dụ minh họa 83 3.16 Cảm biến rung số (Digital Vibration Sensor) 86 3.16.1 Giới thiệu .86 3.16.2 Ví dụ minh họa 87 3.17 Cảm biến cháy (Flame Sensor) 89 3.17.1 Giới thiệu .89 3.17.2 Ví dụ minh họa 89 3.18.2 Ví dụ minh họa 92 Chương 94 Điều khiển hệ thống điện tử sử dụng Arduino 94 4.1 Động DC (DC Motor) .94 4.1.1 Tổng quan 94 4.1.2 Thiết kế mạch điện điều khiển Driven (Driven Circuit Design) .95 4.1.3 Ví dụ minh họa 96 4.2 Động bước .101 4.2.1 Tổng quan 101 4.2.2 Nguyên lý làm việc động bước .102 4.2.3 Nguyên lý điều khiển động bước (Driven Principle of Stepper Motor) 103 4.2.4 Thiết kế mạch điện điều khiển (Driver) 106 4.2.5 Ví dụ minh họa (Demonstration 1) .108 4.2.6 Ví dụ minh họa (Demontration 2) 111 4.3 Động Servo (Servo Motor) .112 4.3.1 Tổng quan (Overview) 112 4.3.2 Thiết kế mạch điện điều khiển 114 4.3.3 Ví dụ minh họa (Demonstration) 115 Chương 118 Điều khiển không giây sử dụng Arduino 118 5.1 Module truyền nhận hồng ngoại 118 5.1.1 Giới thiệu .118 5.1.2 Module truyền nhận hồng ngoại (IR Transmiter/Receiver) 119 5.1.3 IR Kit .122 5.2 Module vô tuyến không giây tần số 2.4G\ 129 5.2.1 Giới thiệu .129 5.2.2 Module truyền nhận tín hiệu khơng dây RF 2.4 GHz .129 Share by: www.ungdungmaytinh.com - trungtamcadcam.com 5.2.3 Ví dụ minh họa (Demonstration) 131 5.3 Bluetooth Module 135 5.3.1 Giới thiệu .135 5.3.2 HC-05 Module 136 5.3.3 Điều chỉnh module HC-05 dùng tập lệnh AT 137 5.4 GSM/GPRS Module 147 5.4.1 Giới thiệu .147 5.4.2 Module GSM/GPRS A6 148 5.4.3 Ví dụ minh họa 152 5.5 Module Wi-Fi .155 5.5.1 Giới thiệu .155 5.5.2 Module Wi-Fi 156 5.5.3 Ví dụ minh họa 158 Share by: www.ungdungmaytinh.com - trungtamcadcam.com ThS Huỳnh Xuân Dũng Chương Bắt đầu với Arduino Getting Started with Arduino 1.1 Giới thiệu Vào năm 2005, Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis lên ý tưởng cho thiết bị dễ dàng lập trình dùng thiết kế dự án Interaction Design Institute Ivrea, Italy Thiết bị nàycần phải đơn giản, dễ dàng kết nối đế nhiều thiết bị khác (Rờ le, động cảm biến) phải dễ dàng để lập trình Ngồi giá thành khơng q đắt để phù hợp với sinh viên lập trình viên khác Họ lựa chọn họ vi điều khiển 8-bit (MCU hay µC) AVR từ nhà sản xuất Atmel thiết kế board mạch điện tử với ngõ kết nối chờ sẵn, nạp sẵn bootloader firmware cho vi điều khiển tích hợp tất vào môi trường phát triển (development enviroment) sử dụng lập trình gọi "sketches" Kết cuối đời board Arduino Arduino vi điều khiển mã nguồn mở cho phép lập trình tương tác dễ dàng; Arduino lập trình sử dụng C/C++ với thư viện Arduino cho phép truy cập vào phần cứng với cho phép lập trình mềm dẻo kết hợp sử dụng mạch điện tử thực với Arduino Bởi Arduino mã nguồn mở, mạch điện giao tiếp dễ dàng tìm thấy trực tuyến miễn phí cho muốn sửdụng tạo board mạch riêng dựa vào sơ đồ nguyên lý (schematics), mạch lại được học chia lên mạng Điều cho phép thảo luận việc xây dựng ứng dụng nào, công suất sao, kích thước board có phù hợp hay khơng Arduino cấu tạo gồm hai thành phần sau: Arduino board, phần cứng mà bạn làm việc trực tiếp để xây dựng dự án Share by: www.ungdungmaytinh.com - trungtamcadcam.com ThS Huỳnh Xuân Dũng Arduino IDE, phần mềm chạy máy tính bạn Bạn sử dụng IDE để tạo sketch (một chương trình nhỏ máy tính) mà bạn upload lên Arduino board Arduino có nhiều loại khác thị trường chúng có đặc điểm sau: Arduino làm việc nhiều môi trường Windows, Macintosh, Linux Nó hoạt động dựa vào chương trình xử lý IDE, mơi trường phát triển dễ sử dụng cho nhà thiết kế Bạn lập trình Arduino qua cáp USB, khơng phải cáp nối tiếp Đặc tính thuận tiện nhiều máy tính ngày khơng có cổng nối tiếp (serial port) Phần cứng phần mềm mã nguồn mở, muốn bạn tải (download) sơ AM đồ mạch điện, mua tất linh kiện, tự làm board Arduino cho riêng mà khơng phải trả phí quyền /C Phần cứng có giá thành rẻ Có sẵn cộng đồng người sử dụng, có nhiều người giúp đở bạn AD Dự án Arduino phát triển mơi trường giáo dục, người C biết tiếp cận ngày nhiều m Nhờ có đặc điểm đặc biệt vậy, có nhiều ứng dụng như: tâ Giám sát tượng giới thực (Real-world monitoring) • Trạm quan sát thời tiết tự động (Automated weather station) g • Bộ phát ánh sáng (Lightning detection) un • Bộ điều khiển bám theo mặt trời cho pin lương mặt trời Tr • Bộ giám sát xạ • Bộ theo dõi thú vật tự động (Automatic wildlife detector) • Hệ thống an ninh cho ngơi nhà công ty (Home or business security system) Điều khiển hệ thống nhỏ (Small-scale control) • Các robot có kích thước nhỏ (Small robots) • Các mơ hình tên lửa (Model rockets) • Các mơ hình máy bay (Model aircrafts) • Các mơ hình trực thăng động (Quadrotor UAVs) • Các máy CNC cho máy cơng cụ nhỏ Tự động hóa hệ thống cở nhỏ (Small-scale Automation) • Ngơi nhà xanh tự động (Automated greenhouse) Share by: www.ungdungmaytinh.com - trungtamcadcam.com ThS Huỳnh Xuân Dũng việc sử dụng nguồn liệu Bộ cấp phát tài nguyên vô tuyến GPRS cho phép cung cấp nhiều kênh cho người dùng để đảm bảo tốc độ truyền liệu cao Mặt khác, kênh chia với nhiều người sử dụng để tối ưu hóa nguồn liệu Sau đó, GPRS cho phép chia sẻ khe thới gian user, cung cấp tốc độ liệu lên đến 170 kbit/s cung thời gian cài đặt gọi Hơn nữa, GPRS hỗ trợ trực tiếp giao thức kết nối Internet (IP) chế độ điểm-điểm (point-point) hay điểm-nhiều điểm (point-multipoint) cung cấp gói truy cập vơ tuyến tới mạng gói liệu bên ngồi (PDN) Có nhiều loại module GSM/GPRS thị trường Đó module GSM/GPRS dùng để điều khiển ứng dụng không giây, máy-máy (machine to machine), hay người dùng- máy (user to machine) truyền thông liệu từ xa tất ứng dụng thị trường Module GSM/GPRS thiết kế để truyền thơng máy tính mạng GSM GPRS Nó địi hỏi phải có SIM (Subcriber Indentity Module) giống điện thoại di động để kích khoạt truyền thơng với mạng Mặt khác, chúng có số IMEI (International Mobile Equipment Indentity) gống điện thoại di động để nhận dạng Nguồn cung cấp cho mạch điện tích hợp bên moduel kích hoạt dùng adaptor phù hợp Một module GSM/GPRS thực hoạt động sau: (1) Nhận, truyền, hay xóa tin nhắn SMS SIM (2) Đọc, thêm tìm kiếm danh bạ SIM (3) Thực hiện, nhận bỏ qua (reject) gọi thoại (4) Nhận/gửi liệu từ vị trí di động thơng qua GPRS Module cần tập lệnh AT để giao tiếp với xử lý hay vi điều khiển, truyền thông thông qua giao tiếp nối tiếp Các lệnh gửi xử lý/điều khiển Module gửi kết ngược trở lại sau nhận lệnh yêu cầu lệnh AT khác hổ trợ cho module để xử lý/điều khiển/máy tính truyền thơng với mạng di động GSM/GPRS 5.4.2 Module GSM/GPRS A6 Trong chương này, sử dụng module thông dụng GSM/GPRS A6 làm ví dụ: Module module GMS Modem kế nối tới PCB với nhiều loại ngõa từ TTL (cho vi điều khiển) RS232 để kết nối trực tiếp tới PC 148 Share by: www.ungdungmaytinh.com - trungtamcadcam.com ThS Huỳnh Xuân Dũng (Personal computer) Board cịn có chân cho phép kết nối micro loa Đặc tính board sau: • Hỗ trợ tới kênh kết nối mạng • Cơng suất tiêu thụ thấp: chế độ nghỉ 3mA • Hoạt động vùng nhiệt độ rộng • Dual-Band GSM/GPRS 900/1800 MHz • Giao tiếp RS232/TTL trực tiếp với máy tính hay MCU Kit • Có thể cấu hình tốc độ truyền • Tuân thủ theo ESD • Gồm có socket MIC loa • Với khay SIM trượt • Với đầu gắn Ăng ten • Tương thích với đầu cắm UNO • Tùy chọn bật nguồn thơng qua vi điều khiển Hình dạng module biểu diễn hình 5.18 có chân sau kết nối tới vi điều khiển • Antena Interface: kết nối đến ăng ten ngồi • Earphones: Để trả lời gọi • MicroSIM Card: Kích hoạt truyền thơng với mạng • EN: chân cho phép chíp nguồn MP1584, mức cao cho phép, mức thấp không cho phép, chân sử dụng chân reset module • PWR: Nút bật nguồn • REC +/REC: Loa âm/dương • MIC +/MIC: Micro âm/dương 149 Share by: www.ungdungmaytinh.com - trungtamcadcam.com ThS Huỳnh Xuân Dũng Hình 5.18 Module A6 GSM/GPRS • H_TXD/H_RXD: Chân để cập nhật firmware • GND/R232_RX/R232_TX: truyền nhận RS232 • GND/U_RXD/U_TXD: chân truyền nhận module A6 (mức TTL) • VCC_IN: Chân nguồn ngõ vào, 5-9V Như đề cập phía trướd, module giao tiếp với xử lý hay điều khiển sử dụng tập lệnh AT Ở đây, liệt kê số tập lệnh AT thông dụng (như bảng 5.5 5.6) Bảng 5.5 Tập lệnh AT cho GPRS 150 Share by: www.ungdungmaytinh.com - trungtamcadcam.com ThS Huỳnh Xuân Dũng Bảng 5.6 Tập lệnh AT cho SMS 151 Share by: www.ungdungmaytinh.com - trungtamcadcam.com ThS Huỳnh Xuân Dũng 5.4.3 Ví dụ minh họa Trong ví dụ này, xem làm cách để giao tiếp module A6 GSM/GPRS với Arduino Linh kiện • Board DFRobot UNO R3 cáp USB x • Module A6 GSM/GPRS x • SIM card x1 • Ăng ten GSM x1 • Dây nối x n AM Thiết lập phần cứng Trong trường họp nào, giao tiếp Arduino moduel GSM/GPRS /C nối tiếp Vì vậy, hỗ trợ để sử dụng chân truyền thơng nối tiếp Arduino (Rx Tx) Trong ví dụ chân 10 (chân PWM) sử dụng Phương AD pháp thực với thự viện SoftwareSerial Library Arduino SoftwareSerial thư viện Arduino cho phép truyền liện nối tiếp thông qua C chân Arduino Thư viện thiết lập chức phần cứng điều khiển nhiệm vụ Tr un g tâ m truyền thông nối tiếp Sơ đồ mạch điện biểu diễn hình 5.19 Hình 5.19 Sơ đồ kết nối module A6 GSM/GPRS 152 Share by: www.ungdungmaytinh.com - trungtamcadcam.com ThS Huỳnh Xuân Dũng Chương trình mẫu (1) Ví dụ GSM 153 Share by: www.ungdungmaytinh.com - trungtamcadcam.com ThS Huỳnh Xuân Dũng Các bước thiết lập module GSM/GPRS sau: (1) Cài đặt SIM card vào module GSM/GPRS khóa lại (2) Kết nối adapter tới module GSM/GPRS bật cho module khởi động (3) Đợi khoảng thời gian (1 phút) nhìn thấy tốc độ chớp nháy đèn “status LED” hay “network LED” (GSM/GPRS module dành khoảng thời gian để thiết lập kết nối với mạng di động) (4) Khi kết nối thiết lập thành công, LED status/network chớp tắt liên tục 3s Bạn thử thực gọi tới số điện thoại di động SIM bên GSM/GPRS module Nếu bạn nghe tiếng chng đổ có nghĩa module GSM/GPRS thiết lập kết nối thành công tới mạng di động Hình 5.20 Kết module A6 GSM/GPRS cửa sổ Arduino serial monitor 154 Share by: www.ungdungmaytinh.com - trungtamcadcam.com ThS Huỳnh Xuân Dũng Trong ví dụ này, việc truyền thơng kích hoạt người dùng Chưng trình ghi liệu ngõ vào người dùng thơng qua serial monitor Arduino Nếu ngõ vào “s”, chương trình gọi hàm để gửi SMS từ module GSM Nếu người dùng gõ “r” chương trình gọi hàm nhận tin SMS từ module GSM hiển thị chúng cửa sổ serial monitor Arduino (Hình 5.20) 5.5 Module Wi-Fi 5.5.1 Giới thiệu Wi-Fi hay Wireless Fidelity, thuật ngữ sử dụng cách tổng quát để sản phẩm hay dịch vụ sử dụng công nghệ dạng 802.11, Mạng Wi-Fi hoạt động không cần cấp phép tần số 2.4-2.5 GHz Với tốc độ 11Mbps (802.11b) hay 54 Mbps (802.11a) Công nghệ Wi-Fi sử dụng nhiều ứng dụng đa dạng khoa học, cơng nghiệp, thương mại…Nhiều thiết bị sử dụng Wi-Fi máy tính cá nhân, máy nghe nhạc số, máy video game, điện thoại thông minh, camera số, máy tính bảng…Những thiết bị kết nối hồn tồn tới mạng thơng qua điểm truy cập mạng khơng giây Danh sách sau tóm tắt vài ưu điểm mạng Wi-Fi • Ethernet khơng giây: Wi-Fi thay cho Ethernet Wi-Fi Ethernet hai theo tiêu chuẩn IEEE 802, chia vài thành phần cốt lõi • Điểm truy cập mở rộng Sử dụng để thay cho cáp dây nối cho nơi triển khai cáp dây nối kinh phí q đắt • Giảm chi phí Như đề cập trên, khơng có dây nối chi phí giảm xuống Điều có kết hợp yếu tố định tuyến khơng giây có ghi phí thấp, thiết bị hỗ trợ cho việc thiết lập kết nối vật lý có giá thành thấp • Tính di động cao: Kết nối có dây phù hợp cho vị trí cố định Đối với kết nối khơng giây bạn tự thay đổi vị trí thiết bị truy cập mà lo kết nối • Tính mềm dẻo: Được phép mở rộng truy cập, giảm chi phí, tính di động tạo hội cho ứng dụng cho phép tạo giải pháp cho ứng dụng 155 Share by: www.ungdungmaytinh.com - trungtamcadcam.com ThS Huỳnh Xuân Dũng 5.5.2 Module Wi-Fi Có nhiều loại module Wi-Fi nhiều giải pháp bạn tìm kiếm Nhà cung cấp thường phân loại module nhiều thơng số gồm có tốc độ truyền, vùng phủ sóng, Băng tần RF, loại đóng gói… Trong chương này, module Wi-Fi DFRobot V2.2 (TEL0047) chọn để làm ví dụ (như hình 5.21 chức thể bảng 5.7) Module sử dụng WizFi210 với công suất tiêu thụ thấp ứng dụng để quản lý lượng Khi module Wi-Fi cần chế độ bật không hoạt động, đặt chế độ chờ (Standby) lúc module tiêu thụ cơng suất thấp, module cần đánh thức (wake up) hoạt động trở lại Module cung cấp truyền thông từ TTL sang truyền thơng khơng giây IEEE802.11b/g/n Vì thiết bị với cổng giao tiếp nối tiếp TTL dễ dàng kết nối với module Wi-Fi điều khiển từ xa thông qua mạng không giây Cấu trúc Arduino cho phép bạn dễ dàng tích hợp module tới dự án dùng Aduino để truyền thông qua Wi-Fi thông qua UART gửi lệnh AT Các đặc điểm module sau • Giao thức vơ tuyến: Tương thích với IEEE 802.11b/g/n • Hỗ trợ tốc độ truyền liệu: 11, 5.5, 2, Mbps (IEEE 802.11b) • Điều chế: DSSS CCK • Tần số hoạt động: 2.4-2.497 GHz • Các tùy chọn Ăng ten: Ăng ten kết nối sử dụng chip antenna U.FL • Giao thức mạng: UDP, TCP/IP (Ipv4), DHCP, ARP, DNS, HTTP/HTTPS client Server (*) • Cơng suất tiêu thụ: Chế độ chờ =34.0 uA, nhận 125.0 mA, truyền=135.0 mA • Cơng suất ngõ RF: 8±1 dBM • Giao thức bảo mật: WEP, WPA/WPA2-PSK, Enterprise, EAP-FAST, EAP-TLS, EAP-TTLS, PEAP • Giao tiếp I/0: UART, SPI(*), I2C(*), WAKE, ALARM, GPIOs • Điện áp làm việc: 5V • Điện áp làm việc chip: 3.3 V • Kích thước (ngoại trừ Ăng ten): 59x54 156 Share by: www.ungdungmaytinh.com - trungtamcadcam.com ThS Huỳnh Xuân Dũng Tập lệnh AT bên cần để module Wi-Fi kết nối đến mạng không giây với UDP server chạy port 4000 Nếu bạn muốn cài đặt chứng cao tham khảo datasheet WizFi cung cấp bảng 5.8 Bảng 5.8 Tập lệnh AT để cấu hình Tập lệnh Đáp ứng Mơ tả AT OK Nhập mã lệnh AT + WD AT + WD Bỏ qua kết nối trước OK AT + WWPA = 1234 AT + WWPA = 1234 OK AT + NDHCP = AT + NDHCP = OK AT + WA = YOURSSID Thiết lập “SSID” cho router AT + NSTAT = ? Cấu hình mạng mạng khơng dây Lưu ý viết địa IP để lưu Bạn cần sau AT + WSTATUS Báo cáo cấu hình mạng tới host nối tiếp AT + DNSLOOKUP = baidu.com Kiểm tra kết nối internet Nếu thành công báo địa IP AT + NSTCP = 5000 Cìa đặt mật không giây Cho phép cài đặt DHCP Tự động gán địa chi IP Bản vơ hiệu hóa tùy chọn “0” cài đặt địa IP bạn Set TCP server at port 5000 Thiết lập port TCP Server 5000 157 Share by: www.ungdungmaytinh.com - trungtamcadcam.com ThS Huỳnh Xuân Dũng AT + NSUDP = 4000 Thiết lập port UDP Server 4000 AT + CID = ? Trả cấu hình CID ATC1 ATC1 Cài đặt tự động kết nối lúc khởi động lại OK AT&W0 AT&W0 Lưu cài đặt “0” OK ATA Connect 5.5.3 Ví dụ minh họa Trong ví dụ thực tế này, giao tiếp moduel Wi-Fi Arduino Các thành phần (Components) • Board DFRobot UNO R3 cáp USB x • Module DFRobot Wi-Fi v2.2 (TEL0047) x • Router x • Ăng ten x • Dây kết nối x Thiết lập phần cứng (Hardware setting) Module Wi-Fi v2.2 board mở rộng Arduino, cắm trực tiếp vào UNO (Hình 5.22) Trước thực hiện, bạn nên cấu hình module Wi-Fi trước, (1) Lập trình chương trình đơn giản chớp tắt led từ thư viện mẩu UNO R3 trước để tránh trùng lắp truyền thông nối tiếp cổng USB Wi-Fi module (2) Kết nối Wi-Fi module tới Arduino UNO R3 kết nối ăng ten tới Wi-Fi module (3) Thiết lập “USB/Arduino” Chuyển tới USB bên cạnh phép cổng COM PC để gửi tập lệnh AT tới trực tiếp module Wi-Fi (4) Thiết lập “Run/Prog” chuyển sang phía RUN (5) Cắm A sang B USB để vi điều khiển Arduino LED “POWER” bật lên thời điểm 158 Share by: www.ungdungmaytinh.com - trungtamcadcam.com ThS Huỳnh Xuân Dũng Hình 5.22 Sơ đồ Module Wi-Fi v2.2 UNO R3 Sau đó, cửa sổ Serial monitor Arduino IDE sử dụng để cấu hình module Wi-Fi Thiết lập tốc độ truyền 115,200bps cho NL CR Hình 5.23 Dị tìm mạng sử dụng Arduino serial monitor 159 Share by: www.ungdungmaytinh.com - trungtamcadcam.com ThS Huỳnh Xuân Dũng (1) Mở cổng com board Arduino UNO Gõ “AT” để kiểm tra truyền thông module Wi-Fi cổng USB (2) Gõ lệnh “AT+WS” để dò mạng đạt danh sách mạng tìm thấy (Như hình 5.23) (3) Cài đặt module Wi-Fi theo thông tin rounter Danh sách lệnh mẫu phía (Hình 2.54) (4) Sau đó, lưu cài đặt (at&w0) Mặt khác, tất cài đặt phía xóa sau thiết lập lại (reset) Hình 5.24 Cài đặt module Wi-Fi sử dụng Arduino serial monitor 160 Share by: www.ungdungmaytinh.com - trungtamcadcam.com ThS Huỳnh Xuân Dũng (5) Sau nhận phản hồi từ module Wi-Fi, hoàn thành thiết lập cho Wi-Fi shield tạo TCP server mạng cục Tiếp theo, LED thị (được đánh dấu “STW” “ASSOC”_ sáng để thị kết nối với rounter (6) Tiếp theo, Chúng ta tạo client gửi tin nhắn tới module Wi-Fi Kết nối tới TCP server từ module Wi-Fi PuTTy (http://www.chiark.greenend.org.uk/*sgtatham/putty/ download.html) chọn đề làm việc TCP client gửi lệnh tới module Wi-Fi Cấu hình tên Host Port Thiết lập kiểu kết nối tới Raw nhấn open Sau đó, bạn kết nối tới server tạo module Wi-Fi (hình 5.25) Bây giờ, bạn gửi lệnh thơng qua TCP client cách đồng thời tới module Wi-Fi phần mềm Putty Mặt khác, Phần mềm Putty nhận chuỗi gửi từ serial monitor Hình 5.25 Cấu hình phần mềm PuTTy 161 Share by: www.ungdungmaytinh.com - trungtamcadcam.com ThS Huỳnh Xuân Dũng Chương trình mẫu Một ban xác nhận Shield kết nối tới Internet bạn tải chương trình tới Arduino cách bỏ jumper, thay chúng sau nạp chương trình Khơng cần thay đổi cài đặt cho việc thay chung chế độ “USB” Bạn kiểm tra truyền thơng Wi-Fi với shield cách loại bỏ cáp USB cung cấp nguồn bên ngồi Nó khuyến nghị bạn cấp 7.5 VDC 1A để đảm bảo module Wi-Fi đủ nguồn cung cấp Bây bạn kết nối tới địa IP Shield port UDP sử dụng PuTTy Nhấn bật LED 13 mở tắt xuất trạng thái hình PuTTy 162 Share by: www.ungdungmaytinh.com - trungtamcadcam.com ... chuyên nghiệp với nhiều kinh nghiệm lĩnh vực thiết kế hệ thông nhúng (Embedded System Design) Thông qua công tác, cố gắng đưa mơ hình mà giáo dục truyền thống kết hợp với nhà chế tạo thiết bị giới... nhiều thiết bị thông minh nhúng với vi xử lý, cảm biến phần mềm Cộng đồng người tự thực (Doit-yourself) bị lôi ứng dụng thực tế thiết kế xây dựng hệ thống thơng minh cho tác vụ cụ thể Arduino. .. tự động (Automatic wildlife detector) • Hệ thống an ninh cho nhà công ty (Home or business security system) Điều khiển hệ thống nhỏ (Small-scale control) • Các robot có kích thước nhỏ (Small robots)

Ngày đăng: 22/12/2022, 15:42

Tài liệu cùng người dùng

Tài liệu liên quan