(Đồ án tốt nghiệp) Thiết kế hệ thống thông tin và quản lý xe cân bằng thông qua điện thoại thông minh(Đồ án tốt nghiệp) Thiết kế hệ thống thông tin và quản lý xe cân bằng thông qua điện thoại thông minh(Đồ án tốt nghiệp) Thiết kế hệ thống thông tin và quản lý xe cân bằng thông qua điện thoại thông minh(Đồ án tốt nghiệp) Thiết kế hệ thống thông tin và quản lý xe cân bằng thông qua điện thoại thông minh(Đồ án tốt nghiệp) Thiết kế hệ thống thông tin và quản lý xe cân bằng thông qua điện thoại thông minh(Đồ án tốt nghiệp) Thiết kế hệ thống thông tin và quản lý xe cân bằng thông qua điện thoại thông minh(Đồ án tốt nghiệp) Thiết kế hệ thống thông tin và quản lý xe cân bằng thông qua điện thoại thông minh(Đồ án tốt nghiệp) Thiết kế hệ thống thông tin và quản lý xe cân bằng thông qua điện thoại thông minh(Đồ án tốt nghiệp) Thiết kế hệ thống thông tin và quản lý xe cân bằng thông qua điện thoại thông minh(Đồ án tốt nghiệp) Thiết kế hệ thống thông tin và quản lý xe cân bằng thông qua điện thoại thông minh(Đồ án tốt nghiệp) Thiết kế hệ thống thông tin và quản lý xe cân bằng thông qua điện thoại thông minh(Đồ án tốt nghiệp) Thiết kế hệ thống thông tin và quản lý xe cân bằng thông qua điện thoại thông minh(Đồ án tốt nghiệp) Thiết kế hệ thống thông tin và quản lý xe cân bằng thông qua điện thoại thông minh(Đồ án tốt nghiệp) Thiết kế hệ thống thông tin và quản lý xe cân bằng thông qua điện thoại thông minh(Đồ án tốt nghiệp) Thiết kế hệ thống thông tin và quản lý xe cân bằng thông qua điện thoại thông minh(Đồ án tốt nghiệp) Thiết kế hệ thống thông tin và quản lý xe cân bằng thông qua điện thoại thông minh
Trang 1GVHD : ThS VŨ ĐÌNH HUẤN
Tp Hồ Chí Minh, tháng 7 năm 2017
Trang 2
LỜI CẢM ƠN
Để hoàn thành đố án này nhóm đã làm việc một cách tích cực liên tục và nỗ nực không ngừng trong công việc nghiên cứu và tìm kiếm tài liệu liên quan đến nội dung của đề tài Tuy nhiên bên cạnh những cố gắng của bản thân, nhóm cũng đã gặp không ít những khó khăn, vướng mắc và người đã giúp chúng em tìm ra hướng đi đúng đó là giáo viên hướng
dẫn, thầy Vũ Đình Huấn
Với lượng kiến thức còn hạn hẹp, thêm vào đó đây là lần đầu chúng em thực hiện đồ
án nên chắc chắn không tránh khỏi những thiếu sót , hạn chế vì thế chúng em rất mong có được sự góp ý và nhắc nhờ từ thầy giáo để có thể hoàn thiện đề tài của mình
Chúng em xin chân thành cảm ơn thầy cô trường sư phạm kĩ thuậy đã tận tình dạy dỗ chúng em trong những năm qua, đặc biệt là các thầy cô trong khoa cơ khí động lực đã giúp chúng em rất nhiều trong vấn đề học tập để chúng em vượt qua những khó khăn của thời sinh viên
Chúng em xin chân thành cảm ơn sự hướng dẫn tận tình của giáo viên hướng dẫn, thấy Vũ Đình Huấn đã cung cấp cho chúng em những kiến thức chuyên môn cũng như những ý kiến đóng góp hết sức quý giá trong quá trình làm đề tài
Cuối cùng, xin cảm ơn chân thành Ba Mẹ, Anh Chị, Bạn Bè cùng những người thân
đã nuôi nấng, giúp đỡ chúng em nên người và trở thành người có ích cho xã hội
Sinh viên thực hiện
Trang 3Mục đích chính của chúng em là mang công nghệ truyền dữ liệu không dây tới người
dữ dụng, đặc biệt trong ngành nghề công nghệ kỹ thuật ô tô, một phương pháp sữa chữa và kiểm tra tình trạng xe ngay trên smartphonr, đối với người sử dụng xe, công nghệ này sẽ làm mới lại chiếc xe, làm chiếc xe gọn gàng và tiện lời hơn với hệ điều hành thông minh Android
Để có một đề tài hoàn chỉnh, chúng em phải chia ra các bài toán nhỏ, xử lí các khó khăn nhỏ, sau đó kết hợp và chỉnh sửa lại cả phần cứng và phần mềm sao cho kết quả đạt được và tốt nhất và chính xác nhất Khó khăn chúng em gặp phải là phương pháp truyền đa
dữ liệu từ android mà vẫn không làm nhiễu sóng của các dữ liệu Đây cũng là trở ngại lớn nhất trong công nghệ truyền không dây, các tín hiệu có thể đè lên nhau, kết qur nhận được sau cũng có thể không được chính xác
Kết thúc đề tài, chúng em đã viết riêng một ứng dụng với hệ điều hành android, một hộp điều khiển được kết nối với xe, mô hình này rất hợp lí để có thể thương mại hóa, đây là một đề tài mới và rất mới vì đối với ngành công nghệ kỹ thuật ô tô, chúng em rất ít được tiếp xúc với ngôn ngữ lập trình, ít có cơ hội để giao lưa và học hỏi kinh nghiệm về lập trình
Trang 4
MỤC LỤC LỜI CẢM ƠN 2
TÓM TẮT 3
DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU 6
Chương 1 TỔNG QUAN 1
1.2 Lý do chọn đề tài 2
1.3 Mục tiêu đề tài 2
1.4 Đối tượng và phạm vi nghiên cứu 3
Chương 2 CƠ SỞ LÝ THUYẾT 4
2.1 Tổng quan về arduino 4
2.1.1 Lý thuyết về board Arduino Uno R3 6
2.1.2 Lý thuyết về arduino IDE và ngôn ngữ lập trình 9
2 2 Lý thuyết các cảm biến được sử dụng trong đề tài 10
2.2.1 Cảm biến nhiệt độ LM35 10
2.2.2 Cảm biến ánh sáng quang trở 12
2.2.3 Module blutooth HC-05 13
2.2.4 Cảm biến dòng điện ACS712 14
2.2.5 Cảm biến hall 15
Chương 3 THIẾT LẬP PHẦN CỨNG VÀ LẬP TRÌNH VỚI ARDUINO 17
3.1 Lập trình,lắp đặt cho mạch đo nhiệt độ với arduino 17
3.2 Lập trình,lắp đặt cho mạch đo cường độ sáng với arduino 19
3.3 Lắp đặt mạch kết nối bluetooth HC05 với arduino 20
3.4 Lắp đặc đo điện áp accu 21
3.5 Lập trình,lắp đặt cho mạch hall với aruidno 23
3.6 Lập trình,lắp đặt cho mạch đo cường độ dòng điện với arduino 25
Chương 4 LẬP TRÌNH ANDROID MIT APP INVENTOR 2 28
4.1 Giới thiệu về Mit App Inventor 28
4.2.1 Chế Độ Designer: chế độ dành cho thiết kế, tạo giao diện bên ngoài 30
4.2.2 Chế Độ Blocks: chế độ làm việc với các khối lệnh 42
Trang 5
Chương 5 ỨNG DỤNG MIT APP INVENTOR 2 VÀO HIỂN THỊ THÔNG TIN VÀ QUẢN LÍ NĂNG LƯỢNG XE 48
5.1 Thiết lập màn hình đăng nhập 48
5.1.2 Chế độ Block 49
5.2 Thiết lập màn hình hiển thị thống số xe 55
5.2.1 Chế độ designer 55
5.2.2 Chế độ block 57
5.3 Thiết lập màn hình điều khiển và hiển thị công suất tiêu thụ 60
5.3.1 Chế độ desinger 60
5.3.2 Chế độ Block 61
Chương 6 KẾT QUẢ NGHIÊN CỨU VÀ ỨNG DỤNG TRÊN XE CÂN BẰNG 62
6.1 Thiết kế phần cứng cho hệ thống thông tin 62
6.2 kết quả hiển thị 63
6.3 Code lập trình tham khảo 65
Chương 7 KẾT LUẬNVÀ ĐỀ NGHỊ 70
DANH MỤC TÀI LIỆUTHAM KHẢO 72
PHỤ LỤC 73
Hướng dẫn sử dụng Arduino 73
Hướng dẫn lập trình androi mit app inventor 2 77
Trang 6
DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU
IDE Intergrated Development Environment Môi trường phát triển tích hợp
DIY Do It by Yourself là những người tự chế ra sản
phẩm của mình WYSIWYG What you see is what you get những gì bạn thấy là những gì
bạn có
USB Universal Serial Bus Một chuẩn kết nối tuần tự đa
dụng trong máy tính SRAM Static Random Access Memory Bộ nhớ truy cập ngẫu nhiên tĩnh EEPROM Electrically Erasable Programmable
Read-Only Memory
Bộ nhớ không mất dữ liệu khi ngừng cung cấp điện
SPI Serial Peripheral Interface Giao diện ngoại vi nối tiếp
IDII Interaction Design Instistute Ivrea Trường Interaction Design
Instistute Ivrea
Trang 7
DANH MỤC CÁC HÌNH Hình 1.1 Multi Media Interfacexe trên xe AUDI 1
Hình 1.2 Sử dụng màn LCD để hiển thị và điều khiển trên xa VOLVO 2
Hình 2.1 Các thành viên khởi xướng arduino 4
Hình 2.2 Boad mạch arduino Uno R3 6
Hình 2.3 Các cổng ra vào trên arduino Uno R3 8
Hình 2.4 Giao diện màn hinh arduino IDE 10
Hình 2.5 Cảm biến nhiệt độ 11
Hình 2.6 Cảm biến ánh sang quang trở 12
Hình 2.7 Module blutooth HC-05 13
Hình 2.8 Cảm biến dòng điện ACS712 14
Hình 2.8 Nguyên lý cảm biến Hall 16
Hình 3.1 Mạch đo cảm nhiệt độ với arduino 17
Hình 3.2 Kết quả hiển thị đo nhiệt độ từ arduino 18
Hình 3.3 Mạch đo cường độ sáng với arduino 19
Hinh 3.4 Kết quả Hiển thị đo cường độ sang từ arduino 20
Hình 3.5 Mạch kết nối bluetooth HC05 với arduino 20
Hình 3.6 Mạch kết nối đo điện áp accu với arduino 21
Hình 3.7 Kết quả hiển thị điện áp accu 22
Hình 3.8 Mạch kết đo tín hiệu xung của hall với arduino 23
Hình 3.9 Kết quả hiển thị số quay quay động cơ cân bằng (rpm) 25
Hình 3.10 Lắp đặt cho mạch đo cường độ dòng điện với arduino 26
Hinh 3.11 Kết quả Hiển thị đo cường độ dòng điện từ arduino 27
Hình 4.1 Sơ đồ nguyên truyền phiên bản mới nhất hiện nay là
MIT App Inventor 2……… 28
Hình 4.2 Giao diện quản lý Project 29
Hình 4.3 Giao diện Start New Project 30
Hình 4.4 Giao diện các thành phần chính của chế độ designer 30
Hình 4.5 Giao diện User inteface (Giao diện người dùng) 31
Hình 4.6 Giao diện Layout (Bố cục) 32
Hình 4.7 Giao diện Media (Phương tiện truyền thông) 33
Trang 8
Hình 4.8 Giao diện Drawing and Animation (Vẽ và chuyển động) 35
Hình 4.10 Giao diện Social (Giao tiếp - Xã hội) 36
Hình 4.11 Giao diện Storage (Lưu trữ) 37
Hình 4.12 Giao diện Connectivity (Kết nối) 38
Hình 4.13 Giao diện LEGO® MINDSTORMS® 39
Hình 4.14 Giao diện Thành phần - thuộc tính 40
Hình 4.15 Giao diện Lệnh tích hợp sẵn 42
Hình 4.16 Giao diện Lệnh Creen 43
Hình 4.17 Giao diện Lệnh Any component 43
Hình 4.18 Giao diện vùng làm việc 44
Hình 4.19 Giao diện hộp cảnh báo 47
Hình 5.1 Giao diện của ứng dụng 48
Hình 5.2 Giao diện cửa sổ components 49
Hình 5.3 khối code thiết lập kết nối bluetooth 50
Hình 5.4 khối code thiết lập kết nối Bluetooth khi phát hiện lỗi 51
Hình 5.5 khối code thiết lập mở screen2 51
Hình 5.6 khối code thiết lập Reset password cho ứng dụng 52
Hình 5.7 khối code thiết lập thay đổi password cho ứng dụng 52
Hình 5.8 khối code thiết lập Tự định vị xe 53
Hình 5.9 khối code thiết lập Tìm xe bằng nút bấm 54
Hình 5.10 khối lệnh call bluetooth 54
Hình 5.10 Màn hình hiển thị tốc độ động cơ và tích hợp tính năng điều khiển đèn57 Hình 5.11 khối code thiết lập điều khiển hiển thị thông số 58
Hình 5.12 khối code thiết lập điều khiển hiển điều khiển đèn cơ bản 59
Hình 5.13 khối code thiết lập điều kiện để hoạt động là click vào button 59
Hình 5.14 Màn hình hiển thị creen 3 60
Hình 5.15 khối code thiết lập truyền dữ liệu số từ arduino đến android 61
Hình 6.1:Sơ đồ nguyên lý hệ thống quản lý thông tin và điều khiển 62
Hình 6.2:Sơ đồ mạch điện thực tế 62
Hình 6.3 Sơ đồ mạch điện 63
Hình 6.4 Kết quả hiển thị khi xe hoạt động theo dạng đồng hồ kim 63
Hình 6.5 Hiển thị kết quả theo đồng hồ số 64
Trang 9
Hình 6.6 kết quả điều khiển đèn chiếu sáng 64
Trang 10
DANH MỤC CÁC BẢNG
Bảng 2.1 Một vài thông số của Arduino UNO R3 6 Bảng 2.2 Thông số kỹ thuật cảm biến dòng điện ACS712 15 Bảng 4.1 Nhóm những đối tượng dùng để thiết kế giao diện cho screen mà người dùng nhìn thấy được 31 Bảng 4.2 Nhóm lệnh sắp xếp các đối tượng theo một bố cục 33 Bảng 4.3:Nhóm lệnh liên quan đến đa phương tiện như âm thanh, video, máy ảnh,
ghi âm 34
Bảng 4.4: Nhóm lệnh tạo ra những chuyển động hay tương tác 35 Bảng 4.6 Nhóm Các đối tượng này giúp bạn thao tác về liên lạc, giao tiếp và mạng xã hội 37 Bảng 4.7 Nhóm chức năng này giúp bạn lưu trữ thông tin, dữ liệu, theo nhiều cách khác nhau 38 Bảng 4.8 Nhóm giúp bạn hoàn toàn có thể dùng chúng để kết nối bluetooth, giao thức web, 39 Bảng 4.9 Nhóm giúp cho bạn những đối tượng có thể làm việc với Lego Mindstorm 40
Trang 11Chương 1 TỔNG QUAN 1.1 Tình hình hiện nay
Ngày nay khoa học công nghệ ngày càng phát triển, vi điều khiển AVR và vi điều khiển PIC ngày càng thông dụng và hoàn thiện hơn, nhưng có thể nói sự xuất hiện của Arduino vào năm 2005 tại Italia đã mở ra một hướng đi mới cho vi điều khiển Sự xuất hiện của Arduino đã hỗ trợ cho con người rất nhiều trong lập trình và thiết kế, nhất là đối với những người bắt đầu tìm tòi về vi điều khiển mà không có quá nhiều kiến thức, hiểu biết sâu sắc về vật lý và điện tử Phần cứng của thiết bị đã được tích hợp nhiều chức năng cơ bản và
là mã nguồn mở Ngôn ngữ lập trình trên nền Java lại vô cùng dễ sử dụng tương thích với ngôn ngữ C và hệ thư viện rất phong phú và được chia sẻ miễn phí Chính vì những lý do như vậy nên Arduino hiện đang dần phổ biến và được phát triển ngày càng mạnh mẽ trên toàn thế giới
Công nghệ hiển thị được tùy biến nhiều hơn trên màn hình LED, chiếc xe trở nên hiện đại, sang trọng nên đã thu hút rất nhiều người tiêu dùng lựa chọn chiếc xe có màn hình hiển thị thông số và màn hình điều khiển các option, từ đó xu hướng thiết kế các xe hiện đại hiện nay không thế thiếu được 2 màn hình quan trọng này
Hình 1.1 Multi Media Interfacexe trên xe AUDI
Trang 121.2 Lý do chọn đề tài
Trên cơ sở kiến thức đã học trong môn học: lập trình Visual basic, hệ thống điều
khiển động cơ và các thiết bị điện tử, chúng em đã quyết định thực hiện đề tài Thiết kế hệ thống thông tin và quản lý xe cân bằng thông qua điện thoại thông minh với mục đích
để tìm hiểu thêm về Arduino, làm quen với các thiết bị điện tử, thực hành lại với các kiến thức về cảm biến và nâng cao hiểu biết cho bản thân
Dựa vào những lợi ích thực tế và khả năng phát triển trong tương lai, truyền dữ liệu không dây đang là xu thế phát triển trong ngành kỹ thuật ô tô nói riêngvà các ngành kỹ thuật điều khiển nói chung, các công ty ô tô lớn đã tích hợp rất nhiều tính năng điều khiển lên màn hình cảm ứng LCD và sử dụng màn hình thứ 2 để hiển thị đa nhiệm các thông số của xe
Trang 13phần mềm di động mở Android kết hợp với sự xử lí tín hiệu và điều khiển mạnh mẽ của Arduino Đây là hướng phát triển trong tương lai của nền công nghệ nói chung và ngành công nghệ ô tô nói chung, thay vì sử dụng mạng LAN, CAN, tại sao chúng ta không sử dụng truyền dữ liệu không dây với những ưu điểm vượt trội về mặt không gian và thẫm mỹ
1.4 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu:
vi mạch điện tử và điện thoại thông minh… Do đó, để tạo ra một sản phẩm hoàn thiện như mục đích đặt ra thì nhóm cần phải tập trung nghiên cứu chủ yếu đến các đối tượng:
Vi mạch điện tử bao gồm 1 boad mạch arduino,1 moduel Bluetooth và các cảm biến
Phần mềm tạo ứng dụng trên Android.Mọi tín hiệu từ arduino sẽ truyền đến điện thoại nhờ vào Bluetooth
Phạm vi nghiên cứu:
Tập trung nghiên cứu cách xử lí tín hiệu truyền từ Arduino đến Android
Giải quyết các vướng bận về mặt sóng tín hiệu, giảm nhiễu
Trang 14Chương 2 CƠ SỞ LÝ THUYẾT 2.1 Tổng quan về arduino
Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY (là những người tự chế
ra sản phẩm của mình) trên toàn thế giới trong vài năm gần đây.Số lượng người dùng cực lớn và đa dạng với trình độ trải rộng từ bậc phổ thông lên đến đại học đã làm cho ngay cả những người tạo ra chúng phải ngạc nhiên về mức độ phổ biến
Hình 2.1 Các thành viên khởi xướng arduino
Arduino là gì mà có thể khiến ngay cả những sinh viên và nhà nghiên cứu tại các trường đại học danh tiếng như MIT, Stanford, Carnegie Mellon phải sử dụng; hoặc ngay cả Google cũng muốn hỗ trợ khi cho ra đời bộ kit Arduino Mega ADK dùng để phát triển các ứng dụng Android tương tác với cảm biến và các thiết bị khác?
Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết
bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác Đặc điểm nổi bật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình
có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình Và
Trang 15điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm.
Một mạch Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổ sung giúp
dễ dàng lập trình và có thể mở rộng với các mạch khác Một khía cạnh quan trọng của Arduino là các kết nối tiêu chuẩn của nó, cho phép người dùng kết nối với CPU của board với các module thêm vào có thể dễ dàng chuyển đổi, được gọi là shield Vài shield truyền thông với board Arduino trực tiếp thông qua các chân khách nhau, nhưng nhiều shield được định địa chỉ thông qua serial bus I²C-nhiều shield có thể được xếp chồng và sử dụng dưới dạng song song Arduino chính thức thường sử dụng các dòng chip megaAVR, đặc biệt là ATmega8, ATmega168, ATmega328, ATmega1280, và ATmega2560 Một vài các bộ vi xử
lý khác cũng được sử dụng bởi các mạch Aquino tương thích Hầu hết các mạch gồm một bộ điều chỉnh tuyến tính 5V và một thạch anh dao động 16 MHz (hoặc bộ cộng hưởng ceramic trong một vài biến thể), mặc dù một vài thiết kế như LilyPad chạy tại 8 MHz và bỏ qua bộ điều chỉnh điện áp onboard do hạn chế về kích cỡ thiết bị Một vi điều khiển Arduino cũng
có thể được lập trình sẵn với một boot loader cho phép đơn giản là upload chương trình vào
bộ nhớ flash on-chip, so với các thiết bị khác thường phải cần một bộ nạp bên ngoài Điều này giúp cho việc sử dụng Arduino được trực tiếp hơn bằng cách cho phép sử dụng 1 máy tính gốc như là một bộ nạp chương trình
Arduino ra đời tại thị trấn Ivrea thuộc nước Ý và được đặt theo tên một vị vua vào thế
kỷ thứ 9 là King Arduin Arduino chính thức được đưa ra giới thiệu vào năm 2005 như là một công cụ khiêm tốn dành cho các sinh viên của giáo sư Massimo Banzi, là một trong những người phát triển Arduino, tại trường Interaction Design Instistute Ivrea (IDII) Mặc
dù hầu như không được tiếp thị gì cả, tin tức về Arduino vẫn lan truyền với tốc độ chóng mặt nhờ những lời truyền miệng tốt đẹp của những người dùng đầu tiên Hiện nay Arduino nổi tiếng tới nỗi có người tìm đến thị trấn Ivrea chỉ để tham quan nơi đã sản sinh ra Arduino
Trang 162.1.1 Lý thuyết về board Arduino Uno R3
Nhắc tới dòng mạch Arduino dùng để lập trình, cái đầu tiên mà người ta thường nói tới chính là dòng Arduino UNO Hiện dòng mạch này đã phát triển tới thế hệ thứ 3 (R3).là một bo mạch thiết kế bộ xử lý trung tâm điều khiển AVR Atmega328
Hình 2.2 Boad mạch arduino Uno R3
Bảng 2.1 Một vài thông số của Arduino UNO R3
Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)
Điện áp vào khuyên dùng 7-12V DC
Điện áp vào giới hạn 6-20V DC
Số chân Digital I/O 14 (trong đó 6 chân pin có khả năng điều khiển
xung PWM)
Số chân Analog 6 (độ phân giải 10bit)
Trang 17Dòng tối đa trên mỗi chân I/O 30 mA
-GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi bạn dùng các
thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau
-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 UNO, bạn nối cực dương của
nguồn với chân này và cực âm của nguồn với chân GND
-IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở
chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạn không được lấy nguồn 5V từ chân này
để sử dụng bởi chức năng của nó không phải là cấp nguồn
-RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc
chân RESET được nối với GND qua 1 điện trở 10KΩ
Trang 18*Các cổng vào/ra trên Arduino Board
Hình 2.3 Các cổng ra vào trên arduino Uno R3
Mạch Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ
có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì các điện trở này không được kết nối)
Một số chân digital có các chức năng đặc biệt như sau:
- 2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive –
RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2 chân này nếu không cần thiết
- Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ phân
giải 8 bit (giá trị từ 0 → 28
-1 tương ứng với 0V → 5V) bằng hàm analogWrite() Nói một
Trang 19cách đơn giản, bạn có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác
- Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài các chức
năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác
- LED 13: Trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi bấm nút
Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13 Khi chân này được người dùng sử dụng, LED sẽ sáng
- Arduino UNO Broad: có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu
10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V Với chân AREF trên board,
bạn có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog Tức là nếu bạn cấp điện áp 2.5V vào chân này thì bạn có thể dùng các chân analog để đo điện áp trong khoảng
từ 0V → 2.5V với độ phân giải vẫn là 10bit
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác
2.1.2 Lý thuyết về arduino IDE và ngôn ngữ lập trình
Thiết kế bo mạch nhỏ gọn, trang bị tính năng thông dụng mang lại nhiều lợi thế cho arduino,tuy nhiên sức mạnh tính năng thực sự nằm ở phần mềm Môi trường lập trình đơn giản dễ sử dụng, ngôn ngữ lập trình Wiring dễ hiểu và dựa trên nền tảng C/C++ rất quen thuộc với người làm kỹ thuật Và quan trọng là số lượng thư viện code được viết sẵn và chia
sẻ bởi cộng đồng nguồn mở là cực kỳ lớn
Môi trường lập trình Arduino IDE có thể chạy trên ba nền tảng phổ biến nhất hiện nay là Windows, Macintosh OSX và Linux Do có tính chất nguồn mở nên môi trường lập trình này hoàn toàn miễn phí và có thể mở rộng thêm bởi người dùng có kinh nghiệm
Ngôn ngữ lập trình có thể được mở rộng thông qua các thư viện C++ Và do ngôn ngữ lập trình này dựa trên nền tảng ngôn ngữ C của AVR nên người dùng hoàn toàn có thể nhúng thêm code viết bằng AVR, C vào chương trình nếu muốn
Trang 20Hình 2.4 Giao diện màn hinh arduino IDE
2 2 Lý thuyết các cảm biến đƣợc sử dụng trong đề tài
2.2.1 Cảm biến nhiệt độ LM35
Cảm biến nhiệt LM35 là một bộ cảm biến nhiệt mang tích hợp chính xác cao mà điện
áp của nó tỷ lệ với nhiệt độ thang Celsius.chúng không yêu cầu cân chỉnh ngoài vì chúng đã đƣợc cân chỉnh
Cảm biến LM35 có 3 chân:
+ Chân nguồnVCC
+Chân đầu ra Vout
+Chân nối đất GND
Trang 21Hình 2.5 Cảm biến nhiệt độ
Đặc điểm chính của LM35
- Điện áp đầu vào từ 4V đến 30V
- Điện áp ra: -1V đến 6V
- Công suất tiêu thụ là 60uA
- Độ phân giải điện áp đầu ra là 10mV/oC
- Độ chính xác cao ở 25 C là 0.5 C
- Trở kháng đầu ra thấp 0.1 cho 1mA tải
- Độ chính xác thực tế: 1/4°C ở nhiệt độ phòng và 3/4°C ngoài khoảng -55°C tới 150°C
Trang 222.2.2 Cảm biến ánh sáng quang trở
Cảm Biến Ánh Sáng Quang Trở nhạy cảm nhất với cường độ ánh sáng môi trường thường được sử dụng để phát hiện độ sáng môi trường xung quanh và cường độ ánh sáng Khi cường độ ánh sáng môi trường xung quanh bên ngoài vượt quá một ngưỡng quy định, ngõ ra của module D0 là mức logic thấp
Hình 2.6 Cảm biến ánh sang quang trở
Đặc tính nổi bậc:
- Nhỏ gọn
- Độ chính xác cao
- Các thành phần phụ như điện trở, tụ điện cần thiết cho mạch đã được gắn đầy đủ
- Sử dụng điện áp chuẩn 5V tương thích với nền tảng Arduino
Xuất tín hiệu ra cả hai dạng là Digital (có biến trở chỉnh mức và led báo hiệu) và Analog
Trang 23Module này có 6 chân : VCC, GND, RX, TX, STATE, EN Trong đó, VCC và GND
là 2 chân cấp nguồn, đất cho module RX, TX dùng để nhận gửi dữ liệu với Arduino Chân
Trang 24STATE là chân trạng thái ( chân này ko cần kết nối) EN là chân để chọn 1 trong 2 chế độ hoạt động của con HC05, gồm chế độ AT Mode và Data Mode
2.2.4 Cảm biến dòng điện ACS712
Cảm biến dòng điện ACS712 là một IC cảm biến dòng tuyến tính dựa trên hiệu ứng Hall ACS xuất ra 1 tín hiệu analog, Vout biến đổi tuyến tính theo sự thay đổi của dòng điện đƣợc lấy mẫu thứ cấp DC (hoặc AC), trong phạm vi đã cho Tụ (Cf theo sơ đồ) đƣợc dùng với mục đích chống nhiễu và có giá trị tùy thuộc vào từng mục đích sử dụng
Hình 2.8 Cảm biến dòng điện ACS712 Đặc điểm kỹ thuật
Thời gian tăng của đầu ra để đáp ứng với đầu vào là 5µs
Điện trở dây dẫn trong là 1.2mΩ
Nguồn vận hành đơn là 5V
Độ nhạy đầu ra từ 63-190mV/A
Điện áp ra cực kỳ ổn định
Trang 25Bảng 2.2 Thông số kỹ thuật cảm biến dòng điện ACS712
Đường tín hiệu analog có độ nhiễu thấp
Độ nhạy đối với các loại module
ACS 712-05B (5Ampe): 180 – 190 mV/A
ACS 712-20A (20Ampe): 96 – 104 mV/A
ACS 712-30A (30Ampe): 64 – 68 mV/A
2.2.5 Cảm biến hall
Cảm biến Hall là loại cảm biến để phát hiện từ tính của nam châm Hữu ích cho các ứng dụng phát hiện vật mà không tiếp xúc, cảm biến vị trí, vòng quay
Ví dụ như khi bạn đưa một cục nam châm lại gần cảm biến Hall thì cảm biến sẽ phát
ra một tìn hiệu và từ tín hiệu đó bạn có thể thực hiện một hành động mà mình đã đặt trước
Trang 26Hình 2.8 Nguyên lý cảm biến Hall
Cảm biến Hall hoạt động dựa trên nguyên tắc hiệu ứng Hall Hiệu ứng Hall là một hiệu ứng vật lý được thực hiện khi áp dụng một từ trường vuông góc lên một thanh Hall đang có dòng điện chạy qua
Cảm biến Hall có rất nhiều ứng dụng trong thực tế như bạn có thể ứng dụng loại cảm biến này để đếm sản phẩm, lắp vào cánh cửa để phát hiện kẻ trộm mở cửa đột nhập vào nhà hay bạn có thể gắn cảm biến Hall vào khung xe sau đó gắn một nam châm vào bánh
xe để đo tốc độ di chuyển
Trang 27Chương 3 THIẾT LẬP PHẦN CỨNG VÀ LẬP TRÌNH CÁC CẢM BIẾN VỚI
ARDUINO 3.1 Lập trình,lắp đặt cho mạch đo nhiệt độ với arduino
Cảm biến LM35 hoạt động bằng cách cho ra một giá trị điện thế nhất định tại chân Voul (chân giữa) ứng với mỗi mức nhiệt độ
Như vậy,băng cách đưa vào chân bên trái của cảm biến LM35 hiệu điện thế 5V,chân phải nối đất, đo hiệu điện thế ở chân giữa bằng các pin A0 trên arduino(giống như đọc giá trị biến trở),ta sẽ được nhiệt độ (0-1000) bằng công thức:
Trang 28void loop() {
//đọc giá trị từ cảm biến LM35
int reading = analogRead(sensorPin);
//tính ra giá trị hiệu điện thế (đơn vị Volt) từ giá trị cảm biến
float voltage = reading * 5.0 1023.0;
// ở trên mình đã giới thiệu, cứ mỗi 10mV = 1 độ C
// Vì vậy nếu biến voltage là biến lưu hiệu điện thế (đơn vị Volt)
// thì ta chỉ việc nhân voltage cho 100 là ra được nhiệt độ!
float temp = voltage * 100.0;
Trang 293.2 Lập trình,lắp đặt cho mạch đo cường độ sáng với arduino
Khi moduel cảm biến rung được kích hoạt,khi đó sẽ có sự thay đổi điện áp đầu vào của Ic393.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 sự rung động
Hình 3.3 Mạch đo cường độ sáng với arduino
*code lập trình
int OutPin = A0; // Lưu chân ra của cảm biến
void setup()
{
//Đối với một chân analog bạn không cần pinMode
Serial.begin(9600);//Mở cổng Serial ở mức 9600
int value = analogRead(OutPin); // Ta sẽ đọc giá trị hiệu điện thế của cảm biến
// Giá trị được số hóa thành 1 số nguyên có giá trị
// trong khoảng từ 0 đến 1023
Serial.println(value);//Xuất ra serial Monitor
delay(10);
Trang 30Hinh 3.4 Kết quả Hiển thị đo cường độ sáng từ arduino 3.3 Lắp đặt mạch kết nối bluetooth HC05 với arduino
Moduel HC-05 sử dụng tập lệnh AT để thực hiện giao tiếp với các thiết bị khác.Ta thực hiện phương tiện giao tiếp với arduino thông qua 2 chân Tx Và Rx,chỉ đơn giản như thế Chỉ kết nối chân Tx với chân Rx và chân Rx với Tx của arudino là có thể giao tiếp được
giữa arduino và moduel bluetooth HC-05
Hình 3.5 Mạch kết nối bluetooth HC05 với arduino
Trang 31Sau khi kết nối thành công với thiết bị bluetooth khác, thì đèn trên moduel bluetooth HC05 sẽ nhấp nháy chậm cho thấy kết nối Serial đã được thiết lập
3.4 Lắp đặc đo điện áp accu
Để đo được điện áp accu thì ta sử dụng cầu phân áp.Mục đích lấy được điện áp đầu vào kết nối với chân analog input của arduino với điện áp quy định DC 0-5V
Trong các khối nguồn thường dùng cầu phân áp 2 điệt trở nên viêc tính áp sẽ nhanh hơn :
Hình 3.6 Mạch kết nối đo điện áp accu với arduino
Trang 32// Đọc tín hiệu analog từ chân A0:
int sensorValue = analogRead(A0);
// Chuyển đổi tín hiệu đọc được:
phân áp vào arduino
// Xuất ra ngoài màn hình:
Kết quả hiển thị :
Hình 3.7 Kết quả hiển thị điện áp accu
Vì đây là điện áp nạp cho accu, số liệu đo đƣợc lớn hơn điện áp định mức của accu
Trang 333.5 Lập trình,lắp đặt cho mạch hall với aruidno
Hình 3.8 Mạch kết đo tín hiệu xung của hall với arduino
Trên thực tế cảm biến hall có tới 5 chân, trong đó có 2 chân có thể xuất tín hiệu xung
để chúng ta tính toán chiều quay thuận và ngược của động cơ, và một chân xuât tín hiệu I/O dưới đây là động cơ xe điện đã được tích hợp sẵn cảm biến Hall
Hình 3.9 Đầu kết nối với cảm biến Hall
Trang 35Kết quả đo tốc độ động cơ cân bằng khi động cơ hoạt động ở chế độ thông thường
Hình 3.9 Kết quả hiển thị số quay quay động cơ cân bằng (rpm)
3.6 Lập trình,lắp đặt cho mạch đo cường độ dòng điện với arduino
*Đo dòng điện DC
Khi đo DC phải mắc tải nối tiếp Ip+ và Ip- đúng chiều, dòng điện đi từ Ip+ đến Ip- để Vout ra mức điện thế 2.5 - 5V tương ứng dòng 0 - 5A, nếu mắc ngược Vout sẽ ra điện thế 2.5V đến 0V tương ứng với 0A đến -5A
Cấp nguồn 5v cho module khi chưa có dòng Ip (chưa có tải mắc nối tiếp với domino), thì Vout=2.5v Khi dòng Ip( dòng của tải) bằng 5A thì Vout=5v, Vout sẽ tuyến tính với dòng Ip , trong khoản 2.5V đến 5V tương ứng với dòng 0 đến 5A
Để kiểm tra dùng đồng hồ VOM thang đo DC đo Vout
Trang 36với dòng điện AC , 0 đến 5V(thế xoay chiều xoay chiều) tương ứng với -5A đến 5A (dòng xoay chiều)
Để kiểm tra dùng đồng hồ VOM thang đo AC đo Vout
Hình 3.10 Lắp đặt cho mạch đo cường độ dòng điện với arduino
Code lập trình
const int analogIn = A2;
int mVperAmp = 100; // use 100 for 20A Module and 66 for 30A Module
int RawValue = analogRead(analogIn);
float Voltage = (RawValue / 1024.0) * 5000; // Gets you mV
float Amps = ((Voltage - ACSoffset) / mVperAmp);
Serial.print("Raw Value = " ); // shows pre-scaled value
Serial.print(RawValue);
Trang 37Serial.print("\t mV = "); // shows the voltage measured
Serial.print(Voltage,3); // the '3' after voltage allows you to display 3 digits after decimal point
Serial.print("\t Amps = "); // shows the voltage measured
Serial.println(Amps,0); // the '3' after voltage allows you to display 3 digits after decimal point
delay(2500);
Hiển thị kết quả đo dòng:
Hinh 3.11 Kết quả Hiển thị đo cường độ dòng điện từ arduino
Trang 38Chương 4 LẬP TRÌNH ANDROID MIT APP INVENTOR 2 4.1 Giới thiệu về Mit App Inventor
MIT App Inventor là một chương trình của trường MIT (Massachusetts Institute of Technology) cho phép bạn tạo ứng dụng Android chỉ với công việc kéo thả Do đó bạn không cần biết gì về kiến thức lập trình Phiên bản mới nhất hiện nay là MIT App Inventor 2
Hình 4.1 Sơ đồ nguyên truyền phiên bản mới nhất hiện nay là MIT App Inventor 2
Dựa trên ý tưởng “những gì bạn thấy là những gì bạn có” (WYSIWYG - What you see is what you get), App Inventor giúp dễ dàng tiếp cận và xây dựng ứng dụng Android Với giao diện trực quan, dễ hiểu, cho phép truy cập đến các chức năng của điện thoại kể cả GPS, đây là công cụ giúp cho bộ sưu tập ứng dụng của Android ngày càng dồi dào và phong phú
Ưu điểm:
+ Không cần biết nhiều về code
+ Chỉ có động tác kéo thả đơn giản
+ Trực quan, dễ hiểu
Trang 39+ Hỗ trợ đủ các tập lệnh cảm biến (sensor), cơ sở dữ liệu (database), kết nối (bluetooth) – dành cho những bạn theo IoT, nghĩa là bạn có thể điều khiển như các thiết bị điện trong nhà chỉ với điện thoại Android
+ Hỗ trợ các kết nối mạng xã hội, google maps…
Nhược điểm:
+ Nặng, chạy chậm nếu như có quá nhiều code do chương trình phát sinh thêm nhiều code thừa không cần thiết trong quá trình build sang file cài APK
+ Không tối ưu hoá code được
+ Mỗi screen (Activity) hoạt động độc lập với nhau, chỉ có thể truyền 1 biến duy nhất sang screen kế tiếp Nghĩa là không có biến toàn cục cho toàn bộ screen
4.2 Giới thiệu lập trình khối
Để sử dụng được App inventor, ta phải truy cập vào địa chỉ ai2.appinventor.mit.edu
sau đó tiến hành đăng nhập tài khoản Google của bạn để mở rộng trang quản lý
Hình 4.2 Giao diện quản lý Project
Trang 40Để tạo một Project mới ta chọn Start New Project và đặt tên cho project đó
Hình 4.3 Giao diện Start New Project Giao diện thiết kế Project hiện ra rất đơn giản Bên trái là các control bao
gồm: User Interface, Media, Sensor, Social,… để sử dụng các bạn chỉ cần click chuột và
kéo thả vào Screen Ở giữa là Screen mô phỏng màn hình ứng dụng của chúng ta, bên phải
là cửa sổ quản lí các Component, Media, và Property cho từng Control.Trong App Inventor có hai chế độ làm việc: designer và block
4.2.1 Chế Độ Designer: chế độ dành cho thiết kế, tạo giao diện bên ngoài
Hình 4.4 Giao diện các thành phần chính của chế độ designer