Tải bản đầy đủ (.doc) (49 trang)

đồ án điều khiển thiết bị điện bằng arduino

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.96 MB, 49 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
KHOA ĐIỆN – ĐIỆN TỬ

PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC

ĐIỀU KHIỂN THIẾT BỊ ĐIỆN
QUA INTERNET

Giảng viên hướng dẫn: MAI BÁ LỘC
Thực hiện: Nhóm
Lê Trung Nam - 1512071


TP. Hồ Chí Minh – 2018
MỤC LỤC
MỤC LỤC.................................................................................................................... 2
LỜI NÓI ĐẦU..............................................................................................................1
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN................................................................2
CHƯƠNG 2: LẮP ĐẶT VÀ NẠP CODE.................................................................25
CHƯƠNG 3: TẠO ĐỊA CHỈ CHO THIẾT BỊ ĐIỀU KHIỂN...............................38
LỜI KẾT....................................................................................................................45
TÀI LIỆU THAM KHẢO.........................................................................................46


LỜI NÓI ĐẦU
Như chúng ta đã biết, khoa học công nghệ ngày nay đang phát triển nhanh
chóng. Chúng ta đang sống trong thời đại này, thời đại của công nghệ thông tin và tự
động hóa. Và tự động hóa ngày nay đang trở thành xu hướng chung của toàn cầu.
Thật vậy, công nghệ tự động hóa ngày nay đã được ứng dụng rất nhiều trong
đời sống giúp con người có được một cuộc sống tiện nghi và hiện đại hơn. Một trong
những đối tượng được phát triển đó chính là năng lượng điện – nguồn năng lượng


không thể thiếu trong đời sống ngày nay. Và một trong số những thiết bị được kỳ vọng
đó chính là ngôi nhà thông minh hay rộng hơn đó là Internet of Things. Đề tài “Điều
khiển thiết bị điện qua Internet sử dụng Arduino” mà nhóm đang hướng đến tuy
không quá mới mẻ nhưng hứa hẹn sẽ đem đến cho người sử dụng những ứng dụng tốt
nhất của công nghệ này. Đề tài gồm 3 chương:
Chương 1: Giới thiệu tổng quan
Chương 2: Tiến hành lắp đặt và nạp code
Chương 3: Tạo địa chỉ cho thiết bị điều khiển
Trong quá trình nghiên cứu nhóm đã cố gắng hết sức, song khó tránh khỏi
những thiếu sót. Nhóm rất mong nhận được sự đóng góp ý kiến của quý thầy cô và các
bạn để đề tài được hoàn thiện hơn. Xin chân thành cảm ơn.
Các tác giả

1


CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN
1.1.

Giới thiệu chung
Như đã chia sẻ trong lời nói đầu, khoa học kỹ thuật ngày nay đang hướng đến

những giải pháp điều khiển thông minh thay thế con người hay chí ít là hỗ trợ con
người trong việc điều khiển những thiết bị xung quanh mình. Và một trong những giải
pháp mà nhóm đang hướng đến đó là sử dụng mạng Internet để điều khiển các thiết bị
điện trong nhà. Nói đến điện – nguồn năng lượng gần như không thể thiếu trong đời
sống trong đời sống ngày nay vì hầu hết các thiết bị gia dụng ngày nay đều phải sử
dụng điện để hoạt động. Chắc hẳn ai trong chúng ta cũng đã hiểu được cái cảm giác
khó chịu khi những chiếc bóng đèn hay những chiếc quạt không thể hoạt động mỗi khi
cúp điện. Nếu như ngày trước, khi ta muốn bật - tắt một bóng đèn hay một chiếc quạt

trong nhà, ta phải trực tiếp thao tác bằng tay lên những công tắc hay những phích cắm,
điều này đôi khi đem lại những bất tiện và phiền hà hoặc có thể gây nguy hiểm cho
người sử dụng. Giờ đây, với sự trợ giúp của những công nghệ mới, chỉ với một chiếc
điện thoại Smartphone được tích hợp ta hoàn toàn có thể điều khiển những thiết bị
điện trong nhà một cách linh hoạt và tiện nghi hơn thông qua những ứng dụng hoàn
toàn miễn phí được chia sẻ trên thư viện của Android, IOS, …
Chắc hẳn chúng ta đã quá quen thuộc khi nhắc đến thuật ngữ “Mạng máy tính
toàn cầu” hay còn lại là Internet. Internet đã mở ra cho chúng ta sự liên kết rộng lớn
với thế giới bên ngoài. Và đối với những người nghiên cứu trong lĩnh vực tự động hóa
– điều khiển thì Internet thật sự là một công cụ hỗ trợ đắc lực để họ thực hiện những ý
tưởng một cách hoàn hảo nhất.
Như chúng ta đã biết, thị trường công nghệ trong năm 2015 đã bắt đầu có
những bước chuyển mình rất lớn và một trong số những thiết bị được kỳ vọng đó
chính là ngôi nhà thông minh hay rộng hơn đó là Internet of Things. Khi ngôi nhà của
chúng ta được kết nối Internet, nó sẽ giúp ta mở rộng phạm vi điều khiển ra rất nhiều.
Thử tưởng tượng khi ta ngồi ở bất cứ đâu với một thiết bị có thể kết nối Internet, ta
hoàn toàn có thể điều khiển được những thiết bị trong nhà theo ý muốn, chẳng hạn như
2


