1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Hướng dẫn sử dụng ARDUINO cơ bản Tập 9 ARDUINO với tia hồng ngoại

108 86 2

Đ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

Thông tin cơ bản

Định dạng
Số trang 108
Dung lượng 5,42 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Việc sử dụng hồng ngoại trong các thiết bị điều khiển từ xa TV/VCR và nhiều ứng dụng khác cũng một phần là do diode phát và thu hồng ngoại rẻ và sẵn có trên thi trường.. Nếu bạn sử dụng

Trang 1

HƯỚNG DẪN SỬ

DỤNG ARDUINO CƠ

BẢN TẬP 9: ARDUINO VỚI TIA HỒNG NGOẠI

Trang 2

Contents

Chương 1 4

GIỚI THIỆU CƠ SỞ LÝ THUYẾT 4

I TÌM HIỂU VỀ HỒNG NGOẠI 4

1.1 Hồng ngoại là gì? 4

1.2 Hồng ngoại trong điện tử 4

1.3 Điều khiển TV Sony 6

1.4 Thiết bị thu và phát 8

II GIỚI THIỆU HỆ ĐIỀU HÀNH, CƠ SỞ DỮ LIỆU, CÁC TRÌNH BIÊN DỊCH ĐƯỢC SỬ DỤNG 10

2.1 GIỚI THIỆU VÀI NÉT VỀ HỆ ĐIỀU HÀNH ANDROID: 10

2.2 Lưu trữ dữ liệu trên internet thông qua Firebase 12

2.3 Phần mềm lập trình cho vi điều khiển: 15

GIỚI THIỆU VỀ CHUẨN GIAO THỨC SPI: 24

2.5 KHÁI NIỆM VỀ MẠNG WIFI 27

Chương 2: Điều khiển bằng hồng ngoại với Arduino 30

1 Hướng dẫn lập trình đơn giản 30

IR RECEIVER 30

IR LED (LED hồng ngoại) 30

REMOTE 30

LẮP MẠCH 30

LẬP TRÌNH 31

GIẢI THÍCH 33

Cách sử dụng Arduino như 1 chiếc remote TV 34

LẮP MẠCH 34

LẬP TRÌNH 34

GIẢI THÍCH 35

Trang 3

Chương 3: Giới thiệu một số đồ án không dùng Arduino 37

Đồ án 1: MẠCH BÁO TRỘM DÙNG TIA HỒNG NGOẠI 37

PHẦN I: GIỚI THIỆU VỀ MỘT VÀI LINH KIỆN ĐƯỢC SỬ DỤNG TRONG MẠCH 37

PHẦN II: SƠ ĐỒ KHỐI VÀ NHIỆM VỤ CÁC KHỐI CHÍNH 43

PHẦN III: SƠ ĐỒ NGUYÊN LÝ VÀ NGUYÊN LÝ HOẠT ĐỘNG 44

Đồ án 2: MẠCH KIỂM TRA XE RA VÀO BẰNG TIA HỒNG NGOẠI 49

Phần I: GIỚI THIỆU VÀI LINH KIỆN ĐIỂN HÌNH SỬ DỤNG TRONG MẠCH 50

PHẦN II:NỘI DUNG 60

PHẦN III:.KẾT LUẬN 66

Đồ án 3: ĐIỀU KHIỂN TỪ XA BẰNG TIA HỒNG NGOẠI 67

CHƯƠNG I : LÝ THUYẾT TỔNG QUAN 67

Chương 4: Giới thiệu một số đồ án dùng Arduino 86

Đồ án 1: ĐIỀU KHIỂN THIẾT BỊ TỪ XA BẰNG TIA HỒNG NGOẠI 86

I Sơ đồ nguyên lý của mạch thu và phát tín hiệu hồng ngoại 86

II SƠ ĐỒ MẠCH VÀ NGUYÊN LÝ HOAT ĐỘNG 88

III LƯU ĐỒ GIẢI THUẬT VÀ CHƯƠNG TRÌNH 95

IV Kết quả 97

Đồ án 2: ĐIỀU KHIỂN THIẾT BỊ TỪ XA BẰNG TIA HỒNG NGOẠI 108

Chương 1 CƠ SỞ LÝ THUYẾT 108

Chương 2 TÍNH TOÁN VÀ THIẾT KẾ 108

Chương 3 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 120

Trang 4

Ta không thể nhìn thấy hay nghe thấy hồng ngoại nhưng ta có thể cảm thấy nó từ sự cảm ứng nhiệt trên da Khi bạn đưa tay đến ngần ngọn lửa hoặc những vật nóng, bạn xẽ cảm thấy nhiệt dù bạn không nhìn thấy Bạn nhìn thấy ngọn lửa là do nó phát ra nhiều loại bức

xạ mắt ta có thể nhìn thấy, đồng thời nó cũng phát ra hồng ngoại mà ta chỉ có thể cảm nhận qua da

1.2 Hồng ngoại trong điện tử

Hồng ngoại thật thú vị, bởi vì nó tạo ra một cách dễ dàng và không bị ảnh hưởng bởi nhiễu điện từ Do đó nó được sử dụng rộng rãi và tiện lợi trong thông tin và điều khiển Tuy nhiên nó không hoàn hảo, nhiều nguồn sáng khác nhau có thể phát ra hồng ngoại và có thể ngây nhiễu đến thông tin này Mặt trời là một ví dụ, nó phát ra một khoảng phổ rất rộng trong đó có phổ hồng ngoại Việc sử dụng hồng ngoại trong các thiết

bị điều khiển từ xa TV/VCR và nhiều ứng dụng khác cũng một phần là do diode phát và thu hồng ngoại rẻ và sẵn có trên thi trường

Như đã nói ở trên, nhiều thứ có thể phát ra hồng ngoại, bắt kỳ thứ gì bức xạ nhiệt đều có khả năng đó Bao gồm cở thể chúng ta, lò vi sóng, chà sát tay vào nhau, thậm chí

cả nước nóng nữa Vì vậy để cho phép sự truyền thông hiệu quả khi sử dụng hồng ngoại

