Cu toții suntem familiarizați cu cuvântul „Automatizare”, unde interacțiunea umană este minimă și lucrurile pot fi controlate automat sau de la distanță. Domotica este un concept foarte popular și solicitant în domeniul electronicii și facem tot posibilul pentru a face acest concept ușor de înțeles și de gestionat ca proiecte electronice. Am dezvoltat anterior mai multe tipuri de proiecte de automatizare la domiciliu cu un videoclip și un cod funcțional, vă rugăm să verificați:
- Automatizare la domiciliu bazată pe DTMF
- Automatizare la domiciliu bazată pe GSM folosind Arduino
- Automatizare casnică controlată de PC folosind Arduino
- Automatizare casnică controlată prin Bluetooth folosind 8051
- Domotică IR controlată la distanță folosind Arduino
Și în acest proiect, vom construi următorul nostru proiect de automatizare a casei folosind MATLAB și Arduino, care este sistemul de automatizare a casei bazat pe GUI care utilizează Arduino și MATLAB
Componente:
- Arduino UNO
- Cablu USB
- ULN2003
- Releu 5 volți
- Bec cu suport
- Conectarea firelor
- Laptop
- Alimentare electrică
- PVT
Explicație de lucru:
În acest proiect, folosim MATLAB cu Arduino pentru a controla electrocasnicele, printr-o interfață grafică de utilizator în computer. Aici am folosit comunicarea prin cablu pentru trimiterea datelor de pe computer (MATLAB) către Arduino. În ceea ce privește computerul, am folosit GUI în MATLAB pentru a crea câteva butoane pentru controlul electrocasnicelor. Pentru comunicarea dintre Arduino și MATLAB, trebuie mai întâi să instalăm „ MATLAB și Simulink Support for Arduino ” sau „ Arduino IO Package ”. Pentru a face acest lucru, urmați pașii de mai jos sau verificați videoclipul de mai jos:
- Descărcați pachetul Arduino IO de aici. Trebuie să vă înscrieți înainte de descărcare.
- Apoi, ardeți / încărcați fișierul adioe.pde în Arduino folosind Arduino IDE. Acest fișier adioe.pde poate fi găsit în Arduino IO Package - ArduinoIO \ pde \ adioe \ adioe.pde
- Apoi deschideți software-ul MATLAB, treceți prin folderul Arduino IO, deschideți fișierul install_arduino.m și rulați-l în Matlab. Veți vedea un mesaj „Foldere Arduino adăugate la cale” în fereastra de comandă a MATLAB, înseamnă că calea MATLAB este actualizată la folderele Arduino.
Așa facem Arduino, comunicăm cu MATLAB. Metoda de mai sus este potrivită pentru „MATLAB R2013b sau versiuni anterioare”, dacă utilizați versiunea superioară a MATLAB (cum ar fi R2015b sau R2016a), puteți face clic direct pe fila Suplimente în MATLAB și apoi faceți clic pe „Obțineți pachete de asistență hardware”, de unde puteți instala pachete Arduino pentru MATLAB.
După instalarea fișierelor, acum puteți crea o interfață grafică pentru Home Automation Project. Practic în GUI, creăm butoane pentru controlul aparatelor electrocasnice de pe computer. Butoanele pot fi create accesând „Interfața grafică a utilizatorului” din meniul „Nou” din MATLAB. Mai departe putem seta numele și culorile acestor butoane, am creat 8 butoane, în care șase la ON și OFF trei electrocasnice și două butoane la ON și OFF toate aparatele simultan.
Acum, după crearea butoanelor, când faceți clic pe butonul Executare în acea fereastră GUI, vă va cere să salvați acest fișier GUI (cu extensia.fig), cunoscut și sub numele de „ fișier fig”. De îndată ce ați salvat fișierul, acesta va crea automat un fișier de cod (cu extensia.m), cunoscut și sub numele de „ fișier M” (a se vedea mai jos captura de ecran), unde puteți pune codul (dat în secțiunea Cod de mai jos). Puteți descărca fișierul GUI și fișierul Cod pentru acest proiect de aici: Home_Automation_system.fig și Home_Automation_system.m (faceți clic dreapta și selectați Salvare link ca…), sau le puteți crea singuri așa cum am explicat.
După codificare, puteți rula acum fișierul.m din fereastra de cod, veți vedea „Încercarea conexiunii..” în fereastra de comandă. Apoi apare un mesaj „Arduino conectat cu succes”, dacă totul merge bine. Și, în cele din urmă, veți vedea GUI (butoane) create anterior în fereastra GUI, de unde puteți controla aparatele electrocasnice doar făcând clic pe butoanele din computer. Asigurați-vă că Arduino este conectat la Arduino prin cablu USB. Aici, în acest proiect, am folosit 3 becuri pentru demonstrație, ceea ce indică Fan, Light și TV.
Funcționarea întregului proiect, de la instalarea pachetului de asistență Arduino MATLAB până la pornirea sau oprirea aparatului, poate fi înțeleasă la finalul videoclipului.
Explicația circuitului:
Circuitul acestui proiect este foarte ușor. Aici am folosit o placă Arduino UNO și un releu Driver ULN2003 pentru relee de conducere. Trei relee SPDT de 5 volți sunt conectate la pinul Arduino numărul 3, 4 și 5, prin driverul de releu ULN2003, pentru controlul LIGHT, FAN și TV respectiv.
Explicație de programare:
Când apăsăm orice buton din fereastra GUI, acesta trimite câteva comenzi către Arduino și apoi Arduino face acea operație. După instalarea pachetului de asistență Arduino MATLAB IO, putem accesa Arduino de la MATLAB utilizând aceleași funcții Arduino, cu puține variații, cum ar fi:
Pentru a face un pin HIGH în Arduino scriem codul ca digitalWrite (pin, HIGH)
În MATLAB vom folosi această funcție cu ajutorul unui obiect sau variabilă cum ar fi, și tot așa.
Înainte de a face acest lucru, trebuie să inițializăm variabila astfel:
În acest proiect, nu există cod Arduino, cu excepția codului sau fișierului pachetului de asistență Arduino MATLAB. După cum sa explicat anterior, fișierul de cod (fișierul.m) este generat automat în timpul salvării fișierului GUI (fișierul.fig). Există deja un cod preinscris în fișierul.m. Practic, acestea sunt funcții de apel invers pentru butoanele Push, înseamnă că putem defini ce ar trebui să se întâmple făcând clic pe aceste butoane Push.
În codul MATLAB, mai întâi inițializăm portul serial și îl transformăm într-un obiect folosind o variabilă. Și apoi putem începe programarea ca Arduino folosind variabila.
ar clar; ar global; ar = arduino ('COM13'); ar.pinMode (3, 'OUTPUT'); ar.pinMode (4, 'OUTPUT'); ar.pinMode (5, 'OUTPUT'); ar.pinMode (13, 'OUTPUT');
În funcția de apel înapoi a fiecărui buton, am scris codul aferent pentru Pornit sau OPRIT aparatele electrocasnice respective, conectate la Arduino prin releu. De exemplu, funcția Callback pentru Light ON este dată mai jos:
funcție light_on_Callback (hObject, eventdata, handles)% hObject handle to light_on (vezi GCBO)% eventdata rezervat - care urmează să fie definit într-o versiune viitoare a MATLAB% handles structure with handles and user data (see GUIDATA) global ar; ar.digitalWrite (3, 1); ar.digitalWrite (13, 1);
De asemenea, putem scrie codul în funcțiile Callback ale tuturor butoanelor, pentru a controla celelalte electrocasnice conectate, verificați codul complet MATLAB de mai jos (fișierul.m).