khi ta đi ra ngoài mà quên tắt điện hoặc khi ta muốn theo dõi ngôi nhà qua hệ thống
camera giám sát khi ta đang ở bất kỳ đâu,… Khi điều đó vượt khỏi phạm vi kiểm soát
của sóng Bluetooth hay một giao diện máy tính thông thường, thì việc kết nối Arduino
với Internet là cần thiết.
1.2. Đối tượng nghiên cứu
1.2.1. Ngôi nhà thông minh (Smart Home)
 Khái niệm
Nhà thông minh (tiếng Anh: Smart Home hoặc Intellihome) là kiểu nhà được
lắp đặt các thiết bị điện, điện tử có tác dụng tự động hoá hoàn toàn hoặc bán tự động,
thay thế con người trong thực hiện một hoặc một số thao tác quản lý, điều khiển.

Nhà thông minh có đặc trưng nổi bật là sự tiết kiệm tối đa tiêu hao năng lượng
dưới mọi dạng mà vẫn tạo điều kiện thoải mái và tiện nghi tối đa cho chủ nhân.
Trong căn nhà thông minh, đồ dùng trong nhà từ phòng ngủ, phòng khách đến
toilet đều gắn các bộ điều khiển điện tử có thể kết nối với Internet và điện thoại di
động, cho phép chủ nhân điều khiển vật dụng từ xa hoặc lập trình cho thiết bị ở nhà
hoạt động theo lịch. Thêm vào đó, các đồ gia dụng có thể hiểu được ngôn ngữ của
nhau và có khả năng tương tác với nhau.
Hiện tại trên thế giới có rất nhiều hãng cung cấp nhà thông minh. trong đó nổi
bật nhất là các hãng Home Automation Inc (HAI - Nay là Leviton security &
Automation), ELK, Vantage, Control4.
Biệt thự Thái Bình Dương của Bill Gates, được mệnh danh là "ngôi nhà thông
minh" đầu tiên trong lịch sử loài người cả về nghĩ đen và nghĩa bóng, do có những hệ
thống trang, thiết bị điện tử tinh vi, hiện đại và rất phức tạp được bố trí ở nội thất bên
trong.
Các chức năng chính thường sử dụng trong nhà thông minh:
+ Điều khiển chiếu sáng (on/off, dimmer, scence, timer, logic,...).
+ Điều khiển mành, rèm, cửa cổng.
+ Hệ thống An ninh, báo động, báo cháy.
3


+ Điều khiển điều hòa, máy lạnh.
+ Hệ thống âm thanh đa vùng.
+ Camera, chuông hình.
+ HT Bảo vệ nguồn điện.
+ Các tiện ích và ứng dụng khác.

 Quá trình và phát triển phát triển
- Trong quá khứ:
Tờ báo ABC News của Mỹ cho rằng ý tưởng về một ngôi nhà thông minh nghe

có vẻ như là một thứ gì đó chỉ có ở các bộ trong phim viễn tưởng của Mỹ. Năm 1999,
bộ phim có tựa đề "Smart House" đã phác thảo về nhà thông minh qua một câu chuyện
hài hước: Một cậu bé 13 tuổi giành được giải thưởng trong một cuộc thi máy tính là
4


một "ngôi nhà của tương lai" với cô giúp việc ảo PAT (viết tắt của Công nghệ ứng
dụng cá nhân).
PAT rất tài tổ chức các bữa tiệc và đảm bảo cho ngôi nhà quy củ, trật tự. Nhưng
khi cha cậu bé bắt đầu hẹn hò với người đã làm ra ngôi nhà, cậu bé lập trình lại PAT để
nó hoạt động gần giống như có sự chăm sóc của mẹ hơn. Do đó, cha cậu sẽ không nghĩ
rằng họ cần một người mẹ khác nữa. Từ đó, mọi thứ trong ngôi nhà thông minh đảo
lộn, gây ra những tình huống dở khóc dở cười và kết cục là cậu bé có 2 "người mẹ",
một là mẹ kế và một là ngôi nhà thông minh.
Nhiều bộ phim khoa học giả tưởng Hollywood khác cũng khai thác nội dung về
công nghệ nhà thông minh mà nhiều người có thể nghĩ là không thể.
Trước đây, nhà thông minh chỉ hoàn toàn nằm trong trí tưởng tượng cũng như
trên phim ảnh mà thôi. Nhưng từ đầu những năm 1900, "ông tổ" của nhà thông minh tức các thiết bị điều khiển từ xa, bắt đầu được nghiên cứu và phát minh, tạo tiền đề cho
sự ra đời của chúng sau này.
Sự manh nha phát triển của các thiết bị điện gia dụng bắt đầu từ năm 1915, để
rồi ý tưởng tự động hóa các thiết bị trong nhà xuất hiện vào những năm 1930. Đến tận
năm 1984, thuật ngữ "Smarthome" mới xuất hiện!
Cùng với sự phát triển đến chóng mặt của công nghệ, nhà thông minh cũng từ
đó được để ý đến và nhận được sự đầu tư nhiều hơn. Đến năm 2012, theo báo cáo của
ABI Research, tại Mỹ đã có 1,2 triệu căn nhà được "tự động hóa"!
-

Hiện tại và tương lai
Vài năm trở lại đây, khi thế giới đang dần tiến vào kỷ nguyên Internet of Things


(IoT), kết nối mọi vật qua Internet, nhà thông minh trở thành một xu hướng công nghệ
tất yếu, là tiêu chuẩn của nhà ở hiện đại. Tại triển lãm lớn nhất thế giới về công nghệ
điện tử và tiêu dùng diễn ra đầu tháng 1/2015 tại Las Vegas (Mỹ), nhà thông minh là
một trong những chủ đề "nóng" nhất. Còn theo hãng tư vấn công nghệ hàng đầu
Gartner, công nghệ IoT sẽ bùng nổ kể từ năm 2015 với sự tham gia của hầu hết các
hãng công nghệ tên tuổi.
5


Việt Nam không nằm ngoài xu hướng này. Trong năm 2014, chủ đầu tư của
hàng loạt khu đô thị lớn như Phú Mỹ Hưng, Royal City, Times City, Ecopark,
Vinhomes Central Park... đã đưa Nhà thông minh tới các căn hộ, mang lại sự tiện nghi
và đẳng cấp cho nhà ở tại đây.
Các căn hộ thông minh đã xuất hiện trong các khu đô thị cao cấp như Phú Mỹ
Hưng, Royal City, Times City,. Với mong muốn “phủ sóng” nhà thông minh tại Việt
Nam. Tập đoàn công nghệ BKAV đã ký hợp tác đưa giải pháp nhà thông minh BKAV
SmartHome vào các khu đô thị cao cấp Ecopark (Hà Nội), Vinhomes Central Park (TP.
Hồ Chí Minh),…
Smarthome sẽ phát triển trong tương lai?
Hiện nay, khái niệm ngôi nhà thông minh còn khá mơ hồ trong tâm trí người
dùng. Cũng giống như cách đây gần 20 năm, Smartphone là một thiết bị gì đó mà
không phải ai cũng nghĩ nó sẽ thành hiện thực cho đến khi Apple làm một cuộc “cách
mạng” bằng iPhone. Và bây giờ, Smarthome cũng đang trong tình trạng đó.

Có ai dám nghĩ một ngày nào đó Smartphone trở thành một điều bình thường?
Tuy nhiên, đây là một “mảnh đất” rất “màu mỡ”, các tập đoàn và công ty công
nghệ hiện nay đã, đang và sẽ đầu tư vào Smarthome rất nhiều. Theo hãng nghiên cứu
Gartner, công nghệ nhà thông minh có thể đóng góp 1,9 nghìn tỷ USD cho kinh tế thế
giới vào năm 2020. Với các phát kiến gần đây về mạng và thiết bị, cuộc chiến trên mặt
trận nhà thông minh của Apple, Google, Samsung và Amazon đang "nóng" lên từng

ngày.
Công nghệ và thiết bị cho ngôi nhà thông minh đang được các công ty trong
ngành xây dựng quan tâm nhiều. Tại châu Âu, ngày càng có nhiều điều luật bắt buộc
6


các ngôi nhà mới xây phải có chứng chỉ thân thiện môi trường, như cách nhiệt tốt,
giảm tiêu thụ điện, nước và khí đốt,...
Nhà thông minh đang và sẽ là một xu hướng công nghệ tất yếu trên thế giới, trở
thành tiêu chuẩn của nhà ở hiện đại trong kỷ nguyên Internet of Things - kết nối vạn
vật qua internet. Bên cạnh đó, sự tiện nghi và tiết kiệm năng lượng cũng dần trở thành
một tiêu chuẩn cần thiết nhằm nâng cao chất lượng sống của chúng ta. Vậy nên hãy bắt
đầu cho một "kỷ nguyên công nghệ" mới!
 Đặc điểm của smart home
Smarthome có gì hấp dẫn?
Dưới đây là 5 tính năng tiêu biểu mà một ngôi nhà thông minh mang lại giúp
con người có một cuộc sống tiện nghi và thoải mái hơn:
1. Các cánh cửa đều tự động đóng và mở khi chúng nhận diện được chúng ta là ông
chủ của ngôi nhà.
2. Tự điều chỉnh độ sáng các bóng đèn điện khi bạn đọc sách, xem ti-vi hay đi ngủ.
3.Các thiết bị điện tử từ gia dụng đến giải trí trong ngôi nhà được điều khiển dễ dàng
thông qua giọng nói hay Smartphone.
4. Đưa ra các cảnh báo các vật dụng có thể gây nguy hiểm cho trẻ em khi chúng có ý
định sử dụng các vật dụng đó.
5. Tính năng an ninh như tự báo động khi có một người cố tình xâm nhập trái phép, tự
động khóa trái cửa, báo cảnh sát,... luôn trong trạng thái sẵn sàng.
Thật tiện nghi khi mọi thứ đều được ”thông minh hóa”!
1.2.2. Một số khái niệm cơ bản
 Mạng (network)
Mạng máy tính hay hệ thống mạng (tiếng Anh: Computer Network hay

Network System) là sự kết hợp các máy tính lại với nhau thông qua các thiết bị nối kết
mạng và phương tiện truyền thông (giao thức mạng, môi trường truyền dẫn) theo một
cấu trúc nào đó và các máy tính này trao đổi thông tin qua lại với nhau.
7


