chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Arduino/DHT11和紅外發(fā)射器制作的自動(dòng)交流溫度控制器

科技觀察員 ? 來(lái)源:circuitdigest ? 作者:阿斯文斯·拉吉 ? 2022-11-25 17:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

空調(diào)(空調(diào))曾經(jīng)被認(rèn)為是奢侈品,只能在大酒店,電影院,餐館等中找到...但是,現(xiàn)在幾乎每個(gè)人都在家里有空調(diào)來(lái)度過夏天/冬天,而那些擁有它的人擔(dān)心一件共同的事情。這就是他們的高耗電量和充電器。在這個(gè)項(xiàng)目中,我們將制作一個(gè)小型的自動(dòng)溫度控制電路,該電路可以通過根據(jù)室溫自動(dòng)改變交流溫度來(lái)最小化充電器。通過定期改變?cè)O(shè)定溫度,我們可以避免使交流電長(zhǎng)時(shí)間以較低的溫度值工作,從而使其消耗更少的功率。

我們大多數(shù)人都會(huì)遇到這樣一種情況,即我們必須在一天中的不同時(shí)間將空調(diào)的設(shè)定溫度更改為不同的值,以使我們始終保持舒適。為了自動(dòng)化此過程,該項(xiàng)目使用溫度傳感器(DHT11),該傳感器讀取房間的當(dāng)前溫度,并根據(jù)該值,它將通過類似于AC遙控器的紅外發(fā)射器向AC發(fā)送命令。AC 將對(duì)這些命令做出反應(yīng),就像它對(duì)遙控器做出反應(yīng)一樣,從而調(diào)節(jié)溫度。隨著房間溫度的變化,Arduino還會(huì)調(diào)整空調(diào)的設(shè)定溫度,以您想要的方式保持您的溫度。聽起來(lái)很酷吧?...讓我們看看如何構(gòu)建一個(gè)。

所需材料:

阿杜伊諾超級(jí) 2560

TSOP1738 (HS0038)

紅外燈

DHT11 溫度/濕度傳感器

任何顏色 LED 和 1K 電阻器(可選)

面包板

連接線

工作方法:

我們家中用于控制電視、家庭影院、空調(diào)等的所有遙控器都在紅外發(fā)射器的幫助下工作。紅外發(fā)射器只不過是一個(gè)紅外 LED,可以通過重復(fù)脈沖來(lái)沖擊信號(hào);該信號(hào)將由電子設(shè)備中的接收器讀取。對(duì)于遙控器上的每個(gè)不同按鈕,將發(fā)出一個(gè)獨(dú)特的信號(hào),該信號(hào)在接收器讀取后用于執(zhí)行特定的預(yù)定義任務(wù)。如果我們能夠讀取從遙控器發(fā)出的信號(hào),那么我們可以在需要執(zhí)行該特定任務(wù)時(shí)使用紅外 LED 模擬相同的信號(hào)。

pYYBAGOAhOqANP-RAAAy_SSy1DU655.jpg

TSOP是一種紅外接收器,可用于解碼來(lái)自遙控器的信號(hào)。該接收器將與Arduino接口,為每個(gè)按鈕發(fā)送信號(hào),然后IR LED將與Arduino一起使用,以在需要時(shí)模擬信號(hào)。這樣,我們就可以使用Arduino控制AC。

poYBAGOAhOuAJT7UAABD7ERMK7g486.jpg

現(xiàn)在,剩下的就是使用 DHT11 讀取溫度值,并使用 IR 信號(hào)相應(yīng)地指示 AC。為了使項(xiàng)目看起來(lái)更具吸引力和用戶友好性,我還添加了一個(gè)OLED顯示屏,可以顯示當(dāng)前的溫度,濕度和AC設(shè)定溫度。

交流遙控器的工作:

在我們進(jìn)入項(xiàng)目之前,請(qǐng)花一些時(shí)間并注意您的交流遙控器的工作原理。與電視、DVD 紅外遙控器相比,交流遙控器的工作方式略有不同。遙控器上可能只有 10-12 個(gè)按鈕,但它們將能夠發(fā)送許多不同類型的信號(hào)。這意味著遙控器不會(huì)每次為同一按鈕發(fā)送相同的代碼。例如,當(dāng)您使用向下按鈕降低溫度使其為 24°C(攝氏度)時(shí),您將獲得帶有一組數(shù)據(jù)的信號(hào),但是當(dāng)您再次按下它以設(shè)置 25°C 時(shí),您將不會(huì)獲得相同的數(shù)據(jù),因?yàn)闇囟痊F(xiàn)在是 25 而不是 24。同樣,25 的代碼也會(huì)因不同的風(fēng)扇速度、睡眠設(shè)置等而異。因此,我們不要擺弄所有選項(xiàng),而只是將溫度值與其他設(shè)置的恒定值集中在一起。

