Vi kender alle ordet 'automatisering', hvor den menneskelige interaktion er minimal, og ting kan styres automatisk eller eksternt. Hjemmeautomation er et meget populært og krævende koncept inden for elektronik, og vi gør også vores bedste for at gøre dette koncept let forståeligt og håndterbart som elektronikprojekter. Vi har tidligere udviklet flere typer hjemmeautomatiseringsprojekter med en fungerende video og kode, se venligst:
- DTMF-baseret hjemmeautomatisering
- GSM-baseret hjemmeautomatisering ved hjælp af Arduino
- PC-styret hjemmeautomatisering ved hjælp af Arduino
- Bluetooth-styret hjemmeautomatisering ved hjælp af 8051
- IR fjernstyret hjemmeautomatisering ved hjælp af Arduino
Og i dette projekt skal vi bygge vores næste hjemmeautomationsprojekt ved hjælp af MATLAB og Arduino, som er GUI-baseret hjemmeautomatiseringssystem ved hjælp af Arduino og MATLAB
Komponenter:
- Arduino UNO
- USB-kabel
- ULN2003
- Relæ 5 volt
- Pære med holder
- Tilslutning af ledninger
- Bærbar
- Strømforsyning
- PVT
Arbejdsforklaring:
I dette projekt bruger vi MATLAB med Arduino til at styre husholdningsapparaterne via en grafisk brugergrænseflade i computeren. Her har vi brugt kablet kommunikation til at sende data fra computer (MATLAB) til Arduino. På computersiden har vi brugt GUI i MATLAB til at oprette nogle knapper til styring af husholdningsapparater. For kommunikation mellem Arduino og MATLAB skal vi først installere " MATLAB og Simulink Support til Arduino " eller " Arduino IO-pakke ". For at gøre det skal du følge nedenstående trin eller kontrollere videoen nedenfor:
- Download Arduino IO-pakken herfra. Du skal tilmelde dig før download.
- Brænd / upload derefter filen adioe.pde til Arduino ved hjælp af Arduino IDE. Denne adioe.pde-fil kan findes i Arduino IO-pakke - ArduinoIO \ pde \ adioe \ adioe.pde
- Åbn derefter MATLAB-softwaren, gå gennem Arduino IO-mappen, åbn filen install_arduino.m og kør den i Matlab. Du vil se en meddelelse om "Arduino-mapper tilføjet til stien" i kommandovinduet i MATLAB, hvilket betyder, at MATLAB-stien opdateres til Arduino-mapper.
Sådan laver vi Arduino, kommunikerer med MATLAB. Ovenstående metode er velegnet til “MATLAB R2013b eller tidligere versioner”, hvis du bruger den højere version af MATLAB (som R2015b eller R2016a), kan du klikke direkte på fanen Add-ons i MATLAB og derefter klikke på "Get Hardware Support Packages", hvorfra du kan installere Arduino-pakker til MATLAB.
Efter installation af filer kan du nu oprette en GUI til Home Automation Project. Dybest set i GUI opretter vi trykknapper til styring af husholdningsapparater fra computeren. Knapper kan oprettes ved at gå ind i “Grafisk brugergrænseflade” i menuen “Ny” i MATLAB. Desuden kan vi indstille navn og farver på disse knapper, vi har oprettet 8 knapper, hvor seks til ON og OFF tre husholdningsapparater og to knapper til ON og OFF alle apparater samtidigt.
Efter at du har oprettet knapperne, når du klikker på Kør-knappen i det GUI-vindue, vil den bede dig om at gemme denne GUI-fil (med filtypen.fig), også kendt som ' fig-fil'. Så snart du har gemt filen, opretter den automatisk en kodefil (med udvidelse.m), også kendt som ' M-fil' (se nedenstående skærmbillede), hvor du kan placere koden (angivet i kodeafsnittet nedenfor). Du kan downloade GUI-filen og kodefilen til dette projekt herfra: Home_Automation_system.fig og Home_Automation_system.m (højreklik og vælg Gem link som…), eller du kan oprette dem selv som vi har forklaret.
Efter kodning kan du nu endelig køre.m-filen fra kodevinduet, du vil se "Forsøg på forbindelse.." i kommandovinduet. Derefter vises en meddelelse om "Arduino lykkedes forbundet", hvis alt går godt. Og endelig vil du se tidligere oprettede GUI (knapper) i GUI-vinduet, hvorfra du kan styre husholdningsapparaterne ved blot at klikke på knapperne i din computer. Sørg for, at Arduino er tilsluttet Arduino via USB-kabel. Her i dette projekt har vi brugt 3 pærer til demonstration, hvilket indikerer blæser, lys og tv.
Arbejdet med hele projektet, fra installation af Arduino MATLAB supportpakke til at tænde eller slukke for apparatet, kan forstås i videoen i slutningen.
Forklaring af kredsløb:
Kredsløb af dette projekt er meget let. Her har vi brugt et Arduino UNO-kort og relædriver ULN2003 til kørselsrelæer. Tre 5 volt SPDT-relæer er forbundet til Arduino pin nummer 3, 4 og 5 gennem relædriver ULN2003 til styring af henholdsvis LYS, FAN og TV.
Programmeringsforklaring:
Når vi trykker på en vilkårlig knap fra GUI-vinduet, sender den nogle kommandoer til Arduino, og derefter udfører Arduino den handling. Efter installation af Arduino MATLAB IO supportpakke kan vi få adgang til Arduino fra MATLAB ved at bruge de samme Arduino-funktioner med lidt lille variation som:
For at lave en pin HIGH i Arduino skriver vi kode som digitalWrite (pin, HIGH)
I MATLAB bruger vi denne funktion ved hjælp af et objekt eller en variabel som, og ligeledes så videre.
Før vi gør dette, skal vi initialisere variablen sådan:
I dette projekt er der ingen Arduino-kode undtagen Arduino MATLAB-supportpakkekoden eller -filen. Som tidligere forklaret genereres kodefilen (.m-filen) automatisk, mens GUI-filen (.fig-filen) gemmes. Der er allerede noget kode omskrevet i.m-filen. Dybest set er disse Callback-funktioner til trykknapper, hvilket betyder, at vi kan definere, hvad der skal ske ved at klikke på disse trykknapper.
I MATLAB-kode initialiserer vi først seriel port og gør det til et objekt ved hjælp af en variabel. Og så kan vi begynde at programmere som Arduino ved hjælp af variablen.
klar ar; global ar; ar = arduino ('COM13'); ar.pinMode (3, 'OUTPUT'); ar.pinMode (4, 'OUTPUT'); ar.pinMode (5, 'OUTPUT'); ar.pinMode (13, 'OUTPUT');
I tilbagekaldsfunktionen på hver knap har vi skrevet den relaterede kode til Til eller FRA de respektive Hvidevarer, der er forbundet til Arduino via Relay. Som for eksempel er tilbagekaldelsesfunktion for Light ON angivet nedenfor:
funktion light_on_Callback (hObject, hændelsesdata, håndtag)% hObject håndtag til light_on (se GCBO)% hændelsesdata reserveret - defineres i en fremtidig version af MATLAB% håndterer struktur med håndtag og brugerdata (se GUIDATA) global ar; ar.digitalWrite (3, 1); ar.digitalWrite (13, 1);
På samme måde kan vi skrive koden i Callback-funktionerne på alle knapperne for at kontrollere de andre tilsluttede Hvidevarer, tjek den fulde MATLAB-kode nedenfor (.m-fil).