và tránh những tín hiệu nhiễu không mong muốn phải sử dụng một khóa để báo cho đầu thu biết đâu là tín hiệu có ích, đâu là nhiễu Khi nhìn lên bầu trời đêm bạn nhìn thấy nhiều vì sao, nhưng bạn dễ dàng nhận ra một chiếc máy bay bởi ánh sáng nhấp nhái của

nó Ánh sáng nhấp nháy này cũng có thể coi là một “khóa”, một kiểu mã hóa đối với

Trang 5

chúng ta

Tương tự như máy bay trong bầu trời đêm, TV của chúng ta cũng có thể nhận ra hàng trăm loại hồng ngoại khác nhau Một cách để tránh những nguồn hồng ngoại khác là tạo ra một khóa Do đó điều khiểm từ xa dùng để điều biến hồng ngoại của nó tại một tần

số nào đó Đầu thu hồng ngoại ở TV/VCR sẽ đi theo tần số này mà lờ đi các hồng ngoại khác nhận được Khoảng tần số hay sử dụng là 30 → 60 KHz, tốt nhất là khoảng 36 →

38 KHz Hồng ngoại phát ra từ các diode hồng ngoại theo các xung nhịp với tần số 36000 lần một giây phát ra các mức logic “0” và ”1”

Để tạo ra tần số 36 KHz là việc đơn giản cái khó ở đây là việc thu và nhận dạng

nó Đó là lý do tại sao nhiều công ty sản xuất thiết bị thu hồng ngoại bao gồm những bộ lọc, mạch giải mã và sửa dạng đầu ra Một xung vuông chu kỳ xấp xỉ 27s đưa vào cực bazơ của tranzitor có thể điều khiển một led hồng ngoại để truyền đi

Bạn có thể bật hoặc tắt tần số này tại đầu phát, đầu thu xẽ chỉ ra khi nào đầu phát là bật hay tắt

Những bộ giải điều chế có mức logic đảo tại đầu ra khi có một gói hồng ngoại được gửi, đầu ra ở mức tích cực thấp tương đương với mức logic 1

Để tránh việc một điều khiển từ xa philip có thể thay đổi kênh của một TV panasonic…người ta sử dụng các cách mã hóa khác nhau cho cùng một khoảng tần số đó Chúng sử dụng các kiểu tổ hợp bit khác nhau để mã hóa việc truyền dữ liệu và tránh nhiễu

Trang 6

1.3 Điều khiển TV Sony

Sony sử dụng kiểu mã hóa độ rộng bit, đây là kiểu mã hóa đơn giản cho việc giải

Hãy xem xét khoảng thời gian nhỏ T cỡ 600s mỗi bit truyền đi là sự kết hợp của -T+T cho bit “0” và –T+2T cho bit “1” Vì vậy bit “0” có chiều dài 1200s và bit “1” có chiều dài 1800s

Mức lên (+T) có nghĩa là hồng ngoại được truyền đi, mức xuống (-T) có nghĩa là không có

Để tiết kiệm pin, hầu hết các nhà sản xuất rút gắn còn 5/6 thậm chí 3/4 độ rộng xung như lý thuyết Bằng cách này pin 500 giờ có thể sử dụng được 600 giờ (5/6) hoặc

800 (3/4) Một số nhà sản xuất khác không quan tâm đến vấn đề này, họ tăng cường hiệu quả truyền tin bằng cách mở rộng một chút khoảng thời gian sóng mang 36 KHz tích cực

và rút ngắn khoảng thời gian kia Như vậy tín hiệu Remote TV sony có dạng như sau:

- phần đầu tiên được truyền đi gọi là Header (mào đầu), nó cũng được gọi là bit bắt đầu (start bit), phần mào đầu có độ rộng 3T hay 1800s

- Tiếp theo phần Header là 12 bit liên tiếp được giải điều chế như sau:

500s bit im lặng + 700sbit hồng ngoại = bit 0

Trang 7

500s bit im lặng + 1300sbit hồng ngoại = bit 1

Bit đầu tiên sau bit start là bit LSB ta đặt là bit B0, bit cuối cùng là B11:

B0 – B6 : 7 bit mã lệnh

B7 – B11 : 5 bit dịa chỉ

Trong hình vẽ trên địa chỉ là 02H, mã lệnh là 16H, có 32 khả năng địa chỉ và 128 lệnh Toàn bộ thời gian truyền đị của khung có thể thay đổi theo thời gian vì độ rộng của bit 1 > độ rộng bit 0 Nếu bạn giữ nút bấm, khung dữ liệu sẽ nặp lại sau mỗi 25 ms Nếu bạn sử dụng mắt nhìn hồng ngoại có sẵn trên thi truờng, tất cả dạng sóng trên sẽ bị đảo như sau:

Để thu và giải mã được tín hiệu Remote TV sony, thực tế không cần thu toàn bộ

12 bit mã hóa, ta chỉ cần thu 7 bit COMMAND và có thể bỏ qua 5 bit địa chỉ Bởi với cùng điều khiển thì tất cả nút bắm đều phát ra mã địa chỉ như nhau, chỉ khác mã lệnh Mã địa chỉ Sony để phân biệt giữa các MODEL REMOD SONY khác nhau

Để thu 7 bit mã lệnh ta có thuật toán sau:

Trang 8

1) thiết lập thanh nghi A = 01000000B

2) khởi đầu bằng cách chờ tín hiệu đi xuống – đây xẽ là bít START

3) chờ cho tín hiệu đi lên – đây là khởi đầu của bit

4) chờ cho tín hiệu đi xuống

5) chờ khoảng 750 – 950 s

6) đo mức tín hiệu

7) nếu mức tín hiệu là mức cao, bit nhận được là bit 0

- thiết lập cờ nhớ C = 0

- quay phải có nhớ A, như vậy C sẽ được gửi vào MSB của A, LSB của A gửi vào C

- ban đầu A = 01000000B thì sau khi quay ta có C = 0 và MSB của A là bít đầu tiên của

mã lệnh

- như vậy sau 7 lần quay thì C = 1 và 7 bit bên trái của A sẽ chứa mã lệnh

- kiểm tra cờ nhớ C, nếu C = 1 nhẩy tới bước 9, C = 0 quay lại bước 4

8) nếu mức tín hiệu là thấp bit nhận được là 1

- thiết lập cờ nhớ C = 1 (bit mã lệnh thu được)