另一個(gè)問題是每次按下按鈕發(fā)送的數(shù)據(jù)量,普通遙控器發(fā)送 24 位或 48 位,但交流遙控器最多可以發(fā)送 228 位,因?yàn)槊總€(gè)信號(hào)都包含大量信息,如溫度、風(fēng)扇速度、睡眠時(shí)間、擺動(dòng)風(fēng)格等。這就是為什么我們需要Arduino Mega以獲得更好的存儲(chǔ)選項(xiàng)的原因。

電路圖及說(shuō)明:

幸運(yùn)的是,這個(gè)自動(dòng)交流溫度控制項(xiàng)目的硬件設(shè)置非常簡(jiǎn)單。您可以簡(jiǎn)單地使用面包板并進(jìn)行連接,如下所示。

pYYBAGOAhO2AJwPeAADjhNrqhts025.png

下表還可用于驗(yàn)證連接。

S.No: 元件引腳 阿杜伊諾引腳
1 OLED – Vcc 5V
2 OLED – Gnd 格德
3 OLED- SCK, D0,SCL,CLK 4
4 OLED-SDA, D1,MOSI, Data 3
5 OLED- RES, RST,RESET 7
6 OLED- 直流,A0 5
7 OLED- CS,芯片選擇 6
8 DHT11 – Vcc 5V
9 DHT11 – Gnd 格德
10 DHT11 – 信號(hào) 13
11 TSOP – Vcc 5V
12 TSOP – Gnd 格德
13 紅外發(fā)光二極管 – 陽(yáng)極 9
14 紅外發(fā)光二極管 – 陰極 格德

連接完成后,它應(yīng)該如下所示。我使用面包板來(lái)整理東西,但您也可以直接將公對(duì)母線連接到所有組件

poYBAGOAhPGAbE5hAADko0ZnMVE412.jpg

解碼交流遠(yuǎn)程信號(hào):

控制交流電的第一步是使用 TSOP1738解碼交流遙控紅外代碼。按照電路圖中所示進(jìn)行所有連接,并確保已安裝所有提到的庫(kù)?,F(xiàn)在打開示例程序“IRrecvDumpV2”,可以在文件 -> 示例 -> IRremote -> IRrecvDumpV2 中找到。將程序上傳到Arduino Mega并打開串行監(jiān)視器。

將遙控器指向 TSOP 并按任意按鈕,對(duì)于您按下的每個(gè)按鈕,信號(hào)將由 TSOP1738 讀取,由 Arduino 解碼并顯示在串行監(jiān)視器中。對(duì)于遙控器溫度的每次變化,您將獲得不同的數(shù)據(jù)。保存此數(shù)據(jù),以便我們將在主程序中使用它。您的串行監(jiān)視器將看起來(lái)像這樣,我還顯示了保存復(fù)制數(shù)據(jù)的Word文件。

poYBAGOAhPSAFKx_AADn-5pIOjg016.png

屏幕截圖顯示了將我的交流遙控器的溫度設(shè)置為 26°C 的代碼。根據(jù)您的遙控器,您將獲得一組不同的代碼。同樣,復(fù)制所有不同溫度水平的代碼。

主要Arduino程序:

完整的Arduino主程序可以在此頁(yè)面底部找到,但您不能使用相同的程序。您必須更改我們剛剛從上面的示例草圖中獲得的信號(hào)代碼值。打開Arduino IDE上的主程序,然后向下滾動(dòng)到下面顯示的該區(qū)域,您必須將數(shù)組值替換為為遙控器獲得的值。

pYYBAGOAhPiAN0xlAADPFuRyUms196.png

請(qǐng)注意,我使用了 10 個(gè)陣列,其中兩個(gè)用于打開和關(guān)閉交流電,而其余 8 個(gè)用于設(shè)置不同的溫度。例如,Temp23 用于在交流電上設(shè)置 23°C,因此請(qǐng)使用該陣列中的相應(yīng)代碼。完成后,您只需將代碼上傳到Arduino并將其放在AC對(duì)面,即可享受涼風(fēng)。

代碼的解釋如下,首先我們必須使用DHT1溫度傳感器讀取溫度和濕度并將其顯示在OLED上。這是通過以下代碼完成的。

DHT.read11(DHT11_PIN); //Read the Temp and Humidity
Measured_temp = DHT.temperature + temp_error;
Measured_Humi = DHT.humidity;

