- Nødvendige materialer:
- Arbejdsmetode:
- Forudsætninger:
- Arbejde med en AC-fjernbetjening:
- Kredsløbsdiagram og forklaring:
- Afkodning af dine AC-fjernsignaler:
- Hoved Arduino-program:
- Arbejde med automatisk vekselstrømstemperaturreguleringssystem:
En AC (klimaanlæg), der engang blev betragtet som en luksusartikel og kun var at finde i store hoteller, filmhaller, restauranter osv… Men nu har næsten alle en AC i vores hjem til at slå sommeren ud / vinter og dem, der har det, bekymre sig om en almindelig ting. Det er deres høje elforbrug og opladere på grund af det. I dette projekt skal vi lave et lille automatisk temperaturkontrolkredsløb, der kan minimere elopladere ved automatisk at variere AC-temperaturen baseret på rumtemperaturen. Ved at variere den indstillede temperatur med jævne mellemrum kan vi undgå at få AC til at arbejde med lavere temperaturværdier i lang tid og dermed få det til at forbruge mindre strøm.
De fleste af os ville have oplevet en situation, hvor vi er nødt til at ændre klimaanlæggets indstillede temperatur til forskellige værdier på forskellige tidspunkter af dagen for at holde os komfortable hele vejen igennem. For at automatisere denne proces bruger dette projekt en temperatursensor (DHT11), der læser den aktuelle temperatur i rummet, og baseret på denne værdi sender det kommandoer til AC gennem en IR-blaster, der ligner AC's fjernbetjening. AC'en reagerer på disse kommandoer, som om den reagerer på fjernbetjeningen og justerer således temperaturen. Når dit værelse ændrer sig, justerer Arduino også din vekselstrøms indstillede temperatur for at opretholde din temperatur på den måde, du vil have den. Lyder fedt, ikke?… Lad os se, hvordan man bygger en.
Nødvendige materialer:
- Arduino Mega 2560
- TSOP1738 (HS0038)
- IR ledet
- DHT11 temperatur / fugtighedssensor
- Enhver farve-LED og 1K modstand (valgfri)
- Brødbræt
- Tilslutning af ledninger
Arbejdsmetode:
Alle fjernbetjeninger i vores hjem, som vi bruger til at styre tv, hjemmebiograf, vekselstrøm osv. Fungerer ved hjælp af IR Blasters. En IR-blaster er intet andet end en IR-LED, der kan sprænge et signal ved gentagen pulserende; dette signal læses af modtageren i elektronikapparatet. For hver anden knap på fjernbetjeningen sprænges der et unikt signal, som efter læsning af modtageren bruges til at udføre en bestemt foruddefineret opgave. Hvis vi er i stand til at læse dette signal, der kommer ud fra fjernbetjeningen, kan vi derefter efterligne det samme signal ved hjælp af en IR-LED, når det nogensinde er nødvendigt at udføre den pågældende opgave. Vi har tidligere lavet et IR Blaster-kredsløb til Universal IR Remote.
En TSOP er en IR-modtager, der kan bruges til at afkode signalet fra fjernbetjeningerne. Denne modtager vil være grænseflade med Arduino for at signalere for hver knap, og derefter vil en IR-led blive brugt med Arduino til at efterligne signalet, når det nogensinde er nødvendigt. På denne måde kan vi få kontrol over vores vekselstrøm ved hjælp af Arduino.
Nu er alt tilbage, at man læser temperaturværdien ved hjælp af DHT11 og instruerer AC i overensstemmelse hermed ved hjælp af IR-signalerne. For at få projektet til at se mere attraktivt og brugervenligt ud, har jeg også tilføjet et OLED-display, der viser den aktuelle temperatur, fugtighed og AC-temperatur. Lær mere om brug af OLED med Arduino.
Forudsætninger:
Dette automatiske vekselstrømstemperaturregulatorprojekt er lidt avanceret til begynderniveau, men med hjælp fra få andre tutorials kan nogen bygge dette med spørgsmål om tid. Så hvis du er en absolut nybegynder til OLED, DHT11 eller TSOP, så vend venligst tilbage til disse tutorials nedenfor, hvor du kan lære det grundlæggende og hvordan du kommer i gang med disse. Listen ser ud til at være lidt lang, men stol på mig, det er let og værd at lære, det åbner også døre til mange nye projekter.
- Grundlæggende kredsløb ved hjælp af TSOP og IR LED til under deres arbejde
- Grundlæggende grænsefladesvejledning til DHT11 med Arduino
- Grundlæggende grænsefladesvejledning til OLED med Arduino
- Interfacing TSOP med Arduino for at læse IR-fjernværdier
Sørg for, at du har en Arduino Mega og enhver anden version af Arduino, da kodestørrelsen er tung. Kontroller også, om du allerede har installeret følgende Arduino-biblioteker, hvis du ikke installerer dem fra nedenstående link
- IR-fjernbibliotek til TSOP og IR Blaster
- Adafruit Library til OLED
- GFX Grafikbibliotek til OLED
- DHT11 sensorbibliotek til temperatursensor
Arbejde med en AC-fjernbetjening:
Inden vi går ind i projektet, skal du tage lidt tid og lægge mærke til, hvordan din AC-fjernbetjening fungerer. AC fjernbetjeninger fungerer på en lidt anden måde sammenlignet med TV, DVD IR fjernbetjeninger. Der er muligvis kun 10-12 knapper på din fjernbetjening, men de kan sende mange forskellige typer signaler. Det betyder, at fjernbetjeningen ikke sender den samme kode hver gang for den samme knap. Når du f.eks. Sænker temperaturen ved hjælp af ned-knappen for at gøre det 24 ° C (grad Celsius), får du et signal med et sæt data, men når du trykker på det igen for at indstille 25 ° C, får du ikke det samme data, da temperaturen nu er 25 og ikke 24. Tilsvarende vil koden for 25 også variere for forskellige blæserhastigheder, dvaletilstand osv. Så lad os ikke snuble med alle muligheder og kun koncentrere kun temperaturværdierne med en konstant værdi til andre indstillinger.
Et andet problem er mængden af data, der sendes for hvert tryk på en knap, normale fjernbetjeninger med send enten 24 bit eller 48 bit, men en AC-fjernbetjening sender muligvis op til 228 bit, da hvert signal indeholder en masse information som Temp, Fan Speed, Sovetid, gyngestil osv. Dette er grunden til, at vi har brug for en Arduino Mega for bedre opbevaringsmuligheder.
Kredsløbsdiagram og forklaring:
Heldigvis er hardwareopsætningen af dette automatiske AC-temperaturkontrolprojekt meget let. Du kan blot bruge et brødbræt og oprette forbindelserne som vist nedenfor.
Følgende tabel kan også bruges til at bekræfte dine forbindelser.
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 - Anode |
9 |
14 |
IR-ledet katode |
Gnd |
Når forbindelserne er færdige, skal det se ud som dette vist nedenfor. Jeg har brugt et brødbræt til at rydde ting, men du kan også gøre dig mandlige til kvindelige ledninger direkte for at tilslutte alle komponenter
Afkodning af dine AC-fjernsignaler:
Det første trin til at kontrollere din vekselstrøm er at bruge TSOP1738 til at afkode IR-fjernbetjenings IR-koder. Foretag alle forbindelser som vist i kredsløbsdiagrammet, og sørg for at du har installeret alle de nævnte biblioteker. Åbn nu eksempelprogrammet “ IRrecvDumpV2 ”, som kan findes i File -> Eksempler -> IRremote -> IRrecvDumpV2 . Upload programmet til din Arduino Mega, og åbn Serial Monitor.
Peg fjernbetjeningen mod TSOP, og tryk på en vilkårlig knap, for hver knap, du trykker på dens respektive signal, læses det af TSOP1738, dekodet af Arduino og vises i den serielle skærm. For hver ændring i temperaturen på din fjernbetjening får du forskellige data. Gem disse data, for vi bruger dem i vores hovedprogram. Din serielle skærm vil se sådan ud, jeg har også vist den Word-fil, som jeg har gemt de kopierede data på.
Skærmbilledet viser koden til indstilling af temperaturen til 26 ° C for min AC-fjernbetjening. Baseret på din fjernbetjening får du et andet sæt koder. Tilsvarende kopier koderne for alle forskellige temperaturniveauer. Du kan kontrollere alle IR-koder til fjernbetjening til klimaanlæg i Arduino-koden, der er angivet i slutningen af denne vejledning.
Hoved Arduino-program:
Det komplette hoved Arduino-program findes nederst på denne side, men du kan ikke bruge det samme program. Du er nødt til at ændre signalkodeværdierne, som vi lige har fået fra eksemplet ovenfor. Åbn hovedprogrammet på din Arduino IDE, og rul ned til dette område vist nedenfor, hvor du skal erstatte arrayværdierne med de værdier, du har fået til din Remote.
Bemærk, at jeg har brugt 10 arrays, hvoraf to bruges til at tænde og slukke for vekselstrømmen, mens resten 8 bruges til at indstille forskellige temperaturer. For eksempel bruges Temp23 til at indstille 23 ° C på din vekselstrøm, så brug den respektive kode i den matrix. Når det er gjort, skal du bare uploade koden til din Arduino og placere den overfor din AC og nyd Cool Breeze.
Forklaringen på koden går som følger, først skal vi bruge DHT1-temperatursensoren til at læse temperaturen og fugtigheden og vise den på OLED. Dette gøres ved hjælp af følgende kode.
DHT.read11 (DHT11_PIN); // Læs temp og fugtighed Measured_temp = DHT.temperature + temp_error; Målt_Humi = DHT. Luftfugtighed; // tekstvisning test display.setTextSize (1); display.setTextColor (HVID); display.setCursor (0,0); display.print ("Temperatur:"); display.print (Measured_temp); display.println ("C"); display.setCursor (0,10); display.print ("Fugtighed:"); display.print (Measured_Humi); display.println ("%");
Når vi kender rummets temperatur, skal vi bare sammenligne den med den ønskede værdi. Denne ønskede værdi er en konstant værdi, der er indstillet til 27 ° C (grad Celsius) i mit program. Så baseret på denne sammenligning indstiller vi en tilsvarende vekselstrømstemperatur som vist nedenfor
hvis (Measured_temp == Desired_temperature + 3) // Hvis AC er ON og målt temp er meget højt end ønsket {irsend.sendRaw (Temp24, sizeof (Temp24) / sizeof (Temp24), khz); forsinkelse (2000); // Send signal for at indstille 24 * C AC_Temp = 24; }
Her indstilles AC til 24 ° C, når den målte temperatur er 30 ° C (da ønsket temp er 27). På samme måde kan vi oprette mange If- sløjfer for at indstille forskellige temperaturniveauer baseret på den målte temperatur som vist nedenfor.
if (Measured_temp == Desired_temperature-1) // Hvis AC er ON og målt temp er lav end ønsket værdi {irsend.sendRaw (Temp28, sizeof (Temp28) / sizeof (Temp28), khz); forsinkelse (2000); // Send signal for at indstille 28 * C AC_Temp = 28; } hvis (Measured_temp == Desired_temperature-2) // Hvis AC er ON og målt temp er meget lav end ønsket værdi {irsend.sendRaw (Temp29, sizeof (Temp29) / sizeof (Temp29), khz); forsinkelse (2000); // Send signal for at indstille 29 * C AC_Temp = 29; } hvis (Measured_temp == Desired_temperature-3) // Hvis AC er ON og målt temp er meget meget lav ønsket værdi {irsend.sendRaw (Temp30, sizeof (Temp30) / sizeof (Temp30), khz); forsinkelse (2000); // Send signal for at indstille 30 * C AC_Temp = 30; }
Arbejde med automatisk vekselstrømstemperaturreguleringssystem:
Når din kode og hardware er klar, skal du uploade koden til dit kort, og du skal bemærke, at OLED viser noget lignende dette.
Anbring nu kredsløbet overfor dit klimaanlæg, og du bemærker, at vekselstrømstemperaturen bliver styret baseret på rumtemperaturen. Du kan prøve at øge temperaturen nær DHT11-sensoren for at kontrollere, om vekselstrøms temperaturen styres som vist i videoen nedenfor.
Du kan tilpasse programmet for at udføre enhver ønsket handling; alt hvad du behøver er den kode, du fik fra eksemplet på skitsen. Håber du forstod dette automatiske temperaturregulatorprojekt og nød at bygge noget meget lignende. Jeg ved, at der er mange steder her at sidde fast, men rolig da. Brug bare forum- eller kommentarsektionen til at forklare dit problem, og folk her vil helt sikkert hjælpe dig med at få det løst.