- quay phải có nhớ A

- kiểm tra cờ nhớ C, nếu C = 1 nhẩy tới bước 9, nếu C = 3 nhẩy tới bước 3

9) bẩy bit mã lệnh chứa trong 7 bit trái của A: A = D6D5D4D3D2D1D00

- quay phải A ta được 7 bit phải của A chứa ma lệnh A=0D0D1D2D3D4D5D6

1.4 Thiết bị thu và phát

- Thiết bị phát sử dụng điều khiển TV Sony với mỗi một nút bấm hồng ngoại phát

ra với một mã hóa khác nhau

- Thiết bị thu sử dụng mắt nhận hồng ngoại 3 chân, loại mắt nhận được sử dụng trong TV:

- Mắt nhận hồng ngoại nhận tín hiệu hồng ngoại từ điều khiển từ xa phát ra và đưa

Trang 9

tín hiệu đảo mức ra chân Out Tín hiệu từ chân Out được đưa tới P3.3 của Vi xử lý để giải mã, điều khiển Port P2

1.4.1 IR LED (LED hồng ngoại)

Trang 10

tạo bằng chất bán dẫn có 3 chân:

Chân đưa tín hiệu ra (OUT)

Chân nối mass (GND)

Chân nối nguồn +5V (VDC)

Điện trở R = 10kΩ và tự hóa C1 có tác dụng lọc nhiễu

Chân tín hiệu OUT được nối với chân ngắt ngoài của vi điều khiển

• Nguyên lý hoạt động: Khi Remote phát tín hiệu hồng ngoại thì mắt thu sẽ nhận

được, tín hiệu thu được nhờ tụ C1 = 4.7 µF và trở R2 = 10 kΩ lọc nhiễu rồi đưa tín hiệu

về vi điều khiển

II GIỚI THIỆU HỆ ĐIỀU HÀNH, CƠ SỞ DỮ LIỆU, CÁC TRÌNH

BIÊN DỊCH ĐƯỢC SỬ DỤNG

2.1 GIỚI THIỆU VÀI NÉT VỀ HỆ ĐIỀU HÀNH ANDROID:

Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng Ban đầu, Android được phát triển bởi Tổng công ty Android, với sự hỗ trợ tài chính từ Google

và sau này được chính Google mua lại vào năm 2005 Android ra mắt vào năm 2007

cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở, một hiệp hội gồm các công ty

phần cứng, phần mềm, và viễn thông với mục tiêu đẩy mạnh các tiêu chuẩn mở cho các thiết bị di động Chiếc điện thoại đầu tiên chạy Android được bán vào năm 2008

Android còn có một cộng đồng lập trình viên đông đảo chuyên viết các ứng dụng để

mở rộng chức năng của thiết bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi Vào tháng 10 năm 2012, có khoảng 700.000 ứng dụng trên Android, và số lượt tải ứng dụng

từ Google Play, cửa hàng ứng dụng chính của Android, ước tính là khoảng 25 tỷ lượt Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới, chiếm 87,7% thị phần điện thoại thông minh trên toàn thế giới vào thời điểm quý 2 năm 2017 và được các công ty công nghệ lựa chọn khi họ cần một hệ điều hành không nặng nề, có khả năng tinh chỉnh, và giá rẻ chạy trên các thiết bị công nghệ cao thay vì tạo dựng từ đầu Kết quả là mặc dù được thiết kế chạy trên điện thoại và máy tính bảng, Android đã xuất hiện trên TV và các thiết bị điện tử khác

Android chiếm 87,7% thị phần điện thoại thông minh trên toàn thế giới vào thời điểm quý 2 năm 2017

Android là hệ điều hành điện thoại di động mở nguồn mở miễn phí do Google phát triển dựa trên nền tảng của Linux Bất kỳ một hãng sản xuất phần cứng nào cũng đều có thể tự do sử dụng hệ điều hành Android cho thiết bị của mình, miễn là các thiết bị ấy đáp

Trang 11

ứng được các tiêu chuẩn cơ bản do Google đặt ra (có cảm ứng chạm, GPS, 3G, )

Những tính năng mà nền tảng Android hỗ trợ:

- Application framework: Cho phép tái sử dụng và thay thế các thành phần sẳn có của Android

- Dalvik virtual machine: Máy ảo java được tối ưu hóa cho thiết bị di động

- Intergrated browser: Trình duyệt web tích hợp được xây dựng dựa trên WebKit engine

- Optimized graphics: Hỗ trợ bộ thư viện 2D và 3D dự vào đặc tả OpenGL ES 1.0

- Hổ trở các định dạng media phổ biến như: MPEG4, H.264, MP3, AAC, ARM, JPG, PNG, GIF

- Hổ trợ thoại trên nền tảng GSM (Phụ thuộc vài phần cứng thiết bị)

- Bluetooth, EDGE, 3G và WiFi (Phụ thuộc vài phần cứng thiết bị)

- Camera, GPS, la bàn và cảm biến (Phụ thuộc vài phần cứng thiết bị)

- Bộ công cụ phát triển ứng dụng mạnh mẽ

Quá trình phát triển của Android

Trang 12

2.2 Lưu trữ dữ liệu trên internet thông qua Firebase

2.2.1 Hoạt động của FIREBASE

Firebase là gì?

Firebase là một nền tảng phát triển ứng dụng dành cho mobile và web, nó được xây dựng như một nền tảng realtime database, một dạng cơ sở dữ liệu đám mây được đồng bộ trên mọi thiết bị trong thời gian thực Cung cấp các thư viện khách hàng cho phép tích hợp với các ứng dụng Android, iOS, JavaScript, Java, Objective-C, Node.js Tất cả dữ liệu được lưu trên Firebase đều dưới dạng JSON, điều này khác hoàn toàn với các cơ sở dữ liệu quen thuộc như MySQL hay SQL Server, mỗi dữ liệu thêm vào sẽ là 1 nút trên JSON Chính vì sự khác biệt này cho nên trước khi bắt đầu xây dựng ứng dụng, chúng ta cần phải thiết kế cấu trúc JSON của mình sao cho việc thao tác dễ dàng nhất

2.2.2 Tạo một project mới trên Firebase.