Mạng máy tính được chia thành 2 loại: Mạng cục bộ (LAN – Local Area
Network) và Mạng diện rộng (WAN – Wide Area Network).
-

Mạng cục bộ (LAN- Local Area Network):

+ Là mạng kết nối các máy tính ở gần nhau trong một phòng,một tòa nhà ,một trường
học.
+Chỉ kết nối các máy tính trong một phạm vi nhỏ (dưới 100m). Truyền dữ liệu tốc độ
cao mà chỉ chịu tỷ lệ lỗi nhỏ.
-

Mạng diện rộng (WAN-Wide Area Network):

+Là mạng kết nối các máy tính ở cách xa nhau ,như một tỉnh,một quốc gia.
+Mạng diện rộng WAN thường liên kết với mạng LAN.
 Địa chỉ IP
Về cơ bản, địa chỉ IP là địa chỉ đơn nhất mà mọi thiết bị điện tử đang sử dụng.
Thông qua nó, thiết bị này có thể kết nối với thiết bị khác và chia sẻ dữ liệu.
Một địa chỉ IP tiêu chuẩn (giao thức IPv4) chứa 4 nhóm chữ số khác nhau được
ngăn ra bằng dấu “.”, ví dụ 172.16.254.1.
 VPS
VPS (Virtual Private Server) là dạng máy chủ ảo được tạo ra bằng phương pháp
phân chia một máy chủ vật lý thành nhiều máy chủ khác nhau có tính năng tương tự

như máy chủ riêng (dedicated server), chạy dưới dạng chia sẻ tài nguyên từ máy chủ
vật lý ban đầu đó. Mỗi VPS là một hệ thống hoàn toàn riêng biệt, có một phần CPU
riêng, dung lượng RAM riêng, dung lượng ổ HDD riêng, địa chỉ IP riêng và hệ điều
hành riêng, người dùng có toàn quyền quản lý root và có thể restart lại hệ thống bất cứ
lúc nào.
1.2.3. Giới thiệu về Arduino

8


Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác
với nhau hoặc với môi trường được thuận lợi hơn. Phần cứng bao gồm một board
mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM
Atmel 32-bit. Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân
đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác
nhau.
Được giới thiệu vào năm 2005, những nhà thiết kế của Arduino cố gắng mang
đến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và
giới chuyên nghiệp để tạo ra những nhiết bị có khả năng tương tác với môi trường
thông qua các cảm biến và các cơ cấu chấp hành. Những ví dụ phổ biến cho những
người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và phát
hiện chuyển động. Đi cùng với nó là một môi trường phát triển tích hợp (IDE) chạy
trên các máy tính cá nhân thông thường và cho phép người dùng viết các chương trình
cho Aduino bằng ngôn ngữ C hoặc C++.
Giá của các board Arduino dao động xung quanh €20, hoặc $27 hoặc 574.468
VNĐ, nếu được "làm giả" thì giá có thể giảm xuống thấp hơn $9. Các board Arduino
có thể được đặt hàng ở dạng được lắp sẵn hoặc dưới dạng các kit tự làm lấy. Thông tin
thiết kế phần cứng được cung cấp công khai để những ai muốn tự làm một mạch
Arduino bằng tay có thể tự mình thực hiện được (mã nguồn mở). Người ta ước tính
khoảng giữa năm 2011 có trên 300 ngàn mạch Arduino chính thức đã được sản xuất

thương mại, và vào năm 2013 có khoảng 700 ngàn mạch chính thức đã được đưa tới
tay người dùng.
Arduino được khởi động vào năm 2005 như là một dự án dành cho sinh viên
trại Interaction Design Institute Ivrea (Viện thiết kế tương tác Ivrea) tại Ivrea, Italy.
Vào thời điểm đó các sinh viên sử dụng một "BASIC Stamp" (con tem cơ bản) có giá
khoảng $100, xem như giá dành cho sinh viên. Massimo Banzi, một trong những
người sáng lập, giảng dạy tại Ivrea. Cái tên "Arduino" đến từ một quán bar tại Ivrea.
Bản thân quán bar này có được lấy tên là Arduino, Bá tước của Ivrea, và là vua của
Italy từ năm 1002 đến 1014.
9


Lý thuyết phần cứng được đóng góp bởi một sinh viên người Colombia tên là
Hernando Barragan. Sau khi nền tảng Wiring hoàn thành, các nhà nghiên cứu đã làm
việc với nhau để giúp nó nhẹ hơn, rẻ hơn, và khả dụng đối với cộng đồng mã nguồn
mở. Trường này cuối cùng bị đóng cửa, vì vậy các nhà nghiên cứu, một trong số đó là
David Cuarlielles, đã phổ biến ý tưởng này.
Giá hiện tại của board mạch này dao động xung quanh $30 và được làm giả đến mức
chỉ còn $9. Một mạch bắt chước đơn giản Arduino Mini Pro có lẽ được xuất phát từ
Trung Quốc có giá rẻ hơn $4, đã trả phí bưu điện.
Một mạch Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổ sung
giúp dễ dàng lập trình và có thể mở rộng với các mạch khác. Một khía cạnh quan trọng
của Arduino là các kết nối tiêu chuẩn của nó, cho phép người dùng kết nối với CPU
của board với các module thêm vào có thể dễ dàng chuyển đổi, được gọi là shield. Vài
shield truyền thông với board Arduino trực tiếp thông qua các chân khách nhau, nhưng
nhiều shield được định địa chỉ thông qua serial bus I²C-nhiều shield có thể được xếp
chồng và sử dụng dưới dạng song song. Arduino chính thức thường sử dụng các dòng
chip megaAVR, đặc biệt là ATmega8, ATmega168, ATmega328, ATmega1280, và
ATmega2560. Một vài các bộ vi xử lý khác cũng được sử dụng bởi các mạch Aquino
tương thích. Hầu hết các mạch gồm một bộ điều chỉnh tuyến tính 5V và một thạch anh

dao động 16 MHz (hoặc bộ cộng hưởng ceramic trong một vài biến thể), mặc dù một
vài thiết kế như LilyPad chạy tại 8 MHz và bỏ qua bộ điều chỉnh điện áp onboard do
hạn chế về kích cỡ thiết bị. Một vi điều khiển Arduino cũng có thể được lập trình sẵn
với một boot loader cho phép đơn giản là upload chương trình vào bộ nhớ flash onchip, so với các thiết bị khác thường phải cần một bộ nạp bên ngoài. Điều này giúp
cho việc sử dụng Arduino được trực tiếp hơn bằng cách cho phép sử dụng 1 máy tính
gốc như là một bộ nạp chương trình.
Theo nguyên tắc, khi sử dụng ngăn xếp phần mềm Arduino, tất cả các board
được lập trình thông qua một kết nối RS-232, nhưng cách thức thực hiện lại tùy thuộc
vào đời phần cứng. Các board Serial Arduino có chứa một mạch chuyển đổi giữa
RS232 sang TTL. Các board Arduino hiện tại được lập trình thông qua cổng USB,
thực hiện thông qua chip chuyển đổi USB-to-serial như là FTDI FT232. Vài biến thể,
10


như Arduino Mini và Boarduino không chính thức, sử dụng một board adapter hoặc
cáp nối USB-to-serial có thể tháo rời được, Bluetooth hoặc các phương thức khác.
(Khi sử dụng một công cụ lập trình vi điều khiển truyền thống thay vì ArduinoIDE,
công cụ lập trình AVR ISP tiêu chuẩn sẽ được sử dụng).
Board
USB
đầuI/O
tiêncủa
(2005)
Board Arduino sẽ đưa
ra Arduino
hầu hết các
chân
vi điều khiển để sử dụng cho
những mạch ngoài. Diecimila, Duemilanove, và bây giờ là Uno đưa ra 14 chân I/O kỹ
thuật số, 6 trong số đó có thể tạo xung PWM (điều chế độ rộng xung) và 6 chân input

analog, có thể được sử dụng như là 6 chân I/O số. Những chân này được thiết kế nằm
phía trên mặt board, thông qua các header cái 0.10-inch (2.5 mm). Nhiều shield ứng
dụng plug-in cũng được thương mại hóa. Các board Arduino Nano, và Arduinocompatible Bare Bones Board và Boarduino có thể cung cấp các chân header đực ở
mặt trên của board dùng để cắm vào các breadboard.
Có nhiều biến thể như Arduino-compatible và Arduino-derived. Một vài trong
số đó có chức năng tương đương với Arduino và có thể sử dụng để thay thế qua lại.
Nhiều mở rộng cho Arduino được thực thiện bằng cách thêm vào các driver đầu ra,
thường sử dụng trong các trường học để đơn giản hóa các cấu trúc của các 'con rệp' và
các robot nhỏ. Những board khác thường tương đương về điện nhưng có thay đổi về
hình dạng-đôi khi còn duy trì độ tương thích với các shield, đôi khi không. Vài biến
thể sử dụng bộ vi xử lý hoàn toàn khác biệt, với các mức độ tương thích khác nhau.
Phần cứng Arduino gốc được sản xuất bởi công ty Italy tên là Smart Projects.
Một vài board dẫn xuất từ Arduino cũng được thiết kế bởi công ty của Mỹ tên là
SparkFun Electronics. Sáu phiên bản phần cứng của Arduino cũng đã được sản xuất
thương mại tính đến thời điểm hiện tại.
Nền tảng Arduino đã có mặt ở trên thế giới được 11 năm, Arduino được gia
nhập vào Việt Nam những năm 2010 bởi những thành viên trong BQT Cộng đồng
Arudino Việt Nam. (www.arduino.vn)
Các board Arduino qua các thời kỳ:
-

Arduino “đời đầu”
11


Arduino Extreme version 1

-

Phiên bản tiếp theo: Arduino


Extreme (2006)

-

Arduino

NG

(Nuova

Generazione) (2006)

Arduino Extreme version 2

-

Arduino

Diecimila

(Diecimila = 1 vạn) (2007)

-

Arduino
Duemilanove (2008 - 2009)
12



-

Dòng Arduino thế hệ mới: Arduino UNO (2010 – nay)

Ở mạch này, ngoài việc thay đổi và cách đặt tên cho dễ xác định các chân I/O,
Arduino UNO còn thay con chip FTDI bằng con chip ATMega8U2 (Serial TTL
Converter). Arduino UNO có 3 phiên bản mới, đó là: R2, R3 và SMD. Trong phiên
bản R3 (hiện tại), Arduino đã sử dụng con chip ATMega16U2, giúp việc nạp những
chương trình lớn nhanh hơn.
Những linh kiện nào có thể thu gọn lại thì nhà phát triển đã thu gọn hết cỡ, và
đặc biệt là các nhà sản xuất Trung Quốc sản xuất ra giá thành chỉ 4$ (hàng fake) nhưng
hàng chính hãng 20$ vẫn sống và sống một cách trường tồn hơn 5 năm nay (2010 2015).

u

ino

Ard
MEGA

(2010 – nay)
Arduino
MEGA có rất
nhiều chân IO
so với dòng
Arduino UNO loại thường
Arduino UNO SMD (chip dán)
13



Arduino UNO (54 digital IO và 16 analog IO), đồng thời bộ nhớ flash của MEGA rất
lớn, gấp 4 lần so với UNO (128kb) với vi điều khiển ATmega1280. Rõ ràng, những dự
án cần điều khiển nhiều loại động cơ và xử lý nhiều luồng dữ liệu song song (3 timer),
nhiều ngắt hơn (6 cổng interrupt),... có thể được phát triển dễ dàng với Arduino
MEGA, chẳng hạn như: máy in 3d, quadcopter,...
Chúng ta dễ dàng nhận thấy rằng, các chân digital từ 0 -> 13, analog từ 0 -> 5
và các chân nguồn được thiết kế tương tự Arduino UNO. Như vậy, ta có thể thừa kế
những mạch phát triển khác kiểu plugin gắn lên Arduino MEGA.
Ở phiên bản Arduino MEGA, chúng ta đã thấy được sự thay đổi (Modify) trong
việc suy nghĩ về thiết kế mạch Arduino. Cụ thể, để có thể thêm được nhiều vùng nhớ
hơn, thêm được nhiều chân IO hơn, những nhà phát triển đã mạnh dạng thay đổi con vi
điều khiển ATmega1280. Nhưng như vậy, sẽ làm cho việc thiết kế giao diện mạch
Arduino Mega trở nên khó khăn, vì có quá nhiều chân. Với khó khăn như vậy, họ đã
thích nghi (Adapt) bằng cách thiết kế Arduino MEGA tương tự như mạch Arduino
UNO nối dài.
Và một năm sau đó, nhà sản xuất có những ý tưởng lớn hơn, hay hơn, nhưng
cần phải có một dung lượng flash lớn hơn... Vì vậy, Arduino MEGA 2560 ra đời.
Arduino MEGA 2560 về cơ bản là giống hoàn toàn với Arduino MEGA, nhưng tại
phiên bản này, họ đã lắng nghe ý kiến người sử dụng và thay thế (Substitute) con
ATmega1280 bằng con ATmega2560. Như vậy, họ đã sáng tạo trên một “vùng đất rộng
gấp đôi”. Ngoài ra, phiên bản này cũng có một số sự thay thế nho nhỏ nữa, như tụ,
màu sắc tụ,...

14


Arduino MEGA đầu tiên (2009 – 2010)

Arduino MEGA 2560


Arduino
MEGA
ADK

(Android compatible) (2011)
Đây là phiên bản Arduino MEGA có thể giao tiếp với các thiết bị Android thông
qua cổng sạc (USB micro) của các thiết bị Android. Ở phiên bản này, Arduino MEGA

15


có thể giao tiếp được với điện thoại Android thông qua cổng micro usb (cổng sạc) của
Android (>=4.0).

Ngoài ra
còn

rất

nhiều

các loại board Arduino khác mà chúng ta có thể tìm hiểu và tham khảo thêm tại 2 trang
web: www.arduino.cc và www.arduino.vn.
 Phần mềm (Arduino IDE)
Môi trường phát triển tích hợp (IDE) của Arduino là một ứng dụng crossplatform (nền tảng) được viết bằng Java, và từ IDE này sẽ được sử dụng cho Ngôn ngữ
lập trình xử lý (Processing programming language) và project Wiring. Nó được thiết
kế để dành cho các nghệ sĩ và những người mới tập tành làm quen với lĩnh vực phát
triển phần mềm. Nó bao gồm một chương trình code editor với các chức năng như
đánh dấu cú pháp, tự động brace matching, và tự động canh lề, cũng như compile(biên
dịch) và upload chương trình lên board chỉ với 1 cú click chuột. Một chương trình

hoặc code viết cho Arduino được gọi là một sketch.
Các chương trình Arduino được viết bằng C hoặc C++. Arduino IDE đi kèm với
một thư viện phần mềm được gọi là "Wiring", từ project Wiring gốc, có thể giúp các
thao tác input/output được dễ dàng hơn. Người dùng chỉ cần định nghĩa 2 hàm để tạo
ra một chương trình vòng thực thi (cyclic executive) có thể chạy được:
+setup(): hàm này chạy mỗi khi khởi động một chương trình, dùng để thiết lập
các cài đặt
+loop(): hàm này được gọi lặp lại cho đến khi tắt nguồn board mạch
16


Một chương trình điển hình cho một bộ vi điều khiển đơn giản chỉ là làm cho
một bóng đèn Led sáng/tắt. Trong môi trường Arduino, ta sẽ phải viết một chương
trình giống như sau:

