- Vereiste materialen:
- Werkwijze:
- Voorwaarden:
- Werking van een AC Remote:
- Schakelschema en uitleg:
- Decodering van uw AC-afstandssignalen:
- Hoofd Arduino-programma:
- Werking van het automatische AC-temperatuurregelsysteem:
Een airco (airconditioning) die ooit als een luxeartikel werd beschouwd en alleen te vinden was in grote hotels, filmzalen, restaurants enz… Maar nu heeft bijna iedereen een airco in huis om de zomer / winter en degenen die het hebben, maken zich zorgen over één gemeenschappelijk ding. Dat is hun hoge elektriciteitsverbruik en laders daardoor. In dit project gaan we een klein automatisch temperatuurregelcircuit maken dat de elektriciteitsladers kan minimaliseren door de AC-temperatuur automatisch te variëren op basis van de kamertemperatuur. Door de ingestelde temperatuur periodiek te variëren, kunnen we voorkomen dat de AC gedurende lange tijd werkt voor lagere temperatuurwaarden en dus minder stroom verbruikt.
De meesten van ons zouden een situatie hebben meegemaakt waarin we de ingestelde temperatuur van de airconditioner op verschillende momenten van de dag naar verschillende waarden moeten veranderen, om ons de hele dag comfortabel te houden. Om dit proces te automatiseren, gebruikt dit project een temperatuursensor (DHT11) die de huidige temperatuur van de kamer afleest en op basis van die waarde commando's naar de AC stuurt via een IR-blaster, vergelijkbaar met de afstandsbediening van de AC. De airco reageert op deze commando's alsof hij op zijn afstandsbediening reageert en past zo de temperatuur aan. Naarmate de temperatuur van uw kamer verandert, past de Arduino ook de ingestelde temperatuur van uw airco aan om uw temperatuur te behouden zoals u dat wilt. Klinkt goed toch?… Laten we eens kijken hoe we er een kunnen bouwen.
Vereiste materialen:
- Arduino Mega 2560
- TSOP1738 (HS0038)
- IR Led
- DHT11 Temperatuur- / Vochtigheidssensor
- Elke kleur LED en 1K weerstand (optioneel)
- Breadboard
- Verbindingsdraden
Werkwijze:
Alle afstandsbedieningen in ons huis die we gebruiken om tv, thuisbioscoop, AC enz. Te bedienen, werken met de hulp van IR Blasters. Een IR-blaster is niets anders dan een IR-led die een signaal zou kunnen blazen door herhaaldelijk pulsen; dit signaal wordt uitgelezen door de ontvanger in het elektronica toestel. Voor elke verschillende knop op de afstandsbediening wordt een uniek signaal uitgestraald dat na lezing door de ontvanger wordt gebruikt om een bepaalde vooraf gedefinieerde taak uit te voeren. Als we dit signaal kunnen lezen dat uit de afstandsbediening komt, kunnen we hetzelfde signaal nabootsen met een IR-led wanneer dat ooit nodig is om die specifieke taak uit te voeren. We hebben eerder een IR Blaster-circuit gemaakt voor Universal IR Remote.
Een TSOP is een IR-ontvanger die kan worden gebruikt om het signaal dat van de afstandsbedieningen komt te decoderen. Deze ontvanger zal worden gekoppeld aan Arduino om voor elke knop een signaal te geven en vervolgens wordt een IR-led gebruikt met Arduino om het signaal na te bootsen wanneer dat nodig is. Op deze manier kunnen we controle krijgen over onze AC met Arduino.
Nu hoeft u alleen nog de temperatuurwaarde te lezen met behulp van DHT11 en de AC dienovereenkomstig te instrueren met behulp van de IR-signalen. Om het project er aantrekkelijker en gebruiksvriendelijker uit te laten zien, heb ik ook een OLED-display toegevoegd dat de huidige temperatuur, vochtigheid en AC-ingestelde temperatuur weergeeft. Lees meer over het gebruik van OLED met Arduino.
Voorwaarden:
Dit automatische AC-temperatuurcontroller-project is enigszins geavanceerd voor beginnersniveau, maar met behulp van enkele andere tutorials kan iedereen dit in de loop van de tijd bouwen. Dus als je een absolute nieuweling bent van OLED, DHT11 of TSOP, val dan alstublieft terug op deze tutorials hieronder waar je de basis kunt leren en hoe je hiermee aan de slag kunt. De lijst lijkt misschien wat lang, maar geloof me, het is gemakkelijk en het leren waard, het zal ook deuren openen voor veel nieuwe projecten.
- Basisschakeling met behulp van TSOP en IR LED om onder hun werking te staan
- Basis interface-gids voor DHT11 met Arduino
- Basisinterface voor OLED met Arduino
- Interfacing TSOP met Arduino om IR-afstandswaarden te lezen
Zorg ervoor dat je een Arduino Mega en een andere versie van Arduino hebt, aangezien de codegrootte groot is. Controleer ook of je de volgende Arduino-bibliotheken al hebt geïnstalleerd, zo niet, via de onderstaande link
- IR Remote Library voor TSOP en IR Blaster
- Adafruit Library voor OLED
- GFX grafische bibliotheek voor OLED
- DHT11 sensorbibliotheek voor temperatuursensor
Werking van een AC Remote:
Voordat we verder gaan met het project, neem even de tijd en merk op hoe uw AC-afstandsbediening werkt. AC-afstandsbedieningen werken op een iets andere manier in vergelijking met tv, dvd-IR-afstandsbedieningen. Er zijn misschien maar 10-12 knoppen op uw afstandsbediening, maar ze kunnen veel verschillende soorten signalen verzenden. Dit betekent dat de afstandsbediening niet elke keer dezelfde code voor dezelfde knop verzendt. Als je bijvoorbeeld de temperatuur verlaagt met de knop omlaag om deze op 24 ° C (graden Celsius) te brengen, krijg je een signaal met een set gegevens, maar als je er nogmaals op drukt om 25 ° C in te stellen, krijg je niet hetzelfde gegevens aangezien de temperatuur nu 25 is en niet 24. Op dezelfde manier zal de code voor 25 ook variëren voor verschillende ventilatorsnelheden, slaapinstellingen enz. Dus laten we niet met alle opties spelen en alleen de temperatuurwaarden met een constante waarde concentreren voor andere instellingen.
Een ander probleem is de hoeveelheid gegevens die wordt verzonden voor elke druk op de knop, normale afstandsbedieningen sturen ofwel 24 bits of 48 bits, maar een AC-afstandsbediening kan tot 228 bits verzenden, omdat elk signaal veel informatie bevat, zoals Temp, Fan Speed, Slaaptiming, Swing-stijl enz. Dit is de reden waarom we een Arduino Mega nodig hebben voor betere opslagmogelijkheden.
Schakelschema en uitleg:
Gelukkig is de hardware-installatie van dit Automatic AC Temperature Control Project erg eenvoudig. U kunt eenvoudig een breadboard gebruiken en de verbindingen maken zoals hieronder weergegeven.
De volgende tabel kan ook worden gebruikt om uw verbindingen te verifiëren.
S.Nee: |
Component Pin |
Arduino-pin |
1 |
OLED - Vcc |
5V |
2 |
OLED - Gnd |
GND |
3 |
OLED- SCK, D0, SCL, CLK |
4 |
4 |
OLED- SDA, D1, MOSI, gegevens |
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 - Signaal |
13 |
11 |
TSOP - Vcc |
5V |
12 |
TSOP - Gnd |
GND |
13 |
IR Led - Anode |
9 |
14 |
IR Led - Kathode |
GND |
Als u eenmaal verbinding heeft gemaakt, zou het er ongeveer zo uit moeten zien als hieronder. Ik heb een Breadboard gebruikt om dingen op te ruimen, maar je kunt ook Male naar female draden direct aansluiten om alle componenten aan te sluiten
Decodering van uw AC-afstandssignalen:
De eerste stap om uw AC te bedienen, is door TSOP1738 te gebruiken om AC-afstandsbedieningen IR-codes te decoderen. Maak alle aansluitingen zoals weergegeven in het schakelschema en zorg ervoor dat u alle genoemde bibliotheken hebt geïnstalleerd. Open nu het voorbeeldprogramma “ IRrecvDumpV2 ” dat te vinden is onder Bestand -> Voorbeelden -> IRremote -> IRrecvDumpV2 . Upload het programma naar je Arduino Mega en open de seriële monitor.
Richt je afstandsbediening op TSOP en druk op een willekeurige knop, voor elke knop die je indrukt, wordt het bijbehorende signaal gelezen door de TSOP1738, gedecodeerd door Arduino en weergegeven in de seriële monitor. Voor elke verandering in temperatuur op uw afstandsbediening krijgt u andere gegevens. Bewaar deze gegevens, want we zullen ze in ons hoofdprogramma gebruiken. Je seriële monitor zal er ongeveer zo uitzien, ik heb ook het Word-bestand laten zien waarop ik de gekopieerde gegevens heb opgeslagen.
De schermafbeelding toont de code voor het instellen van de temperatuur op 26 ° C voor mijn AC-afstandsbediening. Op basis van uw afstandsbediening krijgt u een andere set codes. Kopieer op dezelfde manier de codes voor alle verschillende temperatuurniveaus. U kunt alle IR-codes van de afstandsbediening van de airconditioner controleren in de Arduino-code die aan het einde van deze tutorial wordt gegeven.
Hoofd Arduino-programma:
Het volledige Arduino-hoofdprogramma is onderaan deze pagina te vinden, maar je kunt niet hetzelfde programma gebruiken. U moet de signaalcodewaarden wijzigen die we zojuist hebben verkregen uit de voorbeeldschets hierboven. Open het hoofdprogramma op je Arduino IDE en scrol omlaag naar dit gedeelte dat hieronder wordt weergegeven, waar je de matrixwaarden moet vervangen door de waarden die je hebt verkregen voor je afstandsbediening.
Merk op dat ik 10 arrays heb gebruikt waarvan er twee werden gebruikt om de AC AAN en UIT te zetten, terwijl de rest 8 wordt gebruikt om een andere temperatuur in te stellen. Temp23 wordt bijvoorbeeld gebruikt om 23 ° C op uw AC in te stellen, dus gebruik de respectieve code in die Array. Zodra dat is gebeurd, hoeft u alleen maar de code naar uw Arduino te uploaden en deze tegenover uw AC te plaatsen en te genieten van de Cool Breeze.
De uitleg van de code gaat als volgt, eerst moeten we de DHT1 temperatuursensor gebruiken om de temperatuur en vochtigheid af te lezen en weer te geven op de OLED. Dit wordt gedaan door de volgende code.
DHT.read11 (DHT11_PIN); // Lees de temperatuur en vochtigheid Measured_temp = DHT.temperature + temp_error; Measured_Humi = DHT.humidity; // tekstweergave tests display.setTextSize (1); display.setTextColor (WIT); display.setCursor (0,0); display.print ("Temperatuur:"); display.print (Measured_temp); display.println ("C"); display.setCursor (0,10); display.print ("Vochtigheid:"); display.print (Measured_Humi); display.println ("%");
Zodra we de temperatuur van de kamer kennen, hoeven we deze alleen maar te vergelijken met de gewenste waarde. Deze gewenste waarde is een constante waarde die in mijn programma is ingesteld op 27 ° C (graden Celsius). Dus op basis van deze vergelijking zullen we een overeenkomstige AC-temperatuur instellen zoals hieronder weergegeven
if (Measured_temp == Desired_temperature + 3) // Als AC AAN is en de gemeten temperatuur erg hoog is dan gewenst {irsend.sendRaw (Temp24, sizeof (Temp24) / sizeof (Temp24), khz); delay (2000); // Stuur signaal om 24 * C AC_Temp = 24 in te stellen; }
Hier wordt de AC ingesteld op 24 ° C wanneer de gemeten temperatuur 30 ° C is (aangezien de gewenste temperatuur 27 is). Evenzo kunnen we veel If- lussen maken om verschillende temperatuurniveaus in te stellen op basis van de gemeten temperatuur, zoals hieronder weergegeven.
if (Measured_temp == Desired_temperature-1) // Als AC AAN is en de gemeten temperatuur is laag dan de gewenste waarde {irsend.sendRaw (Temp28, sizeof (Temp28) / sizeof (Temp28), khz); delay (2000); // Stuur een signaal om 28 * C AC_Temp = 28 in te stellen; } if (Measured_temp == Desired_temperature-2) // Als AC AAN is en de gemeten temperatuur erg laag is dan de gewenste waarde {irsend.sendRaw (Temp29, sizeof (Temp29) / sizeof (Temp29), khz); delay (2000); // Stuur signaal om 29 * C AC_Temp = 29 in te stellen; } if (Measured_temp == Desired_temperature-3) // Als AC AAN is en de gemeten temperatuur is erg laag, gewenste waarde {irsend.sendRaw (Temp30, sizeof (Temp30) / sizeof (Temp30), khz); delay (2000); // Stuur signaal om 30 * C AC_Temp = 30 in te stellen; }
Werking van het automatische AC-temperatuurregelsysteem:
Wanneer uw code en hardware klaar zijn, upload de code naar uw bord en u zou moeten zien dat de OLED iets soortgelijks weergeeft.
Plaats nu het circuit tegenover uw airconditioner en u merkt dat de temperatuur van de airco wordt geregeld op basis van de kamertemperatuur. U kunt proberen de temperatuur in de buurt van de DHT11-sensor te verhogen om te controleren of de temperatuur van de AC wordt geregeld, zoals weergegeven in de onderstaande video.
U kunt het programma aanpassen om elke gewenste actie uit te voeren; alles wat je nodig hebt is de code die je uit de voorbeeldschets hebt gehaald. Ik hoop dat je dit project van de automatische temperatuurregelaar hebt begrepen en dat je ervan genoten hebt iets vergelijkbaars te bouwen. Ik weet dat er hier veel plaatsen zijn om vast te lopen, maar maak je dan geen zorgen. Gebruik gewoon het forum of commentaargedeelte om uw probleem uit te leggen en de mensen hier zullen u zeker helpen om het op te lossen.