Smarta hem baserat på Arduino-kontroller: design och organisering av kontrollerat utrymme
Utvecklingen av automatisering har lett till skapandet av integrerade system som förbättrar människors livskvalitet. Många kända tillverkare av elektronik- och mjukvarumiljöer erbjuder färdiga standardlösningar för olika objekt.
Till och med en oerfaren användare kommer att kunna utveckla oberoende projekt och sätta ihop ett "smarta hem" på Arduino för att passa hans behov. Det viktigaste är att förstå grunderna och inte vara rädd för att experimentera.
I den här artikeln kommer vi att överväga skapandet och de grundläggande funktionerna i ett automatiserat hus baserat på Arduino-enheter. Tänk också på vilka typer av kort som används och systemets huvudmoduler.
Artikelens innehåll:
Skapande av system på Arduino-plattformen
Arduino är en plattform för utveckling av elektroniska enheter med automatisk, halvautomatisk eller manuell styrning. Den är gjord enligt principen för en konstruktör med tydligt definierade regler för samverkan mellan element. Systemet är öppet, vilket gör det möjligt för tredje parts tillverkare att delta i dess utveckling.
Klassisk “smart hem”Består av automatiska enheter som utför följande funktioner:
- samla in nödvändig information genom sensorer;
- analysera data och fatta beslut med en programmerbar mikroprocessor;
- genomföra besluten genom att ge kommandon till olika enheter.
Arduino-plattformen är bra just för att den inte ligger nära en specifik tillverkare utan gör det möjligt för konsumenten att välja de komponenter som passar honom. Deras val är stort, så du kan implementera nästan alla idéer.
Vi rekommenderar att bekanta dig med de bästa smarta enheter för hemmet.
Förutom de olika anslutna enheterna, lägger programmeringsmiljön som implementeras i C ++ till variation.Användaren kan inte bara dra nytta av de skapade biblioteken utan också programmera systemkomponenternas svar på nya händelser.
Huvudbrädelement
Huvudelementet i ett smart hem är ett eller flera centrala (moderkort). De ansvarar för samverkan mellan alla element. Endast efter att ha bestämt vilka uppgifter som behöver lösas, kan vi fortsätta till valet av huvudsystemnoden.
Moderkortet kombinerar följande element:
- Mikrokontroller (processor). Huvudsyftet är att utfärda och mäta spänning i portar i intervallet 0-5 eller 0-3,3 V, lagra data och utföra beräkningar.
- Programmerare (inte alla styrelser har det). Med hjälp av denna enhet skrivs ett program i minnet på mikrokontrollern, enligt vilket ”smarta hemmet” fungerar. Den är ansluten till en dator, surfplatta, smartphone eller annan enhet med ett USB-gränssnitt.
- Spänningsstabilisator. En 5 volt-enhet behövs för att driva hela systemet.
Under varumärket Arduino finns flera moderkortmodeller tillgängliga. De skiljer sig från varandra i formfaktor (storlek), antal portar och minnesstorlek. Det är för dessa indikatorer du måste välja rätt enhet.
Det finns två typer av portar:
- digitalsom är markerade på brädet med bokstäver "D";
- analogmärkt med ett brev "A".
Tack vare dem kommunicerar mikrokontrollern med anslutna enheter. Varje port kan fungera både på att ta emot en signal och på dess utgång. Digitala portar märkta “pwm” är avsedda för in- och utmatning av en PWM-signal (pulsbreddmodulering).
Innan du köper ett bräde måste du därför ungefär utvärdera nivån på dess belastning på olika enheter. Detta bestämmer önskat antal portar av alla typer.
Det bör förstås att "smarta hem" -systemet inte behöver kopplas till en styrenhet baserad på ett moderkort. Sådana funktioner som till exempel att slå på konstgjord belysning av det lokala området beroende på tid på dygnet och underhålla vattenreserven i lagringstanken är oberoende av varandra.
Med tanke på att säkerställa tillförlitligheten hos det elektroniska systemet är det bättre att dela op besläktade uppgifter i olika block, vilket Arduino-konceptet gör det enkelt att implementera. Om du kombinerar många enheter på ett ställe är det möjligt att mikroprocessorn överhettas, programbibliotek konflikter och svårigheter att hitta och fixa fel i programvaran och hårdvaran.
Varje mikroprocessor är utrustad med tre typer av minne:
- Flash-minne Huvudminnet där systemhanteringsprogramkoden lagras. En liten del av den (3-12%) ockuperas av den trådbundna bootloadern.
- SRAM. RAM, som lagrar tillfälliga data som krävs för programmet. Skillnaden i hög hastighet på arbetet.
- EEPROM. Långsammare minne, där data också kan lagras.
Den viktigaste skillnaden mellan typerna av minne för lagring av data är att när strömmen stängs av förloras informationen som spelas in i SRAM men förblir i EEPROM. Men den icke-flyktiga typen har också en nackdel - ett begränsat antal skrivcykler. Detta måste komma ihåg när du skapar dina egna applikationer.
Till skillnad från användningen av Arduino inom robotik behöver du för de flesta uppgifter i det "smarta hemmet" inte mycket minne varken för program eller för att lagra information.
Typer av brädor för att bygga ett smart hem
Tänk på de viktigaste typerna av brädor som oftast används vid montering av ett smart hemsystem.
Visa nr 1 - Arduino Uno och dess derivat
De vanligaste smarta hemsystemen använder Arduino Uno och Arduino Nano. De har tillräcklig funktionalitet för att lösa typiska problem.
Huvudparametrar för Arduino Uno Rev3:
- processor: ATMega328P (8 bitar, 16 MHz);
- antal digitala portar: 14;
- varav med PWM-funktion: 6;
- antal analoga portar: 6;
- flashminne: 32 KB;
- SRAM: 2 KB;
- EEPROM: 1 KB.
För inte så länge sedan kom en modifiering ut - Uno Wi-Fi, som innehåller en integrerad modul ESP8266, som låter dig utbyta information med andra enheter enligt standarden 802.11 b / g / n.
Skillnaden mellan Arduino Nano och dess större motsvarighet är bristen på sitt eget eluttag från 12 V. Detta görs för att uppnå en mindre enhet, vilket gör det enkelt att gömma sig i ett litet utrymme. Även för dessa ändamål ersätts standard-USB-anslutningen av ett chip med en mini-USB-kabel. Arduino Nano har två fler analoga portar jämfört med Uno.
Det finns en annan modifiering av Uno-styrelsen - Arduino Mini. Det är ännu mindre än Nano, och det är mycket svårare att arbeta med det. För det första skapar bristen på en USB-port ett problem med firmware, eftersom du måste använda USB-Serial Converter för detta. För det andra är denna kort mer picky med avseende på kraft - det är nödvändigt att tillhandahålla ett ingångsspänningsområde på 7-9 V.
Av de skäl som beskrivs ovan används Arduino Mini-kortet sällan för att driva ett "smarta hem". Vanligtvis används det antingen inom robotik eller i genomförandet av färdiga projekt.
Visa nr 2 - Arduino Leonardo och Micro
Arduino Leonardo-styrelsen liknar Uno, men lite kraftfullare. En annan intressant egenskap hos denna modell är dess definition när den är ansluten till en dator som tangentbord, mus eller joystick. Därför används det ofta för att skapa originella spelenheter och simuleringar.
De viktigaste parametrarna för Arduino Leonardo är följande:
- processor: ATMega32u4 (8 bit, 16 MHz);
- antal digitala portar: 20;
- varav med PWM-funktion: 7;
- antal analoga portar: 12;
- flashminne: 32 KB;
- SRAM: 2,5 KB;
- EEPROM: 1 KB.
Som du kan se från listan över parametrar har Leonardo fler portar, vilket gör det möjligt att ladda denna modell med ett stort antal sensorer.
För Leonardo finns också en helt identisk miniatyranalog, kallad Micro. Den har inte ström från 12 V och istället för en fullfjädrad USB-ingång finns det ett chip för en mini-USB-kabel.
Modifiering av Leonardo som kallas Esplora är en rent spelmodell och passar inte behoven hos ett "smarta hem".
Visa nr 3 - Arduino 101, Arduino Zero och Arduino MKR1000
Ibland krävs en stor datorkraft, som 8-bitars mikrokontroller inte kan tillhandahålla för drift av ”smarta hem” -system implementerade på grundval av Arduino. Uppgifter som röst- eller bildigenkänning kräver en snabb processor och en betydande mängd RAM för sådana enheter.
För att lösa dessa specifika problem används kraftfulla kort som fungerar enligt Arduino-konceptet. Antalet hamnar de har är ungefär detsamma som för Uno- eller Leonardo-styrelserna.
En av de enklaste att använda, men kraftfulla brädorna - Arduino 101 har följande egenskaper:
- processor: Intel Curie (32 bit, 32 MHz);
- flashminne: 196 KB;
- SRAM: 24 KB;
- EEPROM: nej.
Dessutom är kortet utrustat med BLE-funktionalitet (Bluetooth Low Energy) med möjlighet att enkelt ansluta färdiga lösningar, såsom en hjärtslagssensor, ta emot väderinformation utanför fönstret, skicka textmeddelanden, etc. Ett gyroskop och en accelerometer är också integrerade i enheten, men de används främst inom robotik.
En annan liknande styrelse - Arduino Zero har följande indikatorer:
- processor: SAM-D21 (32 bit, 48 MHz);
- flashminne: 256 KB;
- SRAM: 32 KB;
- EEPROM: nej.
En särskild egenskap hos denna modell är närvaron av en integrerad felsökare (EDBG). Att använda det är mycket lättare att söka efter fel när man programmerar kortet.
Arduino MKR1000 är en annan modell som passar för kraftfull datoranvändning.Den har en mikroprocessor och minne som liknar noll. Dess huvudskillnad är närvaron av ett integrerat Wi-Fi-chip med 802.11 b / g / n-protokoll och ett kryptochip med stöd för SHA-256-algoritmen för att skydda den överförda informationen.
Visa nr 4 - Mega familjemodeller
Ibland är det nödvändigt att använda ett stort antal sensorer och kontrollera ett betydande antal enheter. Till exempel är detta nödvändigt för automatisk drift av distribuerade luftkonditioneringssystem som upprätthåller en viss temperatur för enskilda zoner.
För varje lokalt område är det nödvändigt att spåra avläsningarna för två temperatursensorer (den andra används som en kontroll) och, i enlighet med algoritmen, justera spjällets läge, som bestämmer mängden varm luft.
Om det finns mer än 10 sådana zoner i stugan, behövs mer än 30 hamnar för att kontrollera hela systemet. Naturligtvis kan du använda flera Uno-kort under allmän kontroll av ett av dem, men det skapar ytterligare växlingsproblem. I detta fall rekommenderas det att använda modeller av Mega-familjen.
Arduino Mega är baserad på en ganska enkel 8-bitars 16-MHz aTMega1280 mikroprocessor.
Den har en stor mängd minne:
- flashminne: 128 KB;
- SRAM: 8 KB;
- EEPROM: 4 KB.
Men dess främsta fördel är förekomsten av många hamnar:
- antal digitala portar: 54;
- varav med PWM-funktion: 15;
- antal analoga portar: 16.
Detta bräde har två moderna sorter:
- Mega 2560 är baserad på aTMega2560-mikroprocessorn, med ett stort flashminne - 256 KB;
- Förutom aTMega2560-mikroprocessorn är Mega ADK utrustad med ett USB-gränssnitt med möjlighet att ansluta till enheter baserade på Android-operativsystemet.
Arduino Mega ADK-modellen har en funktion. När du ansluter telefonen till USB-ingången är följande situation möjlig: om telefonen behöver laddas börjar den "dra" den ur kortet. Därför finns det ett ytterligare krav för en elkälla - den måste ge en strömstyrka på 1,5 ampère. Vid leverans av batterier måste detta villkor beaktas.
Due är en annan Arduino-modell som kombinerar kraften från en mikroprocessor och ett stort antal portar.
Dess egenskaper är följande:
- processor: Atmel SAM3X8E (32 bit, 84 MHz);
- antal digitala portar: 54;
- varav med PWM-funktion: 12;
- antal analoga portar: 14;
- flashminne: 512 KB;
- SRAM: 96 KB;
- EEPROM: nej.
De analoga kontakterna på detta kort kan fungera både i den vanliga 10-bitarsupplösningen för Arduino, vilket görs för kompatibilitet med tidigare modeller, och i 12-bitars upplösning, vilket gör att du kan få en mer exakt signal.
Funktioner för interaktion mellan moduler genom portar
Alla moduler som kommer att anslutas till kortet har minst tre utgångar. Två av dem är nätkablar, d.v.s. ”Jord”, liksom en spänning på 5 eller 3,3 V. Den tredje ledningen är logisk. Den överför data till porten. För att ansluta modulerna använder du specialtrådar grupperade i 3 delar, som ibland kallas hoppare.
Eftersom Arduino-modeller vanligtvis bara har en port med spänning och 1-2 portar med mark, för att ansluta flera enheter, måste du antingen löd trådarna eller använda brädskivor.
Lödning är mer tillförlitlig och används i enheter som är utsatta för fysisk påverkan, till exempel styrkort för robotar och quadrocopters. För ett smart hem är det bättre att använda brödskivor, eftersom det är lättare både under installationen och när du tar bort en modul.
För vissa modeller (till exempel Arduino Zero och MKR1000) är driftspänningen 3,3 V, så om ett högre värde appliceras på portarna kan kortet skadas. All ströminformation finns i den tekniska dokumentationen för enheten.
Tilläggskort (sköldar)
För att öka kapaciteten på moderkort använder du sköldar (Shields) - utöka funktionaliteten för ytterligare enheter. De är gjorda för en specifik formfaktor, som skiljer dem från moduler som ansluter till portar. Sköldar är dyrare än moduler, men det är lättare att arbeta med dem. De är också utrustade med färdiga bibliotek med kod, vilket påskyndar utvecklingen av sina egna kontrollprogram för ”smarta hem”.
Sköldar Proto och sensor
Dessa två standardsköldar har inga specialfunktioner. De används för en mer kompakt och bekväm anslutning av ett stort antal moduler.
Proto Shield är en nästan komplett kopia av originalet när det gäller portar, och i mitten av modulen kan du fästa en brödskiva. Detta underlättar monteringen. Sådana tillägg finns för alla Arduino-brädor i full längd.
Men om det finns många enheter (mer än 10), är det bättre att använda dyrare Sensor Shield patchboards.
De har inte en bradboard, men alla slutsatser från hamnarna levereras individuellt med kraft och mark. Detta gör att du inte kan bli förvirrad i ledningar och hoppare.
Även på detta kort finns pads för enkel anslutning av flera moduler: Bluetoots, SD-kort, RS232 (COM-port), radio och ultraljud.
Ansluter extrafunktioner
Sköldar med integrerad funktionalitet utformad för att lösa komplexa, men typiska uppgifter. Om du behöver implementera originalidéer är det bättre att välja rätt modul.
Motorsköld. Den är utformad för att kontrollera hastigheten och rotationen för lågeffektmotorer. Den ursprungliga modellen är utrustad med ett L298-chip och kan fungera samtidigt med två likströmsmotorer eller med en servodrift. Det finns en kompatibel del från en tredjeparttillverkare, som har två L293D-chips med möjlighet att styra dubbelt så många enheter.
Reläsköld. En ofta använda modul med smarta hemsystem. Kort med fyra elektromekaniska reläer, som var och en möjliggör passage av ström med en kraft upp till 5A. Detta räcker för att automatiskt slå på och stänga av kilowatt-enheter eller belysningslinjer, utformade för växelström 220 V.
LCD-skärm. Gör att du kan visa information på den inbyggda skärmen, som kan uppgraderas till en TFT-enhet. Denna utvidgning används ofta för att skapa väderstationer med temperaturavläsningar i olika bostadslokaler, uthus, ett garage, samt temperatur, luftfuktighet och vindhastighet på gatan.
Data Logging Shield. Modulens huvuduppgift är att spela in data från sensorer på ett SD-kort i fullformat upp till 32 Gb med stöd för FAT32-filsystemet. För att spela in på ett micro SD-kort måste du köpa en adapter. Denna sköld kan användas som ett förvar med information, till exempel vid inspelning av data från en DVR. Produktion av det amerikanska företaget Adafruit Industries.
SD-kortsköld. En enklare och billigare version av föregående modul. Sådana tillägg släpps av många tillverkare.
EtherNet Shield. Den officiella modulen för anslutning av Arduino till Internet utan dator. Det finns ett micro SD-kortplats, som låter dig spela in och skicka data via ett världsomspännande nätverk.
Wi-Fi-skärm. Tillåter dig att trådlöst utbyta information med stöd för kryptering. Tjänar för att ansluta till Internet och enheter som kan styras via Wi-Fi.
GPRS-sköld. Denna modul används som regel för att kommunicera ”smarta hem” med ägaren via mobiltelefon via SMS.
Smarta hemmoduler
Att ansluta tredjepartsmoduler och förmågan att arbeta med dem med det inbyggda programmeringsspråket är den största fördelen med det öppna Arduino-systemet jämfört med ”egenutvecklade” lösningar för ”smarta hem”. Det viktigaste är att modulerna har en beskrivning av de mottagna eller överförda signalerna.
Sätt att få information
Information kan matas in via digitala eller analoga portar. Det beror på vilken typ av knapp eller sensor som tar emot informationen och överför den till kortet.
Signalen till mikroprocessorn kan skickas av en person som använder två metoder för detta:
- Tryck på en knapp (knappar). Den logiska tråden går i detta fall till den digitala porten, som får värdet "0" för den frigjorda knappen och "1" om du trycker på den.
- Rotation av locket på den roterande potentiometern (motstånd) eller växla spakreglaget. I detta fall går den logiska tråden till den analoga porten. Spänningen passerar genom en analog till digital omvandlare, varefter data går till mikroprocessorn.
Knapparna används för att starta en händelse, till exempel för att slå på och stänga av lamporna, värme eller ventilera. Rotationsvred används för att ändra intensiteten - öka eller minska ljusstyrkan på ljuset, ljudvolymen eller fläktbladens rotationshastighet.
Sensorer används för att automatiskt bestämma parametrarna för miljön eller händelsens ursprung.
Följande sorter är mest efterfrågade för drift av ett "smarta hem":
- Ljudgivare. De digitala versionerna av den här enheten används för att utlösa en händelse med en pop eller röst. Analoga modeller låter dig känna igen och bearbeta ljud.
- Ljussensor. Dessa enheter kan fungera både i det synliga och det infraröda området. Det senare kan användas som brandvarningssystem.
- Temperaturgivare. För huset och gatan använder de olika modeller eftersom de utomhus skyddas bättre mot fukt. Det finns också fjärrenheter på kabeln.
- Fuktighetssensor. DHT11-modellen är lämplig för inomhusbruk och den dyrare DHT22 för utomhusbruk. Båda enheterna kan också ge en temperaturavläsning. Anslut till en digital port.
- Lufttrycksgivare. För att arbeta med Arduino-kort har Bosh-analoga barometrar bevisat sig: bmp180, bmp280. De mäter också temperaturen. Bme280-modellen kan kallas en väderstation, eftersom den dessutom ger ut ett luftfuktighetsvärde.
- Rörelse- och närvarosensorer. De används för säkerhetsändamål eller för att automatiskt tända ljuset.
- Regnsensor. Reagerar på vatten som kommer in i ytan. Det kan också användas för att utlösa ett larm om läckor i vatten- eller värmekretsen.
- Strömgivare. De används för att upptäcka trasiga elektriska apparater (utbrända lampor) eller för att analysera spänning för att förhindra överbelastning.
- Gasläckagesensor. Det används för att detektera och reagera på ökade koncentrationer av propan.
- Koldioxidgivare. Det används för att bestämma koncentrationen av koldioxid i vardagsrum och i specialrum som vinkällare där jäsning sker.
Det finns många olika sensorer för specifika uppgifter, till exempel för att mäta vikt, vattenflödeshastighet, avstånd, markfuktighet etc.
Många sensorer och sensorer kan tillverkas oberoende med hjälp av enklare komponenter. Det kommer att kosta mindre.Men till skillnad från användning av serienheter måste du spendera tid på kalibrering.
Instrument- och systemhantering
Förutom att samla in och analysera information, måste ett "smarta hem" svara på nya händelser. Närvaron av avancerad elektronik på moderna hushållsapparater ger dig tillgång till dem direkt med Wi-Fi, GPRS eller EtherNet. För Arduino-system implementerar de vanligtvis en mikroprocessor och högteknologiska enheter via Wi-Fi.
För att använda Arduino för att sätta på luftkonditioneringen vid en hög temperatur i huset, för att blockera TV: n och Internet på natten i barnrummet eller för att starta värmepannan vid ägarnas ankomst måste tre steg utföras:
- Installera Wi-Fi-modulen på moderkortet.
- Hitta oupptagna frekvenskanaler för att undvika systemkonflikt.
- Förstå instrumentkommandon och programåtgärder (eller använd färdiga bibliotek).
Förutom ”kommunikation” med datoriserade enheter uppstår ofta uppgifter relaterade till utförandet av mekaniska åtgärder. Till exempel kan du ansluta en servodrift eller en liten växellåda till kortet, som kommer att drivas från det.
Om det är nödvändigt att ansluta kraftfulla enheter som fungerar från en extern strömkälla, använd två alternativ:
- Inkludering i en reläkrets.
- Ansluter strömbrytaren och triac.
Elektrisk krets elektromagnetisk eller fast tillstånd relä stänger och öppnar en av ledningarna på kommando från mikroprocessorn. Deras huvudkarakteristik är den maximala tillåtna strömmen (till exempel 40 A), som kan passera genom den här enheten.
När det gäller anslutning av strömbrytaren (mosfet) för likström och triac för växelström har de ett lägre värde på tillåten ström (5-15 A), men kan öka belastningen smidigt. Det är av denna anledning som PWM-portar finns på korten. Den här egenskapen används för att kontrollera ljusstyrkan i belysning, fläkthastighet etc.
Med hjälp av reläer och strömbrytare kan du automatisera alla husets elektriska kretsar och starta generatoren i frånvaro av ström. Därför, på grundval av Arduino, är det realistiskt möjligt att självständigt tillhandahålla en lägenhet eller byggnad, inklusive alla särskilt viktiga funktioner - uppvärmning, vattenförsörjning, dränering, ventilation och säkerhetssystem.
Vill du att ditt hem ska vara smartare, men med programmering för "du"? I det här fallet rekommenderar vi att du tittar på färdiga lösningar från Xiaomi och Apple, som är lätta att installera och konfigurera även för en nybörjare. Och du kan till och med ge ut kommandon och kontrollera deras körning även från din smartphone.
Mer om smarta hem från Xiaomi och Apple i följande artiklar:
- Xiaomi smarta hem: designfunktioner, en översikt över huvudkomponenter och arbetselement
- Apple smart home: komplikationerna med att organisera hemkontrollsystem från apple-företaget
Slutsatser och användbar video om ämnet
Ett exempel på ett självmonterat ingångsnivå för ett "smarta hem":
Arduino-plattformens öppenhet möjliggör användning av komponenter från olika tillverkare. Detta gör det enkelt att designa ett "smart home" för användarförfrågningar. Därför, om det finns åtminstone obetydlig kunskap inom området programmering och anslutning av elektroniska enheter, är det värt att uppmärksamma detta system.
Känner du till Arduino-plattformen i praktiken och vill dela din erfarenhet med nykomlingar i det här företaget? Kanske vill du komplettera materialet ovan med användbara rekommendationer eller kommentarer? Skriv dina kommentarer under det här inlägget.
Om du har några frågor om att utforma ett automatiserat hussystem baserat på Arduino, fråga våra experter och andra besökare på webbplatsen i blocket nedan.