Bước 1: Tạo một tài khoản trên Firebase hoặc có thể đăng nhập vào Firebase bằng tài khoản gmail

Tạo tài khoản Firebase

Bước 2: Sau khi đã đăng nhập tài khoản Firebase Tiếp theo, tạo một project mới trên Firebase, ở đây sẽ tạo một project có tên smartfarm Sau đó viết vào dòng Project name

và chọn CREAT PROJECT

Trang 14

Địa chỉ để giao tiếp đồng bộ EspNode MCU, app Androidvà Firebase

Firebase yêu cầu phải xác thực để thêm dữ liệu Nếu có bất cứ sự thay đổi nào từ App Android hay ESP8266 muốn lưu lên Firebase không qua xác thực thì sẽ bỏ qua chế độ xác thực, để thay chế độ này bằng cách truy cập vào Database\Rule và đổi đoạn config json mặc định giống như trong hình

Thay đổi ".read": "auth != null" thành ".read": true

".write": "auth != null" thành “.write”: true

Trang 15

Thay đổi chế độ xác thực khi thêm dữ liệu vào Firebase.

Dữ liệu của hệ thống

2.3 Phần mềm lập trình cho vi điều khiển:

2.3.1 Giới thiệu phần mềm lập trình Arduino IDE:

Arduino IDE là môi trường phát triển tích hợp mã nguồn mở, cho phép người dùng

dễ dàng viết code và tải nó lên bo mạch Môi trường phát triển được viết bằng Java dựa trên ngôn ngữ lập trình xử lý và phần mềm mã nguồn mở khác Phần mềm này có thể được sử dụng với bất kỳ bo mạch Arduino nào

Trang 16

Arduino IDE là một môi trường phát triển tích hợp đa nền tảng, làm việc cùng với một bộ điều khiển Arduino để viết, biên dịch và tải code lên bo mạch Phần mềm này cung cấp sự hỗ trợ cho một loạt các bo mạch Arduino như Arduino Uno, Nano, Mega, Pro hay Pro Mini, Ngôn ngữ tổng quát cho Arduino C và C++, do đó phần

mềm phù hợp cho những lập trình viên đã quen thuộc với cả 2 ngôn ngữ này Các tính năng như làm nổi bật cú pháp, thụt đầu dòng tự động, làm cho nó trở thành một

sự thay thế hiện đại cho các IDE khác Arduino IDE có thư viện code mẫu quá phong phú, viết chương trình trên Arduino IDE khá dễ dàng cộng thêm OpenSource viết riêng cho Arduino thì ngày càng nhiều

Phần mềm lập trình Arduino IDE

Đầu tiên, truy cập vào https://www.arduino.cc/en/Main/Software để dowload chương trình theo hệ điều hành muốn cài đặt (ở đây là phiên bản cài trên Windows) Tiếp theo, nhấn vào Windows Installer nếu muốn cài đặt phần mềm cho Windowntheo hướng dẫn

2.3.2 Chương trình trên Android Studio

a Giới thiệu:

Song song với Eclipse, Android Studio là công cụ lập trình mới dành cho Android

do Google phát triển, nó hổ trợ tốt hơn việc bố cục ứng dụng cho nhiều thiết bị khác nhau, đảm bảo app viết ra có thể tương thích với màn hình của cả smartphone (điện thoại thông minh) và tablet (máy tính bảng) Google bổ sung thêm khả năng kéo thả các thành phần

đồ họa để quá trình xây dựng ứng dụng trở nên dễ dàng và nhanh chóng hơn Đồ án sử dụng Android Studio để phát triển ứng dụng do đây là phần mềm IDE phổ biến được Google hỗ trợ các gói ứng dụng thuận lợi cho việc lập trình

Để cài đặt phần mềm Android Studio đầu tiên tải Android Studio từ trang chủ của

nó: https://developer.android.com/sdk/index.html

Trang 17

Lưu ý máy tính phải cài java trước khi cài Android Studio, để cài java vào trang:

http://www.oracle.com/technetwork/java/javase/downloads/index.html Sau khi tải về tín

hành cài đặt như phần mềm bình thường, riêng đối với Window 7 phải cấu hình cho môi trường java

Tải Java

Sau khi cài xong java xong, tiến hành cài đặt Android Studio, trong quá trình cài đặt

sẽ xuất hiện màng hình như hình dưới

Cài đặt Android Studio

Trước tiên vào phần mềm Android Studio, sẽ thấy màn hình như hình dưới và chọn theo dấu mũi tên màu đỏ

Trang 18

ARDUINO IOT VIETNAM

https://www.facebook.com/groups/486295328966960 18

Tạo project mới trong Android Studio

Nhập vào:

- Application Name: tên ứng dụng của muốn lập trình

- Company Domain: có thể đặt theo định dạng sau tên mình.tên công ty.tên ứng dụng mình

đang làm

- Project location: đường dẫn chứa tệp tin chương trình

Tạo project mới trong Android

Trang 19

Sau khi đặt tên xong nhấn Next để qua bước tiếp theo, bước này xuất hiện

màn hình chọn phiên bản Android để lập trình, lưu ý khi chọn phiên bản Android

càng thấp thì ứng dụng tạo ra sẽ chạy được trên nhiều thế hệ

Chọn phiên bản Android muốn lập trình

Sau khi đặt tên xong nhấn Next để qua bước tiếp theo, bước này xuất hiện màn

hình chọn phiên bản Android để lập trình, lưu ý khi chọn phiên bản Android càng

thấp thì ứng dụng tạo ra sẽ chạy được trên nhiều thế hệ

Chọn màn hình

Trang 20

Đặt tên cho màn hình

Để chạy thử chương trình nhấn nào nút “Run” chổ khung tròn màu đỏ Sau

đó cấm điện thoại máy tính, chọn tên điện thoại muốn đổ chương trình xuống rồi

nhấn nút “Ok”

Chọn thiết bị đổ chương trình

Trang 21

Giao diện của project Android mới

b Tích hợp firebase với app Android:

Để tạo một Firebase project mới, các bạn truy cập vào Firebase Console,

đăng nhập với tài khoản Google của mình, và nhấn Create new project và tạo

project

Tạo một Project cho Firebase

