Სარჩევი:

Arduino Smart Home სისტემა: 7 ნაბიჯი
Arduino Smart Home სისტემა: 7 ნაბიჯი

ვიდეო: Arduino Smart Home სისტემა: 7 ნაბიჯი

ვიდეო: Arduino Smart Home სისტემა: 7 ნაბიჯი
ვიდეო: How to build a Hidden Shelf Edge Clock - 3D Printable | Elegoo Arduino Nano | Smart Home | LED 2024, ივლისი
Anonim
Arduino Smart Home სისტემა
Arduino Smart Home სისტემა
Arduino Smart Home სისტემა
Arduino Smart Home სისტემა

ამ ინსტრუქციებში ჩვენ გაჩვენებთ თუ როგორ უნდა შექმნათ თქვენი საკუთარი ჭკვიანი სახლის სისტემა MATLAB– ის აპლიკაციების დიზაინერთან ერთად Sparkfun Red დაფით. ეს ინსტრუქცია შეიძლება გამოყენებულ იქნას MATLAB– ის აპლიკაციების დიზაინერის ძირითადი გაგების მოსაპოვებლად, ასევე ფოტორეზისტორის, სერვომოტორული და PIR მოძრაობის სენსორის გამოყენებით.

ნაბიჯი 1: დასაწყისი: მასალები

ეს პროექტი მოითხოვს შემდეგ მასალებს:

- Arduino Uno (ამ პროექტისთვის ჩვენ გამოვიყენეთ Sparkfun წითელი დაფა)

- ერთი ფოტორეზისტორი

- ერთი მინი სერვო ძრავა

- ერთი უწყვეტი სერვო ძრავა

- ერთი PIR მოძრაობის სენსორი

- ერთი ტემპერატურის სენსორი

- 2 LED ნათურა

- მავთულები და რეზისტორები საჭიროებისამებრ

ნაბიჯი 2: ნაბიჯი 2: პრობლემის გადაჭრის მიახლოება

ამ პროექტის მთავარი მიზანი იყო ადვილად გამოსაყენებელი ჭკვიანი სახლის სისტემის შექმნა Arduino Uno დაფის MATLAB– ით კოდირებით. ჩვენ პირველად ვიფიქრეთ მხოლოდ ტემპერატურისა და ტენიანობის სენსორზე მუშაობაზე, თუმცა ამ ორ სენსორთან რომ დავრჩეთ ჩვენი ჭკვიანი სახლის სისტემა არ იქნება ადვილად გაყიდვადი ფართო აუდიტორიისთვის. ჩვენ გადავწყვიტეთ, რომ გვინდოდა შეგვექმნა ჭკვიანი სახლის ენერგეტიკული სისტემა, რომელიც იმუშავებდა როგორც ჭკვიანი თერმოსტატი და უსაფრთხოების სისტემა. დაბოლოს, ჩვენ გვსურს ვიმუშაოთ MATLAB– ის AppDesigner– თან, რათა მომხმარებელს შეეძლოს ადვილად შეცვალოს ჭკვიანი სახლი, როგორც მას სურს.

ნაბიჯი 3: ნაბიჯი 3: GUI და ძირითადი კოდის ნაკადის კონფიგურაცია

ნაბიჯი 3: GUI და ძირითადი კოდის ნაკადის კონფიგურაცია
ნაბიჯი 3: GUI და ძირითადი კოდის ნაკადის კონფიგურაცია

დასაწყებად თქვენ უნდა გახსნათ MATLABs AppDesigner და განათავსოთ შემდეგი:

ორი რიცხვითი რედაქტირების ველი ცხელი და ცივი ბარიერის შესასვლელად

კარის განბლოკვის ღილაკი

ბუხრის, კარის, ვენტილატორისა და წყალდიდობის ოთხი ინდიკატორის ნათურა.

ორი ეტიკეტი მომხმარებელთან კომუნიკაციისთვის.

ამ პროექტისთვის ჩვენ გაგვიადვილდა მუშაობა გლობალურ ცვლადებთან და დამწყებ ფუნქციას დიზაინერში. თქვენ დაგჭირდებათ ეს ცვლადები გაშვების ფუნქციის ფარგლებში:

გლობალური ა