// text display tests
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.print("Temperature: "); display.print(Measured_temp);display.println("C");
display.setCursor(0,10);
display.print("Humidity: "); display.print(Measured_Humi);display.println("%");
一旦我們知道房間的溫度,我們只需要將其與所需的值進(jìn)行比較。這個(gè)期望值是一個(gè)常量值,在我的程序中設(shè)置為 27°C(攝氏度)。因此,基于此比較,我們將設(shè)置相應(yīng)的交流溫度,如下所示

if (Measured_temp == Desired_temperature+3) //If AC is ON and measured temp is very high than desired
{
irsend.sendRaw(Temp24, sizeof(Temp24) / sizeof(Temp24[0]), khz); delay(2000);//Send signal to set 24*C
AC_Temp = 24;
}
當(dāng)測(cè)量溫度為 30°C 時(shí),此處的 AC 將設(shè)置為 24°C(因?yàn)樗铚囟葹?27)。同樣,我們可以創(chuàng)建許多 If 循環(huán),以根據(jù)測(cè)量的溫度設(shè)置不同的溫度級(jí)別,如下所示。

if (Measured_temp == Desired_temperature-1) //If AC is ON and measured temp is low than desired value
{
irsend.sendRaw(Temp28, sizeof(Temp28) / sizeof(Temp28[0]), khz); delay(2000);//Send signal to set 28*C
AC_Temp = 28;
}

if (Measured_temp == Desired_temperature-2 ) //If AC is ON and measured temp is very low than desired value
{
irsend.sendRaw(Temp29, sizeof(Temp29) / sizeof(Temp29[0]), khz); delay(2000);//Send signal to set 29*C
AC_Temp = 29;
}

if (Measured_temp == Desired_temperature-3 ) //If AC is ON and measured temp is very very low desired value
{
irsend.sendRaw(Temp30, sizeof(Temp30) / sizeof(Temp30[0]), khz); delay(2000);//Send signal to set 30*C
AC_Temp = 30;
}

自動(dòng)交流溫控系統(tǒng)工作原理:

當(dāng)您的代碼和硬件準(zhǔn)備就緒時(shí),將代碼上傳到您的主板,您應(yīng)該注意到 OLED 顯示與此類似的內(nèi)容。

pYYBAGOAhP2ARGiRAADy-gSGDRA782.jpg

現(xiàn)在將電路放在空調(diào)的對(duì)面,您會(huì)注意到空調(diào)的溫度會(huì)根據(jù)室溫進(jìn)行控制。

您可以調(diào)整程序以執(zhí)行任何所需的操作;您所需要的只是從示例草圖中獲取的代碼。希望您了解這個(gè)自動(dòng)溫度控制器項(xiàng)目,并喜歡構(gòu)建非常相似的東西。

/*

* Automatic AC Temperature control using Arduino and TSOP

* Code by: Aswinth Raj B

* Dated: 25-10-2017

* Website: www.circuitdigest.com

*

S.No: Component Pin 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 Led – Cathode Gnd

*/



#include //Lib for IT Blaster and TSOP

#include // Inbuilt Lib

#include //Inbuilt Lib

#include //Lib for OLED

#include //Lib for OLED

#include //Library for dht11 Temperature and Humidity sensor (Download from Link in article)



// Assign pins for OLED (Software config.)

#define OLED_MOSI 3

#define OLED_CLK 4

#define OLED_DC 5

#define OLED_CS 6

#define OLED_RESET 7

Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);


#define SSD1306_LCDHEIGHT 64 //Change if you are using a Different OLED


#define DHT11_PIN 13 //Sensor output pin is connected to pin 13

dht DHT; //Sensor object named as DHT


#define Desired_temperature 27 //The desired temperature is 27*C at any time


//Decoded Remote Signals For my AC ##CHANGE IT FOR YOUR REMOTE

unsigned int ACoff[] = {2950,1750, 400,1100, 450,1050, 450,400, 400,400, 400,400, 450,1100, 400,400, 400,400, 450,1100, 400,1100, 450,350, 450,1100, 400,400, 400,400, 450,1100, 400,1100, 450,400, 400,1100, 400,1100, 450,400, 400,400, 400,1100, 450,350, 450,400, 400,1100, 450,400, 400,400, 400,400, 450,350, 450,350, 450,400, 400,400, 450,350, 450,400, 400,400, 400,400, 450,350, 450,400, 400,400, 400,400, 450,400, 400,400, 400,400, 450,350, 450,350, 450,1100, 400,400, 450,400, 400,1100, 450,1050, 450,400, 400,400, 400,400, 450,350, 450,400, 400,400, 450,350, 450,400, 400,400, 400,1100, 450,350, 450,400, 400,400, 400,400, 450,400, 400,1100, 450,350, 450,400, 400,400, 400,400, 400,1100, 450,400, 400,400, 450,350, 450,400, 400,400, 400,400, 450,350, 450,350, 450,400, 400,400, 450,350, 450,400, 400,400, 400,400, 450,350, 450,400, 400,400, 450,350, 450,400, 400,400, 400,400, 450,350, 450,350, 450,400, 450,350, 450,350, 450,400, 450,350, 450,350, 450,350, 450,400, 450,350, 450,350, 450,400, 400,1100, 450,350, 450,350, 450,400, 450,350, 450,350, 450,1100, 450};

unsigned int ACon[] = {2950,1700, 450,1100, 400,1100, 450,350, 450,350, 450,400, 450,1050, 450,350, 450,400, 450,1050, 450,1100, 400,400, 450,1050, 450,350, 450,400, 400,1100, 450,1100, 450,350, 450,1050, 450,1100, 450,350, 450,350, 450,1100, 450,350, 400,400, 450,1100, 450,350, 450,350, 450,400, 400,400, 450,350, 450,350, 450,400, 400,400, 450,350, 450,350, 450,400, 400,400, 450,350, 450,350, 450,400, 450,350, 450,350, 450,1100, 400,400, 450,350, 450,1100, 400,400, 450,350, 450,1100, 400,1100, 450,350, 450,400, 400,400, 450,350, 500,300, 450,400, 450,350, 400,400, 450,1100, 400,400, 450,350, 450,350, 450,400, 400,400, 450,350, 450,1100, 450,350, 400,400, 450,350, 450,400, 450,350, 400,400, 450,400, 450,350, 450,350, 450,350, 450,400, 400,400, 450,350, 450,400, 400,400, 400,400, 400,400, 450,350, 450,400, 450,350, 450,350, 450,400, 450,350, 450,350, 450,350, 450,400, 400,400, 400,400, 450,350, 450,400, 450,350, 400,400, 450,350, 450,400, 450,350, 450,350, 450,350, 450,400, 450,350, 450,1100, 400,400, 400,400, 450,350, 450,350, 450,1100, 400,400, 450};

unsigned int Temp23[] = {3000,1650, 550,950, 550,1000, 500,300, 550,250, 550,250, 550,1000, 500,300, 550,300, 500,1000, 550,950, 550,300, 550,950, 550,250, 550,300, 500,1000, 500,1050, 500,300, 500,1000, 550,1000, 500,300, 500,300, 550,1000, 450,350, 500,300, 500,1050, 450,350, 450,350, 450,350, 450,400, 450,350, 450,350, 450,400, 400,400, 450,350, 450,350, 450,350, 450,400, 400,400, 400,400, 450,400, 400,400, 400,400, 450,1100, 400,400, 400,400, 450,1050, 450,400, 400,400, 450,1100, 400,1100, 400,400, 450,350, 450,400, 400,400, 400,400, 450,400, 400,400, 400,400, 450,350, 450,1100, 400,400, 400,400, 450,350, 450,400, 400,400, 450,1100, 400,400, 400,1100, 450,1100, 400,1100, 450,350, 450,400, 400,400, 450,350, 450,350, 450,400, 400,400, 400,400, 450,350, 450,400, 400,400, 450,350, 450,400, 400,400, 400,400, 450,350, 450,400, 400,400, 450,350, 450,350, 450,400, 450,350, 400,400, 450,350, 450,400, 450,350, 450,350, 450,400, 450,350, 450,350, 450,350, 450,400, 400,400, 400,400, 450,350, 450,1100, 400,1100, 450,1100, 400,1100, 450,1100, 400,1100, 400,400, 450};

unsigned int Temp24[] = {3000,1650, 500,1050, 500,1000, 500,300, 500,300, 500,350, 500,1000, 500,300, 500,350, 500,1000, 500,1050, 500,300, 500,1000, 500,300, 500,350, 500,1000, 500,1050, 500,300, 500,1000, 500,1050, 500,300, 500,300, 500,1050, 500,300, 500,300, 500,1050, 500,300, 500,300, 500,350, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,1050, 500,300, 500,300, 500,1050, 500,300, 500,300, 500,1050, 500,1000, 500,300, 500,350, 500,300, 500,300, 500,300, 500,350, 500,1000, 500,1050, 500,1000, 500,300, 500,350, 450,350, 500,300, 500,300, 500,350, 500,1000, 500,300, 500,1050, 500,1000, 500,1050, 500,300, 500,300, 500,350, 500,300, 500,300, 500,300, 500,300, 500,350, 500,300, 450,350, 500,350, 450,350, 450,350, 450,350, 450,400, 400,400, 400,400, 450,400, 400,400, 400,400, 400,400, 450,350, 450,400, 400,400, 450,350, 450,400, 450,350, 450,350, 450,350, 450,400, 450,350, 450,350, 450,350, 500,350, 450,1050, 500,300, 500,1050, 500,1000, 500,1050, 500,1000, 500,1000, 500,350, 550};