Sau khi tạo xong, ta sẽ thấy giao diện sau:

Trang 22

Giao diện các hệ điều hành Firebase liên kết

Ở giao diện trên ta chọn Add Firebase to your Android app, sẽ xuất hiện

giao diện sau:

Liên kết Firebase với Package name của app Android

Ở phần Package name, đó chính là tên gói ứng dụng mà bạn đã chọn khi

tạo Android project Phần App nickname, đó là tên mà bạn dùng để quản lí ứng

dụng

Tiếp theo, nút ADD APP chính nơi tiếp theo để bạn nhấn Trình duyệt sẽ

Trang 23

tự động download tập tin google-services.json Bạn chuyển góc nhìn từ Android

sang Project trong Studio, và paste tập tin kia vào thư mục app Tức là

google-services.json sẽ ngang hàng với tập tin build.gradle module app có sẵn

Thêm tập tin google-services.json vào app Android

Trong tập tin build.gradle module app và build.gradle project bạn thêm các

dòng để tập tin tương tự như sau:

Thêm thư viện liên kết Firebase với app Android

Cuối cùng, cho sync Gradle lại Như vậy là bạn đã tích hợp và liên kết ứng

dụng của bạn tới Firebase project rồi đó Việc tiếp theo là viết code

Trang 24

GIỚI THIỆU VỀ CHUẨN GIAO THỨC SPI:

2.4.1Khái niệm:

SPI viết tắt của Serial Peripheral Interface, SPI bus – Giao diện ngoại vi nói

tiếp, bus SPI Chuẩn SPI được phát triển bởi Motorola Đây là một chuẩn đồng

bộ nối tiếp để truyền dữ liệu ở chế độ song công toàn phần (full- duplex) tức

trong cùng một thời điểm có thể xảy ra đồng thời quá trình truyền và nhận Đôi khi

SPI còn được gọi là chuẩn giao tiếp 4 dây (Four-wire) SPI là giao diện đồng bộ,

bất cứ quá trình truyền nào cũng được đồng bộ hóa với tín hiệu clock chung Tín

hiệu này sinh ra bởi master

Trong giao diện SPI có bốn tín hiệu số:

Kết nối SPI giữa hai thiết bị

- MOSI hay SI – cổng ra của bên Master (Master Out Slave IN) Đây là chân dành

cho việc truyền tín hiệu từ thiết bị chủ động đến thiết bị bị động

- MISO hay SO – cổng ra bên Slave (Master in Slave Out) Đây là chân dành cho

việc truyền dữ liệu từ Slave đến Master

- SCLK hay SCK là tín hiệu clock đồng bộ (Serial Clock) Xung nhịp chỉ được tạo

bởi Master

- CS hay SS là tín hiệu chọn vi mạch (Chip Select hoặc Slave Select) SS sẽ ở mức

cao khi không làm việc Nếu Master kéo SS xuống thấp thì sẽ diễn ra quá trình

giao tiếp Chỉ có một đường SS trên mỗi Slave nhưng có thể có nhiều đường điều

khiển SS trên Master, tùy thuộc vào thiết kế của người dùng

Trang 25

Kết nối SPI giữa nhiều thiết bị

2.4.2 GIỚI THIỆU VỀ GIAO THỨC NTP:

NTP (Network Time Protocol - Giao thức đồng bộ thời gian mạng) là một giao thức để đồng bộ đồng hồ của các hệ thống máy tính thông qua mạng dữ liệu

chuyển mạch gói với độ trễ biến đổi Giao thức này được thiết kế để tránh ảnh

hưởng của độ trễ biến đổi bằng cách sử dụng bộ đệm jitter

Đặc trưng:

Trên mạng Internet, NTP đồng bộ đồng hồ của các hệ thống máy tính theo UTC; trong môi trường LAN độc lập, NTP cũng thường được sử dụng để

đồng bộ với UTC, nhưng về nguyên tắc nó có thể được sử dụng để đồng bộ với

một mốc thời gian khác, ví dụ như múi giờ tại chỗ

Kiến trúc cơ bản:

NTP sử dụng kiến trúc phân cấp, phân lớp cho các cấp nguồn đồng bộ, mỗi một cấp trong phân cấp này được gọi là một "statum' và được gán một số của

cấp bắt đầu từ 0 là cấp cao nhất Cấp stratum chỉ ra nó đã qua bao nhiêu trung

gian để đến được cấp tham chiếu và cấp stratum cũng giúp tránh tham chiếu vòng

trong phân cấp Chú ý rằng cấp stratum không có ý nghĩa chỉ chất lượng hay độ

ổn định, dễ dàng tim thấy một nguồn đồng bộ "stratum 3" có chất lượng tốt hơn

một nguồn "stratum 2" khác Định nghĩa về statum này cũng khác với stratum dùng

Trang 26

- Stratum 0: Bao gồm những thiết bị như đồng hồ nguyên tử (atomic

clock), đồng hồ GPS hay các đồng hồ vô tuyến khác Thiết bị Stratum-0 thường

không được kết nối trực tiếp vào mạng mà được kết nối với máy tính (ví dụ thông

qua cổng RS-232 sử dụng tín hiệu xung)

- Stratum 1: Đây là các máy tính kết nối với thiết bị Stratum 0 Đây là

nguồn đồng hồ tham chiếu cho các server Stratum 2 Các máy tính này còn được

gọi là time server Các server Stratum 1 (với NTPv3 hay trước đó) có thể không

hoạt động với độ chính xác của cấp Stratum 1

- Stratum 2: Là các máy tính gửi các yêu cầu NTP đến cho server Stratum

1 Thông thường máy tính Stratum 2 sẽ tham chiếu từ nhiều server Stratum 1 và

sử dụng thuật toán NTP để thu thập thông tin chính xác nhất, và bỏ tham chiếu đến

các server Stratum 1 hoạt động không chính xác Các máy tính Stratum 2 sẽ liên

lạc với các máy tính Stratum 2 khác để có được thời gian chính xác và ổn định

hơn trong nhóm Máy tính Stratum 2 theo phân cấp lại là nguồn tham chiếu cho

các yêu cầu từ Stratum 3

- Stratum 3: Các máy tính mày cũng thực hiện các chức năng như Stratum

