Nhà là nơi để trở về sau ngày làm việc,nơi để nghỉ ngơi,nơi sinh hoạt của cả gia đình.Một ngôi nhà có hệ thống chiếu sáng thông minh sẽ làm cho cuộc sống sinh hoạt trong gia đình trở nên thiện lợi và thoải mái hơn.Tiểu luận đã đưa ra các giải pháp thiết kế chiếu sáng thông minh đơn giản. Mô hình thiết kế có khả năng điều khiển các thiết bị chiếu sáng trong mô hình,cũng như điều khiển các thiết bị một cách tự động theo các kịch bản do chủ nhà đặt ra. Như điều khiển các thiết bị đèn từ xa bằng điện thoại. Hiển thị cường độ ánh sáng,nhiệt độ ẩm,chất lượng không khí lên màn hình LCD và điện thoại. Điều khiển thiết bị dựa vào cảm biến nhiệt độ độ ẩm,cảm biến chất lượng không khí,cảm biến cường độ ánh sáng. Mô hình chiếu sáng thông minh thiết kế được hoạt động chính xác ,ổn định ,đáp ứng được các yêu cầu đề ra. Tuy nhiên, do giới hạn về thời gian thực hiện tiểu luận nên mô hình thiết kế chưa thực sự hoàn thiện. Hy vọng từ những điều mà tiểu luận đã làm được cùng với những ý tưởng ở trên sẽ được thực hiện ra mô hình chiếu sáng thông minh hoàn chỉnh và giá rẻ dễ tiếp xúc với mọi người.
TỔNG QUAN VỀ TIỂU LUẬN
GIỚI THIỆU ĐỀ TÀI
Ánh sáng là yếu tố thiết yếu trong cuộc sống hiện đại, không chỉ hỗ trợ các hoạt động hàng ngày như di chuyển, ăn uống và nghỉ ngơi, mà còn ảnh hưởng đến sức khỏe con người Việc sử dụng ánh sáng nhân tạo giúp tăng cường hiệu quả công việc và cải thiện khả năng thực hiện các hành động trong cuộc sống.
Nhóm chúng tôi đã thực hiện tiểu luận về "Nghiên cứu mô hình chiếu sáng thông minh" với mục tiêu đáp ứng nhu cầu chiếu sáng hiệu quả, đồng thời tiết kiệm điện năng và giảm bớt công sức cho con người.
Dưới sự hướng dẫn tận tình của thầy Nguyễn Cao Trí, nhóm em đã hoàn thành bài báo cáo này Mặc dù đã nỗ lực tìm hiểu, phân tích thiết kế và thi công mạch, nhưng không thể tránh khỏi những sai sót Em mong nhận được sự thông cảm và góp ý từ thầy.
MỤC TIÊU CỦA ĐỀ TÀI
Mục tiêu của đề tài là nghiên cứu nguyên lý hoạt động và sự liên kết của các linh kiện trong mô hình, nhằm điều khiển động cơ hoặc tải Qua đó, người đọc sẽ có thêm kiến thức trong việc thiết kế mô hình và sử dụng các linh kiện điện tử một cách hiệu quả.
SỞ LÝ THUYẾT
ARDUINO
Arduino Uno là một bảng mạch vi điều khiển nguồn mở dựa trên vi điều khiển Microchip ATmega328, phát triển bởi Arduino.cc Bảng mạch này được trang bị các chân đầu vào/đầu ra Digital và Analog, cho phép giao tiếp với nhiều bảng mạch mở rộng khác nhau Arduino Uno rất phù hợp cho những người mới bắt đầu và đam mê điện tử, lập trình Với nền tảng mở từ Arduino.cc, người dùng có thể dễ dàng xây dựng các dự án như lập trình Robot, xe tự hành, hay điều khiển bật tắt LED một cách nhanh chóng.
2.1.2 Thông số kỹ thuật Arduino Uno
Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ đƣợc cấp qua cổng USB)
Tần số hoạt động 16 MHz
Dòng tiêu thụ khoảng 30mA Điện áp vào khuyên dùng 7-12V DC
9 Điện áp vào giới hạn 6-20V DC
Số chân Digital I/O 14 (6 chân hardware PWM)
Số chân Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 30 mA
Dòng ra tối đa (5V) 500 mA
Dòng ra tối đa (3.3V) 50 mA
Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bởi bootloader
2.1.3 Các thành phần chức năng Arduino Uno
Hình 2.2 Các thành phần chức năng Arduino Uno
Cáp USB là phương tiện giao tiếp chính giữa Arduino và máy tính, cho phép người dùng tải chương trình lên để điều khiển hoạt động của Arduino Ngoài chức năng truyền dữ liệu, cáp USB còn cung cấp nguồn điện cho thiết bị này.
-Extermal Power Supply Plug : Ngoài nguồn USB , có thể cấp nguồn ngoài thông qua jack cắm 2.1mm( cực dương ở giữa) bo mạch hoạt động với nguồn ngoài 5 – 12 volt
-Analog Input Pins : Arduino Uno có 6 đầu vào Analog
-Digital I/0 Pins: có 14 chân (2-13) , 6 chân xung PWM ( Atmega328P)
-LED: Có 1 LED đƣợc tích hợp trên bảng mạch và đƣợc nối vào chân D13
Khi chân có giá trị mức cao (HIGH) thì LED sẽ sáng và LED tắt khi ở mức thấp (LOW)
-VIN: Chân này dùng để cấp nguồn ngoài (điện áp cấp từ 7-12VDC)
-5V: Điện áp ra 5V (dòng điện trên mỗi chân này tối đa là 500mA)
-3V3: Điện áp ra 3.3V (dòng điện trên mỗi chân này tối đa là 50mA)
-GND: Là chân mang điện cực âm trên board
Chân IOREF trên Arduino UNO có nhiệm vụ cung cấp thông tin về điện áp hoạt động của vi điều khiển, cho phép đọc điện áp tại chân này Tuy nhiên, chân IOREF không được sử dụng để cấp nguồn cho mạch.
Arduino IDE là phần mềm mã nguồn mở chính thức, được sử dụng để viết và biên dịch mã cho module Arduino Phần mềm này giúp người dùng, kể cả những người không có kiến thức kỹ thuật, dễ dàng biên dịch mã.
Nó có phiên bản cho các hệ điều hành như MAC, Windows, và Linux, hoạt động trên nền tảng Java với các chức năng và lệnh quan trọng cho việc gỡ lỗi, chỉnh sửa và biên dịch mã Mã chính, hay còn gọi là sketch, được tạo ra trên nền tảng IDE và xuất thành file Hex, sau đó được chuyển và tải lên bộ điều khiển trên bo.
Môi trường phát triển tích hợp (IDE) bao gồm hai thành phần chính: Trình chỉnh sửa dùng để viết mã và Trình biên dịch để biên dịch và tải mã lên module Arduino IDE hỗ trợ cả ngôn ngữ lập trình C và C++.
2.1.5 Giao diện phần mềm Arduino IDE
Hình 2.3 Giao diện phần mềm Arduino IDE
CẢM BIẾN ÁNH SÁNG BH1750
Cảm biến cường độ ánh sáng BH1750 là thiết bị đo cường độ ánh sáng bằng đơn vị lux, với ADC nội và bộ tiền xử lý cho phép trả về giá trị lux trực tiếp mà không cần xử lý thêm qua giao tiếp I2C Đơn vị đo lường ánh sáng từ một nguồn trong một giây là lumen, và cảm biến này có khả năng đọc giá trị ánh sáng trên diện tích 1 mét vuông.
10 Điện áp giao tiếp: TTL 3.3~5VDC
2.2.2 Chân kết nối của cảm biến BH1750:
-ADDR: Chân địa chỉ để lập trình ADDR = „H‟( ADDR>0,7VCC)
CẢM BIẾN CHẤT LƢỢNG KHÔNG KHÍ MQ-135
Cảm biến kiểm tra chất lượng không khí trong môi trường với độ nhạy cao và khả năng phản hồi nhanh Đặc biệt, độ nhạy của cảm biến có thể được điều chỉnh thông qua biến trở, mang lại sự linh hoạt trong việc sử dụng.
Các thiết bị kiểm tra chất lượng không khí trong các tòa nhà và văn phòng thường được sử dụng để phát hiện các chất như NH3, NOx, Ancol, Benzen, khói và CO2.
2.3.2.THÔNG SỐ KĨ THUẬT: ã Điện ỏp nguồn: 5V DC ã Điện ỏp của heater: 5V±0.1 AC/DC ã Điện trở tải: thay đổi đƣợc (2kΩ-47kΩ) ã Điện trở của heater: 33Ω±5% ã Cụng suất tiờu thụ của heater: ớt hơn 800mW ã Khoảng phỏt hiện: 10 - 300 ppm NH3, 10 - 1000 ppm Benzene, 10 - 300 Alcol ã Kớch thước: 32mm*20mm ã Khoảng đo rộng ã Bền, tuổi thọ cao ã Phỏt hiện nhanh, độ nhạy cao ã Mạch đơn giản
1 VCC Đƣợc sử dụng để cấp nguồn cho cảm biến,nói chung điện áp hoạt động là +5v
2 Đất Đƣợc sử dụng để kết nối mô -đun với mặt đất hệ thống
Bạn có thể sử dụng cảm biến này để nhận đầu ra kỹ thuật số từ chân, bằng cách thiết lập giá trị ngưỡng thông qua chiết áp.
Chân này xuất ra điện áp tương tự 0-5v dựa trên cường độ của khí
Cảm Biến Độ Ẩm, Nhiệt Độ DHT11
Cảm biến DHT11 là một trong những thiết bị đo nhiệt độ và độ ẩm phổ biến hiện nay nhờ vào chi phí thấp và khả năng thu thập dữ liệu dễ dàng qua giao tiếp 1-wire Với bộ tiền xử lý tín hiệu tích hợp, DHT11 cung cấp dữ liệu chính xác mà không cần thực hiện bất kỳ phép tính nào.
2.4.1.Thông số kĩ thuật: Điện áp hoạt động : 3V - 5V (DC)
Dải độ ẩm hoạt động : 20% - 90% RH, sai số ±5%RH
Dải nhiệt độ hoạt động : 0°C ~ 50°C, sai số ±2°C
Tần số lấy mẫu tối đa: 1 Hz
Khoảng cách truyển tối đa: 20m
2.4.2 Sơ đồ chân Cảm biến DHT11:
Hiện nay, thông dụng ngoài thị trường có hai loại đóng gói cho DHT11: 3 chân và 4 chân
HÌNH 2.8 -Chân số 1: nối nguồn 3.5-5 V
-Chân số 2: truyền dữ liệu nối tiếp
-Chân số 3: chân không kết nối
Module 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
Module này được trang bị mạch kích relay với IC cách ly quang và transistor, giúp cách ly hoàn toàn vi điều khiển khỏi rơ le, đảm bảo 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
19.Kích thước: 76mm (chiều dài) * 56mm (chiều rộng) * 18.5mm (H)
4 Có 4 lỗ để bắt vít cố định có đường kính 3.1mm, dễ dàng lắp đặt trong hệ thống mạch
5 Opto cách li, chống nhiễu tốt
6 Có đèn báo đóng ngắt trên Relay
7 Sử dụng điện áp nuôi DC 5V
8 Đầu ra điện thê đóng ngắt tối đa: DC 30V / 10A, AC 250V / 10A
9 IN1…IN4: tín hiệu đầu vào, hoạt động mức thấp
10 NO1…NO4: Công tắc thường mở
2.5.2.Sơ đồ nguyên lý Relay 4 kênh 5V:
Hình 2.10 Sơ đồ nguyên lý Relay 4 kênh 5V
Hình 2.11 Sơ đồ chân của Relay
Module thu phát bluetooth HC-05
HC05 là module giao tiếp bluetooth
Có thể đƣợc ứng dụng trong các ứng dụng điều khiển nhƣ:
Sử dụng điện thoại để điều khiển thiết bị thông qua phần mềm lập trình kết nối với module bluetooth HC05 Vi điều khiển sẽ giao tiếp với HC05 để nhận lệnh từ điện thoại hoặc gửi dữ liệu lên điện thoại, từ đó thực hiện các hành động như bật tắt đèn và cung cấp thông tin về trạng thái thiết bị.
Giao tiếp giữa các thiết bị phần cứng được thực hiện thông qua các module HC05, cho phép mỗi thiết bị gửi và nhận dữ liệu một cách hiệu quả.
2.6.1 Sơ đồ chân HC-05 gồm có:
- KEY: Chân này để chọn chế độ hoạt động AT Mode hoặc Data Mode
-VCC chân này có thể cấp nguồn từ 3.6V đến 6V bên trong module đã có một ic nguồn chuyển về điện áp 3.3V và cấp cho IC BC417
-GND nối với chân nguồn GND
-TXD,RND đây là hai chân UART để giao tiếp module hoạt động ở mức logic 3.3V
- STATE các bạn chỉ cần thả nổi và không cần quan tâm đến chân này
2.6.2.Thông số kĩ thuật : Điện áp hoạt động: 3.3 ~ 5VDC
Mức điện áp chân giao tiếp: TTL tương thích 3.3VDC và 5VDC
Dòng điện khi hoạt động: khi Pairing 30 mA, sau khi pairing hoạt động truyền nhận bình thường 8 mA
Baudrate UART có thể chọn đƣợc: 1200, 2400, 4800, 9600, 19200,
Support profiles: Bluetooth serial port (master and slave)
Bluetooth protocol: Bluetooth specification v2.0 + EDR
Modulation: GFSK (Gaussian frequency shift keying)
Rate: Asynchronous: 2.1 Mbps (max.)/160 kbps
Security features: authentication and encryption
LCD2004
Màn hình LCD2004 màu xanh dương sử dụng driver HD44780, cho phép hiển thị 4 dòng với mỗi dòng 20 ký tự Với độ bền cao và tính phổ biến, màn hình này cung cấp nhiều mã mẫu và dễ sử dụng, phù hợp cho người mới bắt đầu và các dự án.
2.7.1Thông số kỹ thuật: Điện áp hoạt động là 5 V
Chữ trắng, nền xanh dương
Khoảng cách giữa hai chân kết nối là 0.1 inch tiện dụng khi kết nối với Breadboard
Tên các chân đƣợc ghi ở mặt sau của màn hình LCD hổ trợ việc kết nối, đi dây điện
Có đèn led nền, có thể dùng biến trở hoặc PWM điều chình độ sáng để sử dụng ít điện năng hơn
Có thể đƣợc điều khiển với 6 dây tín hiệu
Chân Ký hiệu Mô tả Giá trị
4 RS Lựa chọn thanh ghi
RS=0 (mức thấp) chọn thanh ghi lệnh
RS=1 (mức cao) chọn thanh ghi dữ liệu
5 R/W Chọn thanh ghi đọc/viết dữ liệu
R/W=0 thanh ghi viết R/W=1 thanh ghi đọc
Chân truyền dữ liệu 8 bit: DB0DB7
15 A Cực dương led nền 0V đến 5V
Module I2C Arduino
Module I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 16×2, LCD 20×4, …) và tương thích với hầu hết các vi điều khiển hiện nay
22 Điện áp hoạt động: 2.5-6V DC
Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780)
Giao tiếp: I2C Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2)
Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt
Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD
Sơ đồ đấu nối Arduino với cái thiết bị
Arduino Uno Cảm biến cường độ ánh sáng BH1750
Led 1 (cathode ) NO (K1) Led 2 (cathode ) NO (K2) Led 3 (cathode ) NO (K3) Led 4 (cathode ) NO (K4) Âm nguồn Led Anode
2.9.4Cảm biến chất lƣợng không khí MQ135
2.9.5 Cảm biến độ ẩm và nhiệt độ DHT11
Arduino uno Cảm biến nhiệt độ ,độ ẩm DHT11
2.9.6 Module thu phát Blutooth HC05
KẾ VÀ CHẾ TẠO MÔ HÌNH CHIẾU SÁNG THÔNG
Yêu cầu thiết kế
Hiện nay, công nghệ hiện đại đã làm cho cuộc sống trở nên dễ dàng hơn với sự phát triển lớn trong những năm gần đây Ngôi nhà của chúng ta hiện nay ngập tràn các thiết bị công nghệ, cho phép điều khiển từ xa thông qua điện thoại thông minh hoặc máy tính Những giải pháp này giúp kiểm soát thiết bị chiếu sáng và đo nhiệt độ không khí một cách tiện lợi.
Giới thiệu về bộ điều khiển ,cấu trúc đơn giản dễ điều khiển
Mô hình ngôi nhà chiếu sáng thông minh ,đƣợc thiết kế với các chức năng nhƣ sau:
-Điều khiển từ xa và biết đƣợc trạng thái của thiết bị
-Đo cường độ ánh sáng hiển thị lên lcd,điện thoại
-Đo chất lƣợng không khí hiện thị lên lcd ,điện thoại
-Đo độ ẩm và nhiệt độ hiển thị lên lcd,điện thoại
Với các chức năng thiết kế nêu trên,sơ đồ khối của hệ thống đƣợc thiết kế nhƣ hình:
Hình 3.1 :sơ đồ khối hệ thống
Chức năng và nhiệm vụ các khối trong sơ đồ hình 3.1 nhƣ sau:
Khối nguồn cung cấp điện cho bộ điều khiển hệ thống và các mạch khác, yêu cầu tính ổn định và điện áp phù hợp với các khối chức năng Trong trường hợp này, khối nguồn sử dụng điện áp 5V-2A.
Bộ điều khiển Arduino Uno R3 là trung tâm của hệ thống, thực hiện tiếp nhận và xử lý thông tin, đồng thời giao tiếp với các thiết bị bên ngoài Nó nhận giá trị nhiệt độ, độ ẩm và cường độ ánh sáng từ cảm biến, kết nối với module Bluetooth HC05 để truyền dữ liệu tới người sử dụng và nhận lệnh điều khiển Hệ thống xử lý dữ liệu, thực hiện các phép toán logic và tạo tín hiệu điều khiển cho relay nhằm điều khiển các thiết bị khác.
Khối cảm biến ánh sáng sử dụng cảm biến BH1750 để đo cường độ ánh sáng và truyền kết quả trực tiếp đến relay điều khiển thiết bị.
Khối cảm biến DHT11 là một module tích hợp có khả năng đo nhiệt độ và độ ẩm, với kết quả đo được gửi về bộ xử lý trung tâm.
-Khối hiển thị sử dụng màn hình LCD 2004 để hiển thị các giá trị từ cảm biến về bộ xử lý
-Khối truy cập mạng sử dụng module bluetooth HC05 nó là thiết bị trung gian truyền ,nhận dữ liệu giữa người sử dụng và bộ điều khiển trung tâm
-Khối relay là mạch điều khiển đóng ngắt thiết bị nhận lệnh từ bộ xử lý để điều khiển các cơ cấu chấp hành
Cảm biến chất lượng không khí MQ135 có khả năng phát hiện các trạng thái và quá trình vật lý, hóa học, sinh học trong môi trường cần khảo sát, sau đó chuyển đổi thông tin này thành tín hiệu gửi về bộ xử lý trung tâm.
-Khối chấp hành là các thiết bị cần điều khiển :đèn chiếu sáng…
Bài viết này nghiên cứu về việc chế tạo ngôi nhà chiếu sáng thông minh với các chức năng điều khiển thiết bị từ xa qua Bluetooth, bật tắt bóng đèn bằng công tắc, và đo lường nhiệt độ, độ ẩm, chất lượng không khí Hệ thống sẽ cung cấp các giải pháp điều chỉnh phù hợp cho ngôi nhà, hiển thị thông tin nhiệt độ, độ ẩm, và chất lượng không khí trên màn hình LCD và điện thoại Ngoài ra, nó cũng có khả năng cảnh báo khi nhiệt độ quá cao, báo cháy, và tự động bật tắt bóng đèn khi phát hiện chuyển động.
3.1.1.Xây dựng sơ đồ thuật toán Đầu tiên sẽ tiến hành kiểm tra sự sẵn sàng của thiết bị xong thì xét lệnh điều khiển từ xa Trong trường hợp có lệnh điều khiển từ xa thì hệ thống điều khiển sẽ tiến hành điều khiển và sau đó sẽ kết thúc lệnh đó
Hình 3.2 :Lưu đồ thuật toán hệ thống
Trong trường hợp không có điều khiển từ xa, hệ thống sẽ phân tích lệnh điều khiển qua công tắc Nếu phát hiện công tắc hoạt động đúng, thiết bị sẽ được điều khiển; nếu không, cảm biến chất lượng không khí sẽ được kiểm tra Nếu chất lượng không khí tốt, thiết bị sẽ được kích hoạt; nếu không, cảm biến cường độ ánh sáng sẽ được xem xét Khi có tác động vào cảm biến ánh sáng, thiết bị sẽ hoạt động; nếu không có, cảm biến độ ẩm và nhiệt độ sẽ được kiểm tra Nếu độ ẩm và nhiệt độ trong nhà đạt yêu cầu, thiết bị sẽ bật; nếu không ổn định, thiết bị sẽ tự động tắt Quá trình này sẽ lặp lại liên tục.
Với yêu cầu bài toán đặt ra nhƣ trên,nhóm em tiến hành thiết kế các chế độ làm việc của bộ điều khiển nhƣ sau:
3.1.2 Chế độ điều khiển thiết bị từ xa thông qua ứng dụng Mit App inventor trên smartphone
Hình 3.3:lưu đồ thuật toán chế độ điều khiển thiết bị từ xa
Nhóm em đã xây dựng sơ đồ thuật toán sử dụng phần mềm Mit App Inventor trên điện thoại thông minh để điều khiển thiết bị Phần mềm này cho phép người dùng dễ dàng gửi lệnh đến Arduino thông qua module Bluetooth HC05 Arduino sẽ phân tích lệnh nhận được và so sánh với giá trị 1; nếu lệnh nhận được bằng 1, thiết bị sẽ được bật lên.
30 lệnh nhận đƣợc khác 1 thì sẽ điều khiển tắt thiết bị Ở đây sẽ dùng để điều khiển bóng đèn bếp,đèn phòng khách,đèn phòng ngủ.
Đọc và xử lý tín hiệu đọc đƣợc trong Arduino, xuất ra màn hình
3.2.1 Các bước đọc và xử lý tín hiệu đọc được trong Arduino, xuất ra màn hình và điều khiển Bluetooth:
Bước 1: Hiển thị kết quả đo thông qua các cảm biến:
- Khai báo cho các cảm biến, LCD I2C, RELAY, HC-05
- Quy định hoạt động của relay, khởi động LCD và các cảm biến
- Hiển thị trên màn hình LCD
Bước 2: Điều khiển đèn bằng Bluetooth:
- Thiết kế giao diện “inventer” cho điện thoại Android
- Kết nối điện thoại với HC05 điều khiển đèn bằng Bluetooth a.Hiển thị kết quả đo thông qua các cảm biến:
48 Tóm tắt các bước chính chương trình:
49 Khai báo các thƣ viện và các biến
Bước 1: Đọc giá trị của các biến
52 Đọc cường độ ánh sáng
55 Đọc giá trị của MQ135 ( PPM)
Bước 2: Hiển thị các giá trị lên LCD 2004 b Điều khiển đèn bằng Bluetooth:
56 Khai báo thƣ viện cho HC05
57 Điều khiểu đèn thông qua điện thoại
58 Hiển thị các số liệu từ cảm arduino lên điện thoại
#include // thƣ viện bạn cần cho giao tiếp nối tiếp phần mềm inventer
LiquidCrystal_I2C lcd(0x27, 20, 4); // địa chỉ đƣợc lấy từ 12c scanner
SoftwareSerial mySerial(2, 3);// Định nghĩa phần mềm cho các chân nối tiếp; RX2 & TX3
The MQ135 sensor is initialized as mq135_sensor with the designated PIN_MQ135, while the DHT sensor is set up as DHT Variables for humidity and temperature are declared as 'hum' and 'temp', and a byte variable 'state' is used to store the current program status In the setup function, pin 9 is configured as an OUTPUT to control the relay operation.
32 pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT);
To initialize the serial communication, use `Serial.begin(9600);` and configure the software serial at the same baud rate with `mySerial.begin(9600);` Start the I2C communication with `Wire.begin();`, and initialize the light meter and LCD display using `lightMeter.begin();` and `lcd.init();` respectively Activate the LCD backlight with `lcd.backlight();`, set the cursor to the top left corner with `lcd.setCursor(0,0);`, and display the message "Xin Chao Moi Nguoi" for 5 seconds using `lcd.print();` Finally, clear the LCD screen with `lcd.clear();` after setting the cursor to the second row.
} void loop() { int chk = DHT.read11(DHT11_PIN); int hum = DHT.humidity; int temp = DHT.temperature; float ppm = mq135_sensor getPPM(); float lux = lightMeter.readLightLevel();
//hiển thị các kết quả đo từ các cảm biến lên LCD lcd.setCursor(0,3); lcd.print("AirQ :"); lcd.setCursor(7,3);
33 lcd.print(ppm); lcd.println(" PPM"); lcd.setCursor(7,3); lcd.setCursor(0,0); lcd.print("LIGHT: "); lcd.setCursor(7,0); lcd.print (lux); lcd.print(" lx"); lcd.setCursor(7,0); lcd.setCursor(0,1); lcd.print("HUM : ");
Serial.print(hum); lcd.setCursor(7,1); //con trỏ vị trí số 7, hiện ô số 8 lcd.print(hum); lcd.print("%"); lcd.setCursor(7,1); lcd.setCursor(0,2); lcd.print("TEM : ");
Serial.print(temp); lcd.print(temp); lcd.print("doC "); lcd.setCursor(7,2); delay (1000); if(mySerial.available() > 0){ state= mySerial.read(); switch (state) { case '1':
Trong đoạn mã này, các lệnh `digitalWrite` được sử dụng để điều khiển mức điện thế tại các chân của vi điều khiển Khi nhận được các giá trị từ '0' đến '8', chân tương ứng sẽ được đặt ở mức LOW hoặc HIGH để xuất tín hiệu Cụ thể, chân 9 được điều khiển bởi giá trị '0' và '1', chân 10 bởi '3' và '4', chân 11 bởi '5' và '6', và chân 12 bởi '7' và '8' Khi giá trị là '0', tất cả các chân đều được đặt ở mức LOW.
35 case '9': digitalWrite(9, HIGH); digitalWrite(10, HIGH); digitalWrite(11, HIGH); digitalWrite(12, HIGH); break; default: break;
} mySerial.print(temp); mySerial.print(";"); mySerial.print(hum); mySerial.print(";"); mySerial.print(ppm); mySerial.print(";"); mySerial.print(lux); mySerial.println(";"); delay(1000);
MIT APP INVENTOR
MIT App Inventor cho Android là một ứng dụng web mã nguồn mở, từng được Google phát triển và hiện đang được Viện Công nghệ Massachusetts (MIT) duy trì Nền tảng này cho phép lập trình viên dễ dàng tạo ra các ứng dụng phần mềm.
Nền tảng Thunkable cung cấp 36 phần mềm cho hệ điều hành Android, cho phép người dùng tạo ứng dụng bằng cách kéo và thả các khối mã qua giao diện đồ họa Tính đến tháng 07/2017, phiên bản iOS của nền tảng này đã bắt đầu được thử nghiệm, mở rộng khả năng phát triển ứng dụng cho người dùng.
MIT App Inventor có mục tiêu chính là hỗ trợ những người không có kiến thức lập trình tạo ra ứng dụng hữu ích cho hệ điều hành Android Phiên bản mới nhất hiện nay là MIT App Inventor 2.
Ngày nay, MIT đã hoàn thiện App Inventor, cho phép người dùng dễ dàng tạo ứng dụng Android thông qua tài khoản Google Người mới bắt đầu có thể truy cập vào trang web của MIT, đăng nhập bằng tài khoản Google và xây dựng ý tưởng từ những mảnh ghép nhỏ MIT cung cấp nhiều hướng dẫn cụ thể để giúp người dùng làm quen với App Inventor Để sử dụng App Inventor, hãy truy cập vào http://ai2.appinventor.mit.edu và đăng nhập để quản lý các dự án của bạn.
60 Giao diện quản lý project
61 Giao diện thiết kế (Design)
62 Giao diện lập trình (Blocks)
Tất cả các thao tác trong MIT App Inventor đều rất đơn giản, bao gồm việc kéo và thả các thành phần giao diện cũng như viết mã code Bạn có thể tham khảo một số bài viết hướng dẫn để hiểu rõ hơn về cách sử dụng ứng dụng này.
Sau khi đăng nhập, tại cửa sổ chính (My Project), bạn chọn Start new project , sau đó đặt trên cho project bạn muốn tạo
Bước 2: Thiết kế giao diện
Cửa sổ thiết kế gồm 4 khung chức năng chính như hình dưới đây
63 Đầu tiên, một ứng dụng có thể có nhiều cửa sổ giao diện, trong MIT AI2 gọi là các Screen a Palette: Chứa các thành phần có thể đặt lên trên Screen nhƣ:
Button, Label, Image, Listview, Video player, … Đến các thanh phần chức năng không nhìn thấy trên Screen nhƣ: BLE extension, Notifier, các sensors, …
Chúng ta sẽ chọn các nút để bật tắt đèn và nhãn để đặt tên cho các đối tượng Viewer sẽ hiển thị giao diện màn hình, cho phép bạn kéo thả các thành phần từ khung Palette để thiết kế giao diện cho phần mềm của mình.
41 Đây là dao diện đã thiết kế c Components: Sơ đồ cây thể hiện cấu trúc các thành phần đã đƣợc bố trí trên Screen
42 d Properties: Hiển thị thuộc tính của component tương ứng được chọn như là màu sắc kích thước chữ…
Ngoài ra còn khung Media chứa các file media bạn tải lên để sử dụng trong chương trình như: Ảnh icon, ảnh nền, …
Bước 3: Lập trình chức năng Để di chuyển qua lại giữa cửa sổ thiết kế và tạo code, nhấp chọn các nút Design, Blocks ở góc phải
64 Trong MIT AI2, code chính là các Blocks, việc của chúng ta là kéo thả các blocks này sang khung Viewer và kết nối chúng theo chức năng mong muốn
65 Blocks gồm 2 nhóm chính: a Các block chức năng cơ bản của một chương trình như: điều khiển luồng, logic, toán học, ký tự, biến, …
* Các block chức năng theo từng component trong ứng dụng: Mỗi component của ứng dụng đều có các block chức năng tương ứng
Nhóm này gồm 3 kiểu chính:
Các khối code của chương trình
Khối này sẽ tạo ra một danh sách các thiết bị Bluetooth đã kết nối với điện thoại, cho phép người dùng nhấp vào nút ListPicker để hiển thị tất cả các thiết bị đã được ghép nối.
Sau khi chọn mô-đun Bluetooth cụ thể, điện thoại sẽ kết nối với địa chỉ Bluetooth đã được chọn trước đó và hiển thị trạng thái kết nối.
-Sau đó chúng ta sẽ viết code về điều khiển đèn
-Đây là khối đồng hồ Khi chúng ta đã kết nối đƣợc bluetooth thì lập tức điện thoại sẽ hiện thị nhiệt độ, độ ẩm, khí và độ rọi
Trong khối đồng hồ, có các điều kiện để đo lường mức độ khí CO2 trong nhà, từ đó đưa ra những lời khuyên hợp lý về việc bật tắt các phòng Việc theo dõi mức khí CO2 là rất quan trọng để đảm bảo không gian sống luôn thoải mái và an toàn.
-Cuối cùng là khối điều khiển bật tắt đèn bằng giọng nói
Để biên dịch và thử nghiệm chương trình trên MIT App Inventor 2, có hai phương pháp Phương pháp đầu tiên là sử dụng phần mềm MIT Companion, yêu cầu bạn cài đặt ứng dụng này trên điện thoại Sau khi cài đặt, bạn cần kết nối với dự án của mình để tự động tải xuống và chạy chương trình trong phần mềm MIT Companion.
Companion Điều này gây ra nhiều sự bất tiện và phụ thuộc
Để cài đặt ứng dụng, bạn có thể biên dịch ra file APK và tải về máy tính, sau đó sao chép sang điện thoại Ngoài ra, bạn cũng có thể biên dịch và tải online thông qua mã QR code Trong ví dụ này, mình sẽ chọn cách biên dịch file APK và cung cấp mã QR code bằng cách chọn Build -> App (provide QR code for apk).
Gồm mô hình, app inventer, cảm biến bh1750,mq135 dht11, hc05,lcd, relay 4 kênh 4 led
-Khi quét mã QR bằng app MIT AI2 Companion và down ứng dụng về ta đƣợc:
+Giao diện khi chƣa kết nối Bluetooth
-Đấu nối arduino và các cảm biến:
-Dựa vào nhóm em đã khảo sát khi đo độ rọi của cảm biến BH1750 thì đã đƣa ra điều kiện :
+ 100>=độ rọi>200 thì điện thoại sẽ báo: bật đèn 4 (đèn ở trong )
+ 200>=độ rọi>300 thì điện thoại sẽ báo: bật đèn 3(đèn ở giữa)
+ 300>=độ rọi>400 thì điện thoại sẽ báo: bật đèn 1 ( đèn ở cạnh cửa chính)
+ 400>=độ rọi>500 thì điện thoại sẽ báo: bật đèn 2 (đèn cạnh cửa sổ)
+ Độ rọi P0 : tắt hết đèn