Smart hem baserat på Arduino-kontroller: design och organisation av kontrollerat utrymme
Utvecklingen av automationsverktyg har lett till skapandet av komplexa system som förbättrar människors livskvalitet.Många välkända tillverkare av elektronik och mjukvarumiljöer erbjuder färdiga standardlösningar för olika objekt.
Även en oerfaren användare kan utveckla oberoende projekt och montera ett "smart hem" med Arduino för att passa deras 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 titta på principen för att skapa och huvudfunktionerna i ett automatiserat hem baserat på Arduino-enheter. Vi kommer också att överväga de typer av kort som används och huvudmodulerna i systemet.
Innehållet i artikeln:
Skapa system på Arduino-plattformen
Arduino är en plattform för att utveckla elektroniska enheter med automatisk, halvautomatisk eller manuell styrning. Den är gjord enligt principen om en designer med tydligt definierade regler för interaktion mellan element. Systemet är öppet, vilket gör att tredjepartstillverkare kan delta i utvecklingen av det.
Klassisk «smart hus» består av automatiserade block som utför följande funktioner:
- samla in nödvändig information genom sensorer;
- analysera data och fatta beslut med hjälp av en programmerbar mikroprocessor;
- implementera de beslut som fattas genom att utfärda kommandon till olika enheter.
Arduino-plattformen är bra just för att den inte är låst till en specifik tillverkare, utan låter konsumenten välja de komponenter som passar honom. Deras urval är enormt, så du kan förverkliga nästan vilken idé som helst.
Vi rekommenderar att du kollar in det bästa smarta enheter för hemmet.
Utöver mängden anslutna enheter ger programmeringsmiljön implementerad i C++ variation. Användaren kan inte bara använda de skapade biblioteken, utan också programmera systemkomponenternas reaktion på nya händelser.
Huvudkortselement
Huvudelementet i ett "smart hem" är en eller flera centrala (moder)brädor. De är ansvariga för samverkan mellan alla element. Först efter att ha identifierat de uppgifter som måste lösas kan du börja välja systemets huvudnod.
Moderkortet kombinerar följande element:
- Mikrokontroller (processor). Dess huvudsakliga syfte är att mata ut och mäta spänning i portarna i intervallet 0-5 eller 0-3,3 V, lagra data och utföra beräkningar.
- Programmerare (inte tillgänglig på alla kort). Med den här enheten skrivs ett program in i mikrokontrollerns minne enligt vilket "smarta hem" kommer att fungera. Den är ansluten till en dator, surfplatta, smartphone eller annan enhet med hjälp av ett USB-gränssnitt.
- Spänningsregulator. En 5 volt enhet krävs för att driva hela systemet.
Flera brädmodeller tillverkas under varumärket Arduino.De skiljer sig från varandra i formfaktor (storlek), antal portar och minneskapacitet. Det är baserat på dessa indikatorer som du måste välja en lämplig enhet.
Det finns två typer av portar:
- digital, som är markerade på tavlan med bokstäver "d";
- analog, som är markerade med bokstaven "a".
Tack vare dem kommunicerar mikrokontrollern med anslutna enheter. Vilken port som helst kan fungera både för att ta emot en signal och att skicka ut den. Digitala portar märkta "pwm" är avsedda för in- och utmatning av en PWM-signal (pulsbreddsmodulering).
Därför, innan du köper en bräda, är det nödvändigt att åtminstone ungefärligt uppskatta nivån på dess belastning på olika enheter. Detta gör att du kan bestämma det nödvändiga antalet portar av alla typer.
Det bör förstås att det smarta hemsystemet inte nödvändigtvis behöver vara kopplat till en styrenhet baserad på ett enda moderkort. Funktioner som att till exempel slå på artificiell belysning i närområdet beroende på tid på dygnet och att upprätthålla en vattenreserv i ackumulatortanken är oberoende av varandra.
Ur synvinkeln att säkerställa det elektroniska systemets tillförlitlighet är det bättre att dela upp orelaterade uppgifter i olika block, vilket Arduino-konceptet gör det enkelt att implementera. Om du kombinerar många enheter på ett ställe, kan mikroprocessorn överhettas, konflikter mellan programbibliotek och svårigheter att hitta och eliminera mjukvaru- och hårdvarufel.
Varje mikroprocessor är utrustad med tre typer av minne:
- Flashminne. Huvudminne där systemhanteringsprogramkod lagras. En liten del av den (3-12%) är upptagen av ett inbyggt bootloader-program.
- SRAM. RAM, där temporär data som behövs för att köra programmet lagras. Den har hög drifthastighet.
- EEPROM Långsammare minne där data också kan lagras.
Huvudskillnaden mellan typer av minne för datalagring är att när strömmen stängs av går informationen som är registrerad i SRAM förlorad, men finns kvar i EEPROM. Men den icke-flyktiga typen har också en nackdel - ett begränsat antal skrivcykler. Detta är något att tänka på när du skapar dina egna applikationer.
Till skillnad från användningen av Arduino inom robotik kräver de flesta smarta hemuppgifter inte mycket minne vare sig för program eller för att lagra information.
Typer av brädor för montering av ett smart hem
Låt oss titta på huvudtyperna av brädor som oftast används vid montering av smarta hemsystem.
Visa #1 - Arduino Uno och dess derivat
De vanligaste korten i smarta hemsystem är 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 släpptes en modifiering - Uno Wi-Fi, som innehåller en integrerad ESP8266-modul som låter dig utbyta information med andra enheter som använder standarden 802.11 b/g/n.
Skillnaden mellan Arduino Nano och dess större motsvarighet är att den inte har ett eget eluttag på 12 V. Detta görs för att uppnå en mindre enhetsstorlek, vilket gör att den enkelt kan gömmas 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 2 fler analoga portar jämfört med Uno.
Det finns en annan modifiering av Uno-brädet - Arduino Mini. Den är ännu mindre än Nano, och mycket svårare att arbeta med. För det första skapar bristen på en USB-port ett problem med firmware, eftersom du måste använda en USB-seriell omvandlare för detta. För det andra är det här kortet mer kräsen när det kommer till strömförsörjning - det är nödvändigt att tillhandahålla ett inspänningsområde på 7-9 V.
Av de skäl som beskrivs ovan används Arduino Mini-kortet sällan för drift av smarta hem. Det används vanligtvis antingen inom robotteknik eller i genomförandet av färdiga projekt.
Visa #2 - Arduino Leonardo och Micro
Arduino Leonardo-brädet liknar Uno, men lite kraftfullare. En annan intressant egenskap hos denna modell är att den identifieras som ett tangentbord, mus eller joystick när den är ansluten till en dator. Därför används det ofta för att skapa originalspelenheter och simulatorer.
Huvudparametrarna för Arduino Leonardo är följande:
- processor: ATMega32u4 (8 bitar, 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 framgår av listan över parametrar har Leonardo fler portar, vilket gör att denna modell kan laddas med ett större antal sensorer.
Även för Leonardo finns en miniatyranalog med absolut identiska egenskaper som kallas Micro. Den har ingen 12V strömförsörjning och istället för full USB-ingång finns ett chip för en mini-USB-kabel.
Leonardo-modifieringen som heter Esplora är en ren spelmodell och lämpar sig inte för behoven hos ett "smart hem".
Visa #3 - Arduino 101, Arduino Zero och Arduino MKR1000
Ibland kräver driften av smarta hemsystem implementerade på basis av Arduino mycket datorkraft, vilket 8-bitars mikrokontroller inte kan tillhandahålla. Uppgifter som röst- eller bildigenkänning kräver en snabb processor och en betydande mängd RAM-minne för sådana enheter.
För att lösa sådana specifika problem används kraftfulla kort som fungerar enligt Arduino-konceptet. Antalet portar de har är ungefär detsamma som Uno- eller Leonardo-brädorna.
Arduino 101 är ett av de enklaste att använda men ändå kraftfulla korten, och har följande egenskaper:
- processor: Intel Curie (32 bitar, 32 MHz);
- flashminne: 196 KB;
- SRAM: 24 KB;
- EEPROM: nej.
Dessutom är brädan utrustad med BLE-funktionalitet (Bluetooth Low Energy) med möjlighet att enkelt koppla ihop färdiga lösningar, såsom pulssensor, ta emot information om vädret utanför fönstret, skicka textmeddelanden m.m. Ett gyroskop och en accelerometer är också integrerade i enheten, men de används främst inom robotik.
Ett annat liknande kort, Arduino Zero, har följande indikatorer:
- processor: SAM-D21 (32 bitar, 48 MHz);
- flashminne: 256 KB;
- SRAM: 32 KB;
- EEPROM: nej.
En utmärkande egenskap hos denna modell är närvaron av en inbyggd debugger (EDBG). Med dess hjälp är det mycket lättare att hitta fel vid programmering av kortet.
Arduino MKR1000 är en annan modell som är lämplig för högeffektsdatorer. Den har en mikroprocessor och minne som liknar Zero. Dess huvudsakliga skillnad är närvaron av ett integrerat Wi-Fi-chip med 802.11 b/g/n-protokollet och ett kryptochip med stöd för SHA-256-algoritmen för att skydda överförda data.
Visa #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 övervaka avläsningarna från två temperatursensorer (den andra används som en kontroll) och, i enlighet med algoritmen, justera spjällets position, som bestämmer volymen av varm luft som kommer in.
Om det finns fler än 10 sådana zoner i en stuga, behövs mer än 30 portar för att styra hela systemet. Naturligtvis kan du använda flera Uno-typkort under gemensam kontroll av ett av dem, men detta skapar ytterligare växlingssvårigheter. I det här fallet är det lämpligt att använda modeller av Mega-familjen.
Arduino Mega-kortet är baserat på en ganska enkel 8-bitars 16 MHz mikroprocessor atTMega1280.
Den har en stor mängd minne:
- flashminne: 128 KB;
- SRAM: 8 KB;
- EEPROM: 4 KB.
Men dess främsta fördel är närvaron av många hamnar:
- antal digitala portar: 54;
- varav med PWM-funktion: 15;
- antal analoga portar: 16.
Denna bräda har två moderna varianter:
- Mega 2560 är baserad på mikroprocessorn atTMega2560, kännetecknad av en stor mängd flashminne - 256 KB;
- Mega ADK, förutom mikroprocessorn atTMega2560, är 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 en telefon till en USB-ingång är följande situation möjlig: om telefonen behöver laddas börjar den "dra" den från kortet. Därför finns det ett ytterligare krav på elkällan - den måste ge en ström på 1,5 ampere. Vid strömförsörjning via batterier måste detta tillstånd beaktas.
Due är en annan modell från Arduino som kombinerar kraften hos en mikroprocessor med ett stort antal portar.
Dess egenskaper är följande:
- processor: Atmel SAM3X8E (32 bitar, 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-bitars upplösningen för Arduino, som är gjord för kompatibilitet med tidigare modeller, och i 12-bitars, vilket gör att du kan ta emot en mer exakt signal.
Funktioner för modulinteraktion via portar
Alla moduler som ska anslutas till kortet har minst tre utgångar. Två av dem är kraftledningar, d.v.s. "jord", såväl som 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änds speciella ledningar grupperade i grupper om 3, som ibland kallas byglar.
Eftersom Arduino-modeller vanligtvis bara har 1 spänningsport och 1-2 jordportar, för att kunna ansluta flera enheter måste du antingen löda ledningar eller använda breadboards.
Lödning är mer tillförlitlig och används i enheter som utsätts för fysisk påverkan, såsom kontrollkort för robotar och quadcoptrar. För ett smart hem är det bättre att använda utvecklingskort, eftersom det är enklare både när du installerar och tar bort modulen.
Vissa modeller (till exempel Arduino Zero och MKR1000) har en driftspänning på 3,3 V, så om ett högre värde appliceras på portarna kan kortet skadas. All information om strömförsörjning finns tillgänglig i den tekniska dokumentationen för enheten.
Tilläggstavlor (sköldar)
För att öka moderkortens kapacitet används Shields - ytterligare enheter som utökar funktionaliteten. De är tillverkade för en specifik formfaktor, vilket skiljer dem från moduler som är anslutna till portar. Sköldar är dyrare än moduler, men det är lättare att arbeta med dem. De är även utrustade med färdiga bibliotek med kod, vilket påskyndar utvecklingen av egna styrprogram för ett smart hem.
Proto- och sensorsköldar
Dessa två standardsköldar tillför ingen speciell funktionalitet. De används för mer kompakt och bekväm anslutning av ett stort antal moduler.
Proto Shield är en nästan komplett kopia av originalet vad gäller portar, och du kan limma ett utvecklingskort i mitten av modulen. Detta gör det lättare att montera strukturen. 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-omkopplingskort.
De har ingen bradboard utan alla portstift är individuellt försedda med ström och jord. Detta gör att du slipper trassla in i ledningar och byglar.
Detta kort har även kontakter för att enkelt ansluta flera moduler: Bluetooth, SD-kort, RS232 (COM-port), radio och ultraljud.
Anslutning av extra funktionalitet
Sköldar med funktionalitet integrerad i dem är designade för att lösa komplexa men typiska problem. Om du behöver implementera originalidéer är det bättre att välja en lämplig modul.
Motorsköld. Den är utformad för att styra hastigheten och rotationen hos lågeffektmotorer. Originalmodellen är utrustad med ett L298-chip och kan driva två DC-motorer eller en servo samtidigt. Det finns också en kompatibel tredjepartsdel som har två L293D-chips med möjlighet att styra dubbelt så många enheter.
Reläsköld. En ofta använd modul i smarta hemsystem. Ett kort med fyra elektromekaniska reläer, som vart och ett tillåter passage av ström med en kraft på upp till 5A. Detta räcker för att automatiskt slå på och av kilowattenheter eller belysningslinjer designade för 220 V växelström.
LCD-skärm. Låter dig visa information på en inbyggd skärm, som kan uppgraderas till en TFT-enhet. Denna utbyggnad används ofta för att skapa väderstationer med temperaturavläsningar i olika bostadsutrymmen, uthus, garage, samt temperatur, luftfuktighet och vindhastighet utomhus.
Dataloggningssköld. Modulens huvuduppgift är att spela in data från sensorer på ett fullformat SD-kort upp till 32 Gb med stöd för filsystemet FAT32. För att spela in på ett micro SD-kort måste du köpa en adapter.Denna sköld kan användas som informationslagring, till exempel vid inspelning av data från en DVR. Tillverkad av det amerikanska företaget Adafruit Industries.
SD-kortsköld. En enklare och billigare version av föregående modul. Många tillverkare tillverkar sådana förlängningar.
Ethernet Shield. Officiell modul för att ansluta Arduino till Internet utan dator. Det finns en plats för ett micro SD-kort, vilket gör att du kan spela in och skicka data via World Wide Web.
Wi-Fi-sköld. Tillåter trådlöst utbyte av information med stöd för krypteringsläge. Fungerar för att ansluta till Internet och enheter som kan styras via Wi-Fi.
GPRS-sköld. Denna modul används vanligtvis för att kommunicera mellan ett smart hem och dess ägare via mobiltelefon via SMS.
Smarta hemmoduler
Att ansluta moduler från tredjepartstillverkare och möjligheten att arbeta med dem med hjälp av det inbyggda programmeringsspråket är den största fördelen med det öppna Arduino-systemet jämfört med "märkta" smarta hemlösningar. Huvudsaken är att modulerna har en beskrivning av de mottagna eller sända signalerna.
Sätt att få information
Informationsinmatning kan göras via digitala eller analoga portar. Det beror på vilken typ av knapp eller sensor som tar emot informationen och överför den till kortet.
En signal till mikroprocessorn kan skickas av en person som använder två metoder för detta:
- Att trycka på en knapp (knapp). Den logiska ledningen går i detta fall till den digitala porten, som får värdet "0" om knappen släpps och "1" om den trycks ned.
- Vridning av locket på den roterande potentiometern (motståndet). eller växla motorspaken. I det här fallet går den logiska ledningen till den analoga porten. Spänningen går genom en analog-till-digital-omvandlare, varefter data går till mikroprocessorn.
Knappar används för att starta en händelse, till exempel tända och släcka ljus, värme eller ventilation. Vridknappar används för att ändra intensiteten - öka eller minska ljusstyrkan på ljuset, volymen på ljudet eller rotationshastigheten för fläktbladen.
Sensorer används för att automatiskt fastställa miljöparametrar eller ursprunget till en händelse.
Följande typer är mest efterfrågade för drift av smarta hem:
- Ljudsensor. Digitala versioner av denna enhet används för att aktivera en händelse med klapp eller röst. Analoga modeller låter dig känna igen och bearbeta ljud.
- Ljussensor. Dessa enheter kan fungera i både synligt och infrarött område. Det senare kan användas som brandvarningssystem.
- Temperatursensor. Olika modeller används för inomhus och utomhus, eftersom de externa är bättre skyddade mot fukt. Det finns också fjärrenheter på tråden.
- Luftfuktighetssensor. Modellen DHT11 är lämplig för inomhusbruk och den dyrare DHT22 för utomhusbruk. Båda enheterna kan också ge temperaturavläsningar. Anslut till en digital port.
- Lufttrycksgivare. Analoga barometrar från Bosh har visat sig fungera bra med Arduino-kort: bmp180, bmp280. De mäter även temperatur.Modellen bme280 kan kallas en väderstation, eftersom den också ger ett extra fuktvärde.
- Rörelse- och närvarosensorer. De används av säkerhetsskäl eller för att automatiskt tända ljus.
- Regnsensor. Reagerar på att vatten kommer in i dess yta. Den kan också användas för att utlösa ett larm för läckor i VVS- eller värmekretsen.
- Strömsensor. De används för att upptäcka icke-fungerande elektriska apparater (utbrända lampor) eller för att analysera spänning för att förhindra överbelastning.
- Gasläckagesensor. Används för att upptäcka och svara på ökade koncentrationer av propan.
- Koldioxidsensor. Den används för att bestämma koncentrationen av koldioxid i vardagsrum och i speciella rum, som vinkällare, där jäsning sker.
Det finns många fler olika sensorer för specifika uppgifter, till exempel för att mäta vikt, vattenflödeshastighet, avstånd, markfuktighet m.m.
Många sensorer och sensorer kan tillverkas oberoende av enklare komponenter. Det kommer att kosta mindre. Men till skillnad från användningen av seriella enheter måste du lägga tid på kalibrering.
Styrning av enheter och system
Förutom att samla in och analysera information måste ett "smart hem" svara på nya händelser. Närvaron av avancerad elektronik på moderna hushållsapparater gör att du kan komma åt dem direkt med Wi-Fi, GPRS eller EtherNet. Vanligtvis implementerar Arduino-system växling mellan en mikroprocessor och högteknologiska enheter via Wi-Fi.
För att använda Arduino för att slå på luftkonditioneringen när temperaturen i huset är hög, blockera TV:n och internet på natten i barnrummet eller starta värmepannan när ägarna kommer, måste du utföra tre steg:
- Installera Wi-Fi-modulen på moderkortet.
- Hitta lediga frekvenskanaler för att undvika systemkonflikter.
- Förstå enhetskommandon och programåtgärder (eller använd färdiga bibliotek).
Förutom att "kommunicera" med datoriserade enheter uppstår ofta uppgifter som involverar att utföra vissa mekaniska åtgärder. Till exempel kan du ansluta en servodrift eller en liten växellåda till kortet, som kommer att drivas från den.
Om det är nödvändigt att ansluta kraftfulla enheter som drivs från en extern strömkälla, används två alternativ:
- Inkludering i reläkretsen.
- Ansluter en strömbrytare och triac.
Ingår i en elektrisk krets elektromagnetiska eller halvledarrelä stänger och öppnar en av ledningarna enligt ett kommando som kommer från mikroprocessorn. Deras huvudkaraktär är den maximalt tillåtna strömmen (till exempel 40 A) som kan passera genom denna enhet.
När det gäller att ansluta en strömbrytare (mosfet) för likström och en triac för växelström, har de en lägre tillåten ström (5-15 A), men kan smidigt öka belastningen. Det är för detta ändamål som PWM-portar finns på korten. Denna egenskap används vid reglering av ljusstyrka, fläkthastighet, etc.
Med hjälp av reläer och strömbrytare kan du helt automatisera alla elektriska kretsar hemma och starta generatorn i frånvaro av ström. Därför är det, på basis av Arduino, möjligt att implementera autonomt tillhandahållande av en lägenhet eller byggnad, inklusive alla särskilt viktiga funktioner - uppvärmning, vattenförsörjning, avlopp, ventilation och säkerhetssystem.
Vill du att ditt hem ska bli smartare, men med programmering för "dig"? I det här fallet rekommenderar vi att titta på färdiga lösningar från Xiaomi och Apple, som är enkla att installera och konfigurera även för en nybörjare. Och du kan ställa in kommandon och kontrollera deras implementering även från din smartphone.
Läs mer om smarta hem från Xiaomi och Apple i följande artiklar:
- Xiaomi smarta hem: designfunktioner, översikt över huvudkomponenter och arbetselement
- Apples smarta hem: finesser i att organisera hemkontrollsystem från Apple-företaget
Slutsatser och användbar video om ämnet
Ett exempel på ett självmonterat arbetsstycke på ingångsnivå för ett "smart hem":
Öppenheten i Arduino-plattformen tillåter användning av komponenter från olika tillverkare. Detta gör det enkelt att designa ett "smart hem" för att passa användarens behov. Därför, om du har minst mindre kunskap inom området programmering och anslutning av elektroniska enheter, är detta system värt att uppmärksamma.
Är du bekant med Arduino-plattformen i praktiken och vill dela din erfarenhet med nykomlingar i denna fråga? Kanske skulle du vilja komplettera ovanstående material med användbara rekommendationer eller kommentarer? Skriv dina kommentarer under denna publikation.
Om du har några frågor om att designa ett automatiserat hemsystem baserat på Arduino, ställ dem till våra experter och andra webbplatsbesökare i blocket nedan.