unsigned int Temp25[] = {3050,1650, 500,1000, 550,950, 550,300, 500,300, 500,300, 550,1000, 500,300, 500,300, 550,1000, 550,950, 550,250, 550,1000, 500,300, 550,250, 550,1000, 500,1000, 550,300, 550,950, 550,950, 550,300, 500,300, 500,1000, 550,250, 550,300, 550,950, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,250, 550,250, 600,250, 500,300, 550,250, 550,250, 550,300, 550,250, 500,300, 550,300, 500,300, 500,1000, 550,250, 550,300, 500,1000, 550,250, 550,300, 500,1000, 550,1000, 500,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,300, 500,1000, 550,950, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,950, 550,300, 500,1000, 550,1000, 500,1000, 500,300, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,250, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,250, 550,300, 550,250, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 500,300, 500,350, 500,1000, 500,1000, 500,1050, 500,1000, 500,1050, 500,300, 550};

unsigned int Temp26[] = {3000,1650, 500,1000, 500,1050, 500,300, 500,300, 500,350, 500,1000, 500,300, 500,350, 500,1000, 500,1050, 450,350, 500,1000, 500,300, 500,350, 500,1000, 500,1050, 500,300, 500,1000, 500,1050, 500,300, 500,300, 500,1050, 500,300, 500,300, 500,1050, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,350, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,1050, 500,300, 500,300, 500,1050, 450,350, 500,300, 500,1050, 500,1000, 500,300, 500,350, 500,300, 500,300, 500,300, 500,350, 500,1000, 500,300, 500,1050, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,1050, 500,300, 500,1050, 450,1050, 500,1000, 500,350, 500,300, 500,300, 500,350, 450,350, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,350, 500,300, 500,300, 500,300, 500,350, 450,350, 500,300, 500,350, 450,350, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,350, 500,300, 500,300, 500,300, 500,350, 500,300, 500,300, 500,350, 450,1050, 500,1000, 500,350, 500,1000, 500,1000, 500,1050, 500,1000, 500,350, 500};

unsigned int Temp27[] = {3050,1600, 550,1000, 500,1000, 550,300, 500,300, 550,250, 550,1000, 500,300, 550,300, 500,1000, 550,1000, 500,300, 550,1000, 550,250, 500,300, 550,1000, 500,1050, 500,300, 500,1000, 550,1000, 500,300, 550,250, 550,1000, 550,250, 550,300, 500,1000, 550,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,300, 500,300, 500,300, 550,300, 500,300, 500,1000, 550,300, 500,300, 550,1000, 500,300, 500,300, 550,1000, 550,1000, 500,300, 500,300, 550,250, 550,300, 500,300, 550,300, 500,300, 500,300, 550,1000, 500,300, 550,250, 550,300, 500,300, 500,300, 500,350, 500,300, 550,250, 550,1000, 500,1000, 550,1000, 500,300, 550,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,300, 500,300, 500,300, 550,300, 500,300, 550,250, 550,300, 500,300, 500,300, 500,300, 550,300, 550,250, 550,300, 500,300, 500,300, 550,300, 500,300, 500,300, 550,300, 500,300, 500,300, 550,300, 500,300, 500,300, 500,300, 500,350, 500,300, 500,350, 500,300, 500,300, 500,1050, 500,1000, 500,1050, 500,1000, 500,350, 500}; // PANASONIC C4D3:64800024

unsigned int Temp28[] = {3100,1600, 550,950, 550,1000, 550,250, 550,250, 550,250, 550,1000, 500,300, 500,300, 550,1000, 500,1000, 550,250, 550,1000, 500,300, 550,250, 550,1000, 550,950, 550,300, 500,1000, 550,950, 550,300, 550,250, 500,1000, 550,300, 500,300, 550,950, 550,300, 500,300, 500,300, 550,250, 550,300, 550,250, 500,300, 550,300, 500,300, 500,300, 550,250, 550,250, 600,250, 500,300, 500,300, 550,300, 500,300, 500,1000, 550,300, 500,300, 500,1000, 550,250, 550,300, 500,1000, 550,1000, 550,250, 550,250, 550,250, 550,300, 500,300, 550,250, 550,1000, 500,1000, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,1000, 500,300, 500,1000, 550,1000, 500,1000, 550,250, 550,300, 500,300, 550,250, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,250, 550,300, 550,250, 500,300, 550,250, 550,250, 550,300, 550,250, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,250, 550,300, 500,300, 550,1000, 500,300, 500,300, 550,950, 550,1000, 500,1000, 550,1000, 500,300, 550};

