Hệ thống máy tính nhúng với bìa ARDUINO trong ngôi nhà thông minh (Luận văn thạc sĩ)Hệ thống máy tính nhúng với bìa ARDUINO trong ngôi nhà thông minh (Luận văn thạc sĩ)Hệ thống máy tính nhúng với bìa ARDUINO trong ngôi nhà thông minh (Luận văn thạc sĩ)Hệ thống máy tính nhúng với bìa ARDUINO trong ngôi nhà thông minh (Luận văn thạc sĩ)Hệ thống máy tính nhúng với bìa ARDUINO trong ngôi nhà thông minh (Luận văn thạc sĩ)Hệ thống máy tính nhúng với bìa ARDUINO trong ngôi nhà thông minh (Luận văn thạc sĩ)Hệ thống máy tính nhúng với bìa ARDUINO trong ngôi nhà thông minh (Luận văn thạc sĩ)Hệ thống máy tính nhúng với bìa ARDUINO trong ngôi nhà thông minh (Luận văn thạc sĩ)Hệ thống máy tính nhúng với bìa ARDUINO trong ngôi nhà thông minh (Luận văn thạc sĩ)Hệ thống máy tính nhúng với bìa ARDUINO trong ngôi nhà thông minh (Luận văn thạc sĩ)Hệ thống máy tính nhúng với bìa ARDUINO trong ngôi nhà thông minh (Luận văn thạc sĩ)Hệ thống máy tính nhúng với bìa ARDUINO trong ngôi nhà thông minh (Luận văn thạc sĩ)
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG Dư Thanh Bình HỆ THỚNG MÁY TÍNH NHÚNG VỚI BÌA ARDUINO TRONG NGÔI NHÀ THÔNG MINH LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) HÀ NỘI - 2020 HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG Dư Thanh Bình HỆ THỚNG MÁY TÍNH NHÚNG VỚI BÌA ARDUINO TRONG NGƠI NHÀ THÔNG MINH CHUYÊN NGÀNH: HỆ THỐNG THÔNG TIN MÃ SỐ: 8.48.01.04 LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS ĐỖ TRUNG TUẤN HÀ NỘI - 2020 i LỜI CAM ĐOAN Tơi cam đoan cơng trình nghiên cứu riêng Các số liệu, kết nêu luận văn trung thực chưa cơng bố cơng trình khác Tác giả luận văn ký ghi rõ họ tên Dư Thanh Bình ii LỜI CẢM ƠN Trước tiên, xin gửi lời cảm ơn đến trường Học viện Công nghệ Bưu chính Viễn thông, tạo điều kiện tổ chức khóa học để tơi có điều kiện tiếp thu kiến thức mới, có thời gian học tập hoàn thành luận văn cao học Tôi xin chân thành cảm ơn thầy cô khoa Công nghệ thông tin thày cô truyền đạt cho kiến thức quý báu q trình học tập làm luận văn Tơi chân thành cảm ơn bạn bè lớp giúp đỡ, động viên tơi q trình học tập thực luận văn Chân thành cám ơn động viên đồng nghiệp Công ty trách nhiệm hữu hạn quảng cáo xây dựngThanh Bình, Kim Châm, Đội Bình, Ứng Hòa, Hà Nội Cuối cùng, tơi xin cảm ơn tới gia đình người thân tơi, người hết lòng tạo điều kiện động viên tơi để tơi có kết ngày hơm iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC CÁC CHỮ VIẾT TẮT v DANH MỤC CÁC HÌNH VẼ VÀ BẢNG BIỂU vi MỞ ĐẦU CHƯƠNG TIÊU CHÍ CHO NGƠI NHÀ THƠNG MINH .7 1.1 Nhu cầu nhà thông minh 1.2 Vai trò công nghệ thông tin truyền thông nhà thông minh .8 1.2.1 Vai trò truyền thông hệ thống thông tin 1.2.2 Vai trò cảm biến 1.2.3 Hệ thống nhúng 16 1.3 Hệ thống thông tin nhà thông minh 19 1.3.1 Hệ thống thông tin .19 1.3.2 Hệ thống thông tin cho nhà thông minh 19 1.4 Nhu cầu hệ thống nhúng hệ thống thông tin quản trị nhà 21 1.5 Kết luận 21 CHƯƠNG HỆ THỐNG NHÚNG VỚI ARDUINO .22 2.1 Giới thiệu 22 2.1.1 Xác định hệ thống nhúng 22 2.1.2 Các ứng dụng hệ thống nhúng 24 2.2 Các loại vi xử lí dùng hệ thống nhúng 25 2.2.1 Các vi xử lí dùng hệ thống nhúng 25 iv 2.2.2 Kiến trúc phần mềm hệ thống nhúng 25 2.2.3 MicroBit 28 2.2.4 RaspBerry Pi .29 2.3 Arduino với vi xử lí ARM Atmel 31 2.3.1 Về bìa Arduino 31 2.3.2 Phần cứng bìa Arduino 32 2.3.3 Phần mềm Arduino 34 2.3.4 Thơng số kĩ thuật bìa Arduino 35 2.4 Thiết kế mơ hình hệ thống nhúng nhà thông minh 39 2.5 Kết luận 41 CHƯƠNG 3.THỬ NGHIỆM MƠ HÌNH NHÀ THƠNG MINH .42 3.1 Mơi trường IDE cho Arduino .42 3.2 Cảm biến nhà thông minh 43 3.2.1 Cảm biến ánh sáng chương trình 43 3.2.2 Cảm biến khoảng cách chương trình 44 3.3 Thể cổng máy tính .46 3.4 Quảng cáo bằng ánh sáng 46 3.5 Ứng dụng đơn vị công tác .49 3.5.1 Địa điểm Cơng ti Thanh Bình .49 3.5.2 Nhiệm vụ Công ti Thanh Bình 49 3.5.3 Hệ thống thử nghiệm 50 3.6 Kết luận 54 PHẦN KẾT LUẬN 55 TÀI LIỆU THAM KHẢO 56 v DANH MỤC CÁC CHỮ VIẾT TẮT Ký hiệu Arduino ASIC Chú giải Bìa máy tính nhúng Arduino Application-specific integrated circuit, mạch tích hợp chuyên dụng COM Communication Port, cổng COM máy tính CSDL Cơ sở liệu ESP 8266 Cảm biến Wifi FPGA Field-programmable gate array, mạch lập trình HC-SR04 Cảm biến siêu âm ICT Information Communication Technology, Công nghệ thông tin truyền thông IDE Integrated Development Environment, Môi trường phát triển tích hợp (cho Arduino) IoT LASER Internet of Things, mạng vạn vật Light Amplification by Stimulated Emission of Radiation, Khuyếch đại ánh sáng bằng phát xạ kích thích LED Light Emitter Diode, Đi ốt phát quang Port Cổng (của bìa Arduino) PWM Pulse width modulation, điều chế độ rộng xung ROM Read only Memory, nhớ chỉ đọc Sensor Cảm biến Smart Home Ngôi nhà thông minh SONAR WiFi Sound Navigation and Ranging, dò tìm lan truyền âm Wireless Fidelity, mạng 802.11 vi DANH MỤC CÁC HÌNH VẼ VÀ BẢNG BIỂU Hình 1.1 Nhà thơng minh .8 Hình 1.2 Điều khiển hệ thống nhúng nhờ thiết bị truyền thơng .9 Hình 1.3 Hệ thống cảm biến cho máy bay 10 Hình 1.4 Một số cảm biến 12 Hình 1.5 Cảm biến nhiệt độ 14 Hình 1.6 Cảm biến tiệm cận 15 Hình 1.7 Cảm biến hờng ngoại .15 Hình 1.8 Cảm biến siêu âm 16 Hình 1.9 Hệ thống nhúng .17 Hình 1.10 Thí dụ hệ thống thông tin quan trắc tự động .19 Hình 2.1 Hệ thống nhúng .22 Hình 2.2 Thành phần hệ thống nhúng 23 Hình 2.3 Ứng dụng hệ thống nhúng 24 Hình 2.4 Micro Kernel 27 Hình 2.5 MicroBit 28 Hình 2.6 Cấu trúc cấu tạo RaspBerry Pi 30 Hình 2.7 Bìa Arduino 31 Hình 2.8 Các dạng Arduino 32 Hình 2.9 Xử lí Sketch 34 Hình 2.10 Arduino UNO .35 Hình 2.11 Sơ đờ cấu trúc Arduino Uno R3 36 Bảng 2.1 Thông số kỹ thuật Uno R3 .36 vii Hình 2.12 Sơ đờ chân Atmega328 37 Hình 2.13 cảm biến Wifi 39 Hình 2.14 Cảm biến phát chuyển động 39 Hình 15 Cảm biến DHT 11 đo độ ẩm, nhiệt độ 40 Hình 2.16 Màn hình LCD 1602 40 Hình 3.1 Mơi trường IDE Arduino .42 Hình 3.2 Các tệp cài đặt máy tính 43 Hình 3.3 Sơ đờ nối dây cảm biến ánh sáng 44 Hình 3.4 Sơ đờ nối dây với Arduino 45 Hình 3.5 Thể kết cổng COM máy tính 46 Hình 3.6 Arduino điều khiển LED .47 Hình 3.7 Chương trình dịch tải lên bìa Arduino .48 Hình 3.8 Địa điểm Cơng ti Thanh Bình [5] 49 Hình 3.9 Ngành nghề Cơng ti Thanh Bình [5] 50 Hình 3.10 Thiết kế bảng mạch .50 Hình 3.11 Sơ đồ nối dây .51 Hình 3.12 Nối với thiết bị 51 Hình 3.13 Kiểm tra cổng nối với bìa Arduino 52 Hình 3.14 Cổng COM IDE Arduino 52 43 Hình 3.2 Các tệp cài đặt máy tính 3.2 Cảm biến nhà thông minh Trong hệ thống thử nghiệm, luận văn sử dụng cảm biến ánh sáng cảm biến đo khoảng cách 3.2.1 Cảm biến ánh sáng và chương trình Nếu sử dụng độc lập, cảm biến ánh sáng lập trình với bìa Arduino sau: Cảm biến sử dụng kết hợp với Arduino để lập trình bật tắt thay mạch Rơ-le Cảm biến dạng cảm biến Digital; tín hiệu xuất giá trị Digital HIGH (5V) LOW Tại chân OUT, mạch trả mức HIGH (5V) trời tối (cường độ ánh sáng chiếu vào thấp) LOW ngược lại 44 Hình 3.3 Sơ đồ nối dây cảm biến ánh sáng Chương trình IDE: int cambien = 10;// khai báo chân digital 10 cho cảm biến int Led = 8;//khai báo chân digital cho đèn LED void setup (){ pinMode(Led,OUTPUT);//pinMode xuất tín hiệu đầu cho led pinMode(cambien,INPUT);//pinMode nhận tín hiệu đầu vào cho cảm biến } void loop (){ int value = digitalRead(cambien);//lưu giá trị cảm biến vào biến value digitalWrite(Led,value);//xuất giá trị đèn LED } 3.2.2 Cảm biến khoảng cách và chương trình Để đo khoảng cách, ta sẽ phát xung ngắn (5 microSeconds) từ chân Trig Sau đó, cảm biến sẽ tạo xung HIGH chân Echo nhận lại sóng phản xạ pin Chiều rộng xung sẽ bằng với thời gian sóng siêu âm phát từ cảm biển quay trở lại Tốc độ âm không khí 340 m/s (hằng số vật lý), tương đương với 29,412 microSeconds/cm (106 / (340*100)) Khi tính thời gian, ta sẽ chia cho 29,412 để nhận khoảng cách 45 Hình 3.4 Sơ đồ nối dây với Arduino Chương trình IDE có dạng: const int trig = 8; // chân trig HC-SR04 const int echo = 7; // chân echo HC-SR04 void setup() { Serial.begin(9600); // giao tiếp Serial với baudrate 960 pinMode(trig,OUTPUT); // chân trig sẽ phát tín hiệu pinMode(echo,INPUT); // chân echo sẽ nhận tín hiệu } void loop() { unsigned long duration; // biến đo thời gian int distance; // biến lưu khoảng cách /* Phát xung từ chân trig * digitalWrite(trig,0); // tắt chân trig delayMicroseconds(2) digitalWrite(trig,1); // phát xung từ chân trig delayMicroseconds(5); // xung có độ dài microSecond digitalWrite(trig,0); // tắt chân trig /* Tính toán thời gian * // Đo độ rộng xung HIGH chân echo duration = pulseIn(echo,HIGH); // Tính khoảng cách đến vật distance = int(duration/2/29.412) /* In kết Serial Monitor * Serial.print(distance) Serial.println("cm") delay(200) } 46 3.3 Thể cổng t̀n tự máy tính Chương trình sử dụng cổng COM máy tính để kết từ Arduino cảm biến Hình 3.5 Thể kết cổng COM máy tính 3.4 Quảng cáo bằng ánh sáng Cơng ti Thanh Bình sử dụng nhiều thiết bị điều khiển LED cho công trình xây dựng quảng cáo Thay sử dụng thiết bị điều khiển chuyên dụng, luận văn đề xuất sử dụng hệ thống nhúng với Arduino để điều khiển hệ thống LED Dưới thí dụ chương trình điều khiển LED đơn giản Như hình vẽ sau 47 Hình 3.6 Arduino điều khiển LED Trước tiên, dùng LED, phải pinMode OUTPUT chân Digital mà ta sử dụng cho đèn LED Ở sử dụng chân LED chân digital 13 Nên đoạn code sau cần nằm void setup() pinMode(13, OUTPUT); Để bật đèn LED, bạn phải digitalWrite HIGH cho chân số 13 (chân Digtal kết nối với LED) Đoạn code nằm void loop() digitalWrite(13,HIGH); Dòng lệnh sẽ cấp điện 5V vào chân số Digital 13 Điện sẽ qua điện trở 220 ohm rồi đến đèn LED (sẽ làm sáng mà khơng bị cháy, ngồi loại điện trở khác đèn LED tắt Và để thấy 48 trạng thái bật tắt đèn LED bạn phải dừng chương trình khoảng thời gian đủ lâu để mắt cảm nhận Vì vậy, hàm delay tạo để làm việc /* Blink - Nhấp nháy Đoạn code làm nhấp nháy đèn LED cho trước */ // chân digital 13 cần kết nối với đèn LED // chân digital 13 sẽ đặt tên 'led' Biến 'led' có kiểu liệu int có giá trị 13 int led = 13; // Hàm setup chạy lần khởi động chương trình void setup() { // đặt 'led' OUTPUT pinMode(led, OUTPUT); } // Hàm loop chạy mãi sau kết thúc hàm setup() void loop() { digitalWrite(led, HIGH); // bật đèn led sáng delay(1000); // dừng chương trình giây => thây đèn sáng giây digitalWrite(led, LOW); // tắt đèn led delay(1000); // dừng chương trình giây => thấy đèn tối giây } Hình 3.7 Chương trình dịch tải lên bìa Arduino 49 3.5 Ứng dụng đơn vị công tác Những nghiên cứu ứng dụng nhà thông minh sử dụng đơn vị công tác học viên, tức Công ti Thanh Bình 3.5.1 Địa điểm Cơng ti Thanh Bình Hình 3.8 Địa điểm Công ti Thanh Bình [5] 3.5.2 Nhiệm vụ của Công ti Thanh Bình Theo [5], Nhà nước phê duyệt cho đơn vị công tác nhiệm vụ, hình Những nhiệm vụ liên quan đến đề tài luận văn là: Lắp đặt hệ thống điện; Quảng cáo; Bán buôn máy vi tính thiết bị ngoại vi, phần mềm 50 Hình 3.9 Ngành nghề Công ti Thanh Bình [5] Hệ thống luận văn ứng dụng Công ti hệ thống thử nghiệm Dựa sơ đồ đơn giản, ứng dụng phức tạp xây dựng theo đặt hàng khách hàng 3.5.3 Hệ thống thử nghiệm 3.5.3.1 Thiết kế sơ đồ nối dây Hình 3.10 Thiết kế bảng mạch 51 Hình 3.11 Sơ đồ nối dây Hình 3.12 Nối với thiết bị 3.5.3.2 Kiểm tra thiết bị cổng COM Trước chạy chương trình bìa máy tính nhúng Arduino, cần xác định bìa máy tính nhúng nối với máy tính xác định cổng COM mà bìa Arduino nối vào máy tính 52 Hình 3.13 Kiểm tra cổng nối với bìa Arduino Hình 3.14 Cổng COM IDE Arduino 3.5.3.3 Chương trình IDE Arduino Chương trình thử nghiệm viết tải lên bìa Arduino 53 const int trig = 8; // chân trig HC-SR04 const int echo = 7; // chân echo HC-SR04 int cambien = 10;// khai báo chân digital 10 cho cảm biến anh sang int Led = 3;//khai báo chân digital cho đèn LED int Led2 = 2; // LED cho sieu am void setup() { Serial.begin(9600); // giao tiếp Serial với baudrate 9600 pinMode(trig,OUTPUT); // chân trig sẽ phát tín hiệu pinMode(echo,INPUT); // chân echo sẽ nhận tín hiệu pinMode(Led,OUTPUT);//pinMode xuất tín hiệu đầu cho led pinMode(cambien,INPUT);//pinMode nhận tín hiệu đầu vào cho cảm biên } void loop() { long duration; // biến đo thời gian int distance; // biến lưu khoảng cách /* Phát xung từ chân trig */ digitalWrite(trig,0); // tắt chân trig delayMicroseconds(2); digitalWrite(trig,1); // phát xung từ chân trig delayMicroseconds(5); // xung có độ dài microSeconds digitalWrite(trig,0); // tắt chân trig /* Tính toán thời gian */ // Đo độ rộng xung HIGH chân echo duration = pulseIn(echo,HIGH); // Tính khoảng cách đến vật distance = int(duration/2/29.412); /* In kết Serial Monitor */ Serial.print(distance); Serial.println("cm"); delay(200); if (distance < 15) { digitalWrite (Led2, HIGH); } else { 54 digitalWrite (Led2, LOW); } // xu li LED cua anh sang int value = digitalRead(cambien);//lưu giá trị cảm biến vào biến value digitalWrite(Led,value);//xuất giá trị đèn LED } 3.6 Kết luận Chương trình bày q trình thử nghiệm với mơi trường IDE Arduino Các cảm biến sử dụng hệ thống (i) HC-SR04; (ii) cảm biến ánh sáng Hiện cảnh báo đơn giản LED, thay bằng hệ thống đèn hay còi Bìa máy tính nhúng Arduino dùng để điều khiển LED quảng cáo 55 PHẦN KẾT LUẬN Kết đã làm Luận văn thực nhiệm vụ đặt đề cương luận văn tốt nghiệp Trong viết luận văn, số khía cạnh trình bày : Hệ thống nhúng bìa Arduino; Các cảm biến IoT; Sử dụng cảm biến hệ thống nhúng giải pháp đề xuất hệ thống nhà thơng minh; Luận văn trình bày mơi trường phát triển bìa Arduino, tức IDE Arduino, để thể chương trình đọc tín hiệu từ cảm biến xử lí thông tin Phương hướng phát triển luận văn Hướng thực luận văn sẽ phát triển với nhiều lọai cảm biến, đặc biệt với cảm biến truyền thông 56 TÀI LIỆU THAM KHẢO [1] Phạm Quang Huy, Lê Cảnh Trung, Bài Tập Thực Hành Arduino – Lập Trình Điều Khiển Với Arduino, Nxb Khoa học Kĩ thuật, 2019 [2] Phạm Quang Huy, Nguyễn Trọng Hiếu, Vi Điều Khiển Và Ứng Dụng Arduino Dành Cho Người Tự Học, Nxb Bách khoa Hà Nội, 2019 [3] Huỳnh Minh Phú, Tự học Arduino cho người bắt đầu, www.ktphuhung.com, 2015 [4] Andrea Capitanelli, Alessandra Papetti, Margherita Peruzzini, Michele Germani, A smart home information management model for device interoperabiliti simulation, 24th CIRP Design Conference, 2014 [5] Arduino, Phần mềm IDE Arduino, https://www.arduino cc /en/main/software, 2020 [6] Biljana L Risteska Stojkoska, Kire V Trivodaliev, A review of Internet of Things for smart home: Challenges and solutions, Journal of Cleaner Production, 2016 [7] Elecia White, Making Embedded Systems: Design Patterns for Great Software 1st Edition, Ed O’Reilly, 2011 [8] http://masocongty.vn/company/211561/cong-ty-tnhh-quang-cao-va-xaydung-thanh-binh.html, 2020 [9] John Boxal, Arduino Workshop: A Hands-On Introduction with 65 Projects 1st Edition, ISBN-13: 978-1593274481, 2020 [10] Michael Barr, Programming Embedded Systems: With C and GNU Development Tools 2nd Edition, Ed O’Reilly, 2006 [11] Michael Mangolis, Arduino Cookbook, Ed O’Reilly Media, 2020 57 [12] Simon Monk, Programming Arduino: Getting Started with Sketches, Second Edition (Tab) 2nd Edition, Ed Simon Monk, 2016 [13] Y Byul Hur, Learning Embedded Systems with MSP432 microcontrollers, MSP432 with Code Composer Studio, Ed Byul Hur, 2020 [14] Yang Yu, Getting start with MBlock, 2019 ... ngơi nhà thông minh hệ thống thông tin nhà thông minh Cuối nhu cầu hệ thống nhúng, phục vụ cho hệ thống thông tin nhà thông minh 1.1 Nhu cầu nhà thông minh Theo [1, 3], Nhà thông minh kiểu nhà. .. Hệ thống nhúng 16 1.3 Hệ thống thông tin nhà thông minh 19 1.3.1 Hệ thống thông tin .19 1.3.2 Hệ thống thông tin cho nhà thông minh 19 1.4 Nhu cầu hệ thống nhúng hệ. .. nhà thông minh 1.2 Vai trò công nghệ thông tin truyền thông nhà thông minh Phần đề cập (i) hệ thống thông tin; (ii) trang Web dùng để tích hợp với hệ thống nhúng Trong luận văn, hệ thống nhúng