TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG KHOA CÔNG NGHỆ TỰ ĐỘNG HÓA BÁO CÁO MÔN: THIẾT KẾ HỆ THỐNG ĐIỆN - ĐIỆN TỬ Đề tài: Thiết kế hệ thống điều chỉnh cường độ ánh sáng trong nh
Trang 1
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
KHOA CÔNG NGHỆ TỰ ĐỘNG HÓA
BÁO CÁO MÔN: THIẾT KẾ HỆ THỐNG ĐIỆN - ĐIỆN TỬ
Đề tài: Thiết kế hệ thống điều chỉnh cường độ ánh sáng trong nhà
sử dụng thuật toán PID Sinh viên thực hiện : Dương Văn Trình
Lớp : KTĐ – ĐT K13A Giáo viên hướng dẫn: Th.S Đặng Văn Ngọc
Thái Nguyên, năm 2018
Trang 2LỜI NÓI ĐẦU
Trong thời đại công nghệ 4.0, nước ta có nhu cầu rất lớn về năng lượng để thúcđẩy sự phát triển kinh tế, xã hội Nguồn năng lượng có sẵn hiện nay không phải là
vô tận, hơn thế nữa Việt Nam còn nhiều hạn chế trong việc khai thác, chế biến vàphát triển các nguồn năng lượng mới thay cho nguồn năng lượng cũ( than, dầu mỏ).Chúng ta đã, đang và sẽ tiếp tục phải bỏ ra một khoản chi phí lớn để nhập khẩunăng lượng
Những năm gần đây, chúng ta đã có nhiều giải pháp tiết kiệm năng lượng chocác thiết bị, một trong số nhiều giải pháp đó là hệ thống tự động chiếu sáng đượcứng dụng, Trong đó, một vấn đề rất được quan tâm là làm sao để sử dụng hợp lýcông suất chiếu sáng phù hợp với từng nhu cầu chiếu sáng Đặc biệt đối với chiếusáng ở các phòng học, phòng họp, gia đình, khác sạn.v.v Nhưng ánh sáng còn chưađược sử dụng hiệu quả dẫn tới thừa hoặc thiếu ánh sáng để sử dụng gây ra lãng phíđiện, có thể mắc một số bệnh về mắt do thiếu ánh sáng
Lý do chọn đề tài : dựa vào quá trình khỏa sát việc sử dụng ánh sáng tại cácphòng học và các hộ gia đình chưa hợp lý và hiệu quả, thừa hoặc thiếu ánh sáng để
sử dụng gây ra lãng phí năng lượng nên em đã quyết định chọn đề tài “Thiết kế hệ thống điều chỉnh cường độ ánh sáng trong phòng sử dụng thuật toán PID”
Mục đích, yêu cầu của đề tài :
- Xây dựng hệ thống tự động điều chỉnh ánh sáng trong phòng học đểđảm bảo độ sáng luôn đạt được độ rọi trong phòng là 500lux phùhợp với chiếu sáng cho phòng học (theo tiêu chuẩn TCVN7114:2002)
- Thiết kế mạch gọn nhẹ, đơn giản
- Đảm bảo độ tin cậy, chính xác thuận tiện cho người sử dụng
- Sử dụng thuật toán PID để ổn định cường độ ánh sáng
Báo cáo này được trình bày thành 3 chương:
Chương 1: Cơ sở lý thuyết
Chương 2: Phân tích thiết kế hệ thống
Chương 3: Kết quả
Trang 3LỜI CẢM ƠN
Đầu tiên em xin cảm ơn các ơn các thầy, cô giáo trong trường Đại học Côngnghệ thông tin và truyền thông nói chung, các thầy cô trong khoa Công nghệ tựđộng hóa nói riêng đã tận tình hướng dẫn em trong quá trình làm thực tập,
Em xin gửi lời cảm ơn chân thành đến thầy Đặng Văn Ngọc, giảng viên khoaCông Nghệ Tự Động Hóa, người đã tận tình hướng dẫn, chỉ bảo em trong suốt quátrình em thực hiện đề tài thực tập chuyên ngành
Do kiến thức của em còn chưa thực sự xuất sắc nên trong đề tài, em còn một
số sai sót và hạn chế, vậy nên em rất mong các thầy cô giúp đỡ, góp ý cho em để bàibáo cáo được hoàn thiện hơn Một lần nữa em xin chân thành cảm ơn!
Sinh viên thực hiện
Dương Văn Trình
Trang 4CHƯƠNG 1: CƠ SỞ LÝ THUYẾT1.1 Tổng quan về Arduino
1.1.1 Khái niệm
Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tácvới nhau hoặc với môi trường được thuận lợi hơn Phần cứng bao gồm một boardmạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARMAtmel 32-bit Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộngkhác nhau Được giới thiệu vào năm 2005, Những nhà thiết kế của Arduino cố gắngmang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích,sinh viên và giới chuyên nghiệp để tạo ra những nhiết bị có khả năng tương tác vớimôi trường thông qua các cảm biến và các cơ cấu chấp hành Những ví dụ phổ biếncho những người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiểnnhiệt độ và phát hiện chuyển động Đi cùng với nó là một môi trường phát triển tíchhợp (IDE) chạy trên các máy tính cá nhân thông thường và cho phép người dùngviết các chương trình cho Aduino bằng ngôn ngữ C hoặc C++.Các board Arduino
có thể được đặt hàng ở dạng được lắp sẵn hoặc dưới dạng các kit tự-làm-lấy Thôngtin thiết kế phần cứng được cung cấp công khai để những ai muốn tự làm một mạchArduino bằng tay có thể tự mình thực hiện được (mã nguồn mở) Người ta ước tínhkhoảng giữa năm 2011 có trên 300 ngàn mạch Arduino chính thức đã được sản xuấtthương mại, và vào năm 2013 có khoảng 700 ngàn mạch chính thức đã được đưa tớitay người dùng
1.1.2 Lịch sử phát triển
Arduino được khởi động vào năm 2005 như là một dự án dành cho sinh viêntrại Interaction Design Institute Ivrea (Viện thiết kế tương tác Ivrea) tại Ivrea, Italy.Vào thời điểm đó các sinh viên sử dụng một "BASIC Stamp" (con tem Cơ Bản) cógiá khoảng $100 Massimo Banzi, một trong những người sáng lập, giảng dạy tạiIvrea Cái tên "Arduino" đến từ một quán bar tại Ivrea, nơi một vài nhà sáng lập của
dự án này thường xuyên gặp mặt Bản thân quán bar này có được lấy tên làArduino, Bá tước của Ivrea, và là vua của Italy từ năm 1002 đến 1014.]
Trang 5Lý thuyết phần cứng được đóng góp bởi một sinh viên người Colombia tên làHernando Barragan Sau khi nền tảng Wiring hoàn thành, các nhà nghiên cứu đãlàm việc với nhau để giúp nó nhẹ hơn, rẻ hơn, và khả dụng đối với cộng đồng mãnguồn mở Trường này cuối cùng bị đóng cửa, vì vậy các nhà nghiên cứu, một trong
số đó là David Cuarlielles, đã phổ biến ý tưởng này
1.1.3 Các dòng Arduino đã ra đời
Dựa vào mục đích sử dụng mà các dòng Arduino được chia ra với nhiều thiết
kế khác nhau với kết cấu phần cứng khác nhau để thực hiện tốt mục tiêu sử dụnghướng tới Ở đây chúng tôi sẽ liệt kê các dòng Arduino hiện hành mà không đi vàochi tiết của từng dòng board Arduino , chỉ tập trung vào phân tích phần cứng củaArduino Promini vì đây là board mà em hướng tới sử dụng
Một số loại Arduino:
+Arduino Diecimila
+Arduino Duemilanove+Arduino UNO
+Arduino Leonardo+Arduino Mega+Arduino Nano+Arduino Due+ Arduino Promini
Hinhh 1.1: Arduino Mega 2560 R3
Trang 6cross-Các chương trình Arduino được viết bằng C hoặc C++ Arduino IDE đi kèmvới một thư viện phần mềm được gọi là "Wiring", từ project Wiring gốc, có thểgiúp các thao tác input/output được dễ dàng hơn Người dùng chỉ cần định nghĩa 2hàm để tạo ra một chương trình vòng thực thi (cyclic executive) có thể chạy được:Setup(): hàm này chạy mỗi khi khởi động một chương trình, dùng để thiết lập cáccài đặt.
Loop(): hàm này được gọi lặp lại cho đến khi tắt nguồn board mạch
Trang 7Hình 1.3: Phần mềm Arduino IDE
Hình 1.4: Giao diện phần mềm Arduino IDE
Arduino IDE này sử dụng GNU toolchain và AVR Libc để biên dịch chươngtrình, và sử dụng avrdude để upload chương trình lên board
Để tạo một chương trình mới Chọn File > New
Trang 8Trước khi bắt đầu thực hiện lập trình , nên thực hiện bước Save as lưu lạichương trình tại thư mục mong muốn Chương trình được lưu dưới dạng đuôi ino
Sau khi thực hiện viết code cho chương trình , thực hiện bước Verify đểArduino tạo ra một file hex , file này giúp chúng ta nạp cho các vi điều khiển lúc
mô phỏng hoặc làm mạch ngoài thực tế Ngoài ra chức năng Upload cũng giúp thựchiện việc nạp chương trình vào Arduino nhanh chóng mà không cần phải tìm đến vịtrí của file hex , bằng cách kết nối board Arduino theo cổng USB vào máy tính
1.2 Tổng quan về cảm biến
1.2.1 Định nghĩa
Cảm biến là thiết bị điện tử cảm nhận những trạng thái hay quá trình vật
lý hay hóa học ở môi trường cần khảo sát, và biến đổi thành tín hiệu điện để thuthập thông tin về trạng thái hay quá trình đó
Có nhiều loại cảm biến khác nhau và có thể chia ra hai nhóm chính:
- Cảm biến vật lý: sóng điện từ, ánh sáng, tử ngoại, hồng ngoại, tia X, tiagamma, hạt bức xạ, nhiệt độ, áp suất, âm thanh, rung động, khoảngcách, chuyển động, gia tốc, từ trường, trọng trường,
- Cảm biến hóa học: độ ẩm, độ PH, các ion, hợp chất đặc hiệu, khói, 1.2.2 Vai trò của cảm biến
Cảm biến có vai trò quan trọng trong các bài toán điều khiển quá trình nóiriêng và trong các hệ thống điều khiển tự động nói chung
- Là thiết bị có khả năng cảm nhận các tín hiệu điều khiển vào, ra
- Có vai trò đo đạc các giá trị
- Giới hạn cảm nhận với đại lượng vật lý cần đo
1.2.3 Các đặc trưng của cảm biến
- Độ nhạy: Gia số nhỏ nhất có thể phát hiện
- Mức tuyến tính: Khoảng giá trị được biến đổi có hệ số biến đổi cố định
- Dải biến đổi: Khoảng giá trị biến đổi sử dụng được
- Mức nhiễu ồn: Tiếng ồn riêng và ảnh hưởng của tác nhân khác lên kếtquả
- Sai số xác định: Phụ thuộc độ nhạy và mức nhiễu
- Độ trôi: Sự thay đổi tham số theo thời gian phục vụ hoặc thời gian tồn tại
Trang 9- Độ trễ: Mức độ đáp ứng với thay đổi của quá trình.
- Độ tin cậy: Khả năng làm việc ổn định, chịu những biến động lớn củamôi trường
- Điều kiện môi trường: Dải nhiệt độ, độ ẩm, áp suất, làm việc được
1.3 Tổng quan về một số link kiện khác
1.3.1 Biến trở
Biến trở là các thiết bị có điện trở thuần có thể biến đổi được theo ý muốn.Chúng có thể được sử dụng trong các mạch điện để điều chỉnh hoạt động của mạchđiện Điện trở của thiết bị có thể được thay đổi bằng cách thay đổi chiều dài của dâydẫn điện trong thiết bị, hoặc bằng các tác động khác như nhiệt độ thay đổi, ánh sánghoặc bức xạ điện từ
Hình1.5 Biến trở
1.3.2 Cách ly quang
Photocoupler hay phần tử cách ly quang (Opto- Isolator), hay Optocoupler, làmột phần tử bán dẫn thực hiện truyền tín hiệu giữa hai phần mạch bị cách ly vớinhau về điện bằng cách sử dụng ánh sáng Cách ly bằng ghép quang học cho phéptránh được sự xâm nhập điện áp cao tới hệ thống thu nhận tín hiệu
Hình 1.6 Một số loại cách ly quang
Trang 101.3.3 Điện trở
Điện trở là một linh kiện điện tử thụ động gồm 2 tiếp điểm kết nối, thườngđược dùng để hạn chế cường độ dòng điện chảy trong mạch, điều chỉnh mức độ tínhiệu, dùng để chia điện áp, kích hoạt các linh kiện điện tử chủ động như transistor,tiếp điểm cuối trong đường truyền điện và có trong rất nhiều ứng dụng khác Điệntrở là loại linh kiện phổ biến trong mạng lưới điện, các mạch điện tử, Điện trở thực
tế có thể được cấu tạo từ nhiều thành phần riêng rẽ và có nhiều hình dạng khácnhau, ngoài ra điện trở còn có thể tích hợp trong các vi mạch IC
Hình 1.7 Điện trở
Trang 11CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG2.1 Đặc tả yêu cầu
Quá trình khảo sát ánh sáng tại phòng học của mình em thu được kết quả như sau:
+ Nếu bật hết đèn đóng cửa lại: 430lux ± 20lux
+ Nếu mở hết cửa, đèn tắt hết, trời nắng: 550lux ± 10 lux
+ Nếu mở hết cửa, đèn tắt hết, trời không nắng: 350lux ± 30 lux
+ Nếu mở hết cửa, đèn bật hết, trời nắng: 600lux ± 15 lux
+ Nếu mở hết cửa, đèn bật hết, trời không nắng: 500lux ±10 lux
Một số yêu cầu từ người sử dụng:
Một số yêu cầu từ thiết bị:
+ Điều khiển tắt đèn khi ánh sáng ngoài trời đủ với yêu cầu (500lux)
+ Thiết bị gọn nhẹ dễ sử dụng
+ Đảm bảo độ tin cậy với người sử dụng
2.2 Sơ đồ khối
Hình 2.1 Sơ đồ khối
Trang 12Chức năng của các khối:
Khối cảm biến: Khối cảm biến có nhiệm vụ thu thập dữ liệu tín hiệu vàđưa điều khiển xuống cho khối xử lý trung tâm
Khối xử lý trung tâm: khối xử lý trung tâm làm nhiệm vụ nhận tín hiệu từkhối cảm biến, xử lý tín hiệu điều khiển khối cơ cấu chấp hành
Khối cơ cấu chấp hành: khối này có nhiệm vụ thực hiện lệnh điều khiển
từ vi điều khiển để điều khiển thiết bị
Khối nguồn: Khối nguồn có nhiệm vụ cung cấp nguồn cho toàn bộ hệthống
Khối hiển thị: Khối này có chức năng hiển thị thông số của đối tượng đogiúp tăng khả năng giao tiếp giữa người với hệ thống
2.3 Phân tích và thiết kế hệ thống
2.3.1 Khối xử lý trung tâm
Khối xử lý trung tâm làm nhiệm vụ nhận tín hiệu từ khối cảm biến, xử lý tínhiệu điều khiển khối cơ cấu chấp hành Hiện nay trên thị trường có các loại vi điềukhiển phổ biến sau:
- Có tích hợp ADC và các tính năng cao cấp khác
- Arduino hỗ trợ một hệ thống thư viện cực kì mở, cực kỳ phongphú và mạnh mẽ, gần như bạn sẽ không bao giờ cần phải tự viếtthư viện cho arduino
- Thiết kế nhỏ gọn
8051
Ưu điểm
- Giá thành rẻ
Trang 13- Nhỏ gọn, mã lệnh ASM đơn giản trực quan dễ hiểu dễ học, chạy
ổn định
- Vi điều khiển họ 8051 mang cấu trúc CSIC nên sẽ tiết kiệm nănglượng
Nhược điểm:
- Ít các chức năng bên trong như các dòng chip mới
- Tính năng ADC rất quan trong, có mặt trong hầu hết các ứng dụngcũng không được tích hợp vào 8051, Do vậy nếu dùng 8051 phảidùng thêm ADC ngoài nếu ứng dụng của bạn dùng đến ADC =>thiết kế board phức tạp, tốn công hơn, lập trình dài dòng hơn
- Chế độ sleep tiết kiệm năg lượng
TSL2561
Ưu điểm:
- Là một cảm biến ánh sáng cực kì nhạy
Trang 14- Cảm biến có thể bắt được cả hồng ngoại và ánh sáng, độ nhạy xấp
xỉ mắt của con người
- TSL2561 có khả năng giao tiếp I2C trực tiếp
- Chuyển từ tín hiệu ánh sáng sang kỹ thuật số
- Nhận tín hiệu trong phạm vi rộng với độ phân giải cao: từ 65535lx
1 Tiêu thụ điện năng rất thấp nhờ tính năng tự ngắt
- Tính năng giảm nhiễu ánh sáng 50Hz/60Hz
- Giao diện I2C
- Không yêu cầu phụ kiện bổ sung ngoài
- Có thể lựa chọn 2 kiểu I2C slave-address
Quang Trở
Ưu điểm
- Độ nhạy có thể tùy chỉnh
- Thiết kế đơn giản
- Độ nhiễu thấp do được thiết kế mạch lọc tín hiệu trước khi so sánhvới ngưỡng
Do ưu điểm vượt trội của BH1750 nên ta sử dụng BH1750
Trang 152.3.3 Sơ đồ nguyên lý
2.3.3.1 Sơ đồ tổng quát hệ thống
Hình 2.2 Sơ đồ tổng quát hệ thống 2.3.3.2 Arduino Nano
Arduino Nano nhỏ gọn, đầy đủ và tiện dụng khi sử dụng Arduino Nano sửdụng chip Atmega328-AU nên còn có thêm 2 chân Analog A6 và A7 mà các Board
sử dụng Chip cắm không hề có Trên Board tích hợp Opamp tự động chuyển nguồnkhi có điện áp cao hơn vào Board nên Board không cần sử dụng công tắc chọnnguồn Trên board Arduino Nano sử dụng chíp chuyển COM To UART là ChipFTDI FT232RL chứ không dùng chip giả lập COM như các Board Arduino khác, vìvậy việc truyền UART sẽ đơn giản hơn so với các Board dùng Chip giả lập COM.Arduino Nano thiếu Jack nguồn ngoài, việc cấp nguồn ngoài có thể được thực hiệnthông qua chân Vin và chân GND (nếu nguồn từ 6 đến 20V) hoặc chân GND vàchân 5V (nếu nguồn cấp là 5V chuẩn) Chân 5V trong Arduino Nano vừa là chân5V lấy nguồn ra, vừa có thể là chân 5V cấp nguồn vào
Hình 2.3 Arduino Nano
Trang 16Thông số kỹ thuật :
+ IC chính: Atmega328P-AU
+ IC nạp và giao tiếp UART: CH340
+ Điện áp hoạt động: 5V
+ Điện áp đầu vào (khuyên dùng): 7-12V
+ Điện áp đầu vào (giới hạn): 6-20V
+ Mức điện áp GPIO: TTL 5VDC
+ Dòng GPIO: 40mA
+ Số chân Digital: 14 chân, trong đó 6 châ PWM
+ Số chân Analog: 8 chân
+ Flash Memory: 32 KB (ATmega328) với 2KB dùng cho bootloader
+ SRAM: 2 KB (ATmega328)
+ EEPROM: 1 KB (ATmega328)
+ Clock Speed: 16 MHz
Các chân input và output:
+ Arduino nano: 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
+ Chân nối tiếp bao gồm 2 chân: 0(RX) và 1 ( TX) được sử dụng để nhận vàtruyền dữ liệu nối tiếp (TX) TTL
+ Chân ngắt ngoài: chân 2 và chân 3 cả hai chân có thể được sử dụng để chophép ngắt Sử dụng hàm attachInterrupt ()
+ Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép xuất ra xung PWM
+ Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài cácchứ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ứcSPI với các thiết bị khác
+ Arduino Nano: có 8 chân analog (A0 → A7) cung cấp độ phân giải tín hiệu10bit ( 1024 giá trị khác nhau)
+ I2C: chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bịkhác
Trang 172.3.3.3 BH1750
Khái niệm
Cảm biến cường độ ánh sáng BH1750 được sử dụng để đo cường độ ánh sángtheo đơn vị lux, cảm biến có ADC nội và bộ tiền xử lý nên giá trị được trả ra là giátrị trực tiếp cường độ ánh sáng lux mà không phải qua bất kỳ xử lý hay tính toánnào thông qua giao tiếp I2C
Hình 2.4 BH1750
Thông số:
+ Nguồn: 3~5VDC
+ Giao tiếp: I2C
+ Khoảng đo: 1 -> 65535 lux
+ Kích cỡ: 21*16*3.3mm
+ Độ phân giải: 16bit
BH1750 có các ưu điểm sau:
+ Chuyển từ tín hiệu ánh sáng sang kỹ thuật số
+ Nhận tín hiệu trong phạm vi rộng với độ phân giải cao: từ 1-65535lx
+ Tiêu thụ điện năng rất thấp nhờ tính năng tự ngắt
+ Tính năng giảm nhiễu ánh sáng 50Hz/60Hz
+ Giao diện I2C
+ Không yêu cầu phụ kiện bổ sung ngoài
+ Có thể lựa chọn 2 kiểu I2C slave-address