unsigned int Temp29[] = {3100,1550, 600,950, 500,1000, 550,300, 500,300, 500,300, 550,950, 550,300, 550,250, 550,1000, 500,1000, 550,250, 550,1000, 500,300, 550,250, 550,950, 600,950, 550,250, 550,1000, 500,1000, 550,250, 600,250, 550,950, 550,250, 550,300, 550,950, 550,250, 550,300, 550,250, 550,250, 550,250, 550,300, 550,250, 550,250, 550,300, 500,300, 550,250, 550,250, 550,300, 500,300, 550,250, 550,250, 600,250, 550,950, 550,250, 550,300, 500,1000, 550,250, 550,300, 550,950, 550,1000, 500,300, 500,300, 550,250, 550,250, 550,300, 500,300, 550,250, 550,1000, 500,300, 550,250, 550,300, 500,300, 550,250, 550,250, 550,300, 500,1000, 550,250, 550,1000, 500,1000, 550,1000, 500,300, 500,300, 550,300, 500,300, 500,300, 550,250, 550,250, 550,300, 500,300, 500,300, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,300, 500,300, 500,300, 550,250, 550,250, 550,300, 500,300, 500,300, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,250, 550,250, 550,1000, 500,1000, 550,1000, 500,1000, 550,300, 500};

unsigned int Temp30[] = {3000,1650, 500,1000, 550,1000, 500,300, 500,300, 550,250, 550,1000, 500,300, 500,300, 550,1000, 550,950, 550,250, 550,1000, 550,250, 550,250, 550,1000, 550,950, 550,300, 500,1000, 550,950, 550,300, 500,300, 550,950, 550,300, 550,250, 550,1000, 500,300, 500,300, 550,250, 550,250, 550,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,300, 500,300, 500,300, 550,950, 550,300, 500,300, 500,1000, 550,250, 550,300, 550,950, 550,1000, 500,300, 550,250, 550,250, 600,250, 500,300, 550,250, 550,1000, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,950, 550,300, 500,1000, 550,950, 550,1000, 500,300, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,250, 550,300, 500,300, 550,250, 550,300, 500,300, 500,300, 550,250, 550,300, 500,300, 550,950, 500,1050, 500,1000, 500,350, 500,1000, 500,1000, 500,1050, 500,300, 500};

//Change it for your remote


IRsend irsend;


int Measured_temp;

int Measured_Humi;

int AC_Temp;

char temp_error = 2;

int Pev_value;

boolean AC = false;


int khz = 38; // 38kHz carrier frequency for the NEC protocol


void setup()

{

Serial.begin(9600);

display.begin(SSD1306_SWITCHCAPVCC);

display.clearDisplay();

}