a = arduino ("COM3", "uno", "ბიბლიოთეკები", "Servo"); გლობალური s გლობალური p გლობალური ცხელი UI გლობალური ცივი UI გლობალური განბლოკვა გლობალური ტემპერატურა გლობალური curr_temp გლობალური int_light

ახლა ჩვენ გვაქვს მხოლოდ ცვლადის დავალება, ასე რომ თქვენს კომპიუტერს შეუძლია წაიკითხოს arduino. COM3 შეიძლება განსხვავდებოდეს იმისდა მიხედვით, თუ რა პორტს იყენებს თქვენი კომპიუტერი.

როდესაც კოდს გაუშვებთ, ის დაიწყება გაშვების ფუნქციის ფარგლებში, შექმნის გლობალურ ცვლადებს და მოახდენს სისტემის კალიბრაციას. ამ ფუნქციის ბოლოს იქნება ტაიმერის ფუნქცია, რომელიც იძახებს თვისებას, რომელსაც ჩვენ ტაიმერი დავარქვით. ამ ქრონომეტრის ქონების შიგნით ჩვენ ჩავსვამთ კოდს, რომელიც მართავს სახლის სისტემას, ასე რომ ტაიმერი არ გაუშვებს კალიბრაციის კოდს.

შენიშვნა: ჩვენ არ მივეცით სისტემის გაყვანილობის ინსტრუქცია. ჩვენ მივმართეთ სახელმძღვანელოს, რომელსაც მოყვება SparkFun წითელი დაფა.

ნაბიჯი 4: ნაბიჯი 3: თერმოსტატის სისტემის დაყენება

ნაბიჯი 3: თერმოსტატის სისტემის დაყენება
ნაბიჯი 3: თერმოსტატის სისტემის დაყენება
ნაბიჯი 3: თერმოსტატის სისტემის დაყენება
ნაბიჯი 3: თერმოსტატის სისტემის დაყენება

თერმოსტატის ფუნქცია შემდეგია:

მომხმარებელი შეიყვანს რა ტემპერატურას თვლის, რომ ძალიან ცხელია ან ძალიან ცივია. მას შემდეგ, რაც თერმომეტრი კითხულობს, თუ სახლი ძალიან ცივია, მაშინ "ბუხარი" (წითელი LED) ჩართავს და გაათბობს სახლს. თუ სახლი ძალიან ცხელია, მაშინ "ვენტილატორი" (უწყვეტი სერვო ძრავა) ჩართავს სახლის გაგრილებას.

თერმოსტატის სისტემის დასაკოდირებლად:

ჩვენ ვიწყებთ გაშვების ფუნქციის ფარგლებში მიმდინარე ტემპერატურის ჩვენების მიზნით და მომხმარებელს მივცემთ საშუალებას შეიყვანოს თავისი ცივი და ცხელი ბარიერები.

p = 'A0' %Photoresistor pin

volt = readVoltage (a, temp); celc = (ვოლტ -0.5).*100; curr_temp = celc*9/5+32; app. Label_4. Text = num2str (curr_temp); ეტიკეტის ნომერს შეუძლია შეცვალოს პაუზა (10); %შეიძლება შეცვალოს !!!!!

შემდეგ ჩვენ დავასრულებთ თერმოსტატის სისტემას ტაიმერის თვისებაში.

გლობალური curr_temp

გლობალური coldUI გლობალური გლობალური hotUI if curr_temp hotUI app. FanStateLamp. Color = [0.47 0.67 0.19]; %გამოდის GUI ნათურა მწვანე ჩაწერა PWMDutyCycle (a, 'D11',.9) %კოდის შემდეგი სამი ხაზი აწარმოებს servo fan pause (10) writePWMDutyCycle (a, 'D11',.0) else app. FireplaceStateLamp. Color = [0.90 0.90 0.90]; %ეს გამორთავს GUI ნათურებს და ბუხრის app. FanStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin (a, 'D13', 0); დასასრული

ნაბიჯი 5: ნაბიჯი 4: კარის სისტემის დაყენება

ნაბიჯი 4: კარის სისტემის დაყენება
ნაბიჯი 4: კარის სისტემის დაყენება

კარის ფუნქცია მუშაობს შემდეგნაირად:

როდესაც თქვენ პირველად აწარმოებთ თქვენს MATLAB კოდს, აპლიკაცია მოგთხოვთ კარების გაღებას, რათა ფოტორეზისტორმა მიიღოს სინათლის საწყისი კითხვა. ამის დასრულების შემდეგ, ტაიმერი გააქტიურდება და ფოტორეზისტორი მიიღებს მეორად სინათლის კითხვას. თუ მეორადი შუქის მაჩვენებელი უფრო მსუბუქია ვიდრე საწყისი, სერვო ძრავა ჩაკეტავს კარს. თუ მომხმარებელს სურს კარის გახსნა, მას შეუძლია დააჭიროს ღილაკს აპზე, რომელიც გააღებს კარს.

სერვო ძრავისა და ფოტო რეზისტორის კონფიგურაციისთვის:

კარის სისტემის კოდირებისთვის:

ჩვენ ვიწყებთ გაშვების ფუნქციის ფარგლებში, რომ მივიღოთ სინათლის საწყისი მაჩვენებლები.

s = servo (a, 'D9') %Pin შეიძლება შეიცვალოს გაყვანილობის საფუძველზე

app. Label_4. Text = 'გთხოვთ გააღოთ კარი სისტემის დაკალიბრებისათვის'; პაუზა (15); %ეს აძლევს მომხმარებელს დროს გახსნას კარი int_light = readVoltage (a, p); app. Label_4. Text = 'თითის ამოღება შეგიძლია';

შემდეგი, ჩვენ დავასრულებთ კოდს ტაიმერის თვისებაში

გლობალური განბლოკვა

global int_light global s global a %მიიღეთ მიმდინარე სინათლის კითხვა შედარებისთვის curr_light = readVoltage (a, p); % - კარის ჩაკეტვა - თუ int_light <curr_light writePosition (s, 1) % Servo პოზიციები შეიძლება განსხვავდებოდეს ერთ საავტომობილო პაუზაზე (0.5); app. DoorStateLamp. Color = [0.47 0.67 0.19]; დასასრული % - კარის განბლოკვა - თუ გახსნა == 1234 პაუზა (0.5); writePosition (s,.52) app. DoorStateLamp. Color = [0.85 0.33 0.10]; დასასრული

დაბოლოს, ჩვენ შევქმნით ზარალს ღილაკზე უკუკავშირს. მას შემდეგ, რაც მომხმარებელი დააჭერს განბლოკვის ღილაკს, გლობალური ცვლადის განბლოკვას მიენიჭება ნომერი, რომელსაც შეუძლია შეავსოს საბოლოო თუ განაცხადი ტაიმერის თვისებაში.

გლობალური განბლოკვა

განბლოკვა = 1234;

ნაბიჯი 6: ნაბიჯი 6: წყალდიდობის სისტემის დაყენება

ნაბიჯი 6: წყალდიდობის სინათლის სისტემის დაყენება
ნაბიჯი 6: წყალდიდობის სინათლის სისტემის დაყენება

წყალდიდობის შუქის ფუნქცია მუშაობს შემდეგნაირად:

როდესაც დაიწყებთ MATLAB კოდს, PIR მოძრაობის სენსორი დაიწყებს მოძრაობის გამოვლენას. მას შემდეგ რაც აღმოაჩენს რაიმე სახის მოძრაობას, ის წყვეტს ენერგიის სიგნალს. მას შემდეგ რაც სიგნალი გაწყდება, წყალდიდობის შუქი ანათებს სახლის გარეთ.

წყალდიდობის განათების სისტემის კონფიგურაცია:

წყალდიდობის სინათლის სისტემის კოდირება:

ამჯერად შეგვიძლია გადავიდეთ ტაიმერის თვისებაზე, რადგან არ გვჭირდება დამატებითი ცვლადების დაწერა.

human_detected = readDigitalPin (a, 'D2'); %Pin შეიძლება შეიცვალოს კონფიგურაციის საფუძველზე, თუ human_detected == 0 writeDigitalPin (a, 'D7', 1) %Pin შეიძლება შეიცვალოს app. 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) დასასრული

ნაბიჯი 7: დასკვნა

ახლა, როდესაც თქვენ გაქვთ თქვენი GUI პროექტი აპლიკაციის დიზაინერთან და თქვენი კოდი Arduino– სთვის, მზად ხართ გააკეთოთ თქვენი საკუთარი რედაქტირება ან შეაერთოთ თქვენი Arduino და წავიდეთ!

გირჩევთ: