ĐATN này là tâm huyết của mình trong 4 năm đại học, nó đã giúp mình đạt điểm 9. File này mình đã ghi chi tiết đầy đủ cách đấu nối, lắp ráp và code. các bạn tải về và làm theo thôi nhé. Chúc các bạn thành công.
Trang 1LỜI CAM ĐOAN
Những nội dung trình bày trong đồ án là những kiến thức của riêng cá nhân tôi tích lũy trong quá trình học tập, nghiên cứu, không sao chép lại một công trình nghiên cứu hay
đồ án của bất cứ tác giả nào khác
Trong nội dung của nội dung của đồ án, những phần tôi nghiên cứu, trích dẫn đều được nêu trong phần các tài liệu tham khảo, có nguồn gốc, xuất xứ, tên tuổi của các tác giả, nhà xuất bản rõ ràng
Những điều tôi cam kết hoàn toàn là sự thật, nếu sai, tôi xin chịu mọi hình thức xử lý
kỷ luật theo quy định
Hà Nội, ngày tháng năm 20…
Sinh viên
Trang 2LỜI CẢM ƠN
Lời đầu tiên em xin được gửi lời cảm ơn đến thầy TS Nguyễn Trọng Thắng, thầy đã hướng dẫn và giúp đỡ tận tình em nghiên cứu và hoàn thành đồ án tốt nghiệp này Những lời nhận xét, góp ý và hướng dẫn của thầy đã giúp em có định hướng đúng đắn trong quá trình thực hiện đề tài, giúp em nhìn ra được ưu khuyết điểm của đề tài và từng bước khắc phục để có được kết quả tốt nhất
Em cũng xin cảm ơn thầy cô trong khoa Điện - Điện tự động hóa đã truyền đạt cho em các kiến thức chuyên ngành, những công nghệ mới cũng như cách làm việc để hoàn thành tốt đồ án môn học này
Và cuối cùng, mình xin được gửi lời cảm ơn sâu sắc đến tất cả những người bạn đã giúp đỡ, sát cánh cùng mình trong suốt những năm đại học
Trang 3MỤC LỤC
DANH MỤC CÁC HÌNH ẢNH v
LỜI MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN TỔNG QUAN NHÀ THÔNG MINH 2
1.1 ĐỊNH NGHĨA NHÀ THÔNG MINH 2
1.2 MỤC TIÊU 3
1.3 CÁC THÀNH PHẦN CƠ BẢN HỆ THỐNG NHÀ THÔNG MINH 3
1.4 NỘI DUNG NGHIÊN CỨU 3
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 4
2.1 Một số khái niệm cơ bản 4
2.1.1 Không gian mạng Server 4
2.1.2 IoT – Internet of Things 4
2.2 Giới thiệu về Firebase 7
2.2.1 Khái niệm về Firebase 7
2.2.2 Đặc điểm và tính năng 7
2.3 Giới thiệu về MIT App Inventor 10
2.3.1 Khái niệm về MIT App Inventor 11
2.3.2 Những tính năng có trên MIT App Inventor 11
2.4 Một số module và thiết bị sử dụng trong mô hình 12
2.4.1 Vi điều khiển 12
2.4.2 Board vi điều khiển Arduino Uno R3 13
2.4.3 Module Wifi ESP8266 NodeMCU Lua CP2102 16
2.4.4 Module Cảm biến ánh sáng, servo sg90 17
2.4.5 Relay 4 kênh 5V 19
2.4.6 Cảm biến nhiệu độ, độ ẩm không khí DHT11 21
2.4.7 Cảm biến khí gas MQ2 22
CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ 23
3.1 Sơ đồ khối hệ thống 23
3.2 Tính toán và thiết kế 24
Trang 43.2.1 Thiết kế mô hình 24
3.2.2 Thiết kế App trên điện thoại 27
3.2.3 Phần mềm viết code, nạp code cho Adruino UNO và ESP8266 31
3.3 Phần code nạp chương trình 32
CHƯƠNG 4 NHẬN XÉT, KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 57
4.1 Nhận xét 57
4.2 Kết luận 57
4.3 Hướng phát triển 57
TÀI LIỆU THAM KHẢO 57
Trang 5DANH MỤC CÁC HÌNH ẢNH
Hình 1.1 Mô hình nhà thông minh 2
Hình 2.1 Firebase 7
Hình 2.2 Giao thức bảo mật SSL 8
Hình 2.3 MIT App Inventor 10
Hình 2.4 Hệ thống vi điều khiển cơ bản 12
Hình 2.5 Sơ đồ và chức năng chân Arduino Uno R3 13
Hình 2.6 Giao tiếp 2 hệ thống dùng chuẩn UART 15
Hình 2.7 Nguyên lý hoạt động chuẩn UART 16
Hình 2.8 Datasheet Esp8266 NodeMCU Lua CP2102 16
Hình 2.9 Cảm biến ánh sáng 17
Hình 2.10 Servo SG90 18
Hình 2.11 Relay 4 kênh 5V 19
Hình 2.12 Cảm biến DH11 21
Hình 2.13 Cảm biến khí gas MQ2 22
Hình 3.1 Sơ đồ khối hệ thống 23
Hình 3.2 Sơ đồ đấu nối thiết bi 24
Hình 3.3 Sơ đồ đấu nối thiết bị thực tế 24
Hình 3.4 Sơ đồ đấu nối thiết bị 25
Hình 3.5 Sơ đồ đấu nối thiết bị thực tế 26
Hình 3.6 Bản vẽ nhà mô hình 26
Hình 3.7 Mô hình hoàn thiện 27
Hình 3.8 Màn hình điều khiển các thiết bị 28
Hình 3.9 Giao diện thiết kế App điều khiển 28
Hình 3.10 Mã QR tải ứng dụng điều khiển 29
Hình 3.11 Code app inventor 30
Hình 3.12 Code app inventor 31
Hình 3.13 Ứng dụng Adruino IDE 31
Hình 3.14 Các phím sử dụng trong Adruino IDE 32
Trang 7LỜI MỞ ĐẦU
Trong những năm gần đây, ngôi nhà thông minh (smart home) đã xuất hiện và được ứng dụng rộng rãi trong cuộc sống từ những khách sạn hay resort sang trong cho đến những ngôi nhà hiện đại đều được lắp đặt hệ thống điều khiển thông minh Theo xu hướng phát triển đó, em quyết định lựa chọn thực hiện nghiên cứu đề tài: “Nghiên cứu,
thiết kế hệ thống điều khiển cho nhà thông minh.”
Ngoài việc hoàn thành đồ án tốt nghiệp với những công việc trên đây thì nó còn có ý nghĩa sâu sắc đối với sinh viên thực hiện Một lần nữa sinh viên được thực hành những kiến thức học được từ ghế nhà trương sẽ giúp hình thành những sản phẩm công nghiệp, được sử dụng, cầm tay lắp những cảm biến mà từ trước chỉ nằm trên trang giấy Trong quá trình tiến hành không thể không gặp những khó khăn vấp phải, do đó kích thích sinh viên tư duy để tìm ra phương án tối ưu và trao đổi thảo luận với thầy
cô, bạn bè
Tuy nhiên do hạn chế về kinh nghiệm thực tế và thời gian thực hiện nên việc giải quyết đề tài không thể tránh khỏi những thiếu sót Do đó rất mong sự chỉ bảo thêm của quý thầy cô cũng như những đóng góp của các bạn sinh viên
Em xin chân thành cảm ơn!
Trang 8CHƯƠNG 1 TỔNG QUAN TỔNG QUAN NHÀ THÔNG MINH
1.1 ĐỊNH NGHĨA NHÀ THÔNG MINH
Nhà thông minh (tiếng anh là "Smart Home") hoặc hệ thống nhà thông minh là một ngôi nhà căn hộ được trang bị các hệ thống tự động thông minh cùng với các bố trí hợp lý, các hệ thống này có khả năng tự điều phối các hoạt động trong ngôi nhà Chúng ta cũng có thể hiểu ngôi nhà thông minh là một hệ thống chỉnh thể mà trong đó, tất cả các thiết bị điện tử gia dụng đều được liên kết với thiết bị điều khiển trung tâm
và có thể phối hợp với nhau để cùng thực hiện một chức năng Các thiết bị này có thể đưa ra cách xử lý tình huống được lập trình trước, hoặc là được điều khiển và giám sát
từ xa nhằm mục đính là cho cuộc sống ngày càng tiện nghi, an toàn và góp phần sử dụng hợp lý các nguồn tài nguyên
Hình 1.1 Mô hình nhà thông minh
Các thành phần của hệ thống nhà thông minh bao gồm các cảm biến (như cảm biến nhiệt độ, cảm biến ánh sáng), các bộ điều khiển hoặc máy chủ và các thiết bị chấp hành khác Nhờ hệ thống cảm biến, các bộ điều khiển và máy chủ có thể theo dõi các trạng thái bên trong ngồi nhà để đưa ra các quyết định điều khiển các thiết bị chấp hành một cách phù hợp nhằm đảm bảo môi trường sống tốt nhất cho con người
Ngoài ra, cùng với sự phát triển của các thiết bị điện tử cá nhân như máy tính bảng và điện thoại thông minh cùng hạ tầng thông tin ngày càng tiên tiến như internet hoặc các
Trang 9mạng thông tin di động wifi, 3G, 4G, ngày nay các hệ thống nhà thông minh còn cung cấp khả năng tương tác với người sử dụng thông qua các giao diện cảm ứng trên smart phone cho phép con người có thể giám sát và điều khiển ngôi nhà từ bất cứ đâu
Qua quá trình tìm hiểu, nhận thấy Arduino thích hợp trong việc thực hiện đề tài này,
em đã khai thác sử dụng Arduino trong đồ án của mình Đề tài được ứng dụng để điều khiển nhà thông minh Điện thoại di động hiện nay đang được sử dụng rộng rãi, nên việc tận dụng thiết bị này trong việc điều khiển thiết bị cũng góp phần vào việc khai thác thêm giá trị sử dụng của điện thoại di động trong đời sống hàng ngày
1.2 MỤC TIÊU
Mục tiêu của đề tài là thiết kế một mô hình giám sát nhiệt độ, độ ẩm, khí gas, điều khiển thiết bị đèn, quạt, hoạt động bằng cách điều khiển thông qua Smartphone Mô
hình có thể ứng dụng trong việc điều khiển, giám sát những ngôi nhà hiện đại
1.3 CÁC THÀNH PHẦN CƠ BẢN HỆ THỐNG NHÀ THÔNG MINH
Các thành phần cơ bản của hệ thống nhà thông minh bao gồm hệ thống cảm biến như cảm biến nhiệt độ, cảm biến ánh sáng, cảm biến khí gas các bộ điều khiển hoặc máy chủ và các thiết bị chấp hành khác Nhờ hệ thống cảm biến, các bộ điều khiển và máy chủ có thể theo dõi các trạng thái bên trong ngôi nhà để đưa ra các quyết định điều khiển các thiết bị chấp hành một cách phù hợp
1.4 NỘI DUNG NGHIÊN CỨU
Tìm hiểu, lựa chọn nguồn, module Wifi và vi điều khiển
Viết ứng dụng Android để SmartPhone nhận tín hiệu xử lý và đưa tín hiệu đến vi điều khiển
Thiết kế và thi công các module khối điều khiển: Module Arduino Uno R3, Module Wifi ESP 8266 Node MCU Kết nối các module lại với nhau Chạy thử, kiểm tra và cân chỉnh mô hình Viết sách luận văn tốt nghiệp
Báo cáo đồ án tốt nghiệp
Trang 10CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Một số khái niệm cơ bản
2.1.1 Không gian mạng Server
Mô hình clien-server là một trong những mô hình phổ biến, được ứng dụng trong mạng máy tính và áp dụng trong mọi mô hình Web hiện nay Mô hình này hoạt động dựa trên ý tưởng là các máy client (các máy con) sẽ gửi yêu cầu đến máy chủ (đóng vài trò như một server), máy chủ tiếp nhận, xử lý các yêu cầu và phản hồi các kết quả
về các máy client tương ứng
Client ở đây hiểu một cách đơn giản là một trạm máy độc lâp, có nhu cầu về thông tin
và dịch vụ, nó gửi các yêu cầu đến các Server (máy chủ) để các máy chủ này đáp ứng các yêu đầu đã đưa ra Một Client có thể gửi yêu cầu đến một hay nhiều server khác nhau để có thể đáp ứng những đòi hỏi đề ra Ngược lại, server được hiểu như là một
“người cung ứng” các đòi hỏi, yêu cầu của Client, các yêu cầu hợp lệ được Server tương ứng tiếp nhân, xử lý và thực hiện dịch vụ đối với yêu cầu đó, một Server có thê liên kết với nhau, nhằm đáp ứng dịch vụ một cách tốt nhất Một trạm máy có thể vừa đóng vai trò vừa như một Client, vừa như một Server tùy thuộc vào đối tượng mà nó được yêu câu hay yêu cầu
Giữa Client và Server giao tiếp với nhau bằng các giao thức truyền thông, các giao thức này như một ngôn ngữ được quy đinh, quy chuẩn Các đối tượng truyền thông với nhau được quy định trước các chuẩn này để có thể truyền thông, “giao tiếp với nhau”, các chuẩn giao thức phổ biến hiện nay như: TCP/IP, SNA, OSU, X25, LAN to LAN,…
2.1.2 IoT – Internet of Things
IoT – Internet of Things, đây được hiểu là một mô hình ở trong đó các thiết bị được kết nối mạng lại với nhau và kết nối Internet Mỗi thiết bị được cấp một ID, một định danh, riêng để có thể giao tiếp với nhau và truyền dữ liệu – thông tin giữa các thiết bị với nhau, giữa các thiết bị với con người hoặc giữa những người với nhau trên mô hình mạng đó Hay đơn giản IoT là tập hợp tất cả các thiết bị có khả năng kết nối với
Trang 11nhau và các thiết bị này có thể kết nổi với internet để có thể phối hợp với nhau thực
hiện một hay nhiều công việc một cách nhịp nhàng
IoT là sự giao thoa của sự phát triển công nghệ không dây, vi điện tử và Internet Việc kết nối, liên lạc giữa các thiết bị trở lên ngày càng đa dạng, hiện đại như là có thể kết nối thông qua wifi, viễn thông như 3G, 4G, sắp tới là mạng 5G, hay cũng có thể kết nối các thiết bị ngoại vi thông qua các bộ thu phát sóng hồng ngoại, bluetooth, mạng Zigbee,… Ngoài ra, các thiết bị tham gia vào mô hình mạng này ngày càng đa dang,
và thông minh hơn, từ những thiết bị thiết yếu trong gia đình như ti-vi, Smarphone,… đến việc kết nối các thiết bị trong các cơ sở văn phòng hay các thiết bị trong các ngành công, nông nghiệp trở nên ngày càng trở nên phổ biến Bên cạnh đó, hiện nay thế giới đang chuyển mình với công nghệ 4.0, các thiết bị, ứng dụng thông minh ngày càng được ứng dụng rộng khắp trong đời sống con người, việc kết nối IoT làm cho việc kết nối giao tiếp trở nên thuận tiện hơn giữa con người với con người, giữa máy móc với con người hoặc giữa máy móc Không dừng lại ở đó, việc kết nối các thiết bị lại với nhau còn làm cho các thiết bị hoạt động một cách nhịp nhàng và thông minh hơn và đây là một xu thế phát triển tất yêu của công nghệ trong tương lai gần
Đặc tính nổi bật của IoT
Tính liên thông: Trong mô hình IoT, tất cả các thiết bị đều có thể kết nối mạng với nhau thông qua cơ sở hạ tầng thông tin và mạng lưới truyền thông
Có khả năng cung cấp dịch vụ: IoT có đủ khả năng để đáp ứng các nhu cầu về dịch vụ của các “Things”, Phổ biến nhất có thể là giao thức truyền tín hiêu cũng như là tính bảo mật của thông tin,
Không đồng nhất: Các thiết bị trong hệ thống không có sự đồng nhất về phần cứng, và cũng như các thiết bị này không kết nối duy nhất với một network duy nhất Trên thực
tế, các thiết bị kết nối với một hệ thống Network khác nhau và các Network này liên kết với nhau để trao đổi dữ liệu giữa các thiết bị trong hệ thống
Tính linh hoạt: các trạng thái (Status) của những thiết bị trong mô hình có thể thay đổi
Trang 12trạng thái thiết bị thay đổi mà số lượng các thiết bị cũng thay đổi một cách thông minh linh động hơn
Quy mô lớn: với sự phát triển của công nghệ ngày càng mạnh mẽ, số lượng các thiết bị tham gia vào mạng lưới IoT này ngày càng tăng, và làm cho mô hình này ngày càng trở lên “khổng lồ”, từ “ khổng lồ” không dừng lại ở việc thông tin đến con người mà còn thông tin giữa các đối tượng, thiết bị trong hệ thống
Một hệ thống được coi là IoT khi đáp ứng những yêu cầu:
Nhận diện đối tượng kết nối: trong mô hình, các đối tượng “Things” đều được cấp một
ID riêng Hệ thống sẽ hỗ trợ việc kết nối và trao đổi dữ liệu thông qua các định danh được cung cấp trước (ID)
Có thể cộng tác: trong hệ thống IoT, các đối tượng để có khả năng tương tác với nhau,
cụ thể là giữa các hệ thống network và các Things
Có quy tắc trao đổi: việc thu thập và trao đổi dữ liệu giữa các đối tượng đều phải đựa trên những luật, quy tắc mà người điều hành hoặc người dùng thỏa thuận và thiết lập
từ trước
Tự quản lý hệ thống network: điều này gồm việc có thể tự quản lý, tự tối ưu hệ thống,
có khả năng tự giải quyết những vấn đề (trouble) và đảm bảo an toàn cho mạng network Hay nói cách khác, hệ thống network phải thích ứng với các loại thiết bị khác nhau trong mô hình và có thể truyền thông trong những môi trường khác nhau
Bảo mật và tính riêng tư: thông tin được lưu thông trong hệ thống là rất lớn, và không phải thông tin nào cũng có thể công khai, vì vậy hệ thống cần đảm bảo được tính riêng
tư của thông tin và tránh được sự xâm nhập trái phép
Tính quản lý: IoT cung cấp việc quản lý các đối tượng trong hệ thống (things) để việc lưu thông trên cá network diễn ra bình thương, tính năng này thường được làm việc một cách tự động Tuy nhiên, toàn bộ hoạt động của hệ thống được các bên liên quan
giám sát và quản lý
Trang 132.2 Giới thiệu về Firebase.
2.2.1 Khái niệm về Firebase
Hình 2.1 Firebase
Firebase là một dịch vụ cơ sở dữ liệu thời gian thực, hoạt động trên nền tảng đám mây được cung cấp bởi Google nhằm giúp các lập trình phát triển nhanh các ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu Nếu cần xây dựng một ứng dụng cho mobile hoặc các thiết bị di động khác, mà bạn đang gặp khó khăn vì không biết chọn dịch vụ VPS nào, loại database gì thì Firebase sẽ là dịch vụ dành cho bạn
2.2.2 Đặc điểm và tính năng
Realtime Database
Firebase lưu trữ dữ liệu database dưới dạng JSON và thực hiện đồng bộ database tới tất cả các client theo thời gian thực Cụ thể hơn là bạn có thể xây dựng được client đa nền tảng (cross-platform client) và tất cả các client này sẽ cùng sử dụng chung một database đến từ Firebase và có thể tự động cập nhật mỗi khi dữ liệu trong database
được thêm mới hoặc sửa đổi
Tự động tính toán quy mô ứng dụng của bạn, giúp bạn dễ dàng hơn rất nhiều mỗi khi cần nâng cấp hay mở rộng dịch vụ Ngoài ra Firebase sử dụng NoSQL, giúp cho database của bạn sẽ không bị bó buộc trong các bảng và các trường mà bạn có thể tùy
ý xây dựng database theo cấu trúc của riêng bạn
Trang 14Ưu điểm Firebase
Từ các cách thức hoạt động phía trên, chắc hẳn bạn đã nhận thấy sơ lược những lợi ích
mà Firebase mang lại cho cộng đồng lập trình nói chung và các lập trình viên xây dựng ứng dụng nói riêng
Cụ thể hơn, các lợi ích này bao gồm:
Triển khai ứng dụng nhanh chóng
Hình 2.2 Giao thức bảo mật SSL
Trang 15Làm việc offline
Ứng dụng Firebase của bạn sẽ duy trì tương tác bất chấp một số các vấn đề về internet xảy ra Trước khi bất kỳ dữ liệu được ghi đến server thì tất cả dữ liệu lập tức sẽ được viết vào một cơ sử dữ liệu Firebase ở local Ngay khi có thể kết nối lại, client đó sẽ nhận bất kỳ thay đổi mà nó thiếu và đồng bộ hoá nó với trạng thái hiện tại server
Triểu khai siêu tốc
Với Firebase bạn có thể giảm bớt rất nhiều thời gian cho việc viết các dòng code để quản lý và đồng bộ cơ sở dữ liệu, mọi việc sẽ diễn ra hoàn toàn tự động với các API của Firebase Không chỉ có vậy Firebase còn hỗ trợ đã nền tảng nên bạn sẽ càng đỡ mất thời gian rất nhiều khi ứng dụng bạn muốn xây dựng là ứng dụng đa nền tảng Không chỉ nhanh chóng trong việc xây dựng database, Google Firebase còn giúp ta đơn giản hóa quá trình đăng kí và đăng nhập vào ứng dụng bằng các sử dụng hệ thống xác thực do chính Firebase cung cấp
Sự ổn định
Firebase hoạt động dựa trên nền tảng Cloud đến từ Google vì vậy hầu như bạn không bao giờ phải lo lắng về việc sập server, tấn công mạng như DDOS, tốc độ kết nối lúc nhanh lúc chậm, … nữa
Xác thực người dùng
Với Firebase, bạn có thể dễ dàng xác thực người dùng từ ứng dụng của bạn trên Android, iOS và JavaScript SDKs chỉ với một vài đoạn mã Firebase đã xây dựng chức năng cho việc xác thực người dùng với Email, Facebook, Twitter, GitHub, Google, và xác thực nặc danh Các ứng dụng sử dụng chức năng xác thực của FireBase có thể giải quyết được vấn đề khi người dùng đăng nhập, nó sẽ tiết kiện thời gian và rất nhiều các vấn đề phức tạp về phần backend Hơn nữa bạn có thể tích hợp xác thực người dùng với các chức năng backend đã có sẵn dùng custom auth tokens
Trang 16Firebase Hosting
Các bạn có thể triển khai một ứng dụng nền web chỉ với vài giây với hệ thống Firebase
và các dữ liệu sẽ được lưu trữ đám mây đồng thời được bảo mật thông qua giao thức truy cập SSL
Các ứng dụng sẽ được cấp 1 tên miền dạng *.firebaseio.com hoặc bạn có thể trả tiền
để sử dụng tên miền của riêng mình
2.3 Giới thiệu về MIT App Inventor
Giới thiệu công cụ App Inventor:
Hình 2.3 MIT App Inventor
Ngày 12/7/2010, Google chính thức giới thiệu công cụ lập trình trực quan App Inventor dùng để phát triển phần mềm ứng dụng trên hệ điều hành Android App Inventor là công cụ lập trình dành cho mọi người, kể cả trẻ em
Với công cụ App Inventor, Google tạo điều kiện để mọi người có thể tự xây dựng phần mềm ứng dụng cho thiết bị di động dùng hệ điều hành Android
App Inventor thực chất là một ứng dụng web, chạy bởi trình duyệt trên máy tính cá nhân.Tuy nhiên, người dùng vẫn phải cài thêm một số ứng dụng trên máy tính hoặc trên
thiết bị di động của mình để kết nối Nhờ vậy, người dùng có thể nhanh chóng chuyển ứng dụng từ máy tính cá nhân qua điện thoại Android để chạy thử
Trang 172.3.1 Khái niệm về MIT App Inventor
MIT App Inventor dành cho android là một ứng dụng web nguồn mở ban đầu được cung cấp bởi Google và hiện tại được duy trì bởi Viện Công nghệ Massachusetts (MIT)
Nền tảng cho phép nhà lập trình tạo ra các ứng dụng phần mềm cho hệ điều hành Android (OS) Bằng cách sử dụng giao diện đồ họa, nền tảng cho phép người dùng kéo
và thả các khối mã (blocks) để tạo ra các ứng dụng có thể chạy trên thiết bị Android Đến 07/2017, phiên bản iOS của nền tảng này đã bắt đầu được đưa vào thử nghiệm bởi Thunkable, là một trong các nhà cung cấp ứng dụng web cho ngôn ngữ này
Hiện nay, mỗi tháng MIT App Inventor có hơn 400.000 người dùng đến từ 195 quốc gia và đã tạo ra gần 22 triệu ứng dụng, MIT App Inventor đang thay đổi cách thế giới tạo ra các ứng dụng và cách mà học sinh nhỏ tuổi bắt đầu học về máy tính
2.3.2 Những tính năng có trên MIT App Inventor
Cho phép xây dựng nhanh chóng những thành phần cơ bản (components) của một ứng dụng Android: Nút bấm, nút lựa chọn, chọn ngày giờ, ảnh, văn bản, thông báo, kéo trượt, trình duyệt web
Sử dụng nhiều tính năng trên điện thoại: Chụp ảnh, quay phim, chọn ảnh, bật video hoặc audio, thu âm, nhận diện giọng nói, chuyển lời thoại thành văn bản, dịch
Kết nối: Danh bạ, email, gọi điện, chia sẻ thông qua các ứng dụng mạng xã hội khác trên thiết bị, nhắn tin, bật ứng dụng khác, bluetooth, bật trình duyệt
Lưu trữ: đọc hoặc lưu tệp txt, csv, sử dụng FusiontablesControl, tạo cơ sở dữ liệu đơn giản trên điện thoại hoặc trên đám mây thông qua server tự tạo hoặc Firebase Và rất nhiều mở rộng do các nhà lập trình hoạt động riêng liên tục thêm vào
Trang 182.4 Một số module và thiết bị sử dụng trong mô hình
Giới thiệu về vi điều khiển:
Vi điều khiển là một máy tính được tích hợp trên một chíp, nó thường được sử dụng để điều khiển các thiết bị điện tử Vi điều khiển, thực chất, là một hệ thống bao gồm một
vi xử lý có hiệu suất đủ dùng và giá thành thấp (khác với các bộ vi xử lý đa năng dung trong máy tính) kết hợp với các khối ngoại vi như bộ nhớ, các mô đun vào/ra, các môđun biến đổi số sang tương tự và tương tự sang số, Ở máy tính thì các mô đun thường được xây dựng bởi các chíp và mạch ngoài
Hình 2.4 Hệ thống vi điều khiển cơ bản
Có rất nhiều hãng sản xuất vi điều khiển, nổi tiếng là TI, Microchip, Atmel, Mỗi loại đều có ưu và nhược điểm khác nhau, vì giới hạn của đề tài này dùng chức năng vi
Trang 19điều khiển không quá phức tạp nên hầu hết các vi điều khiển đều có thể dung được, ở đây ta cân nhắc về vấn đề thông dụng, nhỏ gọn và khả năng phát triển trong tương lai của vi điều khiển nên ta chọn dòng vi điều khiển AVR của hãng Atmel
2.4.2 Board vi điều khiển Arduino Uno R3
Arduino Uno được xây dựng với phân nhân là vi điều khiển ATmega328P sử dụng thạch anh có chu kì dao động là 16 MHz Với vi điều khiển này, ta có tổng cộng 14 pin (ngõ) ra / vào được đánh số từ 0 tới 13 (trong đó có 6 pin PWM, được đánh dấu ~ trước mã số của pin) Song song đó, ta có thêm 6 pin nhận tín hiệu analog được đánh
kí hiệu từ A0 - A5, 6 pin này cũng có thể sử dụng được như các pin ra / vào bình thường (như pin 0 - 13) Ở các pin được đề cập, pin 13 là pin đặc biệt vì nối trực tiếp
với LED trạng thái trên board
Hình 2.5 Sơ đồ và chức năng chân Arduino Uno R3
Một vài thông số của Arduino Uno:
Arduino Uno R3 sử dụng vi điều khiển Atmega328P
Trang 20Số chân Digital: 14 (6 chân PWM)
Giao tiếp UART: 1 bộ UART
Giao tiếp SPI : 1 bộ SPI
Giao tiếp I2C : 2 bộ I2C
Dòng tối đa trên mỗi chân I/O: 20 mA
Các chân năng lượng:
GND (Ground): cực âm của nguồn điện cấp cho Arduino Uno
5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA
3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA
Vin (Voltage Input): để cấp nguồn ngoài cho Arduino
Bộ nhớ của Arduino Uno R3:
32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển Thường thì sẽ có khoảng vài KB trong số này sẽ được dùng cho bootloader nhưng đừng lo, bạn hiếm khi nào cần quá 20KB bộ nhớ này đâu
2KB cho SRAM (Static Random Access Memory): giá trị các biến khai báo khi lập trình
sẽ lưu ở đây Khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM
Chú ý: khi mất điện, dữ liệu trên SRAM sẽ bị mất
Trang 211KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): tương tự như một chiếc ổ cứng mini – nơi có thể đọc và ghi dữ liệu vào đây mà không phải lo bị mất khi mất điện giống như dữ liệu trên SRAM
Giao tiếp UART trong Arduino Uno R3
Khái niệm giao tiếp UART:
UART là chuẩn truyền thông nối tiếp bất đồng bộ (Universal Asynchronous Receiver - Transmitter) dùng để truyền nhận dữ liệu giữa 2 hệ thống và không có phân biết chủ-
tớ, giữa các hệ thống là ngang cấp nhau
Chuẩn UART gồm một đường phát dữ liệu và một đường nhận dữ liệu Để truyền dữ liệu giữa 2 hệ thống với nhau thì cả hai hệ thống phải tự tạo xung clock (CK) có cùng tần số (Tốc độ baud)
Hình 2.6 Giao tiếp 2 hệ thống dùng chuẩn UART
Nguyên lý hoạt động:
Khi ở trạng thái chờ, mức điện áp của thiết bị truyền ở mức 1 (high) Khi bắt đầu truyền dữ liệu, START bit sẽ chuyển từ 1 xuống 0 để báo hiệu cho thiết bị nhận là quá trình truyền dữ liệu sắp xảy ra Sau START bit là đến các bit dữ liệu D0-D7 Sau khi truyền hết dữ liệu thì đến Bit Parity để bộ nhận kiểm tra tính đúng đắn của dữ liệu truyền Cuối cùng là STOP bit là 1 báo cho thiết bị nhận rằng các bit đã được gửi xong Thiết bị nhận sẽ tiến hành kiểm tra khung truyền (Frame) nhằm đảm báo tính đúng đắn của dữ liệu
Trang 22Hình 2.7 Nguyên lý hoạt động chuẩn UART
2.4.3 Module Wifi ESP8266 NodeMCU Lua CP2102
NodeMCU ESP8266 được phát triển dựa trên Chip WiFi ESP8266EX bên trong
Module ESP-12E dễ dàng kết nối WiFi với một vài thao tác Board còn tích hợp IC CP2102, giúp dễ dàng giao tiếp với máy tính thông qua Micro USB để thao tác với board Và có sẳn nút nhấn, Led để tiện trong quá trình học, nghiên cứu ESP8266 được
sử dụng rộng rãi trong các dự án IOT, ESP8266 Blynk, App Inventor
Với kích thước nhỏ gọn, linh hoạt board dễ dàng liên kết với các thiết bị ngoại vi để tạo thành project, sản phẩm mẫu một cách nhanh chóng
Sơ đồ chân và chức năng:
Hình 2.8 Datasheet Esp8266 NodeMCU Lua CP2102
Trang 23Một vài thông số của NodeMCU ESP8266:
Điện áp đầu vào: 5V (thông qua cổng USB)
Số chân I/O: 11 (tất cả các chân I/O đều có
Lập trình trên các ngôn ngữ: C/C++, Micropython, NodeMCU - Lua
2.4.4 Module Cảm biến ánh sáng, servo sg90
Module Cảm biến ánh sáng
Hình 2.9 Cảm biến ánh sáng
Ứng dụng:
Cảm biến ánh sáng ban ngày và ban đêm
Sử dụng ánh sáng điều khiển thiết bị điện
Đèn sáng tự động khi trời tối
Trang 24Theo sơ đồ mạch nguyên lý dưới: Khi module cảm biến rung được kích hoạt, khi đó sẽ
có sự thay đổi điện áp tại đầu vào của Ic LM393 Ic này nhận biết có sự thay đổi nó sẽ đưa ra một tín hiệu thấp để báo hiệu có sự rung động
Động cơ Servo SG90
Hình 2.10 Servo SG90
Ứng dụng:
Công dụng chính của động cơ servo là đạt được góc quay chính xác trong khoảng từ
90o – 180o Việc điều khiển này có thể ứng dụng để lái robot, di chuyển các tay máy lên xuống, quay một cảm biến để quét khắp phòng…
Trang 25Động cơ servo SG90 có thể xoay 180o
Chủng loại : Động cơ servo SG90
Kích thước : 22.2 x 11.8 x 32 mm
Điện áp hoạt động : 5V
Kết nối dây màu đỏ với 5V, dây màu nâu với mass, dây màu cam với chân phát xung của vi điều khiển Ở chân xung cấp một xung từ 1ms-2ms theo để điều khiển góc quay theo ý muốn
2.4.5 Relay 4 kênh 5V
Hình 2.11 Relay 4 kênh 5V
Trang 26Module Relay 4 kênh 5V gồm 4 relay , điện áp hoạt động 5 v điều khiển đầu ra tối đa 220VAC/10A và 30VDC/10A Đầu vào IN1, IN2, IN3 IN4 nhận tín hiệu cực thấp 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 điều khiển relay 4 kênh này 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 Mở của Relay
Ứng dụng:
Dùng dòng điện nhỏ của vi điều khiển, arduino, PLC để điều khiển các thiết bị điện,
đồ dùng điện hoạt động ở mức điên áp cao từ 0-30v DC, 0-250v DC như điện sinh hoạt
Có đèn báo đóng ngắt trên Relay
Sử dụng điện áp nuôi DC 5V
Đầu ra điện thê đóng ngắt tối đa: DC 30V / 10A, AC 250V / 10A
Trang 27IN1…IN4: tín hiệu đầu vào, hoạt động mức thấp
NO1…NO4: Công tắc thường mở
2.4.6 Cảm biến nhiệu độ, độ ẩm không khí DHT11
Hình 2.12 Cảm biến DH11
Cảm biến nhiệt độ và độ ẩm DHT11 ra đời sau và được sử dụng thay thế cho dòng SHT1x ở những nơi không cần độ chính xác cao về nhiệt độ và độ ẩm Cảm biến sử dụng giao tiếp số theo chuẩn 1 dây
Đo tốt ở độ ẩm 20-80%RH với sai số 5%
Đo tốt ở nhiệt độ 0 to 50°C sai số ±2°C
Tần số lấy mẫu tối đa 1Hz (1 giây 1 lần)
Kích thước 15mm x 12mm x 5.5mm 4 chân, khoảng cách chân 0.1''
Trang 282.4.7 Cảm biến khí gas MQ2
Hình 2.13 Cảm biến khí gas MQ2.
MQ2 là cảm biến khí gas Nó được cấu tạo từ chất bán dẫn SnO2 Chất này có độ nhạy cảm thấp với không khí sạch Nhưng khi trong môi trường có chất ngây cháy, độ dẫn của nó thay đổi ngay Chính nhờ đặc điểm này người ta thêm vào mạch đơn gian để biến đổi từ độ nhạy này sang điện áp
Khi môi trường sạch điện áp đầu ra của cảm biến thấp, giá trị điện áp đầu ra càng tăng khi nồng độ khí gây cháy xung quang MQ2 càng cao
MQ2 hoạt động rất tốt trong môi trường khí hóa lỏng LPG, H2, và các chất khí gây cháy khác Nó được sử dụng rộng rãi trong công nghiệp và dân dụng do mạch đơn giản và chi phí thấp
Trang 29CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ
3.1 Sơ đồ khối hệ thống
TRUNG TÂM ĐIỀU KHIỂN
Wifi Wifi/3G/4G
Hình 3.1 Sơ đồ khối hệ thống
Chức năng các khối:
Khối nguồn: Cung cấp nguồn nuôi DC cho mạch , sử dụng nguồn máy tính
Khối vi điều khiển: Đọc giá trị từ App điện thoại gửi đến thông qua Wifi, xử lý đồng
thời điều khiển các thiết bị
Khối module ESP8266: Nhận dữ liệu từ Firebase và gởi đến vi điều khiển
Khối Firebase: Nơi lưu trữ giữ liệu và là kết nối trung gian giữa vi điều khiển và ứng
dụng Android
App Android (Điện thoại): Nhận lệnh , thao tác của con người, xử lý và gửi tín hiệu
đến vi điều khiển thông qua Wifi/3G/4G
Trang 303.2 Tính toán và thiết kế
3.2.1 Thiết kế mô hình
Sơ đồ đấu nối thiết bị:
Hình 3.2 Sơ đồ đấu nối thiết bi
Hình 3.3 Sơ đồ đấu nối thiết bị thực tế
Nguyên lý hoạt động:
Khi vi điều khiển nhận được dữ liệu từ App Android gửi đến sẽ lập tức gửi tín hiệu đến chân Relay, các chân dữ liệu của Relay ở đây được nối trùng với các chân của
Trang 31Esp8266 nhằm nhận tín hiệu 1 cách chính xác, từ đó sẽ điều khiển thiết bị theo ý muốn, 4 Relay được nối với các chân 2, 3, 4, 5, của Esp8266
Đối với App Android :
Khi nhận được thao tác điều khiển, sẽ gửi dữ liệu đến vi điều khiển thông qua Wifi
App đồng bộ trạng thái các thiết bị theo thời gian thực trên cơ sở dữ liệu firebase
Mô hình đóng mở cửa và đèn tự sáng
Hình 3.4 Sơ đồ đấu nối thiết bị
Trang 32Hình 3.5 Sơ đồ đấu nối thiết bị thực tế
+ Phòng khách có: 1 quạt, 1 đèn led, 2 nút nhấn, 1 lcd hiển thị nhiệt độ, độ ẩm, khí gas
và 1 cảm biến đo nhiệt độ DHT11