Arduino IDE này sử dụng GNU toolchain và AVR Libc để biên dịch chương
trình, và sử dụng avrdude để upload chương trình lên board.
Vì nền tảng của Arduino là các vi điều khiển của Atmel, cho nên môi trường
phát triển của Atmel, AVR Studio hoặc các phiên bản Atmel Studio mới hơn, cũng có
thể được sử dụng để làm phần mềm phát triển cho Arduino.
Arduino là một nền tảng phần cứng mã nguồn mở: Các thiết kế phần cứng tham
khảo của Arduino được phân phối dưới dạng Creative CommonsAttribution ShareAlike 2.5 license và có sẵn trên website của Arduino. Một vài phiên bản phần cứng của
Arduino còn

đưa lên cả

file




Layout

thành

phẩm.



nguồn

cho

IDE

này

cũng

khả

dụng



được

xuất

dưới


dạng

GNU

bản
General

Public

License,

version 2.

17

Giao diện làm việc của Arduino IDE


+ Vùng lệnh: Bao gồm các nút lệnh menu (File, Edit, Sketch, Tools, Help). Phía
dưới là các icon cho phép sử dụng nhanh các chức năng thường dùng của IDE
được miêu tả như sau:

+ Vùng viết chương trình: Bạn sẽ viết các đoạn mã của mình tại đây. Tên chương
trình của bạn được hiển thị ngay dưới dãy các Icon, ở đây nó tên là “Blink”. Để ý
rằng phía sau tên chương trình có một dấu “§”. Điều đó có nghĩa là đoạn chương
trình của bạn chưa được lưu lại.
+ Vùng thông báo (debug): Những thông báo từ IDE sẽ được hiển thị tại đây. Để
ý rằng góc dưới cùng bên phải hiển thị loại board Arduino và cổng COM được sử

18



dụng. Luôn chú ý tới mục này bởi nếu chọn sai loại board hoặc cổng COM, bạn sẽ
không thể upload được code của mình.

 Giao tiếp với Arduino UNO R3
- Bảng thông số:

-

Các thành phần:

19


a) USB (1): Arduino sử dụng cáp USB để giao tiếp với máy tính. Thông qua
cáp USB chúng ta có thể Upload chương trình cho Arduino hoạt động, ngoài ra USB
còn là nguồn cho Arduino.
b) Nguồn (2 và 3): Khi không sử dụng USB làm nguồn thì chúng ta có thể sử
dụng nguồn ngoài thông qua jack cắm 2.1 mm (cực dương ở giữa) hoặc có thể sử dụng
2 chân Vin và GND để cấp nguồn cho Arduino. Board mạch hoạt động với nguồn
ngoài ở điện áp từ 5 - 20 Volt. Chúng ta có thể cấp một áp lớn hơn tuy nhiên chân 5V
sẽ có mức điện áp lớn hơn 5 volt. Và nếu sử dụng nguồn lớn hơn 12 volt thì sẽ có hiện
tượng nóng và làm hỏng board mạch. Khuyến cáo các bạn nên dùng nguồn ổn định là
5 đến dưới 12 volt.
Chân 5V và chân 3.3 V (Output voltage): Các chân này dùng để lấy nguồn ra từ
nguồn mà chúng ta đã cung cấp cho Arduino. Lưu ý: Không được cấp nguồn vào các
chân này vì sẽ làm hỏng Arduino.
GND: Chân mass.
c) Chip Atmega328.

Chip Atmega328 Có 32K bộ nhớ flash trong đó 0.5k sử dụng cho bootloader.
Ngoài ra còn có 2K SRAM, 1K EEPROM.
d) Input và Output (4, 5 và 6).
Arduino Uno có 14 chân digital với chức năng input và output sử dụng các hàm
pinMode(), digitalWrite() và digitalRead(). Cũng trên 14 chân digital này chúng ta còn
một số chân chức năng đó là: Serial : chân 0 (Rx), chân 1 (Tx). Hai chân này dùng để
truyền (Tx) và nhận (Rx) dữ liệu nối tiếp TTL. Chúng ta có thể sử dụng nó để giao tiếp
với cổng COM của một số thiết bị hoặc các linh kiện có chuẩn giao tiếp nối tiếp. PWM
(pulse width modulation): các chân 3, 5, 6, 9, 10, 11 trên bo mạch có dấu (~) là các
chân PWM chúng ta có thể sử dụng nó để điều khiển tốc độ động cơ, độ sáng của
đèn... SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK), các chân này hỗ trợ giao tiếp
theo chuẩn SPI.

20


I2C: Arduino hỗ trợ giao tiếp theo chuẩn I2C. Các chân A4 (SDA) và A5 (SCL)
cho phép chúng tao giao tiếp giửa Arduino với các linh kiện có chuẩn giao tiếp là I2C.
e) Reset (7): dùng để reset Arduino.
 Arduino Ethernet Shield
Arduino Ethernet Shield là mạch tích hợp được phát triển từ Arduino UNO cho
phép kết nối dễ dàng Arduino với internet. Shield này cho phép Arduino của bạn để
gửi và nhận dữ liệu từ bất cứ nơi nào trên thế giới với một kết nối internet. Có thể sử
dụng nó để làm công cụ thú vị như robot điều khiển từ xa từ một trang web, hoặc rung
chuông mỗi khi nhận được một tin nhắn twitter mới.

Arduino Ethernet Shield
Arduino Ethernet Shield sử dụng chip W5100 cho tốc độ và khả năng kết nối ổn
định nhất, bộ thư viện đi kèm và phần cứng với cách kết nối dễ dàng khiến cho việc
kết vối Arduino với Ethernet đơn giản hơn bao giờ hết, thích hợp để làm các ứng dụng

điều khiển thiết bị qua Ethernet, Ethernet Controller.
Phiên bản shield này có tích hợp khe cắm thẻ micro SD, có thể được sử dụng để
lưu trữ các tập tin phục vụ qua mạng. Arduino Ethernet Shield tương thích với Arduino
Uno và Mega (sử dụng Ethernet Library). Bạn có thể truy cập vào khe cắm thẻ trên
board và sử dụng thư viện SD được bao gồm tích hợp trong bộ thư viện có sẵn trong
trình biên dịch arduino.
21


IC điều khiển W5100 trên Arduino Ethernet Shield có thể thực hiện truyền dữ
liệu thông qua 2 giao thức là TCP và UDP. Số đường truyền dữ liệu song song tối đa là
4. Đây chính là điểm mạnh của W5100 so với Microchip ENC28J60. Khả năng truyền
song song cùng lúc 4 luồng dữ liệu giúp board có khả năng nhận dữ liệu từ internet với
tỉ lệ lỗi thấp hơn (nguyên nhân thường là do mất dữ liệu trên đường truyền hoặc do
thời gian truyền vượt quá giới hạn - time out).
-

Thông số kỹ thuật:

+ Hoạt động tại điện áp 5V (được cấp từ mạch Arduino).
+ Cổng giao tiếp: Cổng RJ-45.
+ Chip Ethernet: W5100 với buffer nội 16KB.
+ Tốc độ kết nối: 10/100Mb.
+ Kết nối với mạch Arduino qua cổng SPI.
+ Thư viện và code mẫu có sẵn trong chương trình Arduino.

1.2. Mục tiêu nghiên cứu
1.2.1. Mục tiêu cần đạt
Sau khi đã tìm hiểu sơ lược về những khái niệm cơ bản của đề tài trong Chương
1 như: Lý do chọn đề tài, mục đích nghiên cứu hay những khái niệm cơ bản về

Bluetooth, sơ lược về phần cứng, board Arduino và phần mềm Arduino IDE,… thì
trong Chương 2 nhóm sẽ trình bày về mục tiêu cần đạt của đề này và triển vọng phát
triển của ý tưởng trong tương lai mà nhóm sẽ trình bày trong những bài nghiên cứu
sau.
Những mục tiêu cần đạt trong đề tài này:
22


+ Hiểu được nguyên lý hoạt động của Arduino, module Arduino Ethernet Shield,
module Bluetooth, mudule relay và các phần mềm ứng dụng.
+ Biết cách kết nối phần cứng, cách đấu dây.
+ Giao tiếp được với Arduino thông qua cổng USB sử dụng môi trường tích hợp
Arduino IDE.
+ Tiến hành chạy thử và sửa lỗi.
1.2.2. Mục tiêu phát triển của đề tài trong tương lai
 Điều khiển thiết bị bằng giọng nói với Arduino
Đã có thể sử dụng Bluetooth để bật tắt thiết bị từ xa, hoặc điều khiển những
thiết bị qua mạng Internet nhưng liệu chúng ta có thể bật tắt thiết bị (một bóng đèn 220
VAC chẳng hạn) từ xa bằng giọng nói hay không? Có vẻ hơi khó và cao siêu, nhưng
nó không khó và chẳng cao siêu gì đâu. Với với một chút biến tấu và cấu hình lại chiếc
Smartphone của mình ta hoàn toàn có thể làm được điều đó.
 Điều khiển bằng ý nghĩ.
Điều khiển bằng ý nghĩ là một người nào đó có thể điều khiển được sự việc xảy
ra bên ngoài cơ thể thông qua sóng não chỉ bằng ánh mắt nhìn và suy nghĩ tập trung.
Nghĩa là điều khiển mọi thứ từ xa chỉ cần bằng suy nghĩ trong sâu thẳm tâm hồn. Bạn
muốn bật tivi, thay vì phải chạy đi lấy remote thì chỉ cần nhìn vào nút nguồn và nhấn
nó bằng mắt, tivi tự khắc bật. Bạn muốn ngồi, thay vì phải chạy đi lấy ghế, bạn chỉ cần
đứng ở một chỗ, rồi dùng ý nghĩ ra lệnh và ngay lập tức, ghế được đưa ra chỗ bạn.
Có những trường hợp siêu nhiên điều khiển bằng ý nghĩ tồn tại ở con người,
người ta hoài nghi nhiều hơn là tin cậy. Như trường hợp cô gái điện Angelique Cottin

ở Pháp. Cô di chuyển đồ vật trong nhà, nhưng cô lại không thể kiểm soát tốc độ. Tốc
độ di chuyển nhanh tới mức người ta còn chưa kịp nhận ra sự di chuyển của chúng thì
đã thấy chúng ở vị trí khác, như thể có một sự gian trá ở đây.
Nhưng có một trường phái khác đang tồn tại trong giới khoa học, rằng con
người, về mặt lý thuyết, có thể làm được và gây được các hiện tượng trên. Cơ chế
chính là năng lượng truyền tải trong sóng điện từ. Người ta chỉ ra não bộ hoạt động
23


×