Mục lục:

Hệ thống nhà thông minh Arduino: 7 bước
Hệ thống nhà thông minh Arduino: 7 bước

Video: Hệ thống nhà thông minh Arduino: 7 bước

Video: Hệ thống nhà thông minh Arduino: 7 bước
Video: Mô Hình Nhà Thông Minh Kết Hợp Nhiều Cảm Biến Phát Giọng Nói | Điện tử DAT 2024, Tháng mười một
Anonim
Hệ thống nhà thông minh Arduino
Hệ thống nhà thông minh Arduino
Hệ thống nhà thông minh Arduino
Hệ thống nhà thông minh Arduino

Trong Tài liệu hướng dẫn này, chúng tôi sẽ hướng dẫn bạn cách tạo hệ thống nhà thông minh của riêng bạn bằng Trình thiết kế ứng dụng của MATLAB với bảng Sparkfun Red. Tài liệu hướng dẫn này có thể được sử dụng để giúp hiểu cơ bản về Trình thiết kế ứng dụng của MATLAB, cũng như sử dụng điện trở quang, động cơ servo và cảm biến chuyển động PIR.

Bước 1: Để bắt đầu: Vật liệu

Dự án này yêu cầu các vật liệu sau:

- Arduino Uno (Đối với dự án này, chúng tôi đã sử dụng bảng Sparkfun Red)

- Một điện trở quang

- Một động cơ servo mini

- Một động cơ servo liên tục

- Một cảm biến chuyển động PIR

- Một cảm biến nhiệt độ

- 2 đèn LED

- Dây điện và điện trở khi cần thiết

Bước 2: Bước 2: Tiếp cận vấn đề cần giải quyết

Mục tiêu chính của dự án này là tạo ra một hệ thống nhà thông minh dễ sử dụng bằng cách mã hóa bảng Arduino Uno với MATLAB. Đầu tiên chúng tôi nghĩ về việc chỉ làm việc với một cảm biến nhiệt độ và độ ẩm, tuy nhiên nếu chúng tôi tiếp tục sử dụng hai cảm biến đó, hệ thống nhà thông minh của chúng tôi sẽ không dễ dàng tiếp thị cho đối tượng nói chung. Chúng tôi quyết định rằng chúng tôi muốn tạo ra một hệ thống năng lượng nhà thông minh tổng thể hoạt động như một hệ thống an ninh và điều nhiệt thông minh. Cuối cùng, chúng tôi muốn làm việc với AppDesigner của MATLAB để người dùng có thể dễ dàng thay đổi ngôi nhà thông minh theo ý muốn.

Bước 3: Bước 3: Định cấu hình GUI và Luồng mã cơ bản

Bước 3: Định cấu hình GUI và Luồng mã cơ bản
Bước 3: Định cấu hình GUI và Luồng mã cơ bản

Để bắt đầu, bạn sẽ cần mở MATLABs AppDesigner và đặt những thứ sau:

Hai trường chỉnh sửa số cho đầu vào ngưỡng nóng và lạnh

Một nút để mở khóa cửa

Và bốn đèn báo cho lò sưởi, cửa, quạt và đèn chiếu sáng.

Hai nhãn để giao tiếp với người dùng.

Đối với dự án này, chúng tôi thấy rằng làm việc với các biến toàn cục và hàm khởi động trong trình thiết kế dễ dàng hơn. Bạn sẽ cần các biến này trong hàm khởi động:

toàn cầu a

a = arduino ('COM3', 'una', 'Thư viện', 'Servo'); global s global hotUI global coldUI global unlock toàn cầu temp global curr_temp global int_light

Hiện tại, chúng tôi chỉ có một phép gán cho một biến để máy tính của bạn có thể đọc arduino. COM3 có thể khác nhau tùy thuộc vào cổng máy tính của bạn có thể đang sử dụng.

Khi bạn chạy mã, nó sẽ bắt đầu trong chức năng khởi động tạo các biến toàn cục và hiệu chỉnh hệ thống. Ở cuối hàm này sẽ có một hàm hẹn giờ gọi một thuộc tính mà chúng ta đặt tên là Timer. Trong thuộc tính Bộ hẹn giờ này, chúng tôi đặt mã chạy hệ thống gia đình để bộ hẹn giờ không chạy lại mã hiệu chuẩn.

Lưu ý: Chúng tôi không đưa ra bất kỳ hướng dẫn đi dây nào cho hệ thống. Chúng tôi đã tham khảo sách hướng dẫn đi kèm với bảng SparkFun Red.

Bước 4: Bước 3: Thiết lập hệ thống điều nhiệt

Bước 3: Thiết lập hệ thống điều nhiệt
Bước 3: Thiết lập hệ thống điều nhiệt
Bước 3: Thiết lập hệ thống điều nhiệt
Bước 3: Thiết lập hệ thống điều nhiệt

Chức năng của bộ điều nhiệt hoạt động như sau:

Người dùng sẽ nhập nhiệt độ mà họ cho là quá nóng hoặc quá lạnh. Sau khi nhiệt kế đọc kết quả, nếu ngôi nhà quá lạnh thì "lò sưởi" (đèn LED màu đỏ) sẽ bật và sưởi ấm ngôi nhà. Nếu ngôi nhà quá nóng thì "quạt" (động cơ servo liên tục) sẽ bật để làm mát ngôi nhà.

