Professional Documents
Culture Documents
Lời Nói Đầu: Đồ Án Tốt Nghiệp Gvhd: Ts.Đặng Ngọc Trung
Lời Nói Đầu: Đồ Án Tốt Nghiệp Gvhd: Ts.Đặng Ngọc Trung
Lời Nói Đầu: Đồ Án Tốt Nghiệp Gvhd: Ts.Đặng Ngọc Trung
Chúng em xin chân thành cảm ơn thầy giáo TS. Đặng Ngọc Trung, cảm ơn các
thầy cô giáo trong bộ môn Kỹ Thuật Điện đã tận tình giúp đỡ chúng em để đề tài của
chúng em được hoàn thành đúng thời hạn.
Thái Nguyên, ngày 28 tháng 11 năm 2018
Giáo viên hướng dẫn Nhóm sinh viên thực hiện
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
Contents
LỜI NÓI ĐẦU........................................................................................................1
PHẦN 1...................................................................................................................6
1.3. Ý tưởng xây dựng thuật toán điều khiển nhà thông minh................9
PHẦN 2.................................................................................................................11
PHẦN 3.................................................................................................................35
3.1.2. Hướng dẫn các bước thiết kế trên phần mềm Proteous và Altium
.................................................................................................................................. 38
3.2.1. Lưu đồ thuật toán chương trình điều khiển nhà thông minh.........65
a. Code chương trình điều khiển nhà thông minh bằng thiết bị Androi..66
b. Code chương trình điều khiển nhà thông minh bằng giọng nói...........75
PHẦN 1
ĐẶT VẤN ĐỀ NGHIÊN CỨU
Theo wiseGeek, một ngôi nhà (hoặc căn hộ) được coi là "thông minh" bởi vì hệ
thống máy tính/điện thoại của nó có thể giám sát được nhiều khía cạnh diễn ra xung
quanh ngôi nhà của chúng ta thường ngày.Một trong những ví dụ cơ bản nhất của nhà
thông minh là một hệ thống kiểm soát mức độ chiếu sáng của hệ thống đèn giúp tiết kiệm
điện và phù hợp với khung cảnh, chẳng hạn như cài đặt đèn ánh sáng nhẹ cho các bữa tiệc
tối. Hệ thống cũng có thể điều chỉnh rèm cửa theo yêu cầu, kiểm soát nhiệt độ, hệ thống
báo sự cố khí gas, hệ thống đóng mở cửa tự động, hệ thống phòng ngừa trộm…Nhà thông
minh ngoài ra còn có một số ứng dụng sáng tạo hơn, gồm hệ thống điều khiển giải trí loa
đài với công suất khác nhau, hệ thống tưới nước...
Các chức năng này có thể được thực hiện nhờ việc ghép nối các thiết bị điệntrong
nhà với bộ điều khiển trung tâm thông qua hệ thống máy tính/điện thoại để có thể theo dõi
các trạng thái và ra các quyết định điều khiển phù hợp.
Nhà thông minh đã được hình dung trong các tác phẩm khoa học viễn tưởng từ
nhiều năm nhưng nó chỉ trở thành hiện thực kể từ thế kỷ 20 sau sự phát triển rộng rãi của
ngành điện - điện tử và những tiến bộ nhanh chóng của công nghệ thông tin, theo
Wikipedia. Công nghệ nhà thông minh ngày càng trở nên tinh vi,các tín hiệu điều khiển
và giám sát được mã hóa truyền đi thông qua hệ thống dây dẫn hoặc mạng không dây đến
các bộ chuyển mạch, ổ điện được lập trình sẵn để vận hành các đồ gia dụng và thiết bị
điện tử ở trong ngôi nhà. Sự tự động hóa của ngôi nhà đặc biệt có ích cho người lớn tuổi
và người tàn tật, những người muốn sống tự lập.
Việc lắp đặt các sản phẩm thông minh đem lại cho ngôi nhà và chủ nhân của nó rất
nhiều lợi ích – tương tự như những lợi ích mà công nghệ và máy tính cá nhân đã đem lại
cho chúng ta 30 năm qua, bao gồm: sự tiện nghi, tiết kiệm thời gian, tiền bạc và năng
lượng.
Các thành phần của hệ thống nhà thông minh bao gồm các cảm biến (như cảm biến
nhiệt độ, cảm biến chuyển động, cảm biến ánh sáng, cảm biến âm thanh, cảm biến khí
gas…), các bộ điều khiển (PLC, vi điều khiển…), máy tính, khối thu phát tín hiệu (wifi,
Bluetooth…)và các thiết bị chấp hành khác (Rơ le trung gian…). Nhờ hệ thống cảm biến,
các bộ điều khiển và máy tính/điện thoại mà con người có thể theo dõi các trạng thái bên
trong ngôi nhà dù chúng ta đang ở bất cứ đâu, để đưa ra các quyết định điều khiển các
thiết bị chấp hành một cách phù hợp nhằm đảm bảo sự an toàn cũng như đem lại cho
người sử dụng một môi trường sống tốt nhất.
Trên thế giới, nhiều kiến trúc sư đang bắt đầu cân nhắc đến nhà thông minh trong
khi thiết kế và xây dựng nhà. Khi đó, hệ thống được tích hợp ngay trong quá trình xây
dựng thì chi phí cho việc lắp đặt, bảo trì sẽ giảm xuống đồng thời toàn bộ hệ thống điện
trong tòa nhà cũng sẽ đồng bộ và linh hoạt hơn. Tuy nhiên, các ngôi nhà hoặc căn hộ đã
xây dựng trước đây cũng vẫn có thể sửa đổi để tích hợp hệ thống thông minh vào, đem lại
những cảm giác mới cho ngôi nhà của chúng ta.
Hiện nay, trong lĩnh vực nhà thông minh, các kỹ sư vẫn đang tiếp tục sáng tạo để
tạo ra nhiều tiện ích hơn nữa cho ngôi nhà cũng như tối ưu hóa về triển khai lắp đặt một
ngôi nhà thông minh. Trong tương lai không xa, ngôi nhà thông minh có thể có khả năng
“tư duy” để tự điều chỉnh các thiết bị một cách phù hợp và có khả năng giao tiếp với con
người như trong các bộ phim viễn tưởng là có cơ sở trở thành hiện thực.
Cuối những năm 1990, nhà thông minh vẫn được xem là một thứ xa xỉ của nhà
giàu. Tuy nhiên, với sự ra đời và phổ biến của công nghệ vi điện tử và chi phí ngày càng
giảm của chúng thì các công nghệ điều khiển thông minh có thể được ứng dụng rỗng rãi
hơn và đem lại cho mọi người dân có mức sống trung bình có thể làm chủ được ngôi nhà
thông minh trong tầm tay.
Với sự phát triển vũ bão của công nghệ thông tin, internet và chi phí cho hệ thống
nhà thông minh đã giảm xuống trong thời gian gần đây. Nhu cầu người sử dụng đã tăng
cao đáng kể. Theo hãng ABI Research, năm 2012 đã có hơn 1,5 triệu hệ thống nhà thông
minh được lắp đặt ở Mỹ và dự kiến con số này sẽ tăng đến 8 triệu vào năm 2017. Trong
tương lai không xa, có thể hi vọng nhà thông minh sẽ là một xu hướng mới cho cuộc sống
của con người hiện đại.
Xuất phát từ nhu cầu mở rộng quy mô ứng dụng hệ thống nhà thông minh không
chỉ tập trung cho các nhà biệt thự, khách sạn… phục vụ cho các tầng lớp giàu có thượng
lưu, mà còn đem lại cho người có mức thu nhập trung bình có được cơ hội sở hữu ngôi
nhà thông minh với một số tính năng tự động nhất định của riêng mình trong khả năng
kinh tế có hạn. Vì vậy trong phạm vi của đề tài đề xuất xây dựng mô hình nhà ở dân dụng
nhà thông minh, đảm bảo cho ngôi nhà có được một số tính năng tự động như sau:
Đóng mở cửa và bật tắt hệ thống chiếu sáng từ xa thông qua điện thoại/máy tính,
modul Bluetooth HC06 kết nối với vi điều khiển trung tâm.
Bật tắt các thiết bị bằng giọng nói thông qua điện thoại gửi đến modul Bluetooth
HC06 kết nối với vi điểu khiển trung tâm
Đóng mở cửa và bật tắt hệ thống chiếu sáng từ xa bằng việc giải mã tín hiệu
DTMF của điện thoại.
Hiển thị nhiệt độ phòng, nồng độ khí gas trên LCD hoặc máy tính/điện thoại
giám sát.
Tự động phát hiện và báo sự cố khí gas khi quá nồng độ cho phép thông qua còi
báo động, đồng thời ngắt Rơ le trung gian cấp điện xoay chiều cho toàn hệ thống điện của
ngôi nhà, đến khi sự cố được giải trừ thì tự động đóng Rơ le trung gian trở lại để cấp điện
cho ngôi nhà hoạt động bình thường.
1.3. Ý tưởng xây dựng thuật toán điều khiển nhà thông minh
Về bản chất mô hình nhà thông minh đề xuất trong đề tài được vận hành: Đóng cắt
từ xa thiết bị điện chiếu sáng và đóng mở cửa qua bộ điều khiển trung tâm. Việc đóng
mở cửa và đóng cắt thiết bị chiếu sáng thông qua bộ điều khiển trung tâm giúp cho người
sử dụng có thể vận hành các thiết bị ở bất cứ vị trí nào bằng ba cách:
Cách 1: Điều khiển ở khoảng cách gần thông qua modul blutooth HC06 lúc này
tất cả các hiệu lệnh đóng cắt thiết bị của người sử dụng thông qua các nút ấn trên bàn
phím của máy tính hay điện thoại, được mã hóa thành tín hiệu nhờ phần mềm ứng dụng
trên hệ điều hành Android và gửi tín hiệu về vi điều khiển thông qua kênh Bluetooth của
modul Bluetooth HC06, tín hiệu sẽ được xử lý thông qua mã chương trình đã được lập
trình sẵn trong vi điều khiển, từ đó phát tín hiệu điều khiển tới Rơ le trung gian để cấp
điện cho động cơ cửa tự động hay thiết bị chiếu sáng.
Cách 2: Điều khiển ở khoảng cách gần bằng giọng nói thông qua modul blutooth
HC06 lúc này tất cả các hiệu lệnh đóng cắt thiết bị của người sử dụng thông qua các khẩu
lệnh giọng nói của ta truyền đến, được mã hóa thành tín hiệu nhờ phần mềm ứng dụng
trên hệ điều hành Android và gửi tín hiệu về vi điều khiển thông qua kênh Bluetooth của
modul Bluetooth HC06, tín hiệu sẽ được xử lý thông qua mã chương trình đã được lập
trình sẵn trong vi điều khiển, từ đó phát tín hiệu điều khiển tới Rơ le trung gian để cấp
điện cho các thiết bị.
Cách 3: Điều khiển ở khoảng cách xa bằng việc giải mã âm bàn phím nhờ modul
DTMF sẽ chuyển từ tín hiệu âm thanh sang tín hiệu dạng số và được đưa tới bộ xủ lý
trung tâm thông qua modul DTMF từ đó sẽ được xử lý và đưa ra lệnh điều khiển đóng
mở các thiết bị. Bên cạnh đó trong mô hình nhà ở dân dụng thông minh còn bố trí các
công tắc ở mỗi phòng để bật tắt thiết bị chiếu sáng bằng tay.
Ngoài ra nhờ các cảm biến nhiệt độ và cảm biến khí gas MQ2 và thông qua vi điều
khiển và modul Bluetooth sẽ hiển thị các thông số nhiệt độ phòng cũng như nồng khí gas
trên LCD, máy tính và điện thoại, để người sử dụng có thể giám sát được đảm bảo sự an
toàn trong ngôi nhà tốt nhất. Một điều đáng chú ý đó là chế độ cảnh báo sự cố rò rỉ khí
gas trong ngôi nhà thông qua chương trình cài đặt sẵn trong vi điều khiển đưa tín hiệu báo
động ra còi báo động khi khí gas vượt quá ngưỡng cho phép, đồng thời giải trừ sự nguy
hiểm cho toàn bộ hệ thống điện trong ngôi nhà nhờ tín hiệu từ vi điều khiển đưa đến Rơ le
trung gian tổng, ngắt điện lưới toàn hệ thống của ngôi nhà, đảm bảo hạn chế sự cháy nổ
do điện gây ra. Khi sự cố khí gas đã được giải trừ thì hệ thống lại tự động đóng tiếp điểm
của Rơ le trung gian tổng cấp điện lại cho toàn hệ thống trong ngôi nhà.
PHẦN 2
Android là một hệ điều hành mã nguồn mở dành cho thiết bị di động như
Smartphone, Tablet hay Netbook (thường gọi chung là thiết bị cầm tay thông minh).
Android do Google phát triển dựa trên nền tảng Linux kernel phiên bản 2.6 và các phần
mềm mã nguồn mở. 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 ứng được
các tiêu chuẩn cơ bản do Google đặt ra (như có cảm ứng chạm đa điểm, GPS, 3G,…).
Nhờ tính mở miễn phí và những ưu điểm của hệ điều hành này, ngày nay các thiết bị cầm
tay sử dụng hệ điều hành này càng nhiều và phổ biến. Và một ưu điểm nữa là hầu như các
thiết bị Android là đều được tích hợp công nghệ Bluetooth, vì thế người dùng có thể dễ
dàng kết nối được với mạch để điều khiển. Việc điều khiển trở lên thuận tiện và tiết kiệm
chi phí. Nhờ vào tính mở của hệ điều hành Android chúng ta có thể phát triển ứng dụng
một cách tối ưu, phù hợp cho bộ điều khiển.
Từ những thuận lợi đó, việc tạo một ứng dụng trên chiếc Mobile Android thật sự
dễ dàng, ứng dụng này sẽ có chức năng chính là truyền, nhận dữ liệu qua Bluetooth để
điều khiển bảng thiết bị. Và việc này được thực hiện trên những chiếc điện thoại sử dụng
hệ điều hành Android mà mọi người thường dùng hằng ngày.
Kiến trúc hệ điều hành Android gồm 4 tầng, từ dưới lên trên là tầng hạt nhân Linux
(v2.6), tầng Libraries & Android Runtime, tầng Application Framework và trên cùng là
tầng Application. Mô hình tổng thể của các thành phần bên trong hệ thống sử dụng
Android được mình họa trong (Hình 2.1).
Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di động
khác, android cho phép một ứng dụng của bên thứ ba được phép chạy nền. Các ứng dụng
đó chỉ có một hạn chế nhỏ đó là nó không được phép sử dung quá 5~10% công suất
CPU, điều đó nhằm để tránh độc quyền trong việc sử dụng CPU. Ứng dụng không có
điểm vào cố định, không có phương thức main để bắt đầu.
Vi điều khiển PIC 16F877A là loại vi điều khiển 8 bit tầm trung của hãng
Microchip, là loại vi điều khiển có kiến trúc Havard, sử dụng tập lệnh kiểu RISC
(Reduced Instruction Set Computer) với chỉ 35 lệnh cơ bản, tất cả các lệnh được thực hiện
trong một chu kỳ lệnh trừ các lệnh rẽ nhánh.
Vi điều khiển PIC 16F877 A bao gồm 40 chân vật lý được bố trí như Hình 2.2 dưới
đây. Bao gồm:
TIMER 0 là bộ đinh thời 8bit timer hoạt động ở 2 chế độ: chế độ định thời và chế
độ đếm.
TIMER 1 là bộ định thời 16 bit được tạo thành từ 2 thanh ghi 8bit TMR1L và
TMR1H.
TIMER 2 là bộ định thời 8 bit được ứng dụng để điều chế độ rộng xung (PWM).
Ngắt tràn timer 0; Ngắt RB RB4-RB7; Ngắt EXT RB0; Ngắt truyền thông
Ngoài ra PIC 16F877A còn có 2 chân băm xung PWM CCP1 và CCP2 với chu kỳ xung là
khoảng thời gian để giá trị thanh ghi TMR2 tăng đến giá trị thanh ghi PR2.
Để họ vi điều khiển PIC nói chung và PIC16F877A nói riêng hoạt động được phải
đảm bảo các chân vật lý của vi điều khiển tối thiểu phải được đấu như Hình 2.3.
Hình 2.3. Sơ đồ tối thiểu đảm bảo sự hoạt động của PIC 16F877A
Để đo nồng độ khí gas (trường hợp rò rỉ khí gas trong ngôi nhà) và hiển thị lên
LCD hay máy tính/điện thoại, trong đề tài sử dụng cảm biến khí gas MQ2 với các thông
số vật lý như sau:
+Propane
+Methane
+Alcohol
+Hydrogen
+Smoke
Việc có chân ra số Dout rất tiện cho ta mắc các ứng dụng đơn giản, không cần đến
vi điều khiển. Khi đó ta chỉ cần chỉnh giá trị biến trở tới giá trị nồng độ ta muốn cảnh báo.
Khi nồng độ MQ2 đo được thấp hơn mức cho phép thì Dout = 1, đèn Led tắt. Khi nồng độ
khí đo được lớn hơn nồng khí cho phép, Dout =0, đèn Led sáng.
Cảm biến đo nhiệt độ DS18B20 sử dụng chuẩn giao tiếp ONE WIRE (đường dẫn
tín hiệu và đường dẫn điện áp nguồn nuôi có thể dùng chung trên một dây dẫn). Ngoài ra,
nhiều cảm biến có thể dùng chung trên một đường dẫn (Rất thích hợp với các ứng dụng
đo lường đa điểm).
Các đặc điểm kỹ thuật của cảm biến DS1820 có thể kể ra một cách tóm tắt như
sau:
- Độ phân giải khi đo nhiệt độ là 9 bit . Dải đo nhiệt độ -55oC đến 125oC, từng bậc 0,5oC,
có thể đạt độ chính xác đến 0,1oC bằng việc hiệu chỉnh qua phần mềm (Có thể đạt đến các
độ phân giải 10 bit, 11 bit, 12 bit).
- Điện áp nguồn nuôi có thể thay đổi trong khoảng rộng (từ 3,0 V đến 5,5 V).
- Dòng tiêu thụ tại chế độ nghỉ cực nhỏ.
-Thời gian lấy mẫu và biến đổi thành số tương đối nhanh, không quá 200 ms.
- Mỗi cảm biến có một mã định danh duy nhất 64 bit chứa trong bộ nhớ ROM trên chip
(on chip).
- RS ( Register select):
Khi ở mức thấp, chỉ thị được truyền đến LCD như xoá màn hình , vị trí con trỏ
….Khi ở mức cao, kí tự được truyền đến LCD.
- R/W (Read/Write):
Dùng để xác định hướng của dữ liệu được truyền giữa LCD và vi điều khiển. Khi
nó ở mức thấp dữ liệu được ghi đến LCD và khi ở mức cao, dữ liệu được đọc từ LCD.
Nếu chúng ta chỉ cần ghi dữ liệu lên LCD thì chúng ta có thể nối chân này xuống GND để
tiết kiệm chân.
- E (Enable):
Cho phép ta truy cập/xuất đến LCD thông qua chân RS và R/W. Khi chân E ở mức
cao (1) LCD sẽ kiểm tra trạng thái của 2 chân RS và R/W và đáp ứng cho phù hợp. Khi
dữ liệu được cấp đến chân dữ liệu thì một xung mức cao xuống thấp phải được áp đến
chân này để LCD chốt dữ liệu trên các chân dữ liệu. Xung này phải rộng tối thiểu là
450ns. Còn khi chân E ở mức thấp (0), LCD sẽ bị vô hiệu hoá hoặc bỏ qua tín hiệu của 2
chân RS và R/W.
Đây là 8 chân dữ liệu 8 bít, được dùng để gửi thông tin lên LCD hoặc đọc nội dung
của các thanh ghi trong LCD. Các kí tự được truyền theo mã tương ứng trong bảng mã
ASCII. Cũng có các mã lệnh mà có thể được gửi đến LCD để xoá màn hình hoặc đưa con
trỏ về đầu dòng hoặc nhấp nháy con trỏ.
Chế độ 4 bit (chỉ dùng 4 chân D4 đến D7 để truyền dữ liệu) và chế độ 8 bit (dùng
cả 8 chân dữ liệu từ D0 đến D7), ở chế độ 4 bit, khi truyền 1 byte, chúng ta sẽ truyền nửa
cao của byte trước, sau đó mới truyền nửa thấp của byte.
Trước khi truyền các kí tự ra màn hình LCD ta cần thiết lập cho LCD như chọn
chế độ 4 bit hoặc 8 bit, 1 dòng hay 2 dòng , bật/tắt con trỏ…
Để đọc thanh ghi lệnh, ta phải đặt RS=0 và R/W =1 và xung cao xuống thấp cho
bít E. Sau khi đọc thanh ghi lệnh, nếu bit D7(cờ bận ) ở mức cao thì LCD bận, không có
thông tin hay lệnh nào được xuất đến nó. Khi D7=0 mới có thể gửi lệnh hay dữ liệu đến
LCD. Chúng ta nên kiểm tra bit cờ bận trước khi ghi thông tin lên LCD.
Bluetooth là công nghệ không dây cho phép các thiết bị điện, điện tử giao tiếp với
nhau trong khoảng cách ngắn, bằng sóng vô tuyến qua băng tần chung ISM (Industrial,
Scientific, Medical) trong dãy tầng 2.40- 2.48 GHz. Đây là dãy băng tầng không cần
đăng ký được dành riêng để dùng cho các thiết bị không dây trong công nghiệp, khoa học,
y tế.
Bluetooth được thiết kế nhằm mục đích thay thế dây cable giữa máy tính và các
thiết bị truyền thông cá nhân, kết nối vô tuyến giữa các thiết bị điện tử lại với nhau một
cách thuận lợi với giá thành rẻ. Khi được kích hoạt, Bluetooth có thể tự động định vị
những thiết bị khác có chung công nghệ trong vùng xung quanh và bắt đầu kết nối với
chúng. Nó được định hướng sử dụng cho việc truyền dữ liệu lẫn tiếng nói.
Bluetooth được thiết kế để hoạt động ở mức năng lượng rất thấp. Đặc tả đưa ra 3
mức năng lượng từ 1mW tới 100 mW
- Mức năng lượng 1 (100mW): Được thiết kế cho những thiết bị có phạm vi hoạt
động rộng (~100m).
- Mức năng lượng 2 (2.5mW): Cho những thiết bị có phạm vi hoạt động thông
thường (~10m)
- Mức năng lượng 3 (1mW): Cho những thiết bị có phạm vi hoạt động ngắn
(~10cm).
Ưu điểm:
- Tiêu thụ năng lượng thấp, cho phép ứng dụng được trong nhiều loại thiết bị, bao
gồm cả các thiết bị cầm tay và điện thoại di động.
- Giá thành hạ (Giá một chip Bluetooth đang giảm dần, và có thể xuống dưới mức
5$ một đơn vị).
+ Khoảng cách giữa hai thiết bị đầu cuối có thể lên đến 10m ngoài trời, và 5m
trong tòa nhà.
+ Khoảng cách thiết bị đầu cuối và Access point có thể lên tới 100m ngoài trời và
30m trong tòa nhà.
- Bluetooth sử dụng băng tần không đăng ký 2.4Ghz trên dãy băng tần ISM. Tốc
độ truyền dữ liệu có thể đạt tới mức tối đa 1Mbps (do sử dụng tần số cao) mà các thiết bị
không cần phải thấy trực tiếp nhau (light-of-sight requirements).
- Dễ dàng trong việc phát triển ứng dụng: Bluetooth kết nối một ứng dụng này với
một ứng dụng khác thông qua các chuẩn “Bluetooth profiles”, do đó có thể độc lập về
phần cứng cũng như hệ điều hành sử dụng.
- Bluetooth được dùng trong giao tiếp dữ liệu tiếng nói: có 3 kênh để truyền tiếng
nói, và 7 kênh để truyền dữ liệu trong một mạng cá nhân.
- An toàn và bảo mật: được tích hợp với sự xác nhận và mã hóa ( Build in
authentication and encryption)
- Tính tương thích cao, được nhiều nhà sản xuất phần cứng cũng như phần mềm hỗ
trợ.
- Sử dụng “Frequency Hopping” giúp chống nhiễu giảm va chạm sóng tối đa.
Nhược điểm:
- Do sử dụng mô hình adhoc nên không thể thiết lập các ứng dụng thời gian thực.
- Khoảng cách kết nối còn ngắn so với các công nghệ mạng không dây khác.
- Số thiết bị active, pack cùng lúc trong một piconect còn hạn chế.
- Bị nhiễu bởi một số thiết bị sử dụng sóng radio khác, các trang thiết bị khác.
Mục tiêu đạt ra là kết nối các thiết bị điện gia dụng thông qua khối xử lý trung tâm
có sự điều khiển từ xa bởi thiết bị sử dụng hệ điều hành Android và có giao tiếp không
dây Bluetooth cơ bản. Mô hình tổng thể hệ thống được trình bày như dưới đây (Hình 2.8).
Hình 2.7. Mô hình tổng quan hệ thống điều khiển thiết bị thông qua Bluetooth
- Cấu hình Slaver là cấu hình ban đầu, không thay đổi được.
- Tốc độ: Asynchronous: 2.1Mbps(Max)/160kbps
Synchronous: 1Mbps/1Mbps.
- Pass: 1234.
Hình 2.8. Bảng tần số âm thanh của bàn phím điện thoại di động.
+ MT8870 là một thiết bị thu tín hiệu DTMF có tích hợp sẵn bộ lọc tín hiệu DTMF
và giải mã chuyển đổi 16 mã DTMF thành một số 4bit dạng số ở đầu ra :
Hình 2.9. Bảng chuyển đổi 16 mã DTMF thành 4 bit dạng số đầu ra
Ứng dụng :
- Điều khiển từ xa.
- Thiết bị thu trong hệ thống viễn thông
- Hệ thống nhắn tin vô tuyến.
- Hệ thống thẻ tín dụng.
- Máy trả lời điện thoại tự động.
Hình 2.11. Modul giải mã tín hiệu DTMF ngoài thị trường.
IC L298 là một IC tích hợp nguyên khối gồm 2 mạch cầu H bên trong. Với điện áp
làm tăng công suất nhỏ như động cơ DC loại vừa…
Chức năng các chân của L298:
+ 4 chân INPUT: IN1, IN2, IN3, IN4 được nối lần lượt với các chân 5, 7, 10, 12 của
L298. Đây là các chân nhận tín hiệu điều khiển.
+ 4 chân OUTUT: OUT1, OUT2, OUT3, OUT4 (tương ứng với các chân INPUT)
được nối với các chân 2, 3,13,14 của L298. Các chân này sẽ được nối với động cơ.
Hai chân ENA và ENB dùng để điều khiển mạch cầu H trong L298. Nếu ở mức
logic “1” (nối với nguồn 5V) cho phép mạch cầu H hoạt động, nếu ở mức logic “0” thì
mạch cầu H không hoạt động.
Với bài toán trên, cách điều khiển chiều quay với L298:
- Khi ENA = 1:
Trong bài này mình sử dụng module L298 V3 để điều khiển chiều quay của động
cơ DC.
Hình 2.12. Module điều khiển động cơ L298 ngoài thị trường.
Thông số kỹ thuật :
Module L298 có thể điều khiển 2 động cơ DC hoặc 1 động cơ bước, có 4 lỗ nằm ở 4
góc thuận tiện cho người sử dụng cố định vị trí của module.
Có gắn tản nhiệt chống nóng cho IC, giúp IC có thể điều khiển với dòng đỉnh đạt
2A.
IC L298N được gắn với các đi ốt trên board giúp bảo vệ vi xử lý chống lại các dòng
điện cảm ứng từ việc khởi động/ tắt động cơ.
Thông số kĩ thuật:
Phương pháp này khá mới mẻ, vì toàn bộ quá trình lập trình tạo giao diện, lập trình
hoàn toàn ở dạng kéo thả đồ họa trực quan, dù không biết viết code, ngại lập trình cũng
hoàn toàn có thể học được. Đây là ứng dụng lập trình được Google và đại học MIT triển
khai và hỗ trợ.
Điểm nổi bật của App Inventor là nó cho phép chúng ta vừa thiết kế ứng dụng và
chạy thử ứng dụng đó trực tiếp trên chiếc điện thoại Android đang được kết nối với máy
tính. Tất cả các công đoạn viết phần mềm đều thông qua giao diện đồ họa trực quan theo
kiểu WYSIWYG (What you see is what you get) mà không cần bạn phải sử dụng tới một
đoạn mã nào. Các chỉ dẫn trên màn hình đủ dễ hiểu để bạn có thể tiến hành viết phần
mềm ngay mà không nhất thiết phải xem qua các bản hướng dẫn sử dụng.
Tuy có cách dùng đơn giản nhưng App Inventor khá "hào phóng" khi cho phép
truy xuất đến các chức năng thường dùng của điện thoại như chức năng tự động nhắn tin,
xác định vị trí hiện tại qua GPS và kể cả giao tiếp với các ứng dụng trên nền web như
Amazon, Facebook hay Twitter.
Vào trang web “APP INVENTOR” MIT APP INVENTOR Create apps!
(Trang web sẽ truy cập mặc định theo gmail đang sử dụng của máy tính) Allow
continue projects (trên Tabar) Start new project (Lưu “NHATHONGMINHK49”
làm tên Project), sau đó trên màn hình sẽ hiển thị cửa sổ giao diện “Creen1” là cửa sổ để
thao tác gắn các nút ấn…
+ Bên cửa sổ trái “ User interface” chọn “ List picker” Trên mục Properties bên
phải cửa sổ màn hình vào “Text” gán tên nút ấn, ví dụ: nút ấn “ TÌM THIẾT BỊ” { phần
này nhằm tạo nút ấn để khi điện thoại kết nối với thiết bị thực qua module Bluetooth… }.
+ Tiếp tục bên cửa sổ trái “ User interface” chọn “ Lable” Trên mục Properties
bên phải cửa sổ màn hình vào “Text” gán tên nhãn, ví dụ: Nhãn “ HỆ THỐNG NHÀ
THÔNG MINH K50 ” { phần này nhằm tạo tên của mô hình điều khiển}.
+ Tiếp tục bên cửa sổ trái “User interface” chọn “Lable” Trên mục Properties
bên phải cửa sổ màn hình vào “Text” ta xóa kí tự trong Text, để khi có thông tin từ vi điều
khiển gửi lên thì mới hiển thị.{ phần này nhằm tạo vùng chứa dữ liệu gửi từ vi điều khiển
lên như: thông tin nhiệt độ, nồng độ khí gas…}.
+ Để chọn ảnh nền cho giao diện: Trên mục “Properties” bên phải cửa sổ màn
hình vào “ Back ground image”, sau đó chọn ảnh nền và OK.
+ Để tạo khung chứa các nút ấn điều khiển: Bên cửa sổ trái “ User interface” chọn
“ Lay out” Chọn “ Table Arrangement” , sau đó sửa số hàng, số cột cho phù hợp với
khung để tạo giao diện. {Thông thường cột: 3, hàng: 8}.
+ Để lấy các nút ấn thì tại “User interface ” chọn: “BUTTON” và thay đổi thuộc
tính các nút ấn, cần bao nhiêu nút ấn điều khiển thiết bị thì lấy bấy nhiêu, sau đó sắp đặt
sao cho hợp lý trong khung vừa chọn ở bước trên.
+ Để cập nhật thông tin liên tục từ vi điều khiển lên máy điện thoại hoặc ngược lại
chọn “SENSOR” Clock. Chú ý sau khi gắp thả vào khung Creen thì ngoài khung
Creen phía dưới sẽ xuất hiện giao diện của Clock1.
Bước 1: Tại cửa sổ “Blocks” “List Picker1, kéo ra cửa sổ Viewer lấy “ When
List Picker1. Before picking do” màu vàng (1) lấy “SET LIT PICKER 1.ELEMENTS
To” màu xanh (2) và đặt (2) vào lòng của (1).
Bước 2: Vào “Bluetooth Client 1” lấy “Bluetooth Client 1.Addresses And Names”
màu xanh(3), sau đó lấy (3) đặt vào (2).
{Việc kết nối (1), (2), (3) nhằm mục đích để hiển thị các thiết bị kết nôi với giao
diện trên điện thoại qua Bluetooth}
Bước 3: vào tiếp “LIST PICKER1” lấy “When LIST PICKER1. After picking do”
màu vàng(1), tiếp tục lấy “set Listpicker1.selection to”màu xanh (2) và đưa (2) vào (1).
Tiếp tục vào “Bluetooth Client1” lấy “Call. Bluetooth Client 1.Connect address”
màu tím(3), đưa (3) vào (2).
Tiếp tục vào “LIST PICKER1” lấy “Listpicker1.selection” màu xanh(4), đưa (4)
vào (3).
{Việc kết nối (1), (2), (3),(4) nhằm mục đích cho phép kết nối với thiết bị nào qua
Bluetooth }.
Tiếp tục vào “Built in” “Control” lấy “if.then” màu vàng(2), thả (2) vào lòng
(1).
Tiếp theo vào “Bluetooth Client 1” lấy “Bluetooth Client 1.isconnected” màu xanh
(3), sau đó đặt (3) vào “if” của (2)
Vào “Set Lable 2” lấy “Set Lable 2.text to” màu xanh (4) sau đó đặt (4 )vào
“then” của (2)
Vào “Bluetooth Client 1” lấy “Call.Bluetooth Client 1.Receivetext number of
bytes” màu tím (5) đặt vào lòng (4), sau đó tiếp tục lấy “Call.Bluetooth Client 1.Bytes
Available to Receive” màu tím(6) đặt vào lòng (5).
{Bước 4 mục đích để tạo tràn timer, mỗi lần tràn timer sẽ hiển thị thông số nhiệt
độ, khí gas…nhận được từ cảm biến thông qua vi điều khiển gửi lên trên giao diện}.
Vào “Bluetooth Client 1” lấy“Call. Bluetooth Client 1. Sent Text text” màu tím
(2), đặt (2) vào (1).
Vào “Built in” “Text” lấy cái đầu tiên màu hồng (3), sau đó điền ký tự để
truyền thông ví dụ như: 1 hoặc 2, 3…
Để tạo code cho các nút còn lại tại cửa sổ Block ta chuột phải vào code của
”Button 1” chọn “Duplicate” và sửa các thuộc tính cho các nút tiếp theo.
Chú ý: Để căn chỉnh các khung chữ ra giữa màn hình ta kích chuột trái vào màn
hình “Creen1” sau đó đến mục “AlignHorizontal” chọn “center
Vào “Build” trên Tabar App (save. Apk to my computer), sau đó trang web tự
down load và tạo ra file.apk, tiếp tục copy File.apk này vào điện thoại là xong.
Hình 2.18. Build ứng dụng trên các môi trường giả lập
PHẦN 3
Từ yêu cầu bài toán đã đưa ra ở phần 1, trong phần này tập trung thiết kế mạch
điều khiển bao gồm cả phần cứng và phần mềm dưới đây.
Mục đích chính của đề tài xây dựng một hệ thống điều khiển thiết bị từ xa thông
qua Bluetooth, wifi và tín hiệu giải mã âm thanh DTMF. Hiểu rõ được việc kết nối và trao
đổi dữ liệu giữa máy tính/điện thoại Smartphone sử dụng hệ điều hành Android với
Module Bluetooth HC – 06, và Module giải mã âm thanh DTMF. Từ đó ta áp dụng vào
bài toán thực tế, hệ thống sẽ cho phép người dùng có thể điều khiển các thiết bị điện bằng
Smartphone Android thông qua kết nối Bluetooth, wifi hoặc DTMF. Các thiết bị được
điều khiển ON/OFF nhờ mạch Rơle được điều khiển bởi Vi điều khiển Pic 16F877A.
RƠLE
MODUL VI ĐIỂU KHIỂN
HC06+WIFI
06
PIC16F877A
KHỐI
MODUL
NGUỒN
DTMF
Khối nguồn
Là khối dùng để tạo ra dòng điện ổn định cung cấp cho toàn mạch. Mạch dùng
nguồn từ 6V đến 24VDC, IC7805 dùng để ổn định dòng 5v cấp cho vi điều khiển và các
khối khác, Diode để bảo vệ mạch khi cắm ngược âm dương; C6, C7, C4 là tụ liên lạc và
tụ bù điện áp.
Khối Reset:
Khối RESET có tác dụng đưa vi điều khiển về trạng thái ban đầu. Khi nút Reset
được ấn điện áp +5V từ nguồn được nối vào chân Reset của vi điều khiển được chạy
thẳng xuống đất lúc này điện áp tại chân vi điều khiển thay đổi đột ngột về 0, VĐK nhận
biết được sự thay đổi này và khởi động lại trạng thái ban đầu cho hệ thống.
Là khối tạo dạo động cho vi điều khiển hoạt động. Trong mạch trên sử dụng thạch
anh 20Mhz.
Có chức năng nhận tín hiệu điều khiển từ vi điều khiển pic 16f877A được đưa vào
ic cách ly quang và ic này có nhiệm vụ mở dòng cho Transistor NPN Q4 để đóng tắt
Rơle, cấp điện 220VAC cho thiêt bị điện hoạt động.
J7
1 J1
U1
9
8
7
6
5
4
3
2
1
2 1
3 TX 2 J5
4 RX 3 2 40 10
RA0/AN0 RB7/PGD
4 3 39 9
RA1/AN1 RB6/PGC
5 4 38 8
J6 6 5
RA2/AN2/VREF- RB5
37 7
RA3/AN3/VREF+ RB4
5 7 6 36 6
RA4/T0CKI RB3/PGM
4 8 7 35 5
RA5/AN4/SS RB2
3 34 4
RB1
2 33 3
1 J2 RB0/INT
2
1 1
D1 R1 2
3 8
4 9
RE0/AN5/RD J3
10k RE1/AN6/WR
5 10 26 RX 10
RE2/AN7/CS RC7/RX/DT
25 TX 9
RC6/TX/CK
1 24 8
MCLR/Vpp/THV RC5/SDO
23 7
RC4/SDI/SDA
18 EN 6
C1 RC3/SCK/SCL
17 PWM1 5
RC2/CCP1
13 16 PWM2 4
OSC1/CLKIN RC1/T1OSI/CCP2
15 T1CK 3
RC0/T1OSO/T1CKI
22nF 2
X1 1
CRYSTAL 14
C2 OSC2/CLKOUT
J4
30 10
RD7/PSP7
22nF 11/32 29 9
VDD RD6/PSP6
28 LD4 8
RD5/PSP5
27 LD5 7
RD4/PSP4
C3 C4 RD3/PSP3
22 LD6 6
21 LD7 5
10nF 100nF RD2/PSP2
20 LE 4
RD1/PSP1
? 19 LRS 3
GND RD0/PSP0
2
1
PIC16F877A
3.1.2. Hướng dẫn các bước thiết kế trên phần mềm Proteous và Altium
a. Hướng dẫn mô phỏng trên Proteous
- Cài đặt Proteus xong, vào Start menu, khởi động ISIS 7 profesionnal.
Thanh số 1
Cụm 1: Tạo nhanh một trang thiết kế, mở trang thiết kế đã tạo, lưu trang thiết kế
Cụm 4: Zoom linh kiện về giữa trang, phóng to trang, thu nhỏ trang, fix trang,
zoom vùng tùy chọn
Thanh số 2
1. Component, cho phép chọn linh kiện sau khi nhấp nút P ở hộp thoại DEVICES
3.Tạo nhãn: nhấp trái chuột lên dây dẫn và đặt tên
5.Tạo bus:nhấp trái kéo đến điểm khác, lại nhấp trái rồi nhấp phải.Phải đặt label cho
cùng tên cho các dây dẫn sử dụng chung bus
13.Voltage Probe, giống vôn kế thường nhưng chỉ có 1 đầu dây, hiện số trực tiếp
16.Vẽ đường 2D
17.Vẽ hộp 2D
20.Vẽ đa giác 2D
Thanh số 3
Quay trái, phải, đối xứng chân ngang dọc linh kiện trên
hộp hiển thị hình linh kiện
Thanh số 4
Đầu tiên chúng ta sẽ lấy tất cả các linh kiện cần dùng ra hộp thoại DEVICES, có 2
cách:
- Nhấp vào biểu tượng số 1 trên thanh số 2, rồi nhấp vào chữ P ở hộp thoại
DEVICES
Gõ tên linh kiện cần lấy vào ô Keywords (Ví dụ Pic16F877 hay 16f đều được,
miễn sao có từ trong tên linh kiện và thây nó xuất hiện là được)
Hình linh kiện và sơ đồ chân mạch in hiện ra bên cạnh khi bạn nhấp vào dòng chứa
tên linh kiện, để chọn, bạn nhấp OK hoặc nhấp đúp vào tên linh kiện, lúc này trên hộp
thoại DEVICES sẽ xuất hiện tên linh kiện đã chọn:
Tương tự như vậy ta gõ 7SEG để chọn led 7 thanh, minres10k – 100R để lấy điện
trở. LED chọn màu green red và yellow. . . .
Để lấy linh kiện ra trang thiết kế, nhấp vào tên linh kiện trong hộp thoại
DEVICES, dùng thanh công cụ thay đổi cho phù hợp sau đó sang nhấp trái
vào trang thiết kế để đặt linh kiện, ví dụ ta đặt con Pic trước:
- Ta nhấp phải vào nó (lúc này nó có màu đỏ), chọn tiếp biểu tượng move trong
cụm số 6 trên thanh số 1 (nút thứ 2 tính từ trái qua), lúc này linh kiện dính
và di chuyển theo chuột, di chuyển đến vị trí thích hợp rồi nhấp trái là xong
- Ta nhấp phải vào nó (lúc này nó có màu đỏ), sau đó nhấp và giữ chuột trái, kéo
đến vị trí mong muốn và thả ra, thế là ok.
Tương tự cho các linh kiện còn lại, các bạn đưa hết ra trang thiết kế, nguồn và đất
các bạn lấy ra bằng cách nhấp vào biểu tượng trên thanh công cụ số 2, lúc này hộp
thoại DEVICES sẽ hiện ra danh sách linh kiện trong đó có nguồn và đất, các bạn lấy ra
trang thiết kế như thường.Để trở về danh sách linh kiện ban đầu, bạn nhấp vào biểu tượng
trên thanh công cụ số 2, di chuyển các linh kiện đến vị trí thích hợp để chuẩn bị đi
dây, ta được:
Tương tự với các linh kiện còn lại ta lấy lần lượt a rồi sắp xếp sao cho hợp lí và
đẹp mắt
Tiến hành nối dây cho đúng sơ đồ nguyên lí, có 2 cách đi dây:
- Cách 1: bám chuột trái vào đầu dây cần nối sau đó di chuột đến đích cần nối
Tiếp theo t bấm công cụ sau đó kích chuột trái vào các đầu nối với nhau ghi
tên giống nhau là được
Nối chân x1 và x2 với chân 13,14 của vi điều khiển thì ra làm như trong hình.
Sau khi thực hiện xong cho từng linh kiện và nối dây theo đúng nguyên lí theo các
bước trên ta được mạch mô phỏng như sau:
Để nạp file hex cho pic để mô phỏng, nhấp phải rồi nhấp trái lên con Pic, để có hộp
thoại Edit Component sau:
Program file: bấm vào hình tệp tin rồi chọn file hex
Processor clock frequency: chọn theo đúng tần số của thạch anh đã chọn
+ Chạy mô phỏng
Khâu thiết kế mạch đã hoàn tất, mô phỏng xem con Pic có làm được những gì
mình muốn hay không.Dùng thanh điều khiển để bắt đầu.
Cùng với sự phát triển nhanh chóng của máy tính, CAD (Computer Aided Design)
ngày càng hoàn thiện và được ứng dụng trong hầu hết các lĩnh vực của khoa học kỹ thuật.
Đối với chuyên nghành Điện tử, nhiều phần mềm CAD cho phép vẽmạch, mô phỏng
mạch điện và chuyển sang mạch in một cách nhanh chóng và hiệu quảnhư:
OrCAD/PSPICE, EAGLE, Mutisim Workbench, MicroSim, Altium Designer,…
Altium Designer, phiên bản trước kia có tên gọi quen thuộc là Protel DXP, là một
trong những công cụ vẽ mạch Điện tử mạnh nhất hiện nay. Được phát triển bởi hãng
Altium Limited, Altium Designer (Altium) mang lại cho người dùng một môi trường làm
việc hết sức chuyên nghiệp.
+Vẽ sơ đồ nguyên lí
Khởi động chương trình từ shortcut trên destop màn hình nền hoặc từ Menu Start
>> All programs >>Altium Designer 6 >> Altium Designer 6. Khi đó cửa sổ làm việc của
Altium Designer có dạng như sau:
Để tạo sơ đồ nguyên lý trước hết ta cần tạo 1 project (Dự án) mới:
Từ menu File >> New >> Project >> PCB Project Hoặc bằng các phím tắt: F, N, J,
(Việc sử dụng phím tắt sẽ giúp bạn thiết kến hanh hơn. Các phím tắt của menu tương ứng
được gạch chân dưới menu hoặc lệnh tương ứng).
Ta có thể lưu lại Project này với tên mới: bấm phải chuột vào PCB_Project1.PrjPCB
một menu mới xuất hiện, chọn Save project tại cửa sổ hiện ra chọn nơi lưu giữ project và
đặt tên mới cho project tại mục File name.
Bây giờ ta thêm bản vẽ sơ đồ nguyên lý mạch điện vào project: bấm phải chuột
vào dengiaothong.PrjPCB tại menu xuất hiện chọn: Add New to Project, tại menu con
hiện ra chọn tiếp Schematic (Sơ đồnguyên lý).
Môi trường làm việc của Altium tự động chuyển sang môi trường vẽ mạch nguyên lý.
Từ yêu cầu thiết kế của đề tài ta thiết kế ra mạch gồm các phần tử sau:
- 1 PIC16F877A
- 2 tụ gốm 22p
- led
- Các jumper
Ta tiến hành lấy các linh kiện này từ thư viện của Altium.
Để tiến hành lấy linh kiện ta di chuyển chuột đến menu Libraries ở góc phải, nếu
không thấy menu này thì vào menu: Designe> Browse Library (Ấn phím tắt: D, B), sau
đó kéo thả cửa sổ này vào góc phải của chương trình (ấn và giữ chuột trái, rồi thả vào góc
phải), hoặc ấn vào nút, khung Libraries sẽ ở chế độ tự động Nn, menu Librariesxuất hiện
bên góc phải để cho ta dễ thao tác. Cửa sổ Libraries xuất hiện.
Để lấy điện trở: ta gõ Res1 vào khung tên linh kiện. Hình dạng trong sơ đồ nguyên
lý và chân cắm (footprint) sẽ xuất hiện bên dưới. Nhấp Place Res1 để lấy điện trở. Lúc
này bên cạnh con trỏ chuột có sợi tóc hình chữ thập (crosshair) đồng thời linh kiện Res1
di chuyển theo con trỏ này.
Trước khi chuột trái 1 lần nữa để đặt res1 vào mạch nguyên lý: bấm phím Tab để
xuất hiện hộp thoại Component Properties chứa các thông số và tùy chọn về linh kiện.
- Tụ hóa gõ “cx”
- IC7805 gõ “lm7805”
- Role “RELAY”
Sau khi đã lấy xong linh kiện ta nối các chân lại theo đúng sơ đồ nguyên lí, ta được
hình sau:
Tiếp theo ta đặt tên cho các linh kiện sau cho không trùng nhau bằng cách
vào tools >> annotate schematics >> 1 của sổ annotate hiện ra
ta bấm vào update changes lists & accept changes >> close
Từ cửa sổ project sẽ có tên mới là: namePrjPCB. Để chuyển sang vẽ mạch in tại menu
xuất hiện chọn: Add New to Project, tại menu con hiện ra chọn tiếp PCB (mạch in ).
Một bản vẽ dạng mạch in có tên PCB1.PcbDoc xuất hiện ở cửa sổ quản lý các bản
vẽ. Ta thực hiện lưu lại trong cùng 1 foder
Bây giờ ta Chuyển từ mạch nguyên lý Nguyenly.SchDoc sang mạch in bằng cách,
ta trở lại bản vẽ Nguyenly.SchDoc, từ menu Design >> import changes from PCB
sau khi chuyển và sắp xếp các linh kiện sao cho hợp lí ta được như hình sau:
Nhấn nút Save để lưu bản vẽ. Để chọn độ dày đường mạch in và các thiết lập khác,
vào menu Design > Rules (phím tắt D,R) để hiện hộp thoại PCB Rules and Constraints
Editor:
Chọn Design Rules, chọn tiếp Routing >> Width >>Width, bên phía phải, tại
khung Constraints lần lượt điền 20mil vào các mục Min Width, Preferred Width, Max
Width, rồi nhấn Apply. Tiếp theo, chuyển sang mục Electrical >> Clearance >>Clearance:
bên phía phải, khung Constraints, mục Minimum Clearance nhập lại giá trị 20mil vào:
Chuyển sang mục Routing Layers >> Routing Layers, ở phía bên phải, mục
Constraints, ta thấy có tuỳ chọn Enable Layers: tùy chọn những lớp mạch in, do ta đã thiết
lập mạch in 2 mặt, nên sẽ thấy có 2 lớp: Top layer và Bottom layer, lớp Top layer ta sẽ
chỉ dùng để cắm linh kiện, và sẽ cho đi dây ở mặt dưới, nên ta bỏ chọn ở cột Allow
Routing đối với Top Layer: khi chọn được kích thước dây ta thực hiện xắp linh kiện và đi
dây cho mạch
Vào menu File > Smart PDF (phím tắt F,M), cửa sổ Smart PDFhiện ra, nhấn Next,
cửa sổ tiếp theo hiện ra Choose Export Target có 2 lựa chọn:Current Project: lựa chọn này
cho phép ở file pdf tạo ra tất cả các bản vẽ trong Project Baitap1.PrjPCB
Current Document: lựa chọn này thì file pdf tạo ra chỉ có bản vẽ của tài liệu hiện
thời, bản vẽ mà bạn chọn. Ở đây chọn Current Project. Phần Output File Name để đặt tên
file pdf sẽ tạo ra và nơi lưu file này,sau đó nhấn Next để hiện cửa sổ tiếp theo với các lựa
chọn cụ thể tiếp theo. Hoặc ta có thể nhấn Finish để kết thúc.
Với yêu cầu bài toán đặt ra như ở phần 1ta có sơ đồ nguyên lý toàn hệ thống được
thiết kế trên phần mềm Altium designer như sau:
+ Mạch kết nối giữa mạch điều khiển và mạch chấp hành:
N N N NC C NO NC C NO N N
L L L L L
V2 C2 V3 C3 V4 C4 V6 V7
V1 C1 CBAS V5 +12V GND
RD1 RD0 RD3 RD2 RD5 RC1 RC0
MẠCH ĐIỀU KHIỂN PICK16F887A
Hình 3.8.1. Sơ đồ kết nối giữa mạch điều khiển và mạch chấp hành 1(Mô hình điều khiển
qua thiết bị androi)
Nguồn Đ1 Đ2 Đ3 Đ4
N L D1 D2 D3 D4 NC C NO NC C NO
N N N NC C NO NC C NO N N
L L L L L
V2 C2 V3 C3 V4 C4 V6 V7
V1 C1 CBAS V5 +12V GND
RD1 RD0 RD3 RD2
MẠCH ĐIỀU KHIỂN PICK16F887A
Hình 3.9.2. Sơ đồ kết nối giữa mạch điều khiển và mạch chấp hành 2(Mô hình điều khiển
bằng giọng nói)
Mạch in toàn hệ thống sau khi thiết kế hoàn chỉnh và được quan sát 3D như hình
dưới đây:
Sau khi lắp đặt hoàn thiện mô hình hệ thống nhà thông minh như hình dưới đây:
3.2.1. Lưu đồ thuật toán chương trình điều khiển nhà thông minh
Lưu đồ thuật toán chương trình điều khiển nhà thông minh theo yêu cầu của bài
toán đã đề xuất trên vi điều khiển PIC16F877A như sau:
a. Code chương trình điều khiển nhà thông minh bằng thiết bị Androi
(sử dụng APP INVENTOR ).
#int_RDA
void RDA_isr(void)
{
char cmd = getc();
switch (cmd)
{
case '1':
output_high(phong_tam);
break;
case '2':
output_low(phong_tam);
break;
case '3':
output_high(phong_ngu);
break;
case '4':
output_low(phong_ngu);
break;
case '5':
output_high(phong_khach);
break;
case '6':
output_low(phong_khach);
break;
case '7':
output_high(phong_bep);
break;
case '8':
output_low(phong_bep);
break;
case 'b':
output_low(DC1); // mo CUA
output_high(DC2);
break;
case 'a':
output_low(DC2); // dong CUA
output_high(DC1);
break;
case '0':
output_low(DC3); // mo CUA
output_high(DC4);
break;
case '9':
output_high(DC3);
output_low(DC4); // dong CUA
break;
case 'c':
output_high(phong_lv);
output_high(phong_ngu);
output_high(phong_khach);
output_high(phong_bep);
break;
case 'd':
output_low(phong_tam);
output_low(phong_ngu);
output_low(phong_khach);
output_low(phong_bep);
break;
}
}
//*** CHUONG TRINH CHINH ***
void init(void)
{
output_low(phong_tam);
output_low(phong_ngu);
output_low(phong_khach);
output_low(phong_bep);
output_low(AT_tong);
output_low(coi);
set_pwm1_duty(255);
set_tris_b(0xFF);
set_tris_a(0x01);
lcd_init();
set_tris_d(0xff);
set_tris_c(0x80);
set_tris_e(0x00);
set_timer1(50000);
enable_interrupts(global);
enable_interrupts(INT_RDA);
setup_timer_0(rtcc_internal|rtcc_div_64);
set_timer0(200);
enable_interrupts(int_timer0);
ext_int_edge(H_TO_L);
}
// chuong trinh con doc nhiet do khi gas
void nhiet_do_khi_ga()
{
setup_adc(adc_clock_internal);
set_adc_channel( 0 );
setup_adc_ports(AN0);
khiga=read_adc();
khiga=-(khiga*0.48-7.8);
khiga=-khiga;
nhietdo=ds18b20_read();
lcd_putcmd(line_1);
Printf(lcd_putChar,"NHIET DO: %3.1f ",nhietdo);
lcd_putChar(223);
lcd_putcmd(line_2);
Printf(lcd_putChar,"KHI GA: %3.1f ",khiga);
lcd_putchar(" %");
Printf(" ^_^ khi ga : %3.1f nhiet do : %3.1f ^_^ \r",khiga,nhietdo, );
if (khiga>=200)
{ output_high(coi);
delay_ms(200);}
else{
output_low(coi);
delay_ms(5000);
{output_low(AT_tong);}}
if (khiga>=320)
{output_high(AT_tong);
delay_ms(100); }
// CHUONG TRINH GIAO TIEP VOI MODULE DTMF8870
if((input(Q4)==1) && (input(Q3)==0) && (input(Q2)==0) &&
(input(Q1)==0))
{ output_high(phong_khach);//1
break; }
if((input(Q4)==0) && (input(Q3)==1) && (input(Q2)==0) &&
(input(Q1)==0))
{ output_low(phong_khach);//2
break; }
if((input(Q4)==1) && (input(Q3)==1) && (input(Q2)==0) &&
(input(Q1)==0))
{ output_high(phong_ngu);//3
break; }
if((input(Q4)==0) && (input(Q3)==0) && (input(Q2)==1) &&
(input(Q1)==0))
{ output_low(phong_ngu);//4
break; }
if((input(Q4)==1) && (input(Q3)==0) && (input(Q2)==1) &&
(input(Q1)==0))
{ output_high(phong_bep); // 5
break; }
if((input(Q4)==0) && (input(Q3)==1) && (input(Q2)==1) &&
(input(Q1)==0))
{
output_low(phong_bep);//6
break;
}
if((input(Q4)==1) && (input(Q3)==1) && (input(Q2)==1) &&
(input(Q1)==0))
{
output_high(phong_tam); //7
break;
}
if((input(Q4)==0) && (input(Q3)==0) && (input(Q2)==0) &&
(input(Q1)==1))
{
output_low(phong_tam);//8
break;
}
if((input(Q4)==1) && (input(Q3)==0) && (input(Q2)==0) &&
(input(Q1)==1))
{
output_low(DC1); // mo cua
output_high(DC2); // 9
break;
}
if((input(Q4)==0) && (input(Q3)==1) && (input(Q2)==0) &&
(input(Q1)==1))
{
output_low(DC2); // 0
output_high(DC1); // dong cua
break;
}
}
void main()
{
output_low(pin_E1);
setup_adc(ADC_CLOCK_DIV_2);
init();
while(true)
{
nhiet_do_khi_ga();
}
}
b. Code chương trình điều khiển nhà thông minh bằng giọng nói.
break;
case '4':
output_low(TB2);
break;
case '5':
output_high(TB3);
break;
case '6':
output_low(TB3);
break;
case '7':
output_high(TB4);
break;
case '8':
output_low(TB4);
break;
case '9':
{
output_high(TB1);
output_high(TB2);
output_high(TB3);
output_high(TB4);
}
break;
case '0':
{
output_low(TB1);
output_low(TB2);
output_low(TB3);
output_low(TB4);
}
break;
case 'a':
a=~a;
if(a==1)
{
output_high(TB1);
}
if(a==0)
{
output_low (TB1);
}
break;
case 'b':
b=~b;
if(b==1)
{
output_high(TB2);
}
if(b==0)
{
output_low (TB2);
}
break;
case 'c':
c=~c;
if(c==1)
{
output_high(TB3);
}
if(c==0)
{
output_low (TB3);
}
break;
case 'd':
d=~d;
if(d==1)
{
output_high(TB4);
}
if(d==0)
{
output_low (TB4);
}
break;
}
}
void init(void)
{
a=0;
b=0;
c=0;
d=0;
// output_low(TB1);
// output_low(TB2);
// output_low(TB3);
// output_high(TB4);
set_tris_a(0x01);
lcd_init();
// set_tris_c(0x80);
set_tris_e(0x00);
enable_interrupts(GLOBAL); //Cho phep ngat
enable_interrupts(INT_RDA);//Cho phep ngat nhan du lieu noi tiep
}
void nhiet_do()
{
nhietdo=ds18b20_read();
lcd_putcmd(line_2);
Printf(lcd_putChar,"NHIET DO: %3.1f ",nhietdo);
lcd_putChar(223);
}
void main()
{
init();
lcd_putcmd(line_1);
Printf(lcd_putChar,"DK QUA GIONG NOI ");
while(true)
{
nhiet_do();
}
}
3.3. Kết luận và định hướng phát triển
Qua kết quả chạy thực nghiệm trên mô mình nhà thông minh cho thấy thuật toán
xây dựng hoàn toàn đáp ứng được các yêu cầu của bài toán đã đề xuất về tính năng điều
khiển không dây thông qua điện thoại hoặc máy tính kiểm soát tự động báo và giải trừ sự
cố khi nồng độ khí gas vượt quá nồng độ cho phép từ đó hạn chế được các rủi do có thể
xảy ra, đảm bảo sự an toàn cho ngôi nhà. Mô hình nhà thông minh sử dụng đường truyền
Buetooth, giải mã giọng nói, giải mã tín hiệu DTMF và các linh kiện điện tử có giá thành
rẻ nên có thể lắp đặt cho bất cứ ngôi nhà dân dụng nào, tùy thuộc vào tính năng tự động
của thiết bị trong ngôi nhà và khả năng kinh tế đầu tư của mỗi gia đình yêu cầu đến đâu,
thì đều có thể phát triển các mô hình đáp ứng phù hợp.
- Mô hình trên có thể phát triển với việc mở rộng các ứng dụng khác trong ngôi
nhà.
- Phát triển thiết bị điều khiển không chỉ sử dụng một điện thoại mà có thể sử dụng
nhiều điện thoại hoặc máy tính điều khiển các thiết bị cùng một thời điểm.
- Phát triển điều khiển thiết bị điện qua các mạng 3G...
[4] www.diendandientu.com.
[5] www.dientuvietnam.net.
[6] www.picvietnam.com.