void loop() {



DHT.read11(DHT11_PIN); //Read the Temp and Humidity

Measured_temp = DHT.temperature + temp_error;

Measured_Humi = DHT.humidity;


// text display tests

display.setTextSize(1);

display.setTextColor(WHITE);

display.setCursor(0,0);

display.print("Temperature: "); display.print(Measured_temp);display.println("C");

display.setCursor(0,10);

display.print("Humidity: "); display.print(Measured_Humi);display.println("%");

display.setCursor(0,20);

display.print("AC Temp: "); display.print(AC_Temp);display.println("C");


display.display();

delay(500);

display.clearDisplay();



if ((Measured_temp <= (Desired_temperature-3)) && AC == true) //If AC is turned on and temperature is less than 3 degree of Desired value #24 turn off?

{

irsend.sendRaw(ACoff, sizeof(ACoff) / sizeof(ACoff[0]), khz); delay(2000);//Send signal to Turn Off the AC

AC_Temp = 0; AC=false;

}


if ((Measured_temp >= Desired_temperature+4) && AC == false) //If AC is off and measured Temp is greater than Desired Temp

{

irsend.sendRaw(ACon, sizeof(ACon) / sizeof(ACon[0]), khz); delay(2000); //Send Signal to Turn On the AC

delay(2000);

irsend.sendRaw(Temp27, sizeof(Temp27) / sizeof(Temp27[0]), khz); //Send signal to set 27*C

AC_Temp = 27; AC=true;

}


if ( Measured_temp != Pev_value) //Change the temperature only if the measured voltage value changes

{


if (Measured_temp == Desired_temperature+3) //If AC is ON and measured temp is very very high than desired

{

irsend.sendRaw(Temp24, sizeof(Temp24) / sizeof(Temp24[0]), khz); delay(2000);//Send signal to set 24*C

AC_Temp = 24;

}


if (Measured_temp == Desired_temperature+2) //If AC is ON and measured temp is very high than desired

{

irsend.sendRaw(Temp25, sizeof(Temp25) / sizeof(Temp25[0]), khz); delay(2000);//Send signal to set 25*C

AC_Temp = 25;

}


if (Measured_temp == Desired_temperature+1) //If AC is ON and measured temp is very high than desired

{

irsend.sendRaw(Temp26, sizeof(Temp26) / sizeof(Temp26[0]), khz); delay(2000);//Send signal to set 26*C

AC_Temp = 26;

}


if (Measured_temp == 27 ) //If AC is ON and measured temp is desired value

{

irsend.sendRaw(Temp27, sizeof(Temp27) / sizeof(Temp27[0]), khz); //Send signal to set 27*C

AC_Temp = 27;

}


if (Measured_temp == Desired_temperature-1) //If AC is ON and measured temp is low than desired value

{

irsend.sendRaw(Temp28, sizeof(Temp28) / sizeof(Temp28[0]), khz); delay(2000);//Send signal to set 28*C

AC_Temp = 28;

}


if (Measured_temp == Desired_temperature-2 ) //If AC is ON and measured temp is very low than desired value

{

irsend.sendRaw(Temp29, sizeof(Temp29) / sizeof(Temp29[0]), khz); delay(2000);//Send signal to set 29*C

AC_Temp = 29;

}


if (Measured_temp == Desired_temperature-3 ) //If AC is ON and measured temp is very very low desired value

{

irsend.sendRaw(Temp30, sizeof(Temp30) / sizeof(Temp30[0]), khz); delay(2000);//Send signal to set 30*C

AC_Temp = 30;

}


}

Pev_value = Measured_temp;

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 紅外發(fā)射器
    +關(guān)注

    關(guān)注

    0

    文章

    50

    瀏覽量

    16562
  • 溫度控制器
    +關(guān)注

    關(guān)注

    1

    文章

    179

    瀏覽量

    34880
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6524

    瀏覽量

    196549
  • DHT11
    +關(guān)注

    關(guān)注

    19

    文章

    277

    瀏覽量

    59545
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于arduinodht11溫濕度傳感的使用

    本文介紹了DHT11溫濕度傳感電氣特性、DHT11封裝形式及接口說(shuō)明與典型應(yīng)用電路,其次介紹了DHT11溫濕度傳感時(shí)序圖與連接圖,最后介
    發(fā)表于 01-22 15:50 ?5w次閱讀
    基于<b class='flag-5'>arduino</b>的<b class='flag-5'>dht11</b>溫濕度傳感<b class='flag-5'>器</b>的使用

    Arduino開發(fā)板使用DHT11溫濕度傳感的方法 精選資料分享

    在本篇文章中,我們將DHT11溫濕度傳感Arduino開發(fā)板和LCD顯示屏連接,設(shè)計(jì)一種能夠測(cè)量室溫和環(huán)境濕度的設(shè)備。簡(jiǎn)單地說(shuō),我們將使用Arduino
    發(fā)表于 07-13 09:35

    Arduino開發(fā)板使用DHT11溫濕度傳感的方法 精選資料分享

    在本篇文章中,我們將DHT11溫濕度傳感Arduino開發(fā)板和LCD顯示屏連接,設(shè)計(jì)一種能夠測(cè)量室溫和環(huán)境濕度的設(shè)備。簡(jiǎn)單地說(shuō),我們將使用Arduino
    發(fā)表于 07-13 06:58

    Arduino實(shí)現(xiàn)DHT11自動(dòng)控制L9110電機(jī)風(fēng)扇 精選資料分享

    Arduino實(shí)現(xiàn)DHT11自動(dòng)控制L9110電機(jī)風(fēng)扇本項(xiàng)目是通過Arduino軟件來(lái)編寫程序?qū)崿F(xiàn)硬件的控制,通過設(shè)置閾值來(lái)確定
    發(fā)表于 09-08 08:06

    使用DHT11和STM32單片機(jī)進(jìn)行濕度和溫度監(jiān)控

    測(cè)量0°C至50°C的溫度,精度為1°C。 它可以測(cè)量20%至90%的濕度,精度為1%。我們將把DHT11濕度和溫度傳感與STM32f103c8t6微
    發(fā)表于 03-01 06:24

    DHT11溫度傳感資料

    DHT11溫度傳感資料,感興趣的可以瞧一瞧。
    發(fā)表于 10-13 18:00 ?0次下載

    使用Arduino IDE在NodeMCU上使用DHT11溫度和濕度傳感

    使用Arduino IDE在NodeMCU上使用DHT11溫度和濕度傳感
    發(fā)表于 12-03 18:21 ?13次下載
    使用<b class='flag-5'>Arduino</b> IDE在NodeMCU上使用<b class='flag-5'>DHT11</b><b class='flag-5'>溫度</b>和濕度傳感<b class='flag-5'>器</b>

    DHT11與PIC16F877A連接進(jìn)行溫度和濕度的測(cè)量

    在本文中,我們將學(xué)習(xí)如何將此DHT11 與 PIC16F87A連接,這是一個(gè) 8 位 PIC 微控制器。我們將使用這個(gè)微控制器通過 DHT11 讀取
    的頭像 發(fā)表于 08-22 16:07 ?3900次閱讀
    將<b class='flag-5'>DHT11</b>與PIC16F877A連接進(jìn)行<b class='flag-5'>溫度</b>和濕度的測(cè)量

    Arduino讀取DHT22(或DHT11

    電子發(fā)燒友網(wǎng)站提供《用Arduino讀取DHT22(或DHT11).zip》資料免費(fèi)下載
    發(fā)表于 11-16 11:02 ?1次下載
    用<b class='flag-5'>Arduino</b>讀取<b class='flag-5'>DHT</b>22(或<b class='flag-5'>DHT11</b>)

    Arduino庫(kù)來(lái)讀取DHT11濕度和溫度傳感數(shù)據(jù)

    電子發(fā)燒友網(wǎng)站提供《用Arduino庫(kù)來(lái)讀取DHT11濕度和溫度傳感數(shù)據(jù).zip》資料免費(fèi)下載
    發(fā)表于 11-22 10:45 ?0次下載
    用<b class='flag-5'>Arduino</b>庫(kù)來(lái)讀取<b class='flag-5'>DHT11</b>濕度和<b class='flag-5'>溫度</b>傳感<b class='flag-5'>器</b>數(shù)據(jù)

    Arduino紅外發(fā)射器自動(dòng)映射

    電子發(fā)燒友網(wǎng)站提供《Arduino紅外發(fā)射器自動(dòng)映射.zip》資料免費(fèi)下載
    發(fā)表于 01-03 14:13 ?0次下載
    <b class='flag-5'>Arduino</b><b class='flag-5'>紅外</b><b class='flag-5'>發(fā)射器</b><b class='flag-5'>自動(dòng)</b>映射

    使用Arduino和Visuino在DHT11傳感的NeoPixel LED環(huán)上顯示溫度

    電子發(fā)燒友網(wǎng)站提供《使用Arduino和Visuino在DHT11傳感的NeoPixel LED環(huán)上顯示溫度.zip》資料免費(fèi)下載
    發(fā)表于 06-25 14:39 ?0次下載
    使用<b class='flag-5'>Arduino</b>和Visuino在<b class='flag-5'>DHT11</b>傳感<b class='flag-5'>器</b>的NeoPixel LED環(huán)上顯示<b class='flag-5'>溫度</b>

    ds18b20溫度傳感dht11的區(qū)別

    DS18B20和DHT11都是常用的溫度和濕度傳感,它們?cè)谠S多項(xiàng)目和應(yīng)用中都有廣泛的應(yīng)用。 1. 工作原理 DS18B20 DS18B20是一種數(shù)字溫度傳感
    的頭像 發(fā)表于 09-03 16:44 ?6573次閱讀

    dht11溫度傳感的原理及應(yīng)用

    DHT11是一種廣泛使用的數(shù)字溫濕度傳感,它能夠測(cè)量溫度和相對(duì)濕度。這種傳感因其低成本、易于使用和相對(duì)較高的準(zhǔn)確性而受到歡迎。 DHT11
    的頭像 發(fā)表于 09-03 17:28 ?5476次閱讀

    dht11溫度傳感特性的具體含義

    DHT11溫度傳感作為DHT11數(shù)字溫濕度傳感的一部分,具有一系列獨(dú)特的特性。以下是DHT11
    的頭像 發(fā)表于 09-03 17:40 ?3707次閱讀