- Arbetsförklaring:
- Avkodning av IR-fjärrkontrollsignaler med Arduino:
- Kretsbeskrivning:
- Kodbeskrivning:
Tidigare har vi täckt många typer av hemautomatiseringar med olika tekniker som DTMF-baserad hemautomation, PC-styrd hemautomation med Arduino, Bluetooth-styrd hemautomation. I det här projektet använder vi IR-baserad trådlös kommunikation för att styra hushållsapparater. I detta projekt används Arduino för att styra hela processen. Vi skickar några kommandon till styrsystemet med IR TV / DVD / MP3-fjärrkontroll för att styra AC-apparater. Efter att ha mottagit signal från IR-fjärrkontrollen skickar Arduino relaterad signal till reläer som är ansvariga för att slå på eller stänga av hushållsapparaterna via en relädrivare.
Arbetsförklaring:
Att arbeta med detta projekt är lätt att förstå. När vi trycker på valfri knapp på IR Remote så skickar fjärrkontrollen en kod i form av tåg med kodade pulser med 38 KHz moduleringsfrekvens. Dessa pulser tas emot av TSOP1738- sensorn och läses av Arduino och sedan avkodar Arduino mottaget pulståg till ett hex-värde och jämför det avkodade värdet med det fördefinierade hex-värdet för den tryckta knappen. Om någon matchning inträffar utför Arduino relativ funktion och motsvarande resultat visas också på 16x2 LCD med hjälp av lämpliga kommandon. Här i det här projektet har vi använt 3 glödlampor i olika färger, för demonstration som indikerar fläkt, ljus och TV.
Det finns många typer av IR-fjärrkontroll finns tillgängliga för olika enheter, men de flesta arbetar på 38KHz frekvenssignal. Här i detta projekt styr vi hushållsapparater med IR-fjärrkontroll. För att upptäcka IR-fjärrsignal använder vi TSOP1738 IR-mottagare. Denna TSOP1738-sensor känner av 38 kHz frekvenssignal. Arbetet med IR-fjärrkontrollen och TSOP1738 kan beskrivas i detalj i den här artikeln: IR-sändare och mottagare
Komponenter:
- Arduino UNO
- TSOP1738
- IR TV / DVD-fjärrkontroll
- ULN2003
- Reläer 5 volt
- Glödlampa med hållare
- Anslutande ledningar
- Brödbräda
- 16x2 LCD
- Strömförsörjning
- PVT
- IC 7805
Här i det här projektet har vi använt sifferknappen 7, 8 och 9 på IR-fjärrkontrollen, för att styra fläkt, ljus respektive TV och PÅ / AV-knappen (strömbrytaren) används för att sätta PÅ och AV alla apparater samtidigt.
Här har vi använt växlingsmetod för ON och OFF för den enda hushållsapparaten. Växla metod är inget annat än att få det oavsett om du trycker på knappen till och med flera gånger eller det udda antalet gånger. Detta hittas genom att få påminnelsen efter att ha delat den med 2 (i% 2), om det finns någon påminnelse kommer enheten att sättas PÅ och om påminnelsen är 0 kommer den att stängas AV. Antag att tangent 7 trycks ner på fjärrkontrollen, så skickar fjärrkontrollen en signal till Arduino via TSOP IR-mottagare. Sedan avkodar Arduino det och lagrar det avkodade värdet i resultatvariabeln. Nu har resultatvariabeln ett hex-värde 0x1FE00FF, efter att ha matchat det med det fördefinierade hex-värdet för tangent 7 (se bilden ovan) slår Arduino PÅ fläkten. Nu när vi trycker på samma tangent (tangent 7) igen skickar IR samma kod. Arduino får samma kod och matchas med samma kod som tidigare men den här gången stängde Fan AV på grund av att du byter bit (i% 2).
Avkodning av IR-fjärrkontrollsignaler med Arduino:
Här är en lista över DVD NEC-typ Fjärravkodade utgångskoder:
Om du inte känner till den avkodade utgången för din IR-fjärrkontroll kan den enkelt hittas, följ bara dessa steg:
- Ladda ner IR-fjärrbiblioteket härifrån
- Packa upp den och placera den i din Arduino 'Bibliotek' -mapp. Byt namn på den extraherade mappen till IRremote.
- Kör programmet nedan från din Arduino och öppna fönstret Serial Monitor i Arduino IDE. Tryck nu på valfri IR-fjärrknapp och se motsvarande avkodade hex-utdata i fönstret Serial Monitor.
* IRremote: IRrecvDemo - visar mottagning av IR-koder med IRrecv * En IR-detektor / demodulator måste anslutas till ingången RECV_PIN. * Version 0.1 juli 2009 * Copyright 2009 Ken Shirriff * http://arcfn.com * / #include
Ovanstående program är hämtat från IRremote-bibliotekets "exempel" -mapp, du kan kolla in fler exempel för att lära dig mer om hur du använder IR-fjärrkontrollen. Så det är så vi avkodade IR-fjärrutgången.
Kretsbeskrivning:
Anslutningar av denna krets är mycket enkla här en flytande kristall-skärm används för att visa status för hushållsapparater som är direkt ansluten till arduino i 4-bitars läge. Datastift på LCD, nämligen RS, EN, D4, D5, D6, D7 är anslutna till arduino digitala stift nummer 6, 7, 8, 9, 10, 11. Och utgångsstiftet på TSOP1738 är direkt anslutet till digitalt stift nummer 14 (A) av Arduino. Och Vcc-stift är anslutet till en +5 volt och GND-stift ansluten vid jordterminalen i kretsen. En reläförare, nämligen ULN2003, används också för att köra reläer. 5 volt SPDT 3-reläer används för att styra LIGHT, FAN och TV. Och reläer är anslutna till arduino-stift nummer 3, 4 och 5 via relädrivrutinen ULN2003 för att styra LIGHT, FAN respektive TV.
Kodbeskrivning:
Vid programmering av en del av detta projekt Först och främst inom programmering inkluderar vi bibliotek för IR-fjärrkontroll som är lätt tillgängligt på Google. Och definiera stift och deklarera variabler.
#omfatta
Och inkludera sedan en rubrik för flytande kristallvisning och sedan definierar vi data och kontrollstift för LCD och hushållsapparater.
#omfatta
Efter det måste vi initialisera LCD-skärmen och ge riktning för stift som används för fläkt, ljus och TV.
ogiltig installation () {Serial.begin (9600); lcd.begin (16,2); pinMode (Fan, OUTPUT); pinMode (Light, OUTPUT); pinMode (TV, OUTPUT);
Som redan förklarats används nedan en del av koden för att jämföra det mottagna hex-värdet med redan definierad hex-kod för den knappen. Om den matchar utförs en relativ operation med lämpliga funktioner som anges i koden.
void loop () {if (irrecv.decode (& results)) {Serial.println (results.value, HEX); fördröjning (100); lcd.setCursor (0,0); lcd.print ("Fan Light TV"); if (resultat.värde == 0x1FE00FF) {i ++; int x = i% 2; digitalWrite (Fan, x);