Để viết mã hệ thống Thermostat:

Chúng tôi sẽ bắt đầu trong chức năng khởi động để hiển thị nhiệt độ hiện tại và cho phép người dùng nhập ngưỡng nóng và lạnh của họ.

p = 'A0'% chân của Điện trở quang

volt = readVoltage (a, temp); celc = (vôn-0,5). * 100; curr_temp = celc * 9/5 + 32; app. Label_4. Text = num2str (curr_temp); % Số nhãn có thể thay đổi tạm dừng (10); % Có thể muốn thay đổi !!!!!

Sau đó, chúng tôi sẽ hoàn thiện hệ thống điều nhiệt trong thuộc tính Bộ hẹn giờ.

toàn cầu curr_temp

global coldUI global một hotUI toàn cầu nếu ứng dụng curr_temp hotUI. FanStateLamp. Color = [0,47 0,67 0,19]; % Chuyển đèn GUI màu xanh ghiPWMDutyCycle (a, 'D11',.9)% Ba dòng mã tiếp theo chạy tạm dừng quạt servo (10) writePWMDutyCycle (a, 'D11',.0) else app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; % Điều này sẽ tắt tất cả các đèn GUI và ứng dụng lò sưởi. FanStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D13', 0); kết thúc

Bước 5: Bước 4: Thiết lập hệ thống cửa

Bước 4: Thiết lập hệ thống cửa
Bước 4: Thiết lập hệ thống cửa

Chức năng của cửa hoạt động như sau:

Khi bạn chạy mã MATLAB lần đầu tiên, ứng dụng sẽ yêu cầu bạn mở cửa để điện trở quang có thể đọc ánh sáng ban đầu. Sau khi hoàn thành, bộ đếm thời gian sẽ kích hoạt và điện trở quang sẽ thực hiện các phép đọc ánh sáng thứ cấp. Nếu chỉ số đèn thứ cấp sáng hơn ban đầu, động cơ servo sẽ khóa cửa. Nếu người dùng muốn mở khóa cửa, họ có thể nhấn một nút trên ứng dụng để mở khóa cửa.

Để cấu hình động cơ servo và điện trở quang:

Để mã hệ thống cửa:

Chúng tôi sẽ bắt đầu trong chức năng khởi động để thực hiện các chỉ số ánh sáng ban đầu.

s = servo (a, 'D9')% Pin có thể thay đổi dựa trên hệ thống dây

app. Label_4. Text = 'Vui lòng mở cửa để hiệu chỉnh hệ thống'; tạm dừng (15); % Điều này cho thời gian để người dùng mở cửa int_light = readVoltage (a, p); app. Label_4. Text = 'Bạn có thể bỏ ngón tay của mình';

Tiếp theo, chúng tôi sẽ hoàn thành mã trong thuộc tính Timer

mở khóa toàn cầu

global int_light global s global a% Lấy giá trị ánh sáng hiện tại để so sánh curr_light = readVoltage (a, p); % - Khóa cửa - nếu int_light <curr_light writePosition (s, 1)% Các vị trí Servo có thể khác nhau trên mỗi lần tạm dừng động cơ (0,5); app. DoorStateLamp. Color = [0,47 0,67 0,19]; end% - Mở khóa cửa - nếu mở khóa == 1234 tạm dừng (0,5); writePosition (s,.52) app. DoorStateLamp. Color = [0,85 0,33 0,10]; kết thúc

Cuối cùng chúng ta sẽ tạo nút gọi lại mở khóa. Khi người dùng nhấn nút mở khóa, mở khóa biến toàn cục sẽ được gán một số có thể hoàn thành câu lệnh if cuối cùng trong thuộc tính Bộ hẹn giờ.

mở khóa toàn cầu

mở khóa = 1234;

Bước 6: Bước 6: Thiết lập hệ thống đèn lũ

Bước 6: Thiết lập hệ thống đèn lũ
Bước 6: Thiết lập hệ thống đèn lũ

Chức năng của đèn pha hoạt động như sau:

Khi bạn khởi động mã MATLAB, cảm biến chuyển động PIR sẽ bắt đầu phát hiện chuyển động. Một khi nó phát hiện một số loại chuyển động, nó sẽ cắt tín hiệu nguồn. Khi tín hiệu đó bị cắt, đèn chiếu sáng bên ngoài nhà sẽ bật sáng.

Để cấu hình hệ thống đèn pha:

Để viết mã hệ thống đèn pha:

Lần này chúng ta có thể bỏ qua thuộc tính Timer vì chúng ta không cần viết thêm bất kỳ biến nào.

human_detected = readDigitalPin (a, 'D2'); % Pin có thể thay đổi dựa trên cấu hình nếu human_detected == 0 writeDigitalPin (a, 'D7', 1)% Pin có thể thay đổi ứng dụng. FloodLightStateLamp. Color = [0,47 0,67 0,19]; elseif human_detected == 1 app. FloodLightStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin (a, 'D7', 0) end

Bước 7: Kết luận

Bây giờ bạn đã có bản nháp GUI của mình với Trình thiết kế ứng dụng và mã của bạn cho Arduino, bạn đã sẵn sàng thực hiện các chỉnh sửa của riêng mình hoặc cắm Arduino của bạn và bắt đầu!

Đề xuất: