- Nepieciešamie materiāli:
- Darba metodika:
- Priekšnosacījumi:
- Maiņstrāvas tālvadības pults darbība:
- Shēmas shēma un skaidrojums:
- Maiņstrāvas tālvadības signālu dekodēšana:
- Galvenā Arduino programma:
- Automātiskās maiņstrāvas temperatūras kontroles sistēmas darbība:
Gaisa kondicionētājs (AC), kas savulaik tika uzskatīts par luksusa preci un bija atrodams tikai lielās viesnīcās, kinozālēs, restorānos uc ziema un tie, kam tā ir, uztraucas par vienu kopīgu lietu. Tas ir viņu lielais elektroenerģijas patēriņš un tā dēļ esošie lādētāji. Šajā projektā mēs izveidosim nelielu automātiskās temperatūras kontroles ķēdi, kas varētu samazināt elektrības lādētājus, automātiski mainot maiņstrāvas temperatūru, pamatojoties uz telpu temperatūru. Periodiski mainot iestatīto temperatūru, mēs varam izvairīties no tā, ka maiņstrāva ilgstoši darbojas zemākas temperatūras vērtībās un tādējādi liek patērēt mazāk enerģijas.
Lielākā daļa no mums būtu pieredzējuši situāciju, kad mums ir jāmaina gaisa kondicionētāja iestatītā temperatūra uz dažādām vērtībām dažādos dienas laikos, lai mūs saglabātu ērti. Lai automatizētu šo procesu, šajā projektā tiek izmantots temperatūras sensors (DHT11), kas nolasa telpas pašreizējo temperatūru un, pamatojoties uz šo vērtību, nosūtīs komandas maiņstrāvai, izmantojot infrasarkano staru spridzinātāju, kas līdzīgs maiņstrāvas tālvadības pults. Maiņstrāva reaģēs uz šīm komandām tā, it kā tā reaģētu uz savu tālvadības pulti un tādējādi noregulētu temperatūru. Mainoties jūsu istabas temperatūrai, Arduino arī pielāgos jūsu maiņstrāvas iestatīto temperatūru, lai uzturētu temperatūru tieši tā, kā vēlaties. Izklausās forši vai ne?… Paskatīsimies, kā tādu izveidot.
Nepieciešamie materiāli:
- Arduino Mega 2560
- TSOP1738 (HS0038)
- IR Led
- DHT11 temperatūras / mitruma sensors
- Jebkurš krāsu LED un 1K rezistors (pēc izvēles)
- Maizes dēlis
- Vadu savienošana
Darba metodika:
Visas mūsu mājas tālvadības pultis, kuras mēs izmantojam, lai vadītu TV, mājas kinozāli, maiņstrāvu utt., Darbojas ar IR Blasters palīdzību. IR Blaster nav nekas bet IR LED, kas varētu Blaster signālu pēc atkārtotas pulsing; šo signālu nolasīs elektroniskās ierīces uztvērējs. Katrai atšķirīgai tālvadības pogai tiks uzspridzināts unikāls signāls, kuru pēc uztvērēja nolasīšanas izmanto konkrēta iepriekš definēta uzdevuma veikšanai. Ja mēs spējam nolasīt šo signālu, kas nāk no tālvadības pults, tad mēs varam atdarināt to pašu signālu, izmantojot IR gaismas diode, kad tas kādreiz ir nepieciešams šī konkrētā uzdevuma veikšanai. Iepriekš mēs esam izveidojuši IR Blaster shēmu Universal IR Remote.
TSOP ir IR uztvērējs, kas var tikt izmantoti, lai atšifrētu signālu, kas nāk no tālvadības. Šis uztvērējs tiks savienots ar Arduino, lai signalizētu par katru pogu, un pēc tam ar Arduino tiks izmantots IR Led, lai atdarinātu signālu, kad tas vienmēr ir nepieciešams. Tādā veidā mēs varam iegūt kontroli pār mūsu maiņstrāvu, izmantojot Arduino.
Atliek tikai nolasīt temperatūras vērtību, izmantojot DHT11, un attiecīgi instruēt maiņstrāvu, izmantojot IR signālus. Lai projekts izskatās pievilcīgāks un lietotājam draudzīgāks, esmu pievienojis arī OLED displeju, kas parāda pašreizējo temperatūru, mitrumu un maiņstrāvas iestatīto temperatūru. Uzziniet vairāk par OLED izmantošanu ar Arduino.
Priekšnosacījumi:
Šis automātiskās maiņstrāvas temperatūras kontroliera projekts ir nedaudz uzlabots iesācēju līmenim, taču, izmantojot dažas citas apmācības, ikviens to var izveidot laika ziņā. Tātad, ja esat absolūts OLED, DHT11 vai TSOP iesācējs, lūdzu, atgriezieties pie šīm tālāk sniegtajām apmācībām, kur varat uzzināt pamatus un kā sākt ar tiem. Šķiet, ka saraksts ir mazliet garš, taču ticiet man, ka tas ir viegli un vērts mācīties, kā arī atvērs durvis daudziem jauniem projektiem.
- Pamata ķēde, izmantojot TSOP un IR LED, zem viņu darba
- Pamata saskarnes rokasgrāmata DHT11 ar Arduino
- Pamata saskarnes rokasgrāmata OLED ar Arduino
- Saskarne TSOP ar Arduino, lai lasītu IR tālvadības vērtības
Pārliecinieties, vai jums ir Arduino Mega un jebkura cita Arduino versija, jo koda lielums ir smags. Pārbaudiet arī, vai esat jau instalējis šādas Arduino bibliotēkas, ja tās nav instalētas, veidojiet zemāk esošo saiti
- IR attālā bibliotēka TSOP un IR Blaster
- Adafruit bibliotēka OLED
- GFX grafikas bibliotēka OLED
- DHT11 sensoru bibliotēka temperatūras sensoram
Maiņstrāvas tālvadības pults darbība:
Pirms mēs turpinām iesaistīties projektā, paņemiet kādu laiku un pamaniet, kā darbojas jūsu AC tālvadības pults. Maiņstrāvas pultis darbojas mazliet savādāk, salīdzinot ar TV, DVD IR pultīm. Jūsu tālvadības pultī var būt tikai 10–12 pogas, taču tās varēs nosūtīt daudz dažādu signālu. Tas nozīmē, ka tālvadības pults katru reizi nesūta to pašu kodu. Piemēram, samazinot temperatūru, izmantojot lejupvērsto pogu, lai tā būtu 24 ° C (grādi pēc Celsija), jūs saņemsit signālu ar datu kopu, bet, nospiežot to vēlreiz, lai iestatītu 25 ° C, jūs nesaņemsit to pašu dati, jo temperatūra tagad ir 25, nevis 24. Līdzīgi arī kods 25 mainīsies atkarībā no dažādiem ventilatora ātrumiem, miega iestatījumiem utt. Tāpēc nesamazināsimies ar visām opcijām un koncentrēsim tikai temperatūras vērtības ar nemainīgu citu iestatījumu vērtību.
Vēl viena problēma ir datu apjoms, kas tiek sūtīts par katru pogas nospiešanu, parastie tālvadības pultis ar 24 vai 48 bitu sūtīšanu, bet maiņstrāvas tālvadības pults var nosūtīt līdz 228 bitiem, jo katrs signāls satur daudz informācijas, piemēram, Temp, Fan Speed, Miega režīms, šūpošanās stils utt. Tāpēc labākām uzglabāšanas iespējām mums ir nepieciešams Arduino Mega.
Shēmas shēma un skaidrojums:
Par laimi šī automātiskās maiņstrāvas temperatūras kontroles projekta aparatūras iestatīšana ir ļoti vienkārša. Jūs varat vienkārši izmantot paneļu un izveidot savienojumus, kā parādīts zemāk.
Šo savienojumu pārbaudei var izmantot arī šo tabulu.
S.Nē: |
Komponenta tapa |
Arduino tapa |
1 |
OLED - Vcc |
5V |
2 |
OLED - Gnd |
Gnd |
3 |
OLED- SCK, D0, SCL, CLK |
4 |
4 |
OLED- SDA, D1, MOSI, dati |
3 |
5 |
OLED- RES, RST, RESET |
7 |
6 |
OLED- DC, A0 |
5 |
7 |
OLED- CS, mikroshēmas atlase |
6 |
8 |
DHT11 - Vcc |
5V |
9 |
DHT11 - Gnd |
Gnd |
10 |
DHT11 - signāls |
13 |
11 |
TSOP - Vcc |
5V |
12 |
TSOP - Gnd |
Gnd |
13 |
IR Led - Anode |
9 |
14 |
IR Led - katods |
Gnd |
Kad savienojumi ir izdarīti, tam vajadzētu izskatīties apmēram šādi, kā parādīts zemāk. Esmu izmantojis maizes dēli, lai sakārtotu lietas, bet jūs varat arī jūs tieši no vīrieša līdz sievietei, lai savienotu visas sastāvdaļas
Maiņstrāvas tālvadības signālu dekodēšana:
Pirmais maiņstrāvas vadības solis ir TSOP1738 izmantošana, lai atšifrētu maiņstrāvas tālvadības pults IR kodus. Veiciet visus savienojumus, kā parādīts shēmā, un pārliecinieties, vai esat instalējis visas minētās bibliotēkas. Tagad atveriet piemēru programmai “ IRrecvDumpV2 ”, kuru var atrast sadaļā File -> Piemēri -> IRremote -> IRrecvDumpV2 . Augšupielādējiet programmu savā Arduino Mega un atveriet sērijas monitoru.
Novietojiet tālvadības pulti pret TSOP un nospiediet jebkuru pogu. Katrai pogai, kurai nospiežat atbilstošo signālu, TSOP1738 nolasīs, Arduino atšifrēja un parādīs seriālajā monitorā. Par katru temperatūras izmaiņu tālvadības pultī jūs saņemsiet atšķirīgus datus. Saglabājiet šos datus, jo mēs tos izmantosim mūsu galvenajā programmā. Jūsu sērijveida monitors izskatīsies apmēram šādi, es esmu parādījis arī Word failu, kurā esmu saglabājis kopētos datus.
Ekrānuzņēmumā ir redzams kods maiņstrāvas tālvadības pults temperatūras iestatīšanai uz 26 ° C. Pamatojoties uz tālvadības pulti, jūs saņemsiet atšķirīgu kodu kopu. Līdzīgi kopējiet visu dažādu temperatūras līmeņu kodus. Visus gaisa kondicionētāja tālvadības pults IR kodus varat pārbaudīt šīs apmācības beigās sniegtajā Arduino kodā.
Galvenā Arduino programma:
Pilnīga Galvenais Arduino programmu var atrast pie šīs lapas apakšā, bet jūs nevarat izmantot to pašu programmu. Jums ir jāmaina signāla koda vērtības, kuras tikko ieguvām no iepriekš minētās skices parauga. Atveriet galveno programmu savā Arduino IDE un ritiniet uz leju līdz zemāk redzamajam apgabalam, kur masīva vērtības ir jāaizstāj ar vērtībām, kuras ieguvāt savam tālvadības tālrunim.
Ņemiet vērā, ka esmu izmantojis 10 masīvus, no kuriem divi izmantoja maiņstrāvas ieslēgšanu un izslēgšanu, bet pārējie 8 tiek izmantoti atšķirīgas temperatūras iestatīšanai. Piemēram, Temp23 tiek izmantots, lai jūsu maiņstrāvā iestatītu 23 ° C, tāpēc izmantojiet attiecīgo masīva kodu. Kad tas ir izdarīts, jums vienkārši jāaugšupielādē kods savā Arduino un jānovieto pretī jums AC un jāizbauda Cool Breeze.
Koda skaidrojums notiek šādi: vispirms mums jāizmanto temperatūras sensors DHT1, lai nolasītu temperatūru un mitrumu un parādītu to OLED. To veic ar šādu kodu.
DHT.read11 (DHT11_PIN); // Izlasiet Temp and Humidity Measured_temp = DHT.temperature + temp_error; Measured_Humi = DHT. Mitrums; // teksta displejā tiek pārbaudīti display.setTextSize (1); display.setTextColor (BALTS); display.setCursor (0,0); display.print ("Temperatūra:"); display.print (Measured_temp); display.println ("C"); display.setCursor (0,10); display.print ("Mitrums:"); display.print (Measured_Humi); display.println ("%");
Kad esam uzzinājuši telpas temperatūru, tā vienkārši jāsalīdzina ar vēlamo vērtību. Šī vēlamā vērtība ir nemainīga vērtība, kas manā programmā ir iestatīta kā 27 ° C (Celsija grādi). Tātad, pamatojoties uz šo salīdzinājumu, mēs iestatīsim atbilstošu maiņstrāvas temperatūru, kā parādīts zemāk
ja (Mērītā temperatūra == Vēlamā temperatūra + 3) // Ja maiņstrāva ir ieslēgta un izmērītā temperatūra ir ļoti augsta, nekā vēlams {irsend.sendRaw (Temp24, sizeof (Temp24) / sizeof (Temp24), khz); kavēšanās (2000); // Nosūtīt signālu, lai iestatītu 24 * C AC_Temp = 24; }
Šeit maiņstrāva tiks iestatīta uz 24 ° C, kad izmērītā temperatūra ir 30 ° C (jo vēlamā temperatūra ir 27). Līdzīgi mēs varam izveidot daudzas If cilpas, lai iestatītu atšķirīgu temperatūras līmeni, pamatojoties uz izmērīto temperatūru, kā parādīts zemāk.
if (Measured_temp == Vēlamā_temperatūra-1) // Ja maiņstrāva ir ieslēgta un izmērītā temperatūra ir zema par vēlamo vērtību {irsend.sendRaw (Temp28, sizeof (Temp28) / sizeof (Temp28), khz); aizkave (2000); // Nosūtīt signālu, lai iestatītu 28 * C AC_Temp = 28; } if (Measured_temp == Vēlamā_temperatūra-2) // Ja maiņstrāva ir ieslēgta un izmērītā temperatūra ir ļoti zema nekā vēlamā vērtība {irsend.sendRaw (Temp29, sizeof (Temp29) / sizeof (Temp29), khz); kavēšanās (2000); // Nosūtīt signālu, lai iestatītu 29 * C AC_Temp = 29; } if (Measured_temp == Vēlamā_temperatūra-3) // Ja AC ir ieslēgta un izmērītā temperatūra ir ļoti ļoti zema vēlamā vērtība {irsend.sendRaw (Temp30, sizeof (Temp30) / sizeof (Temp30), khz); kavēšanās (2000); // Nosūtīt signālu, lai iestatītu 30 * C AC_Temp = 30; }
Automātiskās maiņstrāvas temperatūras kontroles sistēmas darbība:
Kad jūsu kods un aparatūra ir gatava, augšupielādējiet kodu savā dēlī, un jums vajadzētu pamanīt, ka OLED parāda kaut ko līdzīgu šim.
Tagad novietojiet ķēdi pretī savam gaisa kondicionierim, un pamanāt, ka maiņstrāvas temperatūra tiek kontrolēta, pamatojoties uz istabas temperatūru. Jūs varat mēģināt paaugstināt temperatūru pie DHT11 sensora, lai pārbaudītu, vai maiņstrāvas temperatūra tiek kontrolēta, kā parādīts zemāk esošajā video.
Jūs varat pielāgot programmu, lai veiktu jebkuru vēlamo darbību; viss, kas jums nepieciešams, ir kods, ko ieguvāt no skices parauga. Ceru, ka sapratāt šo automātiskā temperatūras kontroliera projektu un izbaudījāt kaut ko ļoti līdzīgu. Es zinu, ka šeit ir daudz vietu, kur iestrēgt, bet tad neuztraucieties. Vienkārši izmantojiet foruma vai komentāru sadaļu, lai izskaidrotu savu problēmu, un cilvēki šeit noteikti palīdzēs jums to atrisināt.