Professional Documents
Culture Documents
Đồ Án Lê Thanh Dũng Mssv b1907439 Bản Chính in Nộp
Đồ Án Lê Thanh Dũng Mssv b1907439 Bản Chính in Nộp
Tháng 09/2022
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ
TRƯỜNG BÁCH KHOA
KHOA KĨ THUẬT ĐIỆN
Tháng 09/2022
LỜI CẢM ƠN
Trong quá trình thực hiện đồ án, em cũng gặp nhiều khó khăn do kiến thức
của bản thân còn hạn chế và do lần đầu tiếp cận nên còn nhiều bỡ ngỡ nên chắc chắn
sẽ không tránh những thiếu sót. Tuy nhiên trong khoảng thời gian làm đồ án với sự
hướng dẫn giúp đỡ tận tình của thầy cô, gia đình, anh chị, bạn bè cùng lớp. Nhờ có
những sự giúp đỡ tận tình quý báo đó mà em hoàn thành đúng tiến độ.
Đặc biệt, em xin gửi lời cảm ơn chân thành đến TS.Quách Hữu Lượng đã luôn
theo dõi, giúp đỡ hướng dẫn tận tình cũng như tạo mọi điều kiện thuận lợi để em hoàn
thành đồ án. Em cũng xin cảm ơn đến những thầy cô, gia đình, anh chị, bạn bè cùng
lớp đã đóng góp những ý kiến, kiến thức mà em còn thiếu để bổ sung vào đồ án.
Cuối cùng, em xin gửi lời cảm ơn đến Qúy Thầy Cô trong Trường Đại học
Cần Thơ nói chung, các thầy cô trong Khoa Kỹ Thuật Điện nói riêng vì đã tạo điều
kiện về cơ sở vật chất, cung cấp đầy đủ và đa dạng nguồn tài liệu tạo điều kiện thuận
lợi cho việc tìm kiếm, nghiên cứu để em hoàn thành được đồ án này.
Lê Thanh Dũng
LỜI NÓI ĐẦU
Bước ngoặc quan trọng nhất trong lịch sử phát triển của ngành điện và các
ngành công nghệ khoa học nói chung là sự phát triển vượt bật, với sự có mặt của các
linh kiện điện tử này tương ứng với trạng thái bật – tắt, đã tạo ra hàng loạt các thiết
bị điện tử hiện đại như máy tính, điện thoại di động, máy nghe nhạc,…Công nghệ
mạng không dây trong những năm gần đây đã có những phát triển hết sức mạnh mẽ,
làm tiền đề cho sự bùng nổ của công nghệ thông tin, và sự tự động hóa trong công
nghiệp,…Nhờ những sự phát triển hiện đại đó mà cuộc sống của con người được áp
dụng những công nghệ hiện đại tiên tiến đó, mà lĩnh vực mạng không dây được ứng
dụng vào cuộc sống con người vô cùng phát triển và được thế giới ứng dụng nhiều
vào cuộc sống đó là điều khiển từ xa thông qua điện thoại di động để điều khiển các
thiết bị điện trong nhà, trong nhà máy, xí nghiệp,và các hệ thống thông minh…
Hiện nay, do nhu cầu của con người ngày càng cao trong mọi lĩnh vực đời
sống và đồng thời mạng điện thoại di động phát triển rộng khắp và các thiết bị điện
thoại di động ngày càng có mức giá phù hợp với người dân. Đó là những mặt thuận
lợi của việc hình thành ý tưởng điều khiển các thiết bị điện từ xa bằng cách sử dụng
tin nhắn SMS và Cuộc Gọi. Đây là một hình thức điều khiển thiết bị thuận lợi, tiết
kiệm được nhiều thời gian cho việc điều khiển thiết bị, và đặc biệt là tiết kiệm được
chi phí khá cao.
Xuất phát từ những ý tưởng và lí do trên, em quyết định chọn đề tài: “Thiết kế
mô hình điều khiển thiết bị điện từ xa qua Cuộc Gọi và tin nhắn SMS”. Để đáp ứng
được nhu cầu ngày càng cao của con người góp phần vào sự tiến bộ, văn minh, hiện
đại, của nước nhà.
Đồ án Điện công nghiệp
MỤC LỤC
CHƯƠNG 1
1.1. Công nghệ mạng cơ sở và tình hình nghiên cứu trong nước và ngoài nước
GSM được viết đầy đủ Global System for Mobile Communications, hay còn
gọi là hệ thống thông tin toàn cầu, là một công nghệ dùng cho mạng thông tin di động.
Dịch vụ GSM được sử dụng bởi hơn 2 tỷ người trên 212 quốc gia và vùng lãnh thổ.
Là công nghệ không dây thuộc thế hệ 2G có cấu trúc mạng tế bào, cung cấp dịch vụ
truyền âm thanh và chuyển giao dữ liệu chất lượng cao với các dải tần số 900MHz,
1800MHz, và 1900MHz được tiêu chuẩn viễn thông châu Âu (ETSI) quy định. GSM
cung cấp 1 số tính năng như gọi điện, thông tin số liệu tốc độ cao, Fax và dịch vụ tin
nhắn ngắn. Cũng bởi công nghệ này mà những chiếc điện thoại di động của các mạng
GSM khác nhau có thể sử dụng được nhiều nới trên thế giới.
OSS
GSM
Một hệ thống GSM được chia thành nhiều hệ thống con như sau:
- Phân hệ chuyển mạch NSS (Network Switching Subsystem).
- Phân hệ trạm gốc BSS (Base Station Subsystem).
- Phân hệ bảo dưỡng và khai thác OSS (Operation Subsystem).
- Trạm gốc MS (Mobile Station).
SMS là từ viết tắt của Short Message Service tạm dịch là dịch vụ tin nhắn
ngắn. Đó là một giao thức viễn thông cho phép gửi các thông điệp dạng văn bản ngắn
qua mạng không dây (không quá 160 ký tự, bao gồm chữ cái, số và một số ký tự
khác). Số lượng ký tự trong mỗi tin nhắn được áp dụng theo ngôn ngữ của từng quốc
gia khác nhau, đối với tin nhắn tiếng Việt có dấu thì tối đa chỉ được 70 ký tự, đối với
tiếng Việt không dấu hoặc tiếng Anh thì mới viết được 160 ký tự (cả chữ cái, số và
các ký tự khác). Nếu quá ký tự sẽ phát sinh thêm tin nhắn nối tiếp, dẫn đến sinh phí.
Do vậy, các nhà mạng Việt Nam (MobiFone, Vinaphone, Viettel) luôn sử dụng tiếng
Việt không dấu khi nhắn tin thông báo dịch vụ với khách hàng qua SMS.Tin nhắn
SMS hoạt động dựa trên 3 công nghệ mạng lớn đó là GSM, CDMA và TDMA.
Trên thế giới hiện nay, việc dùng cuộc gọi và tin nhắn SMS để điều khiển thiết
bị điện từ mạng điện thoại di động không còn mới mẽ nữa vì được nghiên cứu và đã
áp dụng vào thực tế trong gia đình, công ty, nhà máy xí nghiệp,…kĩ thuật này dựa
trên công nghệ mạng GSM (Global System for Mobile communications) hệ thống
thông tin di động toàn cầu. Dịch vụ GSM cho phép người sử dụng có thể sử dụng
ĐTDĐ của họ ở nhiều vùng trên thế giới và có khả năng truyền tin với phạm vi rất
rộng lớn và đảm bảo độ tin cậy cao. Chính vì vậy, người dùng có thể gọi điện và gửi
tin nhắn SMS để điều khiển thiết bị điện từ xa mang lại hiệu quả cao.
Đất nước ta là nước đang phát triển, những thiết bị công nghệ khoa học kỹ
thuật hiện đại của thế giới là những thứ rất cần cho đất nước ta. Một đất nước đang
phát triển không thể chỉ dựa vào nền nông nghiệp, lâm nghiệp, ngư nghiệp mà cần
phải đi đôi với nền công nghiệp phát triển mạnh, vì vậy điều khiển từ xa cũng đóng
góp một phần quan trọng để đất tiến xa hơn trong công cuộc hiện đại hóa đất nước.
Những công nghệ điều khiển từ xa này thì luôn được các kỹ sư, công ty, tập đoàn
ngành điện nghiên cứu áp dụng vào cuộc sống hằng ngày giúp con người nâng cao
cuộc sống và đất nước không ngừng phát triển.
Trong cuộc sống hiện đại điều khiển từ xa là một thứ không thể thiếu nó giúp
con người làm việc nhanh hơn, an toàn, chính xác, tiết kiệm thời gian, điều khiển từ
xa không cần phải đến tận nơi như tắt tivi, đèn ,quạt,…mà khi bạn đứng xa hàng chục
km vẫn có thể tắt được những thiết bị điện đang bật.
Thêm nữa khi sử dụng điều khiển từ xa bằng cuộc gọi và tin nhắn điện thoại
SMS này không cần mạng internet và sử dụng với mọi loại smartphone hay hệ điều
hành nào, đều dàng bật tắt thiết bị điện qua cuộc gọi và tin nhắn SMS.
Hệ thống được ứng nhiều trong cuộc sống hằng ngày của chúng ta. Trong công
nghiệp điều khiển từ xa giúp bật tắt dễ dàng các máy móc, thiết bị hay dây truyền sản
xuất,…trong nông nghiệp có thể điều khiển từ xa các hệ thống tưới (máy bơm, máy
phun sương,…)bật tắt từ xa một cách dễ dàng chỉ với một cuộc gọi hay tin nhắn SMS.
Đặc biệt được ứng dụng nhiều trong nhà sinh hoạt của chúng ta vì cuộc sống
của con người đã nâng cao hiện đại nên trong ngôi nhà cần những tiện ích, tối ưu,
nhanh chống giúp bật tắt nhanh các thiết bị điện từ xa (đèn, quạt, TV, máy lạnh,…)
mà chỉ một chiếc thoại có kết nối thông qua module có kết nối với các thiết bị thì
chúng ta sẽ bật tắt được các thiết bị điện.
Trong tương lai điều khiển từ xa sẽ còn phát triển mạnh mẽ được tích hợp vào
nhiều ứng dụng trong hầu hết các lĩnh vực khác nhau, để góp phần làm cho cuộc sống
này tiện ích cho một thế giới phát triển mang đến những thứ hữu ích cho thế hệ mai
sau.
CHƯƠNG 2
Arduino được tạo ra đầu tiên tại Italya vào năm 2005 tại Interaction Design
Institute. Arduino chính thức được đưa ra giới thiệu năm 2005 như là một công cụ
dành cho các sinh viên của giáo sư Massimo Banzi, là một trong những người phát
triển Arduino, tại trường Interaction Design Instistute Ivea (IDI). Arduino làm việc
trên nguồn mở dựa trên nền tảng mạch mẫu điện tử (Kit), bao gồm một vi điều khiển,
một ngôn ngữ lập trình và một IDE (trình soạn thảo). Arduino là một công cụ để thực
hiện các ứng dụng tương tác, được thiết kế để nhằm làm đơn giản những tác động
dành cho những người mới bắt đầu sử dụng vi điều khiển cho nhiều mục đích (như
tạo Robot, trang trí quảng cáo sử dụng LED, điều khiển động cơ, điều khiển nhiệt độ,
áp suất độ ẩm…) Arduino được lắp ráp với các linh kiện điện tử, thiết bị điện… tương
tự như trò chơi lắp ráp Lego, nhưng Arduino vẫn đủ linh hoạt cho các chuyên gia phát
triển các dự án phức tạp.
Vào năm 2014, Arduino Uno có lẽ là bo mạch tốt nhất dành cho các bạn sinh
viên, học sinh muốn tìm hiểu, nghiên cứu về vi điều khiển để ứng dụng trong cuộc
sống, trong công nghiệp, trong khoa học.
Mạch Arduino Uno R3 (Dip) có 14 chân digital dùng để đọc hoặc xuất tín
hiệu. Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân
là 40mA. Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều
khiển ATmega328 (mặc định thì các điện trở này không được kết nối). Mạch Arduino
Uno R3 có các chức năng khác nhau được phát triển bởi Arduino.cc. Vi xử lý có rất
nhiều loại bắt đầu từ 4 bit cho đến 32 bit, vi xử lý 4 bit hiện nay không còn nhưng vi
xử lý 8 bit vẫn còn mặc dù đã có vi xử lý 64 bit. Lý do sự tồn tại của vi xử lý 8 bit là
phù hợp với một số yêu cầu điều khiển trong công nghiệp. Các vi xử lý 32 bit, 64 bit
thường sử dụng cho các máy tính vì khối lượng dữ liệu của máy tính rất lớn nên cần
các vi xử lý càng mạnh càng tốt.
Các hệ thống điều khiển trong công nghiệp sử dụng các vi xử lý 8 bit hay
16 bit như hệ thống điện của xe hơi, hệ thống điều hòa, hệ thống điều khiển các dây
chuyền sản xuất, …em thấy những tiện ích của mạch mang lại nên chọn và phát triển
mạch.
Module SIM800L dùng điều khiển thiết bị hoặc cảnh báo từ xa thông qua
mạng di động như gọi điện, nhắn tin, GPRS. Dễ giao tiếp với các họ vi điều khiển
như Pic, 8051, AVR, Arduino…Module SIM800L được ứng dụng rộng rãi ngoài thực
tế, các phòng thông minh, ngôi nhà thông minh, IOT…
Điều khiển module sử dụng bộ tập lệnh AT dễ dàng và tiêu thụ điện năng nhỏ
phù hợp cho các đồ án hoặc dư án cần dùng Pin hoặc Acquy.
Trung tâm của mô-đun là chip SIM800L GSM của Simcom. Điện áp hoạt động
của chip nằm trong khoảng từ 3,4V đến 4,4V, tương thích trực tiếp với pin LiPo. Điều
này làm cho nó trở thành một lựa chọn tốt để áp dụng vào các dự án.
Mô-đun đang chạy nhưng Kết nối dữ liệu GPRS Mô-đun đã liên lạc với
chưa kết nối với mạng di mà bạn yêu cầu đang mạng di động có thể gửi và
động chưa được thực hiện, hoạt động, nháy và nhận cuộc gọi và SMS,
nháy mắt sau mỗi 1 giây. mắt sau mỗi 2 giây. nháy mắt sau mỗi 3 giây.
Tất cả các chân tín hiệu chính của GSM SIM800L được nối ra tiêu đề nên bạn
có thể dễ dàng cấp nguồn và điều khiển module thông qua UART. Module hỗ trợ tốc
độ truyền từ 1200bps đến 115200bps với việc tự động điều chỉnh tốc độ truyền phù
hợp.
Module cần một ăng-ten ngoài để kết nối với mạng di động. Các module đã đi
kèm với một ăng-ten xoắn ốc được kết nối trực tiếp đến chân NET trên PCB. PCB
cũng có cổng kết nối U.FL trong trường hợp bạn muốn gắn thêm hoặc thay đổi vị trí
ăng-ten.
2.1.2.4. Tập lệnh AT của Module SIM800L cần giao tiếp vi điều khiển
Lệnh: AT<CR><LF>
Mô tả : Kiểm tra đáp ứng của Module SIM800L, nếu trả về OK thì
Module hoạt động
Lệnh: ATE[x]<CR><LF>
Mô tả: Chế độ echo là chế độ phản hồi dữ liệu truyền đến của Module
Sim800L, x = 1 bật chế độ echo, x = 0 tắt chế độ echo (bạn nên tắt chế
độ này khi giao tiếp với vi điều khiển)
Lệnh: AT+IPR=[baud rate]<CR><LF>
Mô tả: cài đặt tốc độ giao tiếp dữ liệu với Module SIM800L, chỉ cài
được các tốc độ sau
baud rate : 0 (auto), 1200, 2400, 4800, 9600, 19200, 38400, 57600,
115200
Lệnh: AT&W<CR><LF>
Mô tả : lưu lại các lệnh đã cài đặt
Module Relay 4 kênh 5V được sử dụng để điều khiển thiết bị điện tử công suất
cao như đèn, quạt điện, điều hòa không khí,...và được sử dụng rộng rãi và phổ biến
trong các hệ thống IoT, nhà thông minh, vườn thông minh,... để điều khiển thiết bị tắt
mở một cách dễ dàng và nhanh chóng. Module Relay 4 kênh nhỏ thiết kế gọn chuyên
nghiệp , khả năng chống nhiễu tốt và khả năng cách điện tốt. An toàn đáng tin cậy.
Có sẵn header rất tiện dụng khi kết nối với vi điều khiển. Có các lỗ bắt vít rất tiện lợi
dễ lắp đặt trong hệ thống mạch. Trong module đã có sẵn mạch kích relay sử dụng IC
cách ly quang và transistor giúp cách ly hoàn toàn mạch vi điều khiển với rơ le bảo
đảm vi điều khiển hoạt động ổn định.
Mạch tích hợp IC giảm áp LM2596. Mạch nhận điện áp đầu vào 3.0 ~ 40V.
Có thể điều chỉnh dải điện áp đầu ra từ 1.5V ~ 35V. Dòng điện đầu ra tối đa là 3A,
dòng làm việc bình thường là 2A. Tích hợp bộ dao động nội 150 kHz do đó giúp làm
tăng hiệu suất chuyển đổi. Thích hợp cho các ứng dụng chia nguồn, hạ áp, cấp cho
các thiết bị như camera, motor, robot,…
Module điều khiển hồng ngoại từ xa và Remote IR 1838 có thiết kế nhỏ gọn,
tiện dụng và dễ dàng kết nối với vi điều khiển để điều khiển các thiết bị từ xa qua
hồng ngoại, theo lý thuyết bộ điều khiển có thể điều khiển với khoảng cách lên đến 5
- 8m, tuy nhiên nó còn phụ thuộc vào ảnh hưởng của môi trường xung quanh.
Sơ đồ chân:
Được sử dụng rộng rãi trong: âm thanh nổi, TV, máy video, đĩa máy, hộp set-
top, khung ảnh kỹ thuật số, xe hơi stereo, đồ chơi điều khiển từ xa, thu vệ tinh,máy
nghe nhạc đĩa cứng, máy lạnh, máy sưởi, quạt điện, ánh sáng và các thiết bị gia dụng
khác.
Hoàn thành mô hình hoàn chỉnh cần phải có thêm các linh kiện như sau: điện
trở 1k, nguồn Adapter 9V, nút nhấn, dây bus.
Proteus là một phần mềm thiết kế mô phỏng mạch điện tử với bất kỳ thiết bị
điện tử tương tự và điện tử số. Bên cạnh đó phần mềm này hỗ trợ các vi mạch điều
khiển như PIC 10, PIC12, Atmel AVR, ARM Cortex-M3 và nhiều loại khác. Nó là
một công cụ hỗ trợ trong học tập về thiết kế mạnh điện thì không thể nào bỏ qua
Proteus .
Phần mềm bao gồm 2 chương trình: ISIS cho phép mô phỏng mạch và ARES
dùng để vẽ mạch in.
Arduino IDE là một phần mềm mã nguồn mở chủ yếu được sử dụng để viết
và biên dịch mã vào module Arduino.
Đây là một phần mềm Arduino chính thức, giúp cho việc biên dịch mã trở nên
dễ dàng mà ngay cả một người bình thường không có kiến thức kỹ thuật cũng có thể
làm được.
Nó có các phiên bản cho các hệ điều hành như MAC, Windows, Linux và chạy
trên nền tảng Java đi kèm với các chức năng và lệnh có sẵn đóng vai trò quan trọng
để gỡ lỗi, chỉnh sửa và biên dịch mã trong môi trường.
Có rất nhiều các module Arduino như Arduino Uno, Arduino Mega, Arduino
Leonardo, Arduino Micro và nhiều module khác.
Mỗi module chứa một bộ vi điều khiển trên bo mạch được lập trình và chấp
nhận thông tin dưới dạng mã.
Mã chính, còn được gọi là sketch, được tạo trên nền tảng IDE sẽ tạo ra một
file Hex, sau đó được chuyển và tải lên trong bộ điều khiển trên bo.
Môi trường IDE chủ yếu chứa hai phần cơ bản: Trình chỉnh sửa và Trình biên
dịch, phần đầu sử dụng để viết mã được yêu cầu và phần sau được sử dụng để biên
dịch và tải mã lên module Arduino.
Môi trường này hỗ trợ cả ngôn ngữ C và C ++.
Fritzing là phần mềm mã nguồn mở được thiết kế đặc biệt cho những người
cần tạo các dự án điện tử, đặc biệt là phần cứng miễn phí và những người không có
quyền truy cập vào tài liệu cần thiết. Nó cũng có thể được sử dụng để tạo thiết kế của
bạn, chụp các ví dụ cho hướng dẫn, v.v. Ngoài ra, công cụ này có một cộng đồng
tuyệt vời đằng sau nó luôn cập nhật hoặc sẵn sàng giúp đỡ nếu bạn gặp vấn đề. Nó
thậm chí có thể là một công cụ tuyệt vời cho các lớp học, cho cả sinh viên và giáo
viên điện tử, cho những người dùng muốn chia sẻ và ghi lại các nguyên mẫu của họ,
và thậm chí cho các chuyên gia.
Nó là đa nền tảng, có sẵn trong macOS, Linux và Windows. Sáng kiến này
được phát triển bởi Đại học Khoa học Ứng dụng Potsdam và được phát hành theo
giấy phép GPL 3.0 hoặc cao hơn, trong khi các hình ảnh thành phần có thể được sử
dụng được cấp phép theo giấy phép Creative Commons CC BY-SA 3.0.
Phần mềm được viết bằng ngôn ngữ lập trình C ++ và sử dụng khung Qt. Tất
cả mã của nó đều có sẵn trong kho GitHub, được chia thành nhiều kho, chẳng hạn
như Fritzing-App và Fritzing-Parts, cho phần mềm và các phần còn lại.
CHƯƠNG 3
3.1. Cấu trúc của mô hình điều khiển thiết bị điện từ xa qua cuộc gọi và tin nhắn
SMS
Khối giao tiếp
(Module thu Nguồn (220V)
hồng ngoại
IR1838)
Có chức năng giao tiếp với mạng GSM để gửi/nhận tin nhắn SMS với nội dung
điều khiển các thiết bị điện. Khối này cần một thiết bị điện thoại di động và một
Module Sim800L phải được gắn SIM Card của nhà cung cấp dịch vụ mạng, có chức
năng như một điện thoại di động và kết nối với khối điều khiển trung tâm.
Khối xử lí trung tâm là khối điều khiển trung tâm có nhiệm vụ nhận tín hiệu
và xử lí từ các khối tác động lên mạch Arduino Uno R3 một cách liên tục và xuất tín
hiệu điều khiển đã được lập trình để thực thi.
Khi người điều khiển bật/tắt các nút điều khiển trên mô hình, tín hiệu tác động
sẽ truyền sang khối xử lý trung tâm.
Khi người dùng bật/tắt các nút điều khiển trên remote thì module thu hồng
ngoại nhận tín hiệu truyền qua khối xử lí trung tâm, khối xử lí trung tâm xử lí tín hiệu
từ module thu hồng ngoại để điều khiển được thiết bị điện.
Nguồn có chức năng cung cấp năng lượng cho mạch hoạt động , nguồn adapter
9V-3A cung cấp cho mạch giảm áp DC LM2596 3A và mạch Arduino Uno R3.
Nguồn 220V cung cấp cho khối công suất và thiết bị điện để hoạt động.
Nhận tín hiệu từ khối xử lý trung tâm và có nhiệm vụ điều khiển đóng/ngắt
thiết bị điện theo yêu cầu của con người sử dụng.
Nhận điện áp 9V từ adapter qua mạch giảm áp xuống 3.7 - 4.2V cấp nguồn
cho Module SIM800L hoạt động .
Mô hình được tích hợp nhiều thiết bị điều khiển thông minh để tối ưu đáp ứng
sự tiện ích các nhu cầu của con người để điều khiển thiết bị điện như dùng điện thoại
di động để điều khiển qua tin nhắn SMS , nút nhấn vật lí và cả remote điều khiển từ
xa.
Lưu đồ thuật toán là công cụ dùng để biểu diễn thuật toán, mô tả nhập (input),
dữ liệu xuất (output) và luồng xữ lý thông qua các ký hiệu hình học. Lưu đồ thuật
toán của mô hình được thể hiện ở hình 3.2 trang 18.
Bắt đầu
Kết thúc
Lưu đồ này khái quát lại các chức năng điều khiển mà người thiết kế đặt ra,
thông qua sơ đồ này người sử dụng có thể hiểu một cách tường tận hơn về hoạt động
của hệ thống.
Serial.begin: khởi tạo kết nối nối tiếp giữa Arduino với baud rate.
delay: có nhiệm vụ dừng chương trình trong thời gian mili giây.
void loop: Chương trình chính
void handle_sim800_response : chương trình con điều khiển từ xa bằng tin nhắn.
void extractSms: chương trình con giải nén tin nhắn SMS.
void listen_ir: chương trình con điều khiển thiết bị điện bằng remote điều khiển từ
xa.
void listen_push_buttons: chương trình con điều khiển thiết bị điện bằng nút nhấn vật
lí.
void control_relay(int relay): chương trình con điều khiển chuyển tiếp bằng relay.
void send_relay_status(String relay): chương trình con trạng thái on, off của relay.
void delete_all_sms: chương trình con xóa tất cả tin nhắn.
Code của mô hình tham khảo ở phụ lục 1 trang 31.
Điện áp hoạt động của Module SIM800L là 4.2VDC nên cần mạch hạ áp cấp
nguồn thích hợp để hoạt động.
Sau đó ta chọn Export for PCB Chọn Etchable (PDF) Để được mạch in
cho mô hình.
CHƯƠNG 4
Trong đó gồm:
Mạch Arduino Uno R3: Bộ xử lý trung tâm. Nhận các tín hiệu từ các module
và các thiết bị điều khiển truyền tín hiệu đi để điều khiển relay.
Module SIM800L: Nơi gắn sim trực tiếp và điều khiển qua điện thoại
Module thu hồng ngoại IR1838: Nhận tín hiệu qua remote
Mạch giảm áp DC LM2596: Hạ áp xuống 4.2V-2A
Button
Trong đó gồm:
Module relay 4 kênh 5V
Đã chuẩn bị đầy đủ những linh kiện đi dây phần điện sau khi hoàn thành:
Arduino Uno R3 có thể được cấp nguồn qua 3 cổng : cấp nguồn 5V thông qua
cổng USB hoặc cấp nguồn ngoài với điện áp khuyên dùng là 7-12V DC và cấp nguồn
qua chân Vin của Arduino. Ở đây em chọn adapter 9V chuyển đổi AC sang DC để
cấp nguồn cho Arduino.
Module SIM800L cấp nguồn qua mạch giảm áp DC LM2596 giảm xuống còn
4.2V để cấp cho Module SIM800L.
Module thu hồng ngoại IR1838 và Module Relay 4 kênh được cấp nguồn từ
chân 5V của Arduino Uno R3.
Nạp code cho mô hình thì chúng ta phải kết nối Laptop với Arduino Uno R3
thông qua dây kết nối cổng USB và phải vào phần Tools chọn Board: “Arduino
Uno” chọn đúng cổng Port thì mới có thể nạp được chương trình vào mô hình.
Để điều khiển được bằng cuộc gọi thì chúng ta phải điện đến số điện thoại
trong Module SIM800L và số điện thoại nạp vào trong code thì mới có thể điều khiển
được thiết bị điện.
Thực hiện cuộc gọi đến số điện thoại trong Module SIM800L khi Module nhắc
máy ta bấm số 1 thiết bị điện 1 hoạt động, bấm số 2 thiết bị điện 2 hoạt động, bấm số
3 thiết bị điện 3 hoạt động, bấm số 4 thiết bị điện 4 hoạt động. Muốn tắt ta bấm lại
các số 1,2,3,4 thì các thiết bị điện sẽ tắt.
Để điều khiển bằng tin nhắn ta vào phần nhắn tin và nhắn đến số trong Module
SIM800L. Ta nhắn các số 1, 2, 3, 4 để điều khiển bật tắt các thiết bị điện.
Hình 4.7. Xem trạng thái trên màn hình Serial Monitor
Trên phần điều khiển bằng tin nhắn chúng ta có thể xem trạng thái hoạt động
của các thiết bị điện thông qua tin nhắn. Khi ta nhắn 2.status thì Module SIM800L sẽ
gửi lại trạng thái ON, OFF của Relay 2 qua đó ta biết các thiết điện 2 đang ở trạng
thái hoạt động hay không hoạt động. Tương tự ta muốn xem trạng thái các Relay còn
lại ta cũng nhắn số 1.3.4.status để xem.
Điều khiển qua remote từ xa ta bấm nút 1, 2, 3, 4 để bật tắt các thiết bị điện.
Phương pháp điều khiển này thì khoảng cách điều khiển hạn chế tầm xa khoảng 3-
4m.
Cũng tương tự như các phương pháp điều khiển ở trên thì nút nhấn cũng bật
tắt được thiết bị điện thông qua các nút nhấn trên mô hình.
Mô hình đã đạt được những yêu cầu đặt ra, đã thử nghiệm điều khiển qua cả 4
cách và điều thành công . Tuy nhiên do thời gian gấp rút và thiếu kinh phí nên chưa
làm thử nghiệm mô hình trên mạch in thì đi dây phần điện và bố trí các linh kiện một
cách tối ưu và sẽ chắn chắn hơn cho mô hình.
CHƯƠNG 5
Sau thời gian nổ lực thực hiện, nghiên cứu, tìm hiểu dưới sự hướng dẫn tận
tình của thầy TS. Quách Hữu Lượng, đồ án “ Thiết kế mô hình điều khiển thiết bị
điện từ xa qua cuộc gọi và tin nhắn SMS ” đã hoàn thành đúng thời gian qui định.
Kết quả mô hình đã hoạt động đúng với chương trình đã được lập trình và đã giải
quyết được các yêu cầu đặt ra lúc ban đầu:
Mạch có thể ứng dụng để kết nối nhiều lĩnh vực điều khiển từ xa trong nông
nghiệp, công nghiệp,…qua sóng điện thoại.
Những nơi không có sóng điện thoại thì module sim không nhận được tín hiệu.
Tốn kém vì phải nạp tiền vào sim.
Khi hệ thống hết tiền thì sẽ không gửi được tin nhắn.
Xảy ra nhiễu.
Đi dây điện chưa được thẩm mỹ và dọn gàng.
Tốc độ truyền tín hiệu tín hiệu của sóng điện thoại kém cũng dẫn đến điều
khiển từ xa của mô hình bị chậm.
Đăng ký sử dụng các gói ưu đãi tin nhắn theo tháng của các nhà mạng như
Viettel, Mobifone, Vinaphone … Từ đó giảm được chi phí nạp tiền vào sim.
Nên tìm hiểu và hoàn chỉnh mô hình để tối ưu nhất có thể và đưa vào thực
tiễn.
Mô hình điều khiển thiết bị điện từ xa qua Cuộc Gọi và tin nhắn SMS có tính
thực tế cao dựa trên nhu cầu công nghệ hiện nay, được nghiên cứu , có thể được nâng
cấp, nếu kết hợp thêm các vi điều khiển để chúng ta điều khiển các thiết bị điện trong
nhà tự động hóa hoặc bán tự động và điều khiển được các thiết bị điện trên ứng dụng
trên smartphone để ứng dụng cho ngôi nhà thông minh, tự động hoàn toàn và còn cho
phép điều khiển từ xa thông qua một bộ điều khiển trung tâm.
[1]. Phạm Quang Huy, Vi điều khiển và Ứng dụng Arduino dành cho người tự học,
nhà xuất bản thanh niên, 2018.
[2]. Cộng đồng Arduino Việt Nam, “Arduino UNO R3 là gì?”, arduino.vn.
[3]. http://arduino.vn/bai-viet/402-huong-dan-nap-chuong-trinh-don-gian-cho-
arduino-uno-r3
[4]. https://mualinhkien.vn/huong-dan-su-dung-module-sim800l-module-gsm-nhan-
tin-va-goi-dien-gia-re
[5]. http://arduino.vn/bai-viet/588-software-serial-giao-tiep-giua-arduino-va-nhieu-
mach-serial-khac-truyen-tai-trung-gian
#include <SoftwareSerial.h>
#include <IRremote.h>
const String PHONE = "+84359275409";
String smsStatus,senderNumber,receivedDate,msg,buff;
boolean isReply = false;
String dtmf_cmd;
boolean is_call = false;
#define rxPin 2
#define txPin 3
SoftwareSerial sim800L(rxPin,txPin);
const byte IR_RECEIVE_PIN = 4;
#define button1_pin 5
#define button2_pin 6
#define button3_pin 7
#define button4_pin 8
#define relay1_pin 9
#define relay2_pin 10
#define relay3_pin 11
#define relay4_pin 12
boolean relay1_state = 0;
boolean relay2_state = 0;
boolean relay3_state = 0;
boolean relay4_state = 0;
void setup()
{
pinMode(button1_pin, INPUT_PULLUP);
pinMode(button2_pin, INPUT_PULLUP);
pinMode(button3_pin, INPUT_PULLUP);
pinMode(button4_pin, INPUT_PULLUP);
pinMode(relay1_pin, OUTPUT);
pinMode(relay2_pin, OUTPUT);
pinMode(relay3_pin, OUTPUT);
pinMode(relay4_pin, OUTPUT);
Serial.begin(115200);
Serial.println("IR Receive test");
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);
sim800L.begin(9600);
sim800L.print("AT+CMGF=1\r");
delay(1000);
sim800L.println("AT+DDET=1");
delay(500);
smsStatus = "";
senderNumber="";
receivedDate="";
msg="";
}
void loop()
{
while(sim800L.available()){
buff = sim800L.readString();
handle_sim800_response();
}
while(Serial.available()) {
sim800L.println(Serial.readString());
}
listen_ir();
listen_push_buttons();
}
void handle_sim800_response()
{
Serial.println(buff);
if(is_call == true){
if(int index = buff.indexOf("+DTMF:") > -1 ){
index = buff.indexOf(":");
dtmf_cmd = buff.substring(index+1, buff.length());
dtmf_cmd.trim();
Serial.println("dtmf_cmd: "+dtmf_cmd);
if(dtmf_cmd == "1") control_relay(1);
else if(dtmf_cmd == "2") control_relay(2);
else if(dtmf_cmd == "3") control_relay(3);
else if(dtmf_cmd == "4") control_relay(4);
}
if(buff.indexOf("NO CARRIER") > -1){
sim800L.println("ATH");
is_call = false;
}
}
else if(buff.indexOf("RING") > -1)
{
delay(2000);
sim800L.println("ATA");
is_call = true;
}
}
else if(relay == 4){
relay4_state = !relay4_state;
digitalWrite(relay4_pin, relay4_state);
delay(50);
}
}
void send_relay_status(String relay)
{
Serial.println("Relay Number: "+relay);
//(relay1_state):"ON"?"OFF"
String sms_text = "";
if(relay == "1"){
sms_text = (relay1_state) ? "ON" : "OFF";
sms_text = "Relay 1 is " + sms_text;
}
else if(relay == "2"){
sms_text = (relay2_state) ? "ON" : "OFF";
sms_text = "Relay 2 is " + sms_text;
}
else if(relay == "3"){
sms_text = (relay3_state) ? "ON" : "OFF";
sms_text = "Relay 3 is " + sms_text;
}
else if(relay == "4"){
sms_text = (relay4_state) ? "ON" : "OFF";
sms_text = "Relay 4 is " + sms_text;
}
Reply(sms_text);
}
void delete_all_sms()
{
sim800L.println("AT+CMGD=1,4");
delay(5000);
while(sim800L.available()){
String response = sim800L.readString();
if(response.indexOf("OK") > -1 ){
Reply("All sms are deleted");
} else {
Reply(response);
}
}
}
void Reply(String text)
{
Serial.println(text);
sim800L.print("AT+CMGF=1\r");
delay(1000);
sim800L.print("AT+CMGS=\""+PHONE+"\"\r");
delay(1000);
sim800L.print(text);
delay(100);
sim800L.write(0x1A); //ascii code for ctrl-26 //sim800.println((char)26); //ascii
code for ctrl-26
delay(1000);
Serial.println("SMS Sent Successfully.");
msg = "";
}