Supplies
1 A smart speaker, for example a Google Nest Mini.
2 An Arduino MKR1000 computer to convert the voice commands into switching commands.
3 One or more 5 Volt switching relays, one for each lamp you want to control.
4 A USB power supply for the Arduino MKR1000 with micro-USB plug.
5 Main wiring (1.5 sqmm) and sockets for a safe connection of the lights and other appliances.
6 An Android smartphone for the Google Home app.
Lưu ý:
Ở phần chọn chân để điều khiển thiết bị, các bạn chọn pin “GPIO” để khi IFTTT truyền các lệnh xuống ESP8266 có thể hiểu được.
Ví dụ: Trong bài viết hôm nay mình chọn chân “GPIO16” thì mình sẽ điền là D16.
Tên linh kiện | Số lượng | Shopee |
NodeMCU ESP8266 | Mua ngay |
What’s Next?
- Use other boards, like NodeMCU ESP8266
- Control the light of the LED using PWM
- Control 4 different devices
- Provide a new way to connect Google Assistant to the microcontroller
- Replace Adafruit-IO with Blynk application
ĐỀ LUYỆN THI ĐÁNH GIÁ TƯ DUY ĐẠI HỌC BÁCH KHOA HÀ NỘI NĂM 2024 (CÓ LỜI GIẢI C…
Thiết kế điều kiển thiết bị bằng giọng nói với google Assistant (Google home).pdf
1. BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÀ RỊA-VŨNG TÀU
VIỆN CNTT – ĐIỆN – ĐIỆN TỬ
BÁO CÁO
ĐỀ TÀI KHOA HỌC CẤP TRƯỜNG
TÊN ĐỀ TÀI:
THIẾT KẾ ĐIỀU KHIỂN THIẾT BỊ BẰNG GIỌNG NÓI
VỚI GOOGLE ASSISTANT ( GOOGLE HOME)
– Chủ nhiệm : Mai Thanh Tuấn
– Hướng dẫn khoa học: ThS. Lưu Hoàng
BÀ RỊA-VŨNG TÀU, THÁNG 06 NĂM 2019
2. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn
TRƯỜNG ĐH BÀ RỊA VŨNG TÀU
VIỆN CNTT-ĐIỆN-ĐIỆN TỬ
CỘNG HOÀ XÃ HỘI CHỦ NGHĨA
VIỆT NAM
Độc lập – Tự do – Hạnh phúc
——o0o—–
NHIỆM VỤ ĐỀ TÀI NGHIÊN CỨU
1. Họ và tên sinh viên thực hiện: Mai Thanh Tuấn
– MSSV: 15032278 – Ngày, tháng, năm sinh: 11/10/1997
– Nơi sinh: BRVT – Chuyên ngành: Điện tử công nghiệp
I. TÊN ĐỀ TÀI: THIẾT KẾ ĐIỀU KHIỂN THIẾT BỊ BẰNG GIỌNG NÓI
VỚI GOOGLE ASSISTANT ( GOOGLE HOME )
II. NHIỆM VỤ VÀ NỘI DUNG:
– Tìm hiểu về hệ thống điều khiển thông minh các thiết bị trong nhà.
– Điều khiển và giám sát từ xa việc bật mở thiết bị bằng Google Assistant
– Xây dựng mô hình điều khiển hệ thống thiết bị bằng giọng nói với
Google Assistant ( Google Home ).
III. NGÀY GIAO NHIỆM VỤ ĐỀ TÀI: 01/12/2018
IV. NGÀY HOÀN THÀNH ĐỀ TÀI: 15/06/2019
V. HỌ TÊN CÁN BỘ HƯỚNG DẪN: ThS. Lưu Hoàng
CÁN BỘ HƯỚNG DẪN
(Ký và ghi rõ họ tên)
Bà Rịa – Vũng Tàu, ngày 15 tháng 06 năm 2019
SINH VIÊN THỰC HIỆN CHÍNH
(Ký và ghi rõ họ tên)
ThS. Lưu Hoàng Mai Thanh Tuấn
PHÒNG KHOA HỌC CÔNG NGHỆ – HTQT
(Ký và ghi rõ họ tên)
TRƯỞNG VIỆN
(Ký và ghi rõ họ tên)
3. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn
LỜI CẢM ƠN
Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗ
trợ, giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác. Trong suốt thời
gian làm đồ án tốt nghiệp, em đã tìm hiểu, học hỏi và nhận được rất nhiều sự hỗ trợ từ
các thầy cô và các anh chị khóa trước.
Với lòng biết ơn sâu sắc, em xin gửi lời cảm ơn đến quý thầy cô viện Công
nghệ thông tin – Điện-Điện tử – Trường đại học Bà Rịa Vũng Tàu đã truyền đạt vốn
kiến thức quý báu cho em cũng như các bạn cùng khoá . Qua đây em cũng xin cảm ơn
các anh chị khóa trước đã đóng góp ý kiến giúp đỡ em để hoàn thành đồ án tốt nghiệp
này.
Em xin chân thành cảm ơn ThS. Lưu Hoàng đã tận tâm hướng dẫn em qua từng
buổi hướng dẫn để hoàn thành đồ án tốt nghiệp. Nếu không có những lời hướng dẫn,
dạy bảo của thầy thì em nghĩ đồ án tốt nghiệp của em khó có thể hoàn thiện được. Một
lần nữa em xin chân thành cảm ơn thầy.
Vũng Tàu, ngày 26 tháng 06 năm 2019
4. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn
LỜI MỞ ĐẦU
Ngày nay, xã hội càng hiện đại, khoa học kỹ thuật càng phát triển thì cuộc
sống của con người càng có nhu cầu sử dụng đầy đủ các thiết bị thông minh để
phục vụ cho sinh hoạt và công việc của mình. Một thực tế rất gần với con người
là trong chính căn nhà của mình, mong muốn được dụng công nghệ tự động hóa
càng được rộng rãi, tất cả đồ 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ời gian đúng mong muốn.
Nhu cầu về kiểm soát hệ thống thiết bị điện và điều khiển thiết bị thông
minh ngày càng phổ biến như kiểm tra trạng thái của đèn, quạt, máy lạnh, các
thiết bị khác, có thể mở hay tắt và các thiết bi ̣điện trong nhà từ xa bằng thiết bị
điện thoại di động, thiết bị máy tính thông qua mạng internet.
Hiện nay với nền khoa học phát triển với các trợ lý ảo thông minh hỗ trợ
AI như: Google Assistant (Google), Alexa (Amazon), Siri (Apple), Cortana
(Microsoft), … Các thiết bị trong ngôi nhà thông minh ngoài được điều khiển
qua các app trên điện thoại, web,… còn được điều khiển qua trợ lý ảo cũng dần
được phát triển. Vì vậy, em đã tìm hiểu, nghiên cứu, chọn đề tài: “ Điều khiển
thiết bị bằng giọng nói qua Google Asstiant (Google Home) ” để làm đề tài
nghiên cứu khoa học cấp trường
5. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn
MỤC LỤC
Trang
NHIỆM VỤ ĐỀ TÀI NGHIÊN CỨU
LỜI CÁM ƠN
LỜI MỞ ĐẦU
MỤC LỤC
CHƯƠNG 1: Mở Đầu ……………………………………………………………………….. 1
1.1. Đặt vấn đề ……………………………………………………………………………….. 1
1.2. Phương pháp nghiên cứu ……………………………………………………………. 1
1.3. Mục tiêu, nhiệm vụ …………………………………………………………………… 2
CHƯƠNG 2: Tổng Quan…………………………………………………………………… 3
2.1. Trợ lý ảo………………………………………………………………………………….. 3
2.1.1. Khái niệm …………………………………………………………………………. 3
2.1.2. Google Assistant…………………………………………………………………. 4
2.1.3. Google Home …………………………………………………………………….. 5
2.2. Internet Of Thing………………………………………………………………………. 7
2.2.1. Khái niệm………………………………………………………………………….. 7
2.2.2. Ứng dụng…………………………………………………………………………… 10
2.3. Blynk………………………………………………………………………………………. 13
2.3.1 Hệ sinh thái Blynk. ………………………………………………………………. 13
2.2.2. Tính năng của Blynk……………………………………………………………. 14
2.4. Nhà thông minh………………………………………………………………………… 14
2.4.1. Khái niệm………………………………………………………………………….. 14
2.4.2. Ứng dụng…………………………………………………………………………… 15
2.4.3. Các hệ sinh thái nhà thông minh trên thế giới ………………………….. 15
CHƯƠNG 3: Thiết bị và giải pháp công nghệ……………………………………… 17
3.1. Kit NodeMCU Lua ESP8266 ……………………………………………………… 17
3.2. Công tắc cảm ứng……………………………………………………………………… 18
3.3. Module relay 4 kênh………………………………………………………………….. 21
6. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn
3.4. Đèn led 6W ……………………………………………………………………………… 23
3.5. Phần mềm IDE …………………………………………………………………………. 24
CHƯƠNG 4: Thiết kế điều khiển thiết bị bằng giọng nói với Google Assistant
(Google Home)………………………………………………………………………………….. 28
4.1. Sơ đồ khối ……………………………………………………………………………….. 28
4.2. Sơ đồ kết nối ……………………………………………………………………………. 29
4.3. Mô hình thực tế ………………………………………………………………………… 30
4.4. Lưu đồ giải thuật ……………………………………………………………………… 32
CHƯƠNG 5 : Kết Luận Và Hướng Phát Triển Đề Tài…………………………. 34
5.1. Kết luận…………………………………………………………………………………… 34
5.1.1. Những mặt đã làm được……………………………………………………….. 34
5.1.2. Những hạn chế tồn tại………………………………………………………….. 34
5.2. Hướng phát triển đề tài………………………………………………………………. 34
TÀI LIỆU THAM KHẢO………………………………………………………………….. 35
PHỤ LỤC: Code chương trình…………………………………………………………… 36
7. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 1
Chương 1
Mở Đầu
1.1. Đặt vấn đề
Ngày nay, xã hội càng hiện đại, khoa học kỹ thuật càng phát triển thì cuộc
sống của con người càng có nhu cầu sử dụng đầy đủ các thiết bị thông minh để
phục vụ cho sinh hoạt và công việc của mình. Một thực tế rất gần với con người
là trong chính căn nhà của mình, mong muốn được dụng công nghệ tự động hóa
càng được rộng rãi, tất cả đồ 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ời gian đúng mong muốn.
Nhu cầu về kiểm soát hệ thống thiết bị điện và điều khiển thiết bị thông
minh ngày càng phổ biến như kiểm tra trạng thái của đèn, quạt, máy lạnh, các
thiết bị khác, có thể mở hay tắt và các thiết bi ̣điện trong nhà từ xa bằng thiết bị
điện thoại di động, thiết bị máy tính thông qua mạng internet.
Hiện nay với nền khoa học phát triển với các trợ lý ảo thông minh hỗ trợ
AI như: Google Assistant (Google), Alexa (Amazon), Siri (Apple), Cortana
(Microsoft), … Các thiết bị trong ngôi nhà thông minh ngoài được điều khiển
qua các app trên điện thoại, web,… còn được điều khiển qua trợ lý ảo cũng dần
được phát triển. Vì vậy, em đã tìm hiểu, nghiên cứu, chọn đề tài: “ Điều khiển
thiết bị bằng giọng nói qua Google Asstiant (Google Home) ” để làm đồ án tốt
nghiệp của mình.
Kết quả nghiên cứu từ đề tài này sẽ giúp em có nhiều kinh nghiệm để sau
khi tốt nghiệp chúng em có đủ khả năng nghiên cứu chế tạo hoàn chỉnh thiết bị
điều khiển hệ thống điện cho ngôi nhà thông minh đáp ứng được sử dụng yêu
cầu trên thi ̣trường với giá thành hợp ̣ lý, chất lượng đảm bảo, phù hợp ̣ với điều
kiện sống tại Việt Nam.
1.2. Phương pháp nghiên cứu
8. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 2
– Nghiên cứu tài liệu qua sách báo về lĩnh vực IOT
– Nghiên cứu cơ sở lý thuyết để thiết kế mạch điều khiển thiết bị với trợ lý ảo
Google Assistant của Google
– Tìm hiểu nguyên lý hoạt động của các module và thiết bị điện trong nhà
1.3. Mục tiêu, nhiệm vụ
– Tìm hiểu về hệ thống điều khiển thông minh các thiết bị trong nhà .
– Tìm hiểu về Google Assistant (Google Home), IOT.
– Thiết kế mạch điều khiển thiết bị bằng giong nói qua Google Assistant (Google
Home)
– Xây dựng mô hình mẫu điều khiển thiết bị qua Google Assistant (Google
Home)
– Kiểm tra, đánh giá tính ứng dụng của đề tài.
9. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 3
CHƯƠNG 2
TỔNG QUAN
2
2.
.1
1.
. T
Tr
rợ
ợ l
lý
ý ả
ảo
o
2
2.
.1
1.
.1
1.
. K
Kh
há
ái
i n
ni
iệ
ệm
m
Trợ lý ảo là một khái niệm mới trong lĩnh vực công nghệ, phần mềm, lần
đầu được biết tới trên thế giới vào năm 1961 tại Hội chợ Thế giới Seattle, dưới
dạng một thiết bị có tên IBM Shoebox, với khả năng nhận diện giọng nói.
Đến năm 1970, Bộ Quốc phòng Hoa Kỳ và cơ quan DARPA của Bộ này
đã phát triển công cụ “Harpy” có thể nhận dạng khoảng 1000 từ, tương đương
vốn từ vựng của một đứa bé 3 tuổi.
Phải tới những năm 1990, trợ lý ảo mới được các nhà sản xuất hàng đầu
như Microsoft, IBM, Philips và Lernout & Hauspie chính thức nghiên cứu và áp
dụng trên các máy tính cá nhân. Trong đó, sự kiện ra mắt chiếc điện thoại thông
minh đầu tiên IBM Simon vào năm 1994 đặt nền móng cho các trợ lý ảo thông
minh mà ta biết tới ngày nay.
Năm 2011, trợ lý ảo số hiện đại đầu tiên được cài đặt trên một điện thoại
thông minh là Siri, từng được giới thiệu là một tính năng trên chiếc iPhone 4S
của Apple.
Từ năm 2017 đến nay, trợ lý ảo bắt đầu được người dùng chú ý nhờ các
ứng dụng thực tiễn, đặc biệt là sự đầu tư mạnh tay từ các tập đoàn lớn như
Amazon với Alexa, Google với Google Assistant hay Apple với Siri.
Hình 2.1: Các trợ lý ảo trên các dòng Smartphone
10. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 4
Từ trên chúng ta có thể hiểu đơn giản trợ lý ảo là phần mềm, công cụ được xây dựng
dựa trên nền tảng trí thông minh nhân tạo (AI) và được các nhà phát triển hệ điều
hành, hay các hãng công nghệ tích hợp sâu vào trong hệ điều hành với mục đích chính
là hỗ trợ người dùng thiết bị dễ dàng hơn bằng chính thói quen mà người dùng thường
làm trên thiết bị.
2.1.2. Google Assistant
Google Assistant là một trợ lý cá nhân ảo được phát triển bởi Google và
được giới thiệu tại hội nghị nhà phát triển của hãng vào tháng 5 năm 2016.
Không giống như Google Now, Google Assistant có thể tham gia các cuộc trò
chuyện hai chiều.
Assistant ban đầu được đưa vào ứng dụng nhắn tin Google Allo, và loa
thông minh Google Home. Sau một thời gian chỉ có mặt trên hai chiếc điện thoại
thông minh Pixel và Pixel XL của hãng, Google bắt đầu triển khai Assistant trên
các thiết bị Android khác vào tháng 2 năm 2017, bao gồm cả các điện thoại
thông minh bên thứ ba và các thiết bị Android Wear, và được phát hành dưới
dạng ứng dụng riêng biệt trên IOS vào tháng 5. Cùng với sự ra mắt một bộ phát
triển phần mềm (SDK) vào tháng 4 năm 2017 cho phép các nhà phát triển bên
thứ ba có thể tự xây dựng phần cứng tương thích với Google Assistant, Assistant
đã và đang được tiếp tục mở rộng hỗ trợ cho một lượng lớn thiết bị, bao gồm cả
xe hơi và các thiết bị nhà thông minh. Các chức năng của Assistant cũng có thể
được bổ sung bởi các nhà phát triển bên thứ ba.
Người dùng chủ yếu có thể tương tác với Google Assistant qua giọng nói
tự nhiên, hoặc có thể nhập qua bàn phím. Các chức năng cơ bản của nó cũng
tương tự như Google Now, như tìm kiếm trên Internet, đặt sự kiện trên lịch và
báo thức, điều chỉnh cài đặt phần cứng trên thiết bị người dùng và hiển thị thông
tin từ tài khoản Google của người dùng. Google cũng bổ sung các tính năng
khác cho Assistant bao gồm khả năng nhận diện vật thể và thu thập thông tin về
vật thể thông qua máy ảnh của thiết bị, cùng với việc hỗ trợ mua sản phẩm và
chuyển tiền.
11. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 5
Hình 2.2: Sử dụng Google Assistant trên điện thoại
Vào 6-5-2019, Google đã bổ sung tiếng Việt vào danh sách những ngôn
ngữ được hỗ trợ bởi Google Assistant. Nhờ đó, người Việt đã có thể sử dụng
những câu lệnh bằng tiếng Việt để hỏi đáp, truy vấn thông tin.
Còn trước đây, người Việt muốn sử dụng Google Assistant buộc phải ra
lệnh bằng tiếng Anh (hoặc một ngôn ngữ nước ngoài khác). Rào cản ngôn ngữ
khiến cho Google Assistant cũng như các trợ lý ảo khác không được sử dụng
rộng rãi tại Việt Nam.
2.1.3. Loa thông minh Google Home
Google Home là một thương hiệu loa thông minh được phát triển bởi
Google. Các thiết bị cho phép người dùng nói lệnh thoại để tương tác với các
dịch vụ thông qua Google Assistant , trợ lý ảo của công ty . Cả hai dịch vụ nội
bộ và bên thứ ba đều được tích hợp, cho phép người dùng nghe nhạc, kiểm soát
phát lại video hoặc ảnh hoặc nhận cập nhật tin tức hoàn toàn bằng giọng
nói. Các thiết bị Google Home cũng có hỗ trợ tích hợp cho tự động hóa gia
đình , cho phép người dùng điều khiển các thiết bị gia đình thông minh bằng
giọng nói của họ. Thiết bị Google Home đầu tiên được phát hành tại Hoa Kỳ
vào tháng 11 năm 2016, với các sản phẩm tiếp theo được phát hành trên toàn cầu
từ 2017.
12. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 6
Hình 2.3: Google Home
Thông qua các bản cập nhật phần mềm cho các thiết bị Google Home và
Google Assistant, chức năng bổ sung đã được thêm vào theo thời gian. Nhiều
loa có thể được đặt trong các phòng khác nhau trong một ngôi nhà để phát lại
nhạc đồng bộ. Một bản cập nhật vào tháng 4 năm 2017 đã mang đến sự hỗ trợ
cho nhiều người dùng, cho phép thiết bị phân biệt giữa tối đa sáu người bằng
giọng nói. Vào tháng 5 năm 2017, Google đã công bố nhiều bản cập nhật, bao
gồm: gọi điện thoại rảnh tay miễn phí tại Hoa Kỳ và Canada; cập nhật chủ động
trước các sự kiện theo lịch trình; phản hồi trực quan trên thiết bị di động
hoặc TV có hỗ trợ Chromecast ; Truyền phát âm thanh Bluetooth ; và khả năng
thêm lời nhắc và lịch hẹn.
Hình 2.4: Google Home Mini
13. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 7
Loa Google Home ban đầu được phát hành vào tháng 11 năm 2016, có
hình dạng hình trụ với đèn LED trạng thái màu trên đầu. Vào tháng 10 năm
2017, Google đã công bố hai bổ sung cho dòng sản phẩm, Google Home Mini
hình puck thu nhỏ và Google Home Max lớn hơn. Vào tháng 10 năm 2018, công
ty đã phát hành Google Home Hub, một loa thông minh với màn hình hiển thị
video màn hình cảm ứng 7 inch. Một màn hình thông minh thứ hai có tên
Google Nest Hub Max đã được công bố vào tháng 5 năm 2019 và sẽ có màn
hình 10 inch và máy quay video.
Hình 2.5: Google Hud
Vào tháng 5 năm 2019, Google đã thông báo rằng các thiết bị Google
Home sẽ được đổi thương hiệu dưới biểu ngữ Google Nest
2.2. Internet Of Thing
2.2.1. Khái niệm
Internet of Things (IoT) là thuật ngữ dùng để chỉ các đối tượng có thể được
nhận biết cũng như sự tồn tại của chúng trong một kiến trúc mang tính kết nối.
Đây là một viễn cảnh trong đó mọi vật, mọi con vật hoặc con người được cung
14. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 8
cấp các định danh và khả năng tự động truyền tải dữ liệu qua một mạng lưới mà
không cần sự tương tác giữa con người-với-con người hoặc con người-với-máy
tính. IoT tiến hoá từ sự hội tụ của các công nghệ không dây, hệ thống vi cơ điện
tử (MEMS) và Internet. Cụm từ này được đưa ra bởi Kevin Ashton vào năm
1999. Ông là một nhà khoa học đã sáng lập ra Trung tâm Auto-ID ở đại học MIT.
Hình 2.6:“Internet of Things”
“Thing” – sự vật – trong Internet of Things, có thể là một trang trại động
vật với bộ tiếp sóng chip sinh học, một chiếc xe ô tô tích hợp các cảm biến để
cảnh báo lái xe khi lốp quá non, hoặc bất kỳ đồ vật nào do tự nhiên sinh ra hoặc
do con người sản xuất ra mà có thể được gán với một địa chỉ IP và được cung
cấp khả năng truyền tải dữ liệu qua mạng lưới.
IoT phải có 2 thuộc tính: một là đó phải là một ứng dụng internet. Hai là, nó
phải lấy được thông tin của vật chủ.
15. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 9
Hình 2.7: Sự gia tăng nhanh chóng của giao tiếp máy – máy.
Một ví dụ điển hình cho IoT là tủ lạnh thông minh, nó có thể là một chiếc
tủ lạnh bình thường nhưng có gắn thêm các cảm biến bên trong giúp kiểm tra
được số lượng các loại thực phẩm có trong tủ lạnh, cảm biến nhiệt độ, cảm biến
phát hiện mở cửa, …và các thông tin này được đưa lên internet. Với một danh
mục thực phẩm được thiết lập trước bởi người dùng, khi mà một trong các loại
thực phẩm đó sắp hết thì nó sẽ thông báo ngay cho chủ nhân nó biết rằng cần
phải bổ sung gấp, thậm chí nếu các loại sản phẩm được gắn mã ID thì nó sẽ tự
động trực tiếp gửi thông báo cần nhập hàng đến siêu thị và nhân viên siêu thị sẽ
gửi loại thực phẩm đó đến tận nhà.
Hình 2.8: Ứng dụng tủ lạnh trong IoT
16. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 10
2.2.2. Ứng dụng
Với những hiệu quả thông minh rất thiết thực mà IoT đem đến cho con
người, IoT đã và đang được tích hợp trên khắp mọi thứ, mọi nơi xung quanh thế
giới mà con người đang sống. Từ chiếc vòng đeo tay, những đồ gia dụng trong
nhà, những mãnh vườn đang ươm hạt giống, cho đến những sinh vật sống như
động vật hay con người…đều có sử dụng giải pháp IoT.
Hình 2.9: Tổng quan về ứng dụng của IoT.
Ứng dụng trong lĩnh vực vận tải:
Ứng dụng điển hình nhất trong lĩnh vực này là gắn chíp lấy tọa độ GPS
lên xe chở hàng, nhằm kiểm soát lộ trình, tốc độ, thời gian đi đến của các xe chở
hàng. Ứng dụng này giúp quản lý tốt khâu vận chuyển, có những xử lý kịp thời
khi xe đi không đúng lộ trình hoạt bị hỏng hóc trên những lộ trình mà ở đó mạng
di động không phủ sóng tới được, kiểm soát được lượng nhiên liệu tiêu hao ứng
với lộ trình đã được vạch trước…
Hình 2.10: Theo dõi lộ trình đi của xe chở hàng.
17. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 11
Ứng dụng trong lĩnh vực sản xuất nông nghiệp:
Quá trình sinh trưởng và phát triển của cây trồng trải qua nhiều giai đoạn
từ hạt nảy mầm đến ra hoa kết trái. Ở mỗi giai đoạn cần có sự chăm sóc khác
nhau về chất dinh dưỡng cũng như chế độ tưới tiêu phù hợp. Những yêu cầu này
đòi hỏi sự bền bỉ và siêng năng của người nông dân từ ngày này sang ngày khác
làm cho họ phải vất vả. Nhưng nhờ vào ứng dụng khoa học kỹ thuật, sử dụng
cảm biến để lấy thông số nhiệt độ, độ ẩm, độ pH của đất trồng, cùng với bảng dữ
liệu về quy trình sinh trưởng của loại cây đó, hệ thống sẽ tự động tưới tiêu bón
lót cho cây trồng phù hợp với từng giai đoạn phát triển của cây trồng. Người
nông dân bây giờ chỉ kiểm tra, quan sát sự vận hành của hệ thống chăm sóc cây
trồng trên một màn hình máy tính có nối mạng.
Hình 2.11: Theo dõi tình trạng sinh trưởng của cây trồng.
Sản phẩm của mỗi loại nông sản sẽ được gắn mã ID, nếu tủ lạnh nhà chúng ta
sắp hết một loại nông sản nào đó thì ngay lập tức nó sẽ tự động gửi thông báo
cần mua đến cơ sở dữ liệu của trang trại có trồng loại nông sản đó, và chỉ sau
một thời gian nông sản mà bạn cần sẽ được nhân viên đem đến tận nhà.
Ứng dụng trong nhà thông minh:
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, kết nối mọi vật qua Internet, nhà thông minh trở thành một xu hướng
18. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 12
công nghệ tất yếu, là tiêu chuẩn của nhà ở hiện đại. Trong căn hộ thông minh,
tất cả các thiết bị từ rèm cửa, điều hoà, dàn âm thanh, hệ thống ánh sáng, hệ
thống an ninh, thiết bị nhà tắm… được kết nối với nhau và hoạt động hoàn toàn
tự động theo kịch bản lập trình sẵn, đáp ứng đúng nhu cầu sử dụng của khách
hàng.
Ví dụ, vào buổi sáng, đèn tắt, rèm cửa tự động chuyển tới vị trí thích hợp
để giảm bớt những tác động náo nhiệt từ đường phố và nhường không gian cho
ánh sáng tự nhiên. Tối đến, hệ thống đèn bật sáng, các rèm cửa kéo lên người
dùng có thể thưởng ngoạn từ trên cao bức tranh thành phố rực rỡ ánh đèn, đồng
thời âm nhạc cũng nhẹ nhàng cất lên các giai điệu yêu thích của gia đình.
Hình 2.12: Ví dụ về nhà thông minh
Nếu có việc cả nhà phải đi vắng, chế độ “Ra khỏi nhà” sẽ được kích hoạt,
toàn bộ thiết bị điện tử gia dụng sẽ tự động tắt hoặc đóng lại và khi chủ nhân về,
chúng cũng sẽ khôi phục lại trạng thái trước đó. Thậm chí, nước nóng cũng đã
sẵn sàng từ vài phút trước khi gia chủ về đến cửa. Riêng hệ thống an ninh luôn
hoạt động 24/24 và sẽ thông báo đến chủ nhà mọi thay đổi “đáng ngờ” trong
ngôi nhà, dù đang ở bất cứ đâu.
19. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 13
2.3. Blynk
Đây là một nền tảng IoT được ưa thích bởi hơn 500.000 kỹ sư trong lĩnh
vực IoT trên toàn thể giới.
2.3.1. Hệ sinh thái Blynk
Có ba thành phần chính trong nền tảng Blynk:
Blynk App – cho phép tạo giao diện cho sản phẩm của bạn bằng cách kéo
thả các widget khác nhau mà nhà cung cấp đã thiết kế sẵn.
Blynk Server – chịu trách nhiệm xử lý dữ liệu trung tâm giữa điện thoại,
máy tính bảng và phần cứng. Chúng ta có thể sử dụng Blynk Cloud của Blynk
cung cấp hoặc tự tạo máy chủ Blynk riêng cho mình. Vì đây là mã nguồn mở,
nên bạn có thể dễ dàng intergrate vào các thiết bị và thậm chí có thể sử dụng
Raspberry Pi làm server của hệ thống.
Library Blynk – support cho hầu hết tất cả các nền tảng phần cứng phổ
biến – cho phép giao tiếp với máy chủ và xử lý tất cả các lệnh đến và đi.
Hình 2.13: Sơ đồ hệ sinh thái Blynk
20. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 14
Nguyên lý hoạt động của Blynk: mỗi khi ta nhấn một nút trong ứng dụng
Blynk, yêu cầu sẽ chuyển đến server của Blynk, server sẽ kết nối đến phần cứng
của chúng ta thông qua library . Tương tự thiết bị phần cứng sẽ truyền dữ liệu
ngược lại đến server.
Vì thế chúng ta có thể tự mình xây dụng một hệ sinh thâí nhà thông minh
dựa trên nền tảng của Blynk
2.3.2.Tính năng của Blynk
– Cung cấp API & giao diện người dùng tương tự cho tất cả các thiết bị và phần
cứng được hỗ trợ
– Kết nối với server bằng cách sử dụng:Wifi, Bluetooth và BLE, Ethernet, USB
(Serial), GSM, …
– Các tiện ích trên giao diện được nhà cung cấp dễ sử dụng
– Thao tác kéo thả trực tiếp giao diện mà không cần viết mã
– Dễ dàng tích hợp và thêm chức năng mới bằng cách sử dụng các cổng kết nối
ảo được tích hợp trên blynk app
– Theo dõi lịch sử dữ liệu
– Thông tin liên lạc từ thiết bị đến thiết bị bằng Widget
2.4. Nhà thông minh
2.4.1. Khái niệm
Nhà thông minh là kiểu nhà được lắp đặt các thiết bị điện, điện tử có thể được
điều khiển hoặc tự động hoá 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. Hệ thống điện tử này giao
tiếp với người dùng thông qua bảng điện tử đặt trong nhà, ứng dụng trên điện
thoại di động, máy tính bảng hoặc một giao diện web.
21. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 15
Hình 2.14: Mô hình nhà thông minh
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.
2.4.2. Chức năng
– Đ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
– Đ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
– Hệ thống Bảo vệ nguồn điện
2.2.3. Các hệ sinh thái nhà thông minh trên thế giới:
Với nhu cầu ngày càng cao về nhà thông minh trên thế giới. Các hãng
công nghệ lớn trên thế giới đã phát triển các hệ sinh thái SmartHome cho riêng
22. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 16
mình. Với trung tâm là trợ lý ảo tích hợp AI cùng các thiết bị điện thông minh
kết nối IoT và các phần mềm hỗ trợ trên Smart phone
Tiêu biểu trong các hệ sinh thái này phải kể đến: Amazon, Google,
Samsung, Xiaomi, GeekLink, …
23. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 17
CHƯƠNG 3
T
TH
HI
IẾ
ẾT
T B
BỊ
Ị V
VÀ
À G
GI
IẢ
ẢI
I P
PH
HÁ
ÁP
P C
CÔ
ÔN
NG
G N
NG
GH
HỆ
Ệ
3.1 Kit NodeMCU Lua ESP8266
Chip ESP8266 được phát triển bởi Espressif để cung cấp giải pháp giao
tiếp Wifi cho các thiết bị IoT. Điểm đặc biệt của dòng ESP8266 là nó được tích
hợp các mạch RF như balun, antenna switches, TX power amplifier và RX filter
ngay bên trong chip với kích thước rất nhỏ chỉ 5x5mm nên các board sử dụng
ESP8266 không cần kích thước board lớn cũng như không cần nhiều linh kiện
xung quanh.
Hình 3.1: Module NodeMCU Lua ESP8266
Module thu phát Wifi ESP8266 NodeMCU Lua là kit phát triển dựa trên
nền chip Wifi SoC ESP8266 với thiết kế dễ sử dụng và đặc biệt là có thể sử
dụng trực tiếp trình biên dịch của Arduino để lập trình và nạp code, điều này
khiến việc sử dụng và lập trình các ứng dụng trên ESP8266 trở nên rất đơn giản.
24. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 18
Hình 3.2: Sơ đồ nguyên lý kit NodeMCU ESP8266
Thông số kỹ thuật:
– IC chính: ESP8266 Wifi SoC.
– Phiên bản firmware: NodeMCU Lua
– Chip nạp và giao tiếp UART: CH340
– GPIO tương thích hoàn toàn với firmware Node MCU.
– Cấp nguồn: 5VDC MicroUSB hoặc Vin.
– GIPO giao tiếp mức 3.3VDC
– Tích hợp Led báo trạng thái, nút Reset, Flash.
– Tương thích hoàn toàn với trình biên dịch Arduino.
– Kích thước: 59 x 32mm
3.2. Công tắc cảm ứng
Ngày nay ở một số thiết bị gia dụng, thiết bị điện, điện tử sử dụng nút
bấm nằm trên mặt phẳng cứng, ví dụ nút bấm trên một số loại bếp từ, nút bấm
trong bảng công tắc điều khiển nhà thông minh, nút back của một số điện
thoại…đó là các nút bấm điện dung. Đặc điểm của các loại nút này là chỉ cần
25. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 19
chạm, không cần nhấn nút và ta cũng không thể nhấm “lõm” như những nút bấm
cơ bình thường vì chúng được vẽ trên mặt nhựa hoặc mặt kính phẳng.
Nút bấm điện dung ra đời với mục đích chính là thay thế nút bấm cơ
truyền thống, mang đến sự tinh tế, sự hiện đại cho các thiết bị điện tử. TTP224
là ic giải mã cảm ứng điện dung thông dụng đặc biệt sử dụng trong các thiết bị
điều khiển, có khả năng tự động xử lý với 4 cực chạm và đưa ra 4 đầu ra trực
tiếp.
Hình 3.3: Sơ đồ nguyên lý mạch công tắc cảm ứng
Thông tin chung về IC TTP224-ASD (SSOP20)
– Điện áp sử dụng: 2.5V~5.5V
– Dòng điện tiêu thụ tại VDD = 3V không tải: 2.5uA ở low power mode và
9.0uA ở fast mode
– Thời gian đáp ứng tại VDD = 3V là 100mS ở fast mode và 200mS ở low
power mode
– Có thể điều chỉnh độ nhạy cho cảm biến bằng tụ ngoài gắn vào touch pad
– Cung cấp 2 chế độ là fast mode và low power mode được lựa chọn bởi chân
LPMB
26. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 20
– Có thể điều chỉnh thời gian chạm tối đa 120s/64s/16s bởi các chân MOT1,
MOT0
Hình 3.4: Mặt công tắc cảm ứng
Điều chỉnh độ nhạy:
Các yếu tố như kích thước của điện cực, điện dung của đường dây kết nối
trên PCB có thể ảnh hưởng đến độ nhạy. Độ nhạy của cảm biến phải được điều
chỉnh tùy theo ứng dụng cụ thể trên PCB. TTP224-ASD cung cấp một số
phương pháp để điều chỉnh độ nhạy cảm biến.
Kích thước bản cực: Sử dụng một bản cực lớn hơn có thể làm tăng độ
nhạy tuy nhiên kích thước bản cực phải ở trong phạm vi hiệu quả cho phép.
Độ dày của bản cực: Sử dụng một bản cực mỏng có thể làm tăng độ nhạy.
Độ dày của bản cực phải thấp hơn giá trị cực đại cho phép.
Giá trị của tụ Cs: Thêm các tụ Cs (xem schematic) vào để điều chỉnh độ nhạy
của cảm biến.
Khi không sử dụng tụ nối mass độ nhạy sẽ cao nhất. Điện dung của tụ Cs
càng lớn thì độ nhạy càng giảm, giá trị của tụ nên chọn trong khoảng 0pF <= Cs
<= 50Pf
Chúng ta không thể thay đổi độ dày bản cực, kích thước bản cực nên chọn
là 15x15mm, tụ Cs nên có với giá trị 10pF và thay đổi tùy theo mục đích cụ thể.
Khi để chân TOG, OD, AHLB ở mặc định (để hở) thì cảm biến sẽ ở direct
mode và CMOS active high output.
27. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 21
3.3. Module Relay 4 kênh
Relay là thiết bị đóng cắt cơ bản, nó được sử dụng rất nhiều trong cuộc
sống và trong các thiết bị điện tử.
Cấu tạo Relay gồm 2 phần:
– Cuộn hút: Tạo ra năng lượng từ trường để hút tiếp điểm về phía mình. Tùy vào
điện áp làm việc người ta chia Relay ra:
+ DC: 5V, 12V, 24V
+ AC: 110V. 220V
Hình 3.5: Cấu tạo Relay
– Cặp tiếp điểm: Khi không có từ trường (không cấp điện cho cuôn dây).
Tiếp điểm 1 được tiếp xúc với 2 nhờ lực của lò xo. Tiếp điểm thường đóng, khi
có năng lượng từ trường thì tiếp điểm 1 bị hút chuyển sang 3. Trong Relay có
thể có 1 cặp tiếp điểm, 2 cặp tiếp điểm hoặc nhiều hơn.
Relay 4 Kênh 5V gồm 4 rơ le hoạt động tại điện áp 5VDC, chịu được hiệu
điện thế lên đến 250VAC 10A. Relay 4 kênh 5V được thiết kế chắc chắn, khả
28. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 22
năng cách điện tốt. Trên module đã có sẵn mạch kích relay sử dụng transistor và
IC cách ly quang giúp cách ly hoàn toàn mạch điều khiển (vi điều khiển) với rơ
le bảo đảm vi điều khiển hoạt động ổn định. Có sẵn header rất tiện dụng khi kết
nối với vi điều khiển.
Relay 4 kênh sử dụng chân kích mức Thấp (0V), khi có tín hiệu 0V vào
chân IN thì relay sẽ nhảy qua thường hở của Relay. Ứng dụng dùng với relay
module khá nhiều bao gồm cả điện DC hay AC.
Hình 3.6: Module relay 4 kênh
Thông số kỹ thuật:
– Sử dụng điện áp nuôi 5VDC.
– 4 Relay đóng ngắt ở điện thế kích bằng 0V nên có thể sử dụng cho cả tín hiệu
5V hay 3v3 (cần cấp nguồn ngoài), mỗi Relay tiêu thụ dòng khoảng 80mA.
– Điện thế đóng ngắt tối đa: AC250V – 10A hoặc DC30V – 10A.
– Có đèn báo đóng ngắt trên mỗi Relay.
29. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 23
3.4. Đèn led 3 W
Với độ sáng tương đương, LED Bulb chỉ cần sử dụng công suất bằng một
nửa đèn Compact, nhưng tuổi thọ lại cao gấp 5 lần so với đèn Compact.
Ánh sáng chiếu sáng trực tiếp, cho ánh sáng thẳng, hiệu suất sáng cao (>=
90lm/w)
Mặt trước đèn được làm bằng nhựa PC nên ánh sáng tản đều, chống chói
lóa;
Thân đèn được thiết kế bằng nhựa PBT có khả năng chống cháy và chịu
nhiệt cao
Các chỉ số quang thông và hiệu năng của đèn đều vượt trội so với đèn
truyền thống.
Kiểu dáng đa dạng về kiểu dáng và màu sắc trắng, vàng, đỏ, xanh dương,
xanh lá.
Hình 3.7: Bóng đèn led 3W
LED có hiệu suất phát sáng cao hơn bóng đèn compact, sợi tóc. Kích
thước nhỏ gọn, phù hợp với từng vị trí, nhu cầu sử dụng. Không gây độc hại, rất
thân thiện với môi trường. Thiết kế nhỏ gọn, phù hợp với các chóa lon compact
cũ.
30. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 24
Hình 3.8: Bảng thông số kỹ thuật đèn led 3W
3.5. Phần mềm IDE
Đây là phần mềm dùng để lập trình nạp code vô kit NodeMCU Lua
ESP8266
Cấu trúc một chương trình trong phần mềm IDE:
Phần 1: Khai báo biến
Đây là phần khai báo kiểu biến, tên các biến, định nghĩa các chân trên board một
số kiểu khai báo biến thông dụng:
* #define
Nghĩa của từ define là định nghĩa, hàm #define có tác dụng định nghĩa, hay còn
gọi là gán, tức là gán một chân, một ngõ ra nào đó với 1 cái tên.
Ví dụ #define led 13
Chú ý: sau #define thì không có dấu “,” (dấy phẩy)
*Khai báo các kiểu biến khác như: int (kiểu số nguyên), float,…
Các chúng ta có thể tham khảo thêm các kiểu biến cũng như công dụng tại
arduino.cc
Phần 2: Thiết lập (void setup())
Phần này dùng để thiết lập cho chương trình, cần nhớ rõ cấu trúc của nó
void setup()
31. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 25
{
…..
}
Cấu trúc của nó có dấu ngoặc nhọn ở đầu và ở cuối, nếu thiếu phần này khi kiểm
tra chương trình thì chương trình sẽ báo lỗi.
Phần này dùng để thiết lập các tốc độ truyền dữ liệu, kiểu chân là chân ra hay
chân vào. Trong đó:
Serial.begin(9600);
Dùng để truyền dữ liệu từ board Arduino
lên
máy tính.
pinMode(biến, kiểu vào hoặc ra); Ví
dụ: Dùng để xác định kiểu chân là vào hay ra
pinMode(ChanDO, INPUT);
Phần 3: Vòng lặp
Dùng để viết các lệnh trong chương trình để mạch Arduino thực hiện các nhiệm
vụ mà chúng ta mong muốn, thường bắt đầu bằng:
void loop()
{
…………….
}
Một số câu lệnh, cấu trúc thường gặp:
Bảng 2.1 Một số câu lệnh thường gặp
Ký hiệu, câu lệnh Ý nghĩa
//
Dấu // dùng để giải thích, khi nội dung giải thích nằm trên 1 dòng,
khi
kiểm tra chương trình thì phần kiểm tra sẽ bỏ qua phần này,
không kiểm
tra,
32. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 26
/*
Ký hiệu này cũng dùng để giải thích, nhưng giải thích dành cho 1
đoạn, tức
…. có thể xuống dòng được
*/
#define biến chân
Define nghĩa là định nghĩa, xác định. Câu lệnh này nhằm gán tên
1 biến
vào 1 chân nào đó. Ví dụ #define led 13
digitalWrite(chân,
Dùng để tắt, mở 1 chân ra. Cú pháp của nó là
digitalWrite(chân,trạng thái
trạng thái);
chân);. Ở đây trạng thái chân có thể là HIGH hoặc LOW.
Ví dụ:
digital(led,HIGH); , hoặc digital(led,LOW); . Chú dấu chấm phẩy
đằng sau
câu lệnh.
analogWrite(chân,
Có ý nghĩa dùng để băm xung (PWM), thường dùng để điều
khiển tốc độ
giá trị);
động cơ, độ sáng
led,..
digitalRead(chân);
Read nghĩa là đọc, lệnh này dùng để đọc giá trị digital tại chân
muốn đọc
analogRead(chân)
;
Read nghĩa là đọc, lệnh này dùng để đọc giá trị analog tại chân
muốn đọc
delay(thời gian);
Delay nghĩa là chờ, trì hoãn, duy trì. Lệnh này dùng để duy trì
trạng thái
đang thực hiện chờ một thời gian. Thời gian ở đây được tính bằng
mili
giây, 1 giây bằng 1 ngàn mili giây.
if() if nghĩa là nếu, sau if là dấu (), bên trong dấu ngoặc là một biểu
33. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 27
thứ so
{ sánh. Ví dụ trong bài về cảm biến độ ẩm đất (phần 5) thì:
Các câu lệnh
if (giatriAnalog>500) //nếu giá trị đọc được của biến giatriAnalog
lớn hơn
} 500
else () {
{
digitalWrite(Led,HIGH); //Ra lệnh cho led
sáng
Các câu lệnh delay(1000);//chờ 1s
} }
else nghĩa là ngược
lại
34. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 28
CHƯƠNG 4
T
TH
HI
IẾ
ẾT
T K
KẾ
Ế M
MẠ
ẠC
CH
H Đ
ĐI
IỀ
ỀU
U K
KH
HI
IỂ
ỂN
N T
TH
HI
IẾ
ẾT
T B
BỊ
Ị Đ
ĐI
IỆ
ỆN
N B
BẰ
ẰN
NG
G
G
GI
IỌ
ỌN
NG
G N
NÓ
ÓI
I V
VỚ
ỚI
I G
GO
OO
OG
GL
LE
E A
AS
SS
SI
IS
ST
TA
AN
NT
T
4
4.
.1
1.
. S
Sơ
ơ đ
đồ
ồ k
kh
hố
ối
i
Hình 4.1: Sơ đồ khối hệ thống
Khối nguồn:
Đây là khối để cung cấp điện cho toàn bộ hệ thống điện. Gồm có hai
nguồn:
Nguồn cho mạch điều khiển: tạo ra dòng điện và điện thế ổn định cung
cấp an toàn cho cả mạch. Ở đây có thể dùng nguồn 6V-24V
Nguồn cho các thiết bị điện: Dùng điện 220V
Khối xử lí trung tâm NodeMCU Lua Esp8266:
Khối xử lí trung tâm
Node MCU Esp8266
Nguồn
Blynk
Relay
Công Tắc
Cảm Ứng
Thiết Bị
Điện
Google Assistant
35. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 29
Khối xử lí trung tâm NodeMCU Lua Esp8266 gồm Chip WiFi
ESP8266EX bên trong Module ESP-12E để dễ dàng kết nối WiFi. Dùng để xử
lý các tín hiệu điều khiển các thiết bị điện từ Google Assistant, Blynk cũng như
công tắc cảm ứng
Khối Relay:
Dùng để đóng ngắt các thiết bị điện trong nhà. Ở mô hình này tôi sử dụng
module relay 4 kênh có thể đóng ngắt được bốn thiết bị trong nhà
Khối công tắc cảm ứng:
Dùng để điều khiển bằng tay các thiết bị trong nhà khi không sử dụng
điều khiển bằng giọng nói với Google Assistant và Blynk
Khối Blynk:
Đây là sever để điều khiển các thiết bị điện trong nhà qua wifi. Ta có thể
điều khiển các thiết bị điện trong nhà qua App Blynk trên SmartPhone trên điện
thoại cũng như Web Blynk trên máy vi tính.
Khối Google Assistant:
Đây là trợ lý ảo của Google để điều khiển các thiết bị điện trong nhà bằng
giọng nói. Ở đây ta có thể điều khiển bằng giọng nói qua phầm mềm Google
Assistant qua SmartPhone, loa thông minh Google Home Mini,…
Khối thiết bị điện:
Bao gồm các thiết bị điện trong nhà được kết nối để điều khiển được bằng
giọng nói với trợ lý ảo Google Assistant, công tắc cảm ứng cũng như Blynk. Các
thiết bị điện có thể là: Đèn, quạt, máy bơm, máy lạnh, …
Với đề tài này tôi sử dụng đèn công suất nhỏ để mô phỏng các thiết bị
điện trong nhà: đèn phòng khác
4.2. Sơ đồ kết nối
Phần cứng của mô hình điều khiển thiết bị điện trong nhà qua Wifi được
kết nối với nhau theo sơ dưới đây. Với khối xử lý trung tâm là kít NodeMCU
Lua ESP 8266
36. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 30
Hình 4.2: Sơ đồ kết nối
4.3. Mạch thực tế
Hình 4.3. Giao diện mặt trước của hệ thống
37. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 31
Hình 4.4. Giao diện mặt sau của hệ thống
Hình 4.5. Mạch điều khiển
38. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 32
4.4. Lưu đồ giải thuật
HIGHT
H
LOW
Hình 4.6: Lưu đồ giải thuật
Bắt Đầu
Nhận tín hiệu điều khiển từ
Google Assistant/Blynk/Công Tắc
Cảm Ứng
Tắt thiết
bị điện
Tín hiệu điều
khiển bật tắt
thiết bị
Bật thiết
bị điện
Giám sát trên Blynk và công
tắc cảm ứng
39. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 33
Nguyên lý hoạt động của hệ thống:
Điều khiển bằng giọng nói với Google Assistant:
– Khi ta nói một câu lệnh trên Google Assistant đã được cài đặt sẵn để bật tắt một thiết
bị thì Google Assiatant sẽ nhận lệnh sau đó thông qua IFTTT truyền xuống Blynk sau
đó từ Blynk truyền lệnh xuống NodeMCU Lua ESP8266. Tại đây NodeMCU Lua
ESP8266 sẽ xử lý dữ liệu để kích relay tương ứng với các mức logic để bật tắt thiết bị
theo câu lệnh đã cài đặt trên Google Assistant
Điều khiển bằng Blynk:
– Khi có tín hiệu điều khiển từ app Blynk về khối trung tâm thì NodeMCU Lua
ESP8266 sẽ xử lý dữ liệu nhận được để kích các relay tương ứng để điều khiển thiết bị
điện cũng như đồng bộ trạng thái lên công tắc cảm ứng
Điều khiẻn bằng công tắc cảm ứng:
– Khi có tín hiệu điều khiển từ công tắc cảm ứng về khối trung tâm thì NodeMCU Lua
ESP8266 sẽ xử lý dữ liệu nhận được để kích các relay tương ứng để điều khiển thiết bị
điện cũng như đồng bộ trạng thái lên app Blynk
40. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 34
CHƯƠNG 5
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI
5.1. Kết luận
5.1.1. Những mặt đã làm được
– Mạch điện với các module nhỏ trên mạch được thiết kế, thi công hoàn
chỉnh và đã được thử nghiệm nhiều lần và đã thoạt động ổn định trong thực tế
– Hệ thống đã điều khiển được bằng giọng nói với Google Assistant
– Xây dựng được mô hình để ứng dụng điều khiển các thiết bị điện trong
nhà bằng công tắc cảm ứng
– Hệ thống có thể điều khiển được thiết bị điện từ xa thông qua wifi bằng
phần mềm Blynk
– Đã đồng bộ được giữa điều khiển thiết bị điện trong nhà bằng công tắc
cảm ứng với app Blynk giúp chúng ta có thể giám sát các thiết bị trong nhà
thông qua giao diện của Blynk
5.1.2. Những hạn chế, tồn tại
– Điều khiển thiết bị bằng giọng nói vẫn còn chậm
– Điều khiển thiết bị qua công tắc cảm ứng còn hơn chậm
– Mạch điều khiển vẫn chưa có thể sử dụng được nguồn 220 V trực tiếp mà
vẫn phài sử dụng nguồn riêng để cung cấp cho mạch
– Đồng bộ trạng thái giữa công tắc cảm ứng và phần mềm Blynk còn chậm
5.2. Hướng phát triển đề tài
– Khắc phục các hạn chế, tồn tại của hệ thống
– Tự phát triển app Android, IOS để điều khiển thiết bị qua wifi
– Tích hợp mạch công tắc cảm ứng với ESP 8266 để tạo thành mạch công
tắc thông minh có thể đồng bộ vô các hệ sinh thái Smart Home hiện có trên thị
trường
41. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 35
TÀI LIỆU THAM KHẢO
[1]. Giáo trình Arduino cho người mới bắt đầu, Cộng đồng Arduino Việt Nam
[2]. Giáo trình Internet Of Thing with ESP 8266
[3]. Trang web: Arduino.vn
[4]. Sách Internet Of Things [ IoT], Tg Phạm Minh Tuấn.
42. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 36
PHỤ LỤC
Code Chương Trình
#define BLYNK_PRINT Serial
#include
#include
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = “…”; Token Blynk
// Your WiFi credentials.
// Set password to “” for open networks.
char ssid[] = “…”; // Wifi name
char pass[] = “…”; // pass
// Set your LED and physical button pins here
const int ledPin1 = 0;
const int ledPin2 = 4;
const int ledPin3 = 5;
const int ledPin4 = 16;
const int btnPin1 = 15;
const int btnPin2 = 13;
const int btnPin3 = 12;
const int btnPin4 = 14;
BlynkTimer timer;
void checkPhysicalButton();
43. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 37
int led1State = LOW;
int btn1State = HIGH;
int led2State = LOW;
int btn2State = HIGH;
int led3State = LOW;
int btn3State = HIGH;
int led4State = LOW;
int btn4State = HIGH;
// Every time we connect to the cloud…
BLYNK_CONNECTED() {
// Request the latest state from the server
Blynk.syncVirtual(V0);
Blynk.syncVirtual(V4);
Blynk.syncVirtual(V5);
Blynk.syncVirtual(V16);
// Alternatively, you could override server state using:
//Blynk.virtualWrite(V12, led1State);
//Blynk.virtualWrite(V13, led2State);
//Blynk.virtualWrite(V14, led3State);
//Blynk.virtualWrite(V15, led4State);
}
48. Báo cáo nghiên cứu khoa học GVHD: ThS. Lưu Hoàng
SVTH: Mai Thanh Tuấn Trang 42
digitalWrite(ledPin3, led3State);
pinMode(ledPin4, OUTPUT);
pinMode(btnPin4, INPUT_PULLUP);
digitalWrite(ledPin4, led4State);
// Setup a function to be called every 100 ms
timer.setInterval(500L, checkPhysicalButton);
}
void loop()
{
Blynk.run();
timer.run();
}
Step 2: Programming the Arduino MKR1000
Use the standard IDE from the Arduino website. Place the following libraries in the IDE (via: tools / manage libraries): ArduinoJson and WiFi101.
If you have not previously programmed the MKR1000, you must first make this board accessable in the IDE. Download the board file “Arduino SAMD boards” via the menu tools / board / board manager, after which you can select the MKR1000 board.
The sketch also uses an extra file, arduino_secrets.h.
This is a text file that you can create with notepad. This file contains the used access codes for the Wi-Fi network (network SSID and password) and the Adafruit IO web page login codes (account name and IOKEY code). Save this file in the arduino library directory on your PC with the name arduino_secrets.h in a separate directory. Before saving, replace all “xxx” with your own network and Adafruit data. This should be in the arduino_secrets.h file:
#define SECRET_SSID “xxx”
#define SECRET_PASS “xxx”
#define IO_USERNAME “xxx”
#define IO_KEY “xxx”
Copy the Arduino sketch below and load it into the MKR1000 via the Arduino IDE program.
Attachments
Code:
#define BLYNK_PRINT Serial #include
#include
char auth[] = “90e6fc3ed332435587af6799fb58de88”; // Your WiFi credentials. // Set password to “” for open networks. char ssid[] = “CAFE GALAXY_2.4G”; char pass[] = “xxxxxx”; void setup() { // Debug console Serial.begin(9600); Blynk.begin(auth, ssid, pass); } void loop() { Blynk.run(); }
Step 3: Connect IFTTT with Google Assistant & Adafruit-IO
First, go to “ifttt.com” and create an account.
Next, click on “Create”. At this moment, you will face two options: “This” and “That”. “This” is used for communicating with input and “That” is used for connecting the “IFTTT” to output. In this tutorial, the Google Assistant and Adafruit-OI communicate with the IFTTT as the input and output, respectively.
In other words, the IFTTT platform acts as a communication interface between Google Assistant and Adafruit-IO.
Connect to Google Assistant
To connect to Google Assistant, do the following steps:
Step 1:
After selecting the “This” option, search the phrase “Google Assistant” and open it.
Step 2:
Select “Say a simple phrase”.
Step 3:
Write down your voice command in 3 different ways. Also, write the response you want to get from Google Assistant. At the end, select your desired language and click on “Create Trigger”.
For example, here are the setting for turning an LED on and off.
Note
Sometimes you need to confirm your email address to continue.
Of course, try to create all your accounts with the same email address so that there would be no problem in setting up.
Connect to Adafruit-IO
To connect to Adafruit-IO, do the following steps:
Step 1:
Click on “That”, search the word “Adafruit” and select it.
Step 2:
Select “Send data to Adafruit-IO”, then, select the name of the created block. You should also enter the desired pin value in ESP32 when the voice command in sent.
Note
If the relay module you’re using is Active Low, you should set the ESP32 pin to 0.
And if it is Active High, set the ESP32 pin to 1.
In this tutorial, we have used an Active Low relay module, that’s why we have set the ESP32 pin to 0.
Finally, click on “Continue”, then, “Finish”.
Do the same steps above for turning off the LED. The difference is that in the first part, you should use the word “Off” instead of “on”; and in the second part, put the value 1 instead of 0.
The two new created blocks can be seen in “My Applets” section.
Note
In the free trial of the “IFTTT” website, you are able to create only three new Applets.
The Video of the Steps in IFTTT Website
You can see how to do the above steps in a detailed way in the video below:
Step 14: Connect Sinric Pro With Google Home App | Add Devices
After creating the Home in the Google Home app, you can connect the Sinric Pro with the Google Home app
- Tap on the “+” icon, then select Set up device.
- Tap on Works with Google.
- Search for Sinric Pro, then select Sinric Pro.
- Enter the email id and password used for the Sinric account,
- Then tap on Sign in.
Thus, all the devices from Sinric Pro will be added to Google Home Account.
Step 2: Circuit Diagram of the ESP01 Arduino Control Relays
The circuit is very simple, I have used the digital pins D4, D5, D6 & D7 to control the 4 relays.
And the digital pins D10, D11, D12 & D13 are connected with switches to control the 4 relays manually.
The output pin of the IR receiver is connected with A0.
I have used the INPUT_PULLUP function in Arduino IDE instead of using the pull-up resistors.
I have used D7 as RX and D8 as TX for the serial communication with the ESP-01 module.
I have made a voltage divider using 2k and 4.7k resistors to drop down the 5volt logic level to 3.3volt logic level for the serial communication with the ESP-01 module.
If you use the momentary pushbutton then just connect the pushbutton across the digital pins and GND instead of switches.
If you use Arduino UNO then you can use the 3.3V pin instead of the 1117 3.3V regulator to supply the ESP01 but for Arduino Nano, you have to use the 1117 3.3V voltage regulator.
I have used a 5V mobile charger to supply the smart relay module.
Please take proper safety precautions while working with high voltage.
Đăng nhập và kết nối với IFTTT
Việc kết nối và điều khiển các thiết bị từ ESP8266 với Blynk thật sự dễ dàng. Nhưng câu hỏi đặt ra ở đây làm sao để Blynk hiểu được những câu lệnh như bật đèn, tắt đèn… để truyền đến NodeMCU ESP8266 và thực thi hành động. Vì thế để giải quyêt vấn đề này chúng ta cần có một trang Web làm trung gian và IFTTT là một lựa chọn tốt cho dự án này.
Bước đầu tiên chúng ta đăng nhập vào Web IFTTT để đăng ký tài khoản ở đây mình đăng ký bằng tài khoản Google các bạn có thể đăng ký bằng Facebook.
Sau khi đăng nhập thành công các bạn Click vào “My Applets” và chọn “New Applet” để tạo một dự án mới.
Bấm vào + this
Tìm kiếm đến Google Assistant và bấm kết nối.
Step 13: Setup the Google Home App
First, download and install the Google Home App. then follow the steps to create Home in Google Home app
- Tap on the “+” icon (upper left corner).
- Tap on Create new home.
- Enter the Home nickname and address.
- Then click on Continue.
The Home is created. Now again tap on the “+” icon to add devices.
Step 16: Connecting Devices With Alexa
- Tap on CLOSE.
- Tap on “DISCOVER DEVICES”.
- It will take a minute to add devices. During this time the ESP-01 should be connected with the WiFi.
- Tap on “Devices”, and tap on “Plug” to see all the devices.
Thus, all the devices from Sinric Pro will be added to Amazon Alexa App.
Step 9: Select Shipping Address and Payment Mode
6. Type the Shipping Address.
7. Select the Shipping Method suitable for you.
8. Submit the order and proceed with the payment. You can also track your order from JLCPCB.com.
My PCBs took 2 days to get manufactured and arrived within a week using the DHL delivery option.
PCBs were well packed and the quality was really good at this affordable price.
Introduction: Arduino Smart Home With Alexa & Google Assistant Using ESP-01 – IoT Project 2022
In this IoT project, I have shown how to make an IoT-based Arduino Smart Home with Google Assistant & Alexa using ESP-01 to control 4 home appliances with voice commands, IR remote, and manual switches. If the internet is not available, then you can control the home appliances from IR remote & manual switches. During the article, I have shown all the steps to make this smart home system.
This Arduino Home Automation system has the following features:
- Control appliances with Google Assistant.
- Control appliances with Alexa.
- Used Arduino EEPROM to remember previous states
- Control appliances with IR remote.
- Control appliances manually with switches or pushbuttons
- Monitor real-time feedback in the Google Home and Amazon Alexa App.
- Control home appliances manually without internet.
- All resources used for this project are FREE.
So if you follow all the steps, you can easily make this IoT project just by using Arduino UNO, ESP01, and relay module.
Although the PCB is not mandatory, I have used PCB to make the circuit compact and give the project a professional look.
What Is Adafruit-IO?
Adafruit-IO is actually a cloud storage space that you can connect to through internet. You can use it to connect to a microcontroller like an ESP32 and control its pins. You can actually use it to communicate with any microcontroller in an internet cloud space.
What Can Be Done Using the Adafruit-IO?
- Online display of data
- Make projects that need to be connected to internet
- Connect your project to other devices that are connected to internet
- Connect projects to web services
What Is IFTTT?
IFTTT is short for “If This, Then That”. It is a software platform in which different applications, devices and services can be connected to each other to create one or several automations. In fact, the IFTTT acts as a communication interface between them.
This automation is done through Applets. In other words, several programs are connected to each other to perform automated tasks. You can activate or deactivate these Applets in “IFTTT.com” website. You can either make your own Applets or use different Applets already available on the website.
In the next parts of the tutorial, you will learn how to work with the IFTTT website and make a new Applet.
Step 1: The Command Process Via Internet
In this image you can see step by step how the whole process works.
Switching on and off via the voice commands runs completely via the internet. Three (!) cloud services are required to do this… You have to create an account for every cloud service… It is a bit cumbersome but it works!
First you will need the Google Home app. Download it from the Playstore on your Android phone and install the app. Understanding your own voice commands with Google Home only works with the English language. So set the language to English via settings / more settings / assistant / languages and then choose English (United States).
The Google Nest Mini hears the voice command, for example “Hey Google, switch light number one on”. This analog audio signal is digitized and is sent to the Google Assistant cloud. It is then forwarded to the IFTTT cloud where the answer is made. IFTTT (If This Than That or “if you do one thing the other thing happens”) is a kind of intermediate station that analyzes the command, gives the answer and forwards the actions to the next cloud, the Adafruit IO. If the command is fully understood the answer from IFTTT will be returned digitally to the Google Nest Mini and there it will be converted into an audio signal. If the command is not understood, the Google Assistant will return another answer to make it clear that no switching action will follow. A well-understood command will be forwarded by IFTTT to the Adafruit website. Adafruit is an electronics supplier maintaining a website to store smart switching data. They call it a “Feed”. IFTTT sends the code associated with the command (in our case “one_on”) to this feed. The Arduino MKR1000 is programmed to check this website reguarly, reading out the data in the feed and then it switches the relevant switching relay on or off. The Adafruit feed is protected for security reasons with an account name and a unique Adafruit IOKEY only known to the account owner.
Overview
Have you ever been sitting in your room, and want to turn things like light bulbs or fans on and off, but you don’t feel like doing it? Or you want to turn the cooling system on before arriving home, so it would be pleasantly cool by the time you’ve arrived?
So, if you like controlling electrical devices of your home remotely through your cell phone, this tutorial can be so useful for you.
There is an application called “Google Assistant” installed on most smartphones. You can use Google Assistant to speak to your phone and send voice commands to it. Now, imagine your phone is connected to a microcontroller like Arduino or ESP32 via internet. Then, you’ll be able to speak to the microcontroller and send your voice commands for controlling electrical devices. You can use a relay module to connect the microcontroller to various electrical devices of your house such as light bulbs, fans, cooling system and so on and control them remotely.
What You Will Learn
As stated in the previous section, the goal of this tutorial is to learn how you can remotely control your electrical appliances. In this tutorial, we will be using an ESP32 board as our microcontroller. Having WiFi is one of its most important advantages.
To establish the connection, you can’t just connect the Google Assistant to the microcontroller directly. We need to use two interfaces to establish the connection between the Google Assistant and the ESP32. One for connecting to the Google Assistant and the other for connecting to the ESP32.
We use the IFTTT platform to communicate with Google Assistant. And since the IFTTT platform can’t be directly connected to the ESP32, we use another interface called Adafruit-IO to establish a communication between the IFTTT and ESP32.
In this tutorial, we first need to register in the “Adafruit-IO” website and build a block for controlling an LED. Then, using the Arduino IDE, we upload a code on our ESP32 for communicating with the Adafruit-IO. Next, we connect an LED to the ESP32 using a relay module. In the following, we need to create an account in the “IFTTT” website to set up the communication between the Google Assistant and Adafruit-IO.
Finally, we control the LED with some predefined voice commands. The steps explained in this article can be repeated for controlling different microcontrollers or different electrical devices.
Step 1: How This Arduino IoT Project Works?
This Arduino ESP8266 Home Automation works in the following steps.
- When you ask Google assistant to control appliances, it sends the signal to the Sinric server,
- ESP-01 will receive the signal from the Sinric through the internet.
- ESP-01 sends the same signal to Arduino through the serial terminal.
- Arduino UNO will process that signal and accordingly turn on or off the relays.
- Arduino sends the feedback to ESP-01 through the Serial communication.
- ESP-01 sends feedback to the Sinric server through the internet.
- Real-time feedback can be monitored in the Google Home or Amazon Alexa app.
Step 17: Controlling Relays With Google Assistant and Google Home
If the ESP01 is connected with the WiFi, then you can control the home appliances from Google Home App.
You can also ask Google Assistant to turn on and off the appliances.
You can control, monitor the real-time status of the relays in the Google Home App from anywhere in the world.
You don’t need any Google Home Nest device for this home automation project.
Step 12: Program the Arduino UNO or ATmega328P With Arduino IDE
In the PCB I have used an ATmega328P microcontroller, so I have used FTDI232 USB to TTL board to program the microcontroller (Refer to tutorial video).
But if you don’t use PCB then you can directly connect the Arduino UNO with the laptop.
For the main sketch, you need to install following libraries
Then you have to update the HEX code in the sketch for IR remote control.
For momentary switch use the code: Code_ArduinoUNO_EEPROM_WiFi_IR_Button_4Relay.ino
and for latched switch use the code: Code_ArduinoUNO_EEPROM_WiFi_IR_Switch_4Relay.ino
Đặt câu lệnh thực thi trên Google Assistant
Chọn thẻ “Say a simple phrase.”
- What do you want to say?: Chúng ta đặt tên câu lệnh cần nói ở đây mình đặt là “turn on”.
- Ngoài ra ở 2 mục tiếp theo các bạn có thể đặt thêm những câu lệnh khác để có thể bật/tắt thiết bị của mình.
- What do you want the Assistant to say in the response?: Ở phần này là câu phản hồi từ Google Assistant khi mình thực hiện lệnh vừa nói.
Bạn sẽ học được gì
- Có kiến thức cơ bản về Robotics
- Chế tạo Robot dò đường thông minh
- Đánh thức nhà khoa học bên trong bạn
- Tìm hiểu thêm về Robotics, các thuật toán Robot tự động
- Kiến thức nền tảng để chế tạo các máy móc tự động phục vụ đời sống sinh hoạt, lao động sản xuất
- Kiến thức để chế tạo sản phẩm, tham gia các cuộc thi khoa học công nghệ trong nước và quốc tế
Step 3: The Adafruit Feed
Create an account at www.io.adafruit.com. Adafruit is an electronics supplier maintaining a website to store smart switching data.
Create an ON_OFF feed in which the commands will be saved later. Adafruit has an extensive tutorial showing you how to do this:
https://learn.adafruit.com/adafruit-io-basics-feeds/creating-a-feed
It is best to set the “feed” in the feed history to OFF, it is not necessary to remember the switching commands. (the settings are on the right side of the page).
Components and supplies
Resistor 220 ohm
Gravity: Digital 5A Relay Module
Linear Solenoid, 12 VDC
Male/Male Jumper Wires
Male/Female Jumper Wires
SparkFun Breadboard Power Supply 5V/3.3V
RGB Diffused Common Anode
NodeMCU ESP8266 Breakout Board
Solderless Breadboard Half Size
Tools and machines
Solder Wire, Lead Free
Soldering iron (generic)
Multitool, Screwdriver
Apps and platforms
IFTTT
Arduino IDE
Blynk
Project description
Comments
Only logged in users can leave comments
RucksikaaR
0 Followers
•
0 Projects
Table of contents
Intro
Supplies
Required Components for this IoT Project (without PCB)
- Arduino UNO
- ESP-01
- 1838 IR receiver (with metal case)
- 1k, 2k, 4.7k resistors (1/4 watt)
- 5-mm LED
- 1117 3.3V voltage regulator
- 4-channel 5V SPDT Relay Module
- Switches or Push Buttons
- FTDI232 USB to TTL
- 5V DC supply.
Required Components for the Arduino control Relay PCB:
- Atmega328P microcontroller
- ESP8266 ESP01
- PC817 Optocuplors (4 no)
- 510-ohm 0.25-watt Resistor (4 no) (R1 — R4)
- 1k 0.25-watt Resistors (6 no) (R5 — R10)
- 2k 0.25-watt Resistor
- 4.7k 0.25-watt Resistor
- 10k 0.25-watt Resistors (2no)
- 22pF ceramic capacitor
- 104 ceramic capacitor
- 220uF 25V Capacitor (2no)
- 1uF Box capacitor (1no)
- 16MHz Crystal
- LED 5-mm (6 no)
- 1N4007 Diodes (4 no) (D1 — D4)
- Push Buttons (8 no)
- BC547 Transistors (4 no)
- Relays 5v (SPDT) (4 no)
- Terminal Connectors
- Jumper (5no)
- Switch (1no)
- Hi-link ac-dc 220v-5v
Introduction: DIY Smart Home With Google Assistant and Arduino
Who doesn’t want a smart home ? One of the nicest things you can do is switching the lights or other appliances in your house by voice control. With the help of the Google Home app and the Google assistant this is really a piece of cake ……
You do not need many parts for it and it is a nice experiment to build this voice control yourself with a smart speaker, an Arduino mini computer and a few switching relays. You can also buy plenty very cheap smart lights and connction sockets but making it yourself is much more fun. I will describe step by step how you can do this. You will need the following components:
Step 18: Controlling Relays With Alexa
You can also control the home appliances from Amazon Alexa App if the ESP01 is connected with the WiFi.
You can also ask Alexa to turn on and off the appliances.
You can also control the appliances from the manual switches or IR remote and monitor the real-time feedback of the relays in the Amazon Alexa App from anywhere in the world.
You don’t need any Echo DOT device for this home automation project.
Step 1: Establish Connection Between ESP32 & Adafruit
As already mentioned, we need to use a platform called Adafruit-IO to connect the ESP32 to IFTTT. In this step, we are going to connect the ESP32 to Adafruit-IO.
The Code to Connect ESP32 to Adafruit-IO
First, we write the code we need. There are also some variables in the code we will set in the next steps.
Go to Sketch → Include Library → Manage Libraries. Search for “Adafruit MQTT” and install it like the following image.
The code below is taken from “Github” website. Copy and paste it on your Arduino IDE.
/* Made on 6 July 2021 By Amirmohammad Shojaei
Homebased on “ajaynikam2410” Example */ //for esp32 use
, for esp8266 use
// this code is for esp32 for using esp8266 you just need to change
into
and also change the relay pin #include
#include “Adafruit_MQTT.h” #include “Adafruit_MQTT_Client.h” /************************* Pin Definition *********************************/ //Relays for switching appliances #define Relay1 12 #define Relay2 13 #define Relay3 14 #define Relay4 27 #define buzzer 26 //buzzer to know the status of MQTT connections and can be used for any other purpose according to your project need. /************************* WiFi Access Point *********************************/ #define WLAN_SSID “wLAN_SSID” #define WLAN_PASS “wLAN_PASS” /************************* Adafruit.io Setup *********************************/ #define AIO_SERVER “io.adafruit.com” #define AIO_SERVERPORT 1883 // use 8883 for SSL #define AIO_USERNAME “AIO_USERUSERNAME” #define AIO_KEY “AIO_KEY” /************ Global State (you don’t need to change this!) ******************/ // Create an ESP8266 WiFiClient class to connect to the MQTT server. WiFiClient client; // or… use WiFiFlientSecure for SSL //WiFiClientSecure client; // Setup the MQTT client class by passing in the WiFi client and MQTT server and login details. Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY); /****************************** Feeds ***************************************/ // Notice MQTT paths for AIO follow the form:
/feeds/
Adafruit_MQTT_Publish Light = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME “/feeds/light”); // Setup a feed called ‘onoff’ for subscribing to changes. Adafruit_MQTT_Subscribe Light1 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME “/feeds/led”); Adafruit_MQTT_Subscribe Fan1 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME “/feeds/relay2”); Adafruit_MQTT_Subscribe Light2 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME “/feeds/relay3”); Adafruit_MQTT_Subscribe Fan2 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME “/feeds/relay4”); /*************************** Sketch Code ************************************/ // Bug workaround for Arduino 1.6.6, it seems to need a function declaration // for some reason (only affects ESP8266, likely an arduino-builder bug). void MQTT_connect(); void setup() { Serial.begin(115200); delay(10); pinMode(Relay1, OUTPUT); pinMode(Relay2, OUTPUT); pinMode(Relay3, OUTPUT); pinMode(Relay4, OUTPUT); Serial.println(F(“Adafruit MQTT demo”)); // Connect to WiFi access point. Serial.println(); Serial.println(); Serial.print(“Connecting to “); Serial.println(WLAN_SSID); WiFi.begin(WLAN_SSID, WLAN_PASS); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print(“.”); } Serial.println(); Serial.println(“WiFi connected”); Serial.println(“IP address: “); Serial.println(WiFi.localIP()); // Setup MQTT subscription for onoff feed. mqtt.subscribe(&Light1); mqtt.subscribe(&Fan1); mqtt.subscribe(&Light2); mqtt.subscribe(&Fan2); } void loop() { // Ensure the connection to the MQTT server is alive (this will make the first // connection and automatically reconnect when disconnected). See the MQTT_connect // function definition further below. MQTT_connect(); // this is our ‘wait for incoming subscription packets’ busy subloop // try to spend your time here Adafruit_MQTT_Subscribe *subscription; while ((subscription = mqtt.readSubscription(20000))) { if (subscription == &Light1) { Serial.print(F(“Got: “)); Serial.println((char *)Light1.lastread); int Light1_State = atoi((char *)Light1.lastread); digitalWrite(Relay1, Light1_State); } if (subscription == &Light2) { Serial.print(F(“Got: “)); Serial.println((char *)Light2.lastread); int Light2_State = atoi((char *)Light2.lastread); digitalWrite(Relay2, Light2_State); } if (subscription == &Fan1) { Serial.print(F(“Got: “)); Serial.println((char *)Fan1.lastread); int Fan1_State = atoi((char *)Fan1.lastread); digitalWrite(Relay3, Fan1_State); } if (subscription == &Fan2) { Serial.print(F(“Got: “)); Serial.println((char *)Fan2.lastread); int Fan2_State = atoi((char *)Fan2.lastread); digitalWrite(Relay4, Fan2_State); } } // ping the server to keep the mqtt connection alive // NOT required if you are publishing once every KEEPALIVE seconds /* if(! mqtt.ping()) { mqtt.disconnect(); } */ } // Function to connect and reconnect as necessary to the MQTT server. // Should be called in the loop function and it will take care if connecting. void MQTT_connect() { int8_t ret; // Stop if already connected. if (mqtt.connected()) { return; } Serial.print(“Connecting to MQTT… “); uint8_t retries = 3; digitalWrite(buzzer, HIGH); delay(200); digitalWrite(buzzer, LOW); delay(200); digitalWrite(buzzer, HIGH); delay(200); digitalWrite(buzzer, LOW); delay(200); while ((ret = mqtt.connect()) != 0) { // connect will return 0 for connected Serial.println(mqtt.connectErrorString(ret)); Serial.println(“Retrying MQTT connection in 5 seconds…”); mqtt.disconnect(); delay(5000); // wait 5 seconds retries–; if (retries == 0) { // basically die and wait for WDT to reset me while (1); } } Serial.println(“MQTT Connected!”); digitalWrite(buzzer, HIGH); delay(2000); digitalWrite(buzzer, LOW); }
The code above is actually written to control 4 different devices. But in this tutorial, we use it to control only one device –turning an LED on and off-.
Note
4 parts of the code are yet to be completed. They can have different values for each user. To complete the code, you should delete the phrase inside “X” and replace it with your desired values.
Tip
Do not forget to connect the VCC and the GND of the module to 5V and the GND of Arduino.
Those 4 parts are the following:
- WLAN_SSID: This is the name of the Wifi you want to connect the ESP32 to.
- WLAN_PASS: The password of the Wifi.
- AIO_USERNAME: This variable will be taken from “Adafruit-IO” website.
- AIO_KEY: This variable will also be taken from “Adafruit-IO” website later.
In the section describing Adafruit-IO, we will learn how to get the two variables “AIO_USERNAME” and “AIO_KEY”.
Register and Make a Project in Adafruit-IO
Step 1:
First, go to “io.adafruit.com” and make an account.
Step 2:
Log in to your account. Click on “+ New Dashboard” to make a new project and choose a title for it.
Step 3:
Now, you can make a new block by clicking on “Create New Block” section in the menu on the right. In this part, choose “Toggle” block, choose a name for it and click on “Create”. We have named it “LED”.
Step 4:
Now, you can copy the value of “Username” from “My Key” part and use that as the “AIO_USERNAME” variable in the code of the previous part. You can do the same thing for “Active Key” and copy its value for the “AIO_KEY” variable.
Step 5:
Click on “Edit Layout”, then, click on “Block Info” in the settings section. The last part of the “API URL”, meaning “/feed/led”, must be written in a part of the code. Do that according to the pictures below.
Full Video of the Steps in Adafruit-IO Website
The video below shows how to do the above stages in a detailed way:
Upload the Code on ESP32
We obtained the two parameters “AIO_USENAME” and “AIO_KEY” in the previous part. We also need to set the parameters “WLAN_SSID” and “WLAN_PASS” which are the Wifi username and password.
After setting these 4 parameters, we can upload the code on ESP32.
Note
While uploading, press and hold the “Boot” button to correctly upload the code on ESP32.
Make sure you have chosen the right Board and PORT, like the image below.
Once the code is successfully uploaded, open the Serial Monitor and set its baud rate to 115200. If everything has gone right, you should see the message “MQTT Connected!” on the output of Serial Monitor. This means the connection between the ESP32 and Adafruit-IO has been successfully established.
Step 15: Configure the Alexa App for This Smart Home System
Download and install the Amazon Alexa App from the Google play store or App Store.
- Go to “More”, then select “Skills & Games”.
- Search for Sinric Pro and tap on “Sinric Pro”.
- Tap on “ENABLE TO USE”.
- Log in with the Sinric account credentials.
Step 10: Get the IR Codes (HEX Code) From Remote
Now, to get the HEX codes from the remote, first, we have to connect the IR receiver output pin with the A0 pin of Arduino UNO.And give the 5V across the VCC and GND. The IR receiver must have a metallic casing, otherwise, you may face issues.
Then follow the following steps to get the HEX codes:
- Install theIRremote library in Arduino IDE.
- Download the attached code, and upload it to Arduino UNO.
- Open Serial Monitor with Baud rate 9600.
- Now, press the IR remote button.
- The respective HEX code will populate in the serial monitor.
- Save all the HEX codes in a text file. You have to update these HEX codes in the main sketch.
Attachments
Step 11: Program the ESP8266 ESP-01 With Arduino IDE
If you use the PCB, then you can easily go to program mode with a switch (PMOD) and directly connect the FTDI232 USB to the serial interface board with ESP-01.
Otherwise, you refer to this circuit to program the ESP-01. During programming, the GPIO-0 and GND should be connected.
First, download the attached source code & install all the required libraries mentioned in the code.Required Arduino Libraries:
- Sinric Pro
- ArduinoJson
- WebSockets
Then enter the WiFi credentials:
#define WIFI_SSID “YOUR-WIFI-NAME”#define WIFI_PASS “YOUR-WIFI-PASSWORD”
Enter the APP KEY and APP SECRET from the Sinric pro account Credential menu.
#define APP_KEY “YOUR-APP-KEY”#define APP_SECRET “YOUR-APP-SECRET”
Enter the Device IDs from the Sinric pro account Devices menu.
#define device_ID_1 “SWITCH_ID_NO_1_HERE”#define device_ID_2 “SWITCH_ID_NO_2_HERE”#define device_ID_3 “SWITCH_ID_NO_3_HERE”#define device_ID_4 “SWITCH_ID_NO_4_HERE”
Now select the “Generic ESP8266 Module” and proper PORT. Then upload the code to ESP01 Board.
After uploading the code, turn off the PMOD switch on the PCB and press the reset button.
Attachments
Step 4: The IFTTT Settings
Create an account at www.IFTTT.com. Go to “explore” (top right) and then choose “make your own applets from scratch”. Click on “THIS” and search for google. Choose google assistant. Then choose the first option “say a simple phrase”. Then enter the desired command description and the answer to be given.
(In our case “switch all lights on” and “OK. I will switch all lights on. Watch out!”). Then press “create trigger” and in the next screen press “THAT”. Then choose Adafruit and click on “send data to adafruit IO”. The ON-OFF feed appears in the first field and then enter the desired code in the second field (here as an example “all-on”).
Finally, click on “create action” and then on “finish”.
You can also receive a message on your phone to check every time an applet has been active, which is useful for troubleshooting but when everything is working you can turn this off.
If you want to control multiple lights or other domestic appliances, you have to create an IFTTT applet for each command, and the codes stored in the Adafruit feed must correspond to the codes in the Arduino sketch.
Step 19: Controlling Relays Manual Switches & IR Remote
If the WiFi is not available, you can control the relays from the manual switches or IR remote.
The ESP01 will check for the WiFi after every 4 seconds.
When the WiFi is available, the ESP01 will automatically connect with the WiFi.
Please refer to the circuit diagram to connect the manual switches or pushbuttons.
Now you can control your home appliances in a smart way.I hope you have liked this Google and Alexa control home automation project. I have shared all the required information for this project.
I will really appreciate it if you share your valuable feedback. Also if you have any queries please write in the comment section.
Thank you & Happy Learning.
Participated in the Make it Glow Contest
Điều khiển thiết bị bằng giọng nói thông qua Google Assistant Tiếng Viết sử dụng ESP8266, Blynk và IFTTT
Trong bài viết hôm nay mình sẽ hướng dẫn các bạn cách sử dụng trợ lý ảo Google Assistant Tiếng Việt để bật/tắt các thiết bị trong gia đình và điều khiển trực tiếp thông qua App Blynk.
Để thực hiện dự án chúng ta cần một NodeMCU ESP8266 các bạn có thể tìm mua ở đây nhé. Xem ngay
Cấu hình Webhooks
Tiếp theo ta chọn + that
Và chọn Webhooks nhé.
Nhấn vào “Connect” và chọn “Make a Web request”.
Chúng ta điền đầy đủ các thông tin trên trường hiển thị.
-
URL: Nhập URL theo cú pháp sau: http://188.166.206.43/YourAuthTokenHere/update/DigitalPinToBeUpdateHere
- http://188.166.206.43: Đây là URL của Blynk Server.
- YourAuthTokenHere: Mã Token được cấp khi chúng ta tạo một dự án mới trên App Blynk.
- DigitalPinToBeUpdateHere: Chân được cấu hình để điều khiển thiết bị.
- Method: Chọn PUT.
- Content Type: Chọn application/json.
- Body: Chúng ta điền vào [“1”], nghĩa là đang bật thiết bị.
Sau khi đã điền đầy đủ thông tin nhấn “Create action” để hoàn tất nhé.
Tương tự các bạn tự làm cho phần “tắt đèn” nhé.
Kết quả khi đã làm xong.
Step 6: Connecting Domestic Appliances
To switch domestic appliances, you must connect switching relays to the ports of the Arduino MKR1000 instead of the test LEDs. Use 1.5 mm2 wiring at the main voltage supply side to connect the appliances and the relay contacts in a safe way.
An unofficial place for all things Arduino! We all learned this stuff from some kind stranger on the internet. Bring us your Arduino questions or help answer something you might know! 😉
How to create smart Google Home device?
I’m well aware of using IFTTT with a web server hosted on an ESP8266 to control lights and stuff but I mean actually fully integrated. Like how in the Google Home app when you add an official device it shows up there and it’s added as a device instead of just a web call.
Any way to do this? Any guidance would be greatly appreciated!
Lời kết
Thật thú vị phải không các bạn, qua bài hôm nay các bạn có thể thực hiện cho mình một dự án nhỏ ngay trong ngôi nhà của mình bằng việc sử dụng Google Assistant và trong chuỗi bài viết về ESP8266 với Google Assistant bằng ngôn ngữ Tiếng Việt trong bài tiếp theo mình sẽ hướng dẫn các bạn các thực hiện trên Web Server của Adafruit các bạn chờ xem nhé.
Trong quá trình thực hiện mọi thắc mắc các bạn nhớ Comment bên dưới bài viết mình sẽ trả lời trong thời gian sớm nhất.
Tham gia cộng đồng Arduino KIT Để nhận được nhiều kiến thức bổ ích, các bạn Đăng ký để nhận thông báo khi có bài viết mới nhé. Tham gia Cộng đồng Arduino KIT để cùng nhau thảo luận và chia sẽ kiến thức về lập trình Arduino. Nếu các bạn thấy bài viết bổ ích nhớ Like và Share cho mọi người cùng học nhé. |
Chúc các bạn thành công.
Trân trọng.
What Is Google Assistant?
Google Assistant is an AI assistant developed by google that is mainly available in almost all smart devices. Unlike the previous version, the new version of the Google Assistant can participate in two-way conversations. It can recognize words better than any other device and respond to your commands quickly.
The users can communicate with the Google Assistant with their natural voice, although it also supports the keyboard. Like the Google Now, the Google Assistant can search the internet, schedule events, change the hardware setting of your device, show data from Google account and so on. Google has also announced that the Google Assistant is able to detect objects and collect information about them through the camera. It also supports buying, sending money and identifying songs.
Keywords searched by users: google home mini arduino
Categories: Chi tiết 99 Google Home Mini Arduino
See more here: kientrucannam.vn
See more: https://kientrucannam.vn/vn/