- Material som krävs:
- Arbetsmetodik:
- Förutsättningar:
- Arbeta med en AC-fjärrkontroll:
- Kretsschema och förklaring:
- Avkodning av dina fjärrkontrollsignaler:
- Huvud Arduino-program:
- Arbeta med automatiskt AC-temperaturkontrollsystem:
En AC (luftkonditionering) som en gång ansågs vara en lyxartikel och bara fanns i stora hotell, filmhallar, restauranger osv… Men nu har nästan alla en AC i vårt hem för att slå ut sommaren / vinter och de som har det, oroa sig för en vanlig sak. Det är deras höga elförbrukning och laddare på grund av det. I det här projektet ska vi göra en liten automatisk temperaturkontrollkrets som kan minimera elladdarna genom att variera AC-temperaturen automatiskt baserat på rumstemperaturen. Genom att variera den inställda temperaturen med jämna mellanrum kan vi undvika att få AC att arbeta för lägre temperaturvärden under lång tid och därmed få det att förbruka mindre ström.
De flesta av oss skulle ha upplevt en situation där vi måste ändra luftkonditioneringens inställda temperatur till olika värden under olika tider på dygnet, för att hålla oss bekväma hela tiden. För att automatisera denna process använder detta projekt en temperatursensor (DHT11) som läser den aktuella temperaturen i rummet och baserat på det värdet kommer det att skicka kommandon till växelströmmen via en IR-blaster som liknar AC: s fjärrkontroll. Växelströmmen reagerar på dessa kommandon som om den reagerar på fjärrkontrollen och justerar därmed temperaturen. När ditt rums temperatur ändras kommer Arduino också att justera din AC: s inställda temperatur för att behålla din temperatur precis som du vill att den ska vara. Låter coolt, eller hur?… Låt oss se hur man bygger en.
Material som krävs:
- Arduino Mega 2560
- TSOP1738 (HS0038)
- IR-ledning
- DHT11 temperatur- / luftfuktighetssensor
- Valfri färg-LED och 1K-motstånd (tillval)
- Bakbord
- Anslutande ledningar
Arbetsmetodik:
Alla fjärrkontroller i vårt hem som vi använder för att styra TV, hemmabio, AC etc arbetar med hjälp av IR Blasters. En IR-sprängare är inget annat än en IR-lysdiod som kan spränga en signal genom upprepad pulsering. denna signal kommer att läsas av mottagaren i elektronikenheten. För varje annan knapp på fjärrkontrollen sprängs en unik signal som efter läsning av mottagaren används för att utföra en viss fördefinierad uppgift. Om vi kan läsa denna signal som kommer ut från fjärrkontrollen kan vi sedan efterlikna samma signal med en IR-lysdiod när det någonsin behövs för att utföra just den uppgiften. Vi har tidigare skapat en IR Blaster-krets för Universal IR Remote.
En TSOP är en IR-mottagare som kan användas för att avkoda signalen som kommer från fjärrkontrollerna. Denna mottagare kommer att anslutas till Arduino för att signalera för varje knapp och sedan kommer en IR-ledning att användas med Arduino för att efterlikna signalen när det behövs. På så sätt kan vi få kontroll över vår AC med Arduino.
Nu är allt som återstår att läsa temperaturvärdet med DHT11 och instruera växelströmmen i enlighet med IR-signalerna. För att göra projektet mer attraktivt och användarvänligt har jag också lagt till en OLED-skärm som visar aktuell temperatur, luftfuktighet och AC-inställd temperatur. Läs mer om att använda OLED med Arduino.
Förutsättningar:
Detta automatiska AC-temperaturregulatorprojekt är något avancerat för nybörjarnivå, men med hjälp av några andra handledning kan någon bygga detta med tidsfrågor. Så om du är en absolut nybörjare i OLED, DHT11 eller TSOP, vänligen vänligen falla tillbaka till dessa självstudier nedan där du kan lära dig grunderna och hur du kommer igång med dessa. Listan kan tyckas vara lite lång, men lita på mig att det är enkelt och värt att lära sig, det kommer också att öppna dörrar för många nya projekt.
- Grundkrets med hjälp av TSOP och IR LED till under deras arbete
- Grundläggande gränssnittsguide för DHT11 med Arduino
- Grundläggande gränssnittsguide för OLED med Arduino
- Gränssnitt TSOP med Arduino för att läsa IR-fjärrvärden
Se till att du har en Arduino Mega och någon annan version av Arduino, eftersom kodstorleken är tung. Kontrollera också om du redan har installerat följande Arduino-bibliotek om du inte installerar dem från länken nedan
- IR Remote Library för TSOP och IR Blaster
- Adafruit Library för OLED
- GFX grafikbibliotek för OLED
- DHT11-sensorbibliotek för temperatursensor
Arbeta med en AC-fjärrkontroll:
Innan vi går in i projektet tar du lite tid och märker hur din AC-fjärrkontroll fungerar. AC-fjärrkontroller fungerar på ett lite annorlunda sätt jämfört med TV, DVD IR-fjärrkontroller. Det kan bara finnas 10-12 knappar på din fjärrkontroll, men de kommer att kunna skicka många olika typer av signaler. Det betyder att fjärrkontrollen inte skickar samma kod varje gång för samma knapp. När du till exempel sänker temperaturen med nedåtknappen för att göra den 24 ° C (grad Celsius) får du en signal med en uppsättning data, men när du trycker på den igen för att ställa in 25 ° C får du inte samma data eftersom temperaturen nu är 25 och inte 24. På samma sätt kommer koden för 25 också att variera för olika fläkthastighet, sömninställningar etc. Så låt oss inte lura med alla alternativ och bara koncentrera bara temperaturvärdena med ett konstant värde för andra inställningar.
Ett annat problem är mängden data som skickas för varje knapptryckning, normala fjärrkontroller med skicka antingen 24 bitar eller 48 bitar men en AC-fjärrkontroll kan skicka upp till 228 bitar eftersom varje signal innehåller mycket information som Temp, Fan Speed, Vilotid, svängstil etc. Detta är anledningen till att vi behöver en Arduino Mega för bättre lagringsalternativ.
Kretsschema och förklaring:
Lyckligtvis är hårdvaruinstallationen i detta automatiska AC-temperaturkontrollprojekt väldigt enkelt. Du kan helt enkelt använda ett brödbräda och göra anslutningarna enligt nedan.
Följande tabell kan också användas för att verifiera dina anslutningar.
S. nej: |
Komponentstift |
Arduino Pin |
1 |
OLED - Vcc |
5V |
2 |
OLED - Gnd |
Gnd |
3 |
OLED- SCK, D0, SCL, CLK |
4 |
4 |
OLED-SDA, D1, MOSI, Data |
3 |
5 |
OLED- RES, RST, RESET |
7 |
6 |
OLED-DC, A0 |
5 |
7 |
OLED- CS, Chip Select |
6 |
8 |
DHT11 - Vcc |
5V |
9 |
DHT11 - Gnd |
Gnd |
10 |
DHT11 - Signal |
13 |
11 |
TSOP - Vcc |
5V |
12 |
TSOP - Gnd |
Gnd |
13 |
IR Led - Anod |
9 |
14 |
IR Led - Katod |
Gnd |
När du är ansluten ska det se ut så här som visas nedan. Jag har använt en brödbräda för att städa saker, men du kan också du manliga till kvinnliga ledningar direkt för att ansluta alla komponenter
Avkodning av dina fjärrkontrollsignaler:
Det första steget för att styra din AC är att använda TSOP1738 för att avkoda IR-fjärrkontrollens IR-koder. Gör alla anslutningar som visas i kretsschemat och se till att du har installerat alla nämnda bibliotek. Öppna nu exempelprogrammet “ IRrecvDumpV2 ” som finns på File -> Exempel -> IRremote -> IRrecvDumpV2 . Ladda upp programmet till din Arduino Mega och öppna Serial Monitor.
Rikta fjärrkontrollen mot TSOP och tryck på valfri knapp för varje knapp du trycker på dess respektive signal kommer att läsas av TSOP1738, avkodas av Arduino och visas i Serial Monitor. För varje temperaturförändring på din fjärrkontroll får du olika data. Spara dessa data för att vi kommer att använda den i vårt huvudprogram. Din seriella bildskärm kommer att se ut ungefär så här, jag har också visat Word-filen där jag har sparat de kopierade uppgifterna.
Skärmdumpen visar koden för att ställa in temperaturen till 26 ° C för min AC-fjärrkontroll. Baserat på din fjärrkontroll får du en annan uppsättning koder. Kopiera på samma sätt koder för alla olika temperaturnivåer. Du kan kontrollera alla IR-koder för fjärrkontroll för luftkonditionering i Arduino-koden som ges i slutet av denna handledning.
Huvud Arduino-program:
Det kompletta Arduino-huvudprogrammet hittar du längst ner på den här sidan, men du kan inte använda samma program. Du måste ändra signalkodvärdena som vi just erhållit från exemplet ovan. Öppna huvudprogrammet på din Arduino IDE och bläddra ner till det område som visas nedan där du måste ersätta matrisvärdena med de värden som du fick för din fjärrkontroll.
Observera att jag har använt 10 matriser, varav två brukade slå på och stänga av växelströmmen medan resten 8 används för att ställa in olika temperaturer. Temp23 används till exempel för att ställa in 23 ° C på din växelström, så använd respektive kod i den matrisen. När det är klart måste du bara ladda upp koden till din Arduino och placera den mittemot din AC och njut av Cool Breeze.
Förklaringen till koden går som följer, först måste vi använda DHT1-temperatursensorn för att läsa temperaturen och luftfuktigheten och visa den på OLED. Detta görs med följande kod.
DHT.read11 (DHT11_PIN); // Läs Temp och luftfuktighet Measured_temp = DHT.temperature + temp_error; Measured_Humi = DHT. Luftfuktighet; // textvisning testar display.setTextSize (1); display.setTextColor (WHITE); display.setCursor (0,0); display.print ("Temperatur:"); display.print (Measured_temp); display.println ("C"); display.setCursor (0,10); display.print ("Luftfuktighet:"); display.print (Measured_Humi); display.println ("%");
När vi väl känner till rumstemperaturen måste vi bara jämföra den med önskat värde. Detta önskade värde är ett konstant värde som ställs in till 27 ° C (grad Celsius) i mitt program. Så baserat på denna jämförelse ställer vi in en motsvarande växelströmstemperatur enligt nedan
if (Measured_temp == Desired_temperature + 3) // Om AC är PÅ och uppmätt temp är mycket högt än önskat {irsend.sendRaw (Temp24, sizeof (Temp24) / sizeof (Temp24), khz); fördröjning (2000); // Skicka signal för att ställa in 24 * C AC_Temp = 24; }
Här ställs AC in på 24 ° C när den uppmätta temperaturen är 30 ° C (eftersom önskad temp är 27). På samma sätt kan vi skapa många If- loopar för att ställa in olika temperaturnivåer baserat på den uppmätta temperaturen som visas nedan.
if (Measured_temp == Desired_temperature-1) // Om AC är PÅ och uppmätt temp är lågt än önskat värde {irsend.sendRaw (Temp28, sizeof (Temp28) / sizeof (Temp28), khz); fördröjning (2000); // Skicka signal för att ställa in 28 * C AC_Temp = 28; } if (Measured_temp == Desired_temperature-2) // Om AC är PÅ och uppmätt temp är mycket lågt än önskat värde {irsend.sendRaw (Temp29, sizeof (Temp29) / sizeof (Temp29), khz); fördröjning (2000); // Skicka signal för att ställa in 29 * C AC_Temp = 29; } if (Measured_temp == Desired_temperature-3) // Om AC är PÅ och uppmätt temp är mycket mycket lågt önskat värde {irsend.sendRaw (Temp30, sizeof (Temp30) / sizeof (Temp30), khz); fördröjning (2000); // Skicka signal för att ställa in 30 * C AC_Temp = 30; }
Arbeta med automatiskt AC-temperaturkontrollsystem:
När din kod och hårdvara är redo, ladda upp koden till din styrelse och du bör märka att OLED visar något liknande det här.
Placera nu kretsen mittemot din luftkonditionering och du märker att AC: s temperatur kontrolleras baserat på rumstemperaturen. Du kan försöka höja temperaturen nära DHT11-sensorn för att kontrollera om växelströms temperaturen kontrolleras som visas i videon nedan.
Du kan justera programmet för att utföra önskad åtgärd; allt du behöver är koden som du fick från exemplets skiss. Hoppas att du förstod detta automatiska temperaturregulatorprojekt och tyckte om att bygga något som liknade det. Jag vet att det finns många ställen här att fastna, men oroa dig inte då. Använd bara forum- eller kommentarsektionen för att förklara ditt problem, och folk här kommer säkert att hjälpa dig att få det löst.