2, và tương tự cũng là nguồn tham chiếu cho các cấp thấp hơn, có thể có tối đa 16

cấp Tùy vào phiên bản, NTP có thể hỗ trợ đến 256 Stratum

NTP timestamp:

Nhãn thời gian (timestamp) 64 bit của NTP bao gồm 32 bit chỉ giây và 32 bit chỉ

phần chi tiết trong 1 giây, NTP timestamp có thể mô tả được một thời gian trong

khoảng 232 giây (136 năm) và độ chi tiết đến 2−32 (233 pico giây)

NTP timestamp sẽ lặp lại mỗi 232 giây (136 năm) NTP lấy mốc thời gian

vào tháng 1, năm 1900, vì thế nó sẽ lặp lại vào năm 2036, trước sự cố UNIX năm

2038

Vì NTP hoạt động dựa trên chênh lệch giữa các time stamp và không bao

giờ dựa trên giá trị tuyệt đối, việc lặp lại nhãn sẽ không có ảnh hưởng nếu giữa

các nhãn sai lệnh không quá 68 năm Điều này cũng có nghĩa việc lặp lại vào

năm 2036 sẽ không ảnh hưởng đến các hệ thống đang hoạt động vì thông thường

chênh lệch thời

Trang 27

gian là rất nhỏ Tuy nhiên, khi hệ thống vừa khởi động, cần xác định ngày chính

xác trong 68 năm

2.5 KHÁI NIỆM VỀ MẠNG WIFI

Wi-Fi viết tắt từ Wireless Fidelity hay mạng 802.11 là hệ thống mạng không dây sử dụng sóng

vô tuyến, giống như điện thoại di động, truyền hình và radio

Hệ thống này đã hoạt động ở một số sân bay, quán café, thư viện hoặc khách sạn Hệ thống cho phép truy cập Internet tại những khu vực có sóng của hệ thống này, hoàn toàn không cần đến cáp nối Ngoài các điểm kết nối công cộng (hotspots), WiFi có thể được thiết lập ngay tại nhà riêng

Biểu tượng sóng WIFI

Hệ thống các thiết bị kết nối với WIFI

Tên gọi 802.11 bắt nguồn từ viện IEEE (Institute of Electrical and Electronics Engineers) Viện này tạo ra nhiều chuẩn cho nhiều giao thức kỹ thuật khác nhau, và

nó sử dụng một hệ thống số nhằm phân loại chúng; 6 chuẩn thông dụng của WiFi hiện nay là 802.11a/b/g/n/ac/ad

Các sóng vô tuyến sử dụng cho WiFi gần giống với các sóng vô tuyến sử dụng cho thiết bị cầm tay, điện thoại di động và các thiết bị khác Nó có thể chuyển và nhận sóng vô tuyến, chuyển đổi các mã nhị phân 1 và 0 sang sóng vô tuyến và ngược lại

Tuy nhiên, sóng WiFi có một số khác biệt so với các sóng vô tuyến khác ở

chỗ:

Trang 28

- Chúng truyền và phát tín hiệu ở tần số 2.4 GHz, 5 GHz hoặc 60Ghz Tần số này cao hơn

so với các tần số sử dụng cho điện thoại di động, các thiết bị cầm tay và truyền hình Tần số cao hơn cho phép tín hiệu mang theo nhiều dữ liệu hơn

- Wifi dùng chuẩn 802.11:

• Chuẩn 802.11b là phiên bản đầu tiên trên thị trường Đây là chuẩn chậm nhất và rẻ tiền nhất, và nó trở nên ít phổ biến hơn so với các chuẩn khác 802.11b phát tín hiệu ở tần số 2.4 GHz, nó có thể xử lý đến 11 megabit/giây, và nó sử dụng mã CCK (complimentary code keying)

• Chuẩn 802.11g cũng phát ở tần số 2.4 GHz, nhưng nhanh hơn so với chuẩn 802.11b, tốc độ xử lý đạt 54 megabit/giây Chuẩn 802.11g nhanh hơn vì nó sử dụng mã OFDM (orthogonal frequency-division multiplexing), một công nghệ mã hóa hiệu quả hơn

• Chuẩn 802.11a phát ở tần số 5 GHz và có thể đạt đến 54 megabit/ giây Nó cũng sử dụng mã OFDM Những chuẩn mới hơn sau này như 802.11n còn nhanh hơn chuẩn 802.11a, nhưng 802.11n vẫn chưa phải là chuẩn cuối cùng

• Chuẩn 802.11n cũng phát ở tần số 2.4 GHz, nhưng nhanh hơn so với chuẩn 802.11a, tốc độ xử lý đạt 300 megabit/giây

• Chuẩn 802.11ac phát ở tần số 5 GHz

• Chuẩn 802.11ad phát ở tần số 60 GHz

- Wifi có thể hoạt động trên cả ba tần số và có thể nhảy qua lại giữa các tần số khác nhau một cách nhanh chóng Việc nhảy qua lại giữa các tần số giúp giảm thiểu sự nhiễu sóng và cho phép nhiều thiết bị kết nối không dây cùng một lúc

Thiết bị kết nối vào mạng WIFI được gọi là station (trạm) Việc kết nối vào mạng Wifi được hỗ trợ bởi một access point (AP), một AP có chức năng như một hub nhưng dùng cho nhiều station Một access point thông thường được kết nối vào một mạng dây để phát WIFI (tức là chuyển từ mạng dây sang WIFI) Do đó access point luôn được tích hợp vào router Mỗi access point được nhận biết bằng một SSID (Service Set IDentifier), SSID cũng là tên của mạng hiển thị khi ta kết nối vào WIFI

Một hotspot là một nơi mà các thiết bị có thể kết nối Internet, và thường là bằng Wifi, thông qua mạng WLAN (wireless local area network: mạng nội bộ không dây) nối với router

Các máy tính nằm trong vùng phủ sóng WiFi cần có các bộ thu không dây, adapter, để có thể kết nối vào mạng Các bộ này có thể được tích hợp vào các máy tính xách tay hay để bàn hiện đại Hoặc được thiết kế ở dạng để cắm vào khe PC card hoặc cổng USB, hay khe PCI Khi đã

Trang 29

được cài đặt adapter không dây và phần mềm điều khiển (driver), máy tính có thể tự động nhận diện và hiển thị các mạng không dây đang tồn tại trong khu vực

Trang 30

Chương 2: Điều khiển bằng hồng ngoại với Arduino

1 Hướng dẫn lập trình đơn giản

Trang 31

LẬP TRÌNH

Vào link sau để tải thư viện hỗ trợ IR remote : https://github.com/shirriff/Arduino-IRremote/ Sau khi tải thư viện về, mở cửa sổ Arduino, chọn Sketch ->Import Library -> Add Library sau đó chọn file zip mà bạn vừa tải về để có thể sử dụng thư viện

#include <IRremote.h> // thư viện hỗ trợ IR remote

const int receiverPin = 8; // chân digital 8 dùng để đọc tín hiệu

IRrecv irrecv(receiverPin); // tạo đối tượng IRrecv mới

decode_results results;// lưu giữ kết quả giải mã tín hiệu

void setup()

{

Serial.begin(9600);// serial baudrate 9600

irrecv.enableIRIn(); // start the IR receiver

Trang 32

Đây là các giá trị của tín hiệu được gửi từ remote, thử tất cả các nút của remote n sẽ biết được

IR codes của nó Chẳng hạn như của mình, nút 1 là 0x10, nút 2 là 0x810, nút Power là 0xA90, nút Mute là 0x290,

Tiếp theo, chúng ta sẽ sử dụng remote để bật tắt LED

#include <IRremote.h> // thư viện hỗ trợ IR remote

const int receiverPin = 8; // chân digital 8 dùng để đọc tín hiệu

IRrecv irrecv(receiverPin); // tạo đối tượng IRrecv mới

decode_results results;// lưu giữ kết quả giải mã tín hiệu

const int RED = 7;// LED đỏ

Trang 33

const int YELLOW = 6;// LED vàng

const int GREEN = 5;// LED xanh

/* trạng thái của các LEDs*/

boolean stateRED = false;

boolean stateYELLOW = false;

boolean stateGREEN = false;

Trang 34

• Các keywords của thư viện như:

o IRrecv irrecv(receiverPin);: tạo đối tượng IRrecv mới có tên là irrecv sử dụng tham số là receiverPin

o decode_results results; : lưu kết quả giải mã được

o irrecv.enableIRIn(); : bắt đầu giải mã tín hiệu IR

o irrecv.decode(&results);: trả về true nếu có tín hiệu đến

o irrecv.resume; : đợi tín hiệu IR tiếp theo

Kết hợp IR remote với điều khiển động cơ DC bằng transistor, các bạn có thể tự chế cho mình 1 cái quạt mini thật cool đó!^^

Cách sử dụng Arduino như 1 chiếc remote TV

Đầu tiên, hãy lấy chiếc remote TV nhà mình và sử dụng đoạn code ở trên để biết được IR codes của nó

Trang 35

void loop()

{

if (digitalRead(CH1) == 0)// khi nút RED được nhấn

irsend.sendSony(0x10, 12);// gửi tín hiệu HEX 0x10, 12 bits

else if (digitalRead(CH2) == 0)// khi nút YELLOW được nhấn

irsend.sendSony(0x810, 12);// gửi tín hiệu HEX 0x810, 12 bits

else if (digitalRead(CH3) == 0)// khi nút GREEN được nhấn

irsend.sendSony(0x410, 12);// gửi tín hiệu HEX 0x410, 12 bits

else if (digitalRead(POWER) == 0)// khi nút POWER được nhấn

irsend.sendSony(0xA90, 12);// gửi tín hiệu HEX 0xA90, 12 bits

• Hàm sendSony() sẽ gửi tín hiệu dạng HEX có độ dài 12 bits thông qua IR LED

• Bộ thu IR trong TV của bạn sẽ nhận và giải mã tín hiệu IR được phát từ IR LED

==> mạch của bạn lúc này có chức năng tương đương với cái remote ( nếu bạn làm đầy đủ nút như remote thật)

2 Code 4 led điều khiển băng hồng ngoại

#include <IRremote.h> // thư viện hỗ trợ IR remote

const int receiverPin = 8; // chân digital 8 dùng để đọc tín hiệu

IRrecv irrecv(receiverPin); // tạo đối tượng IRrecv mới

decode_results results;// lưu giữ kết quả giải mã tín hiệu

const int led1 = 2;// LED 1

const int led2 = 3;// LED 2

const int led3 = 4;// LED 3

const int led4 = 5;// LED 4

/* trạng thái của các LEDs*/

boolean stateled1 = false;

boolean stateled2 = false;

boolean stateled3 = false;

boolean stateled4 = false;

Trang 37

Chương 3: Giới thiệu một số đồ án không dùng

- Điện trở là một linh kiện có tính cản trở dòng điện và làm một số chức năng

khác tùy vào vị trí điện trở trong mạch điện

- Cấu tạo: điện trở được cấu tạo từ những vật liệu có điện trở suất cao như làm

bằng than, magie kim loại Ni-O2, oxit kim loại, dây quấn Để biểu thị giá trị điện

trở Người ta dung các vòng màu để biểu thị giá trị điện trở

- Ký hiệu:

- Hình dạng thực tế:

- Cách đọc trị số điện trở 4 vòng màu: Giá trị điện trở thường được thể hiện qua

các vạch màu trên thân điện trở, mỗi màu đại diện cho một số Màu đen: số 0,

Trang 38

lam số 6, màu tím số 7, màu xám: số 8, màu trắng: số 9

- Nhìn trên thân điện trở, tìm bên có vạch màu nằm sát ngoài cùng nhất, vạch

màu đó và vạch màu thứ hai, kế nó được dùng để xác định trị số của màu

- Vạch thứ ba là vạch để xác định nhân tử lũy

thừa: 10(giá trị của màu) Giá trị của điện trở được

tính bằng cách lấy trị số nhân với nhân tử lũy

thừa

Giá trị điện trở = trị số x nhân tử lũy thừa)

- Phần cuối cùng: (không cần quan tâm

nhiều)làvạch màu nằm tách biệt với ba vạch

màutrước, thường có màu hoàng kim hoặc

màubạc, dùng để xác định sai số của giá trị

điệntrở, hoàng kim là 5%, bạc là 10%

1.2.Tụ điện:

-Tụ điện là linh kiện có khả năng tích điện Tụ điện cách điện với dòng điện một

chiều và cho dòng điện xoay chiều truyền qua

-Tụ điện được chia làm hai loại chính: loại không phân cực và loại có phân cực

-Loạicó phân cực thường có giá trị lớn hơn loại không phân cực, trên hai chân

của loại phân cực có phân biệt chân nối âm, nối dương rõ ràng, khi gắn tụ có

phân cực vào mạch điện, nếu gắn ngược chiều âm dương, tụ phân cực có thể bị

hư và hoạt động sai Ngoài ra người ta còn gọi tên tụ điện theo vật liệu làm tụ, ví

dụ: tụ gốm, tụ giấy, tụ hóa

-Hình dạng: tụ điện có khá nhiều hình dạng khác nhau

Kí hiệu: được kí hiệu là C

Biểu tượng trên mạch điện:

- Đơn vị của tụ điện là Fara, 1 Fara có trị số rất lớn và trong thực tế người ta

+ P(Pico Fara) 1 Pico = 1/1000.000.000.000 Fara (viết gọn là 1pF)

+ N(Nano Fara) 1 Nano = 1/1000.000.000 Fara (viết gọn là 1nF)

+ MicroFarra 1 Micro = 1/1000.000 Fara (viết gọn là 1µF)

Trang 39

=> 1µF = 1000nF = 1.000.000 Pf

Cách đọc giá trị của tụ điện:

- Đọc trực tiếp trên thân điện trở, ví dụ 100µF (100 micro Fara)

Nếu là số dạng 103J, 223K, 471J vv thì đơn vị là pico, hai số đầu giữ nguyên , số

thứ 3 tương ứng số lượng số 0 thêm vào sau( chữ J hoặc K ở cuối kà ký hiệu cho

sai số)

-Ví dụ 1:103J sẽ là 10000 pF (thêm vào 3 số 0 sau số 10) = 10 nF

- Ví dụ 2: 471K sẽ là 470 pF (thêm 1 số 0 vào sau 47)

Sau trị số điện dung bao giờ cũng có giá trị điện áp, điện áp ghi trên tụ chính là

điện áp cực đại mà tụ có thể chịu được, vượt qua giá trị này thì tụ điện có thể bị

hư hỏng hoặc bị cháy nổ

3 Tranzitor:

Kí hiệu : transistor NPN

Transistor PNP

Cấu tạo: bởi 2 tiếp xúc P-N ghép liên tiếp gồm các vùng bán dẫn loại P và N xếp

xen kẽ nhau, vùng giữa có tính chất dẫn điện khác với 2 vùng lân cận và có bề

rộng rất mỏng khoảng 10A0 m đủ nhỏ để tạo lên tiếp xúc P-N gần nhau Nếu

vùng giữa là N ta có transistor PNP, ngược lại nếu vùng giữa là vùng P ta có

Ánh sáng hồng ngoại (tia hồng ngoại)

được phát ra từ Led là ánh sáng không

thể nhìn thấy được bằng mắt thường,

có bước sóng khoảng từ 0.86µm đến

0.98µm Tia hồng ngoại có vận tốc

truyền bằng vận tốc ánh sáng và được

thu lại và sử lý sang tín hiệu số bằng:

TSOP1138, TSOP1738, TSOP1736-

38Khz

Q2

Q1

Trang 40

1.5 IC NE555

IC NE555 gồm có 8 chân

- Chân số 1(GND): cho nối mase để lấy dòng cấp cho IC

- Chân số 2(TRIGGER): ngõ vào của 1 tần so áp.mạch so áp dùng

các transistor PNP Mức áp chuẩn là 2*Vcc/3

- Chân số 3(OUTPUT): Ngõ ra trạng thái ngõ ra chỉ xác định theo

mức volt cao(gần bằng mức áp chân 8) và thấp (gần bằng mức áp chân 1)

-Chân số 4(RESET): dùng lập định mức trạng thái ra Khi chân số 4 nối masse thì ngõ

ra ở mức thấp Còn khi chân 4 nối vào mức áp cao thì trạng thái ngõ ra tùy theo mức

áp trên chân 2 và 6

- Chân số 5(CONTROL VOLTAGE): dùng làm thay đổi mức áp chuẩn trong IC

555 theo các mức biến áp ngoài hay dùng các điện trở ngoài cho nối mase Tuy nhiên

trong hầu hết các mạch ứng dụng chân số 5 nối masse qua 1 tụ từ 0.01uF đến 0.1uF,

các tụ có tác dụng lọc bỏ nhiễu giữ cho mức áp chuẩn ổn định

- Chân số 6(THRESHOLD) : là ngõ vào của 1 tầng so áp khác mạch so sánh dùng

các transistor NPN mức chuẩn là Vcc/3

- Chân số 7(DISCHAGER) : có thể xem như 1 khóa điện và chịu điều khiển bei tầng

logic khi chân 3 ở mức áp thấp thì khóa này đóng lại.ngược lại thì nó mở ra Chân 7

tự nạp xả điện cho 1 mạch R-C lfc IC 555 dùng như 1 tầng dao động

- Chân số 8 (Vcc): cấp nguồn nuôi Vcc để cấp điện cho IC.Nguồn nuôi cấp cho IC

555 trong khoảng từ 5v - 15v và mức tối đa là 18v

Cấu tạo của NE555 gồm OP-amp so sánh điện áp, mạch lật và transistor

để xả điện Cấu tạo của IC đơn giản nhưng hoạt động tốt Bên trong gồm 3 điện

trở mắc nối tiếp chia điện áp VCC thành 3 phần Cấu tạo này tạo nên điện áp

chuẩn Điện áp 1/3 VCC nối vào chân dương của Op-amp 1 và điện áp 2/3 VCC

nối vào chân âm của Op-amp 2 Khi điện áp ở chân 2 nhỏ hơn 1/3 VCC, chân S =

[1] và FF được kích Khi điện áp ở chân 6 lớn hơn 2/3 VCC, chân R của FF = [1]

Ngày đăng: 14/10/2020, 18:24

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w