arduino控制美的空调,点灯科技app控制

红外模块一点要选择单个5mm宽度的单个模块,并且购买三极管,这样控制距离很远

连线图

根据以上图片。红外模块要选5mm的直径宽度,三极管选择2n3904直插版。
需要安装以下库文件,解压复制库文件到\arduino-1.8.19\libraries
https://github.com/GYSS1204/IRsendMeidi_ESP8266-RN02S-Midea
以上链接是美的空调红外专用库文件,由于独特的编码技术。

点灯app新建设备选择arduino设备,然后复制密钥,替换程序中的密钥,同时替换wifi和密码。

ardunio代码如下

#define BLINKER_PRINT Serial
#define BLINKER_WIFI
#include <Blinker.h>  
#include <Arduino.h>
#include "IRsendMeidi.h"
#include <IRsend.h>
const uint8_t IR_LED = D5;   //设置发送信号的GPIO引脚号,官方推荐4
IRsendMeidi irsendmeidi(IR_LED);  //声明类对象


char auth[] = "1b55916227fb";//点灯科技的Key
char ssid[] = "TP-LINK_7AC8";//Wifi名称
char pswd[] = "20030812";//Wifi密码
const int IR_RX = D1;//设置红外接收管脚
const uint16_t kIrLed = D5;//红外发射管脚




BlinkerButton Button1("btn-On");
BlinkerButton Button2("btn-Study");
BlinkerButton Button3("btn-Cool");
BlinkerButton Button4("btn-Hot");
BlinkerButton Button5("btn-Wind");
BlinkerButton Button6("btn-17");
BlinkerButton Button7("btn-26");

int isOn,isStudy,isIr_r,address;
void button1_callback(const String & state) {
    BLINKER_LOG("开关按钮: ", state);
    if(state=="tap" && isOn==0){
     isOn=1;
     Button1.color("#7CFC00");
     Button1.text("开关-On");
     address=1300;
    
      Button1.print("开关-On");
     irsendmeidi.setPowers(1); //打开空调

    irsendmeidi.setPowers(1); //打开空调

     
     }
    else if(state=="tap" && isOn==1){
     isOn=0;
     Button1.color("#FF0000");
     Button1.text("开关-Off");
     
      Button1.print("开关-Off");
   //  SendIr();
 irsendmeidi.setPowers(0);    //关闭空调

     }
}



void button2_callback(const String & state) {
    BLINKER_LOG("学习按钮:", state);
    if(state=="tap" && isStudy==0){
     isStudy=1;
     Button2.color("#7CFC00");
     Button2.text("已进入学习模式!");
     Button2.print("On");//   发送按键当前的状态
     isIr_r=1;
 //    IRR.enableIRIn();
     }
    else if(state=="tap" && isStudy==1){
     isStudy=0;
     Button2.color("#FF0000");
     Button2.text("已退出学习模式");
     Button2.print("Off");
     isIr_r=0;
  //   IRR.disableIRIn();
     }
}

void button3_callback(const String & state) {
  BLINKER_LOG("制冷模式按钮: ", state);
  if(state=="tap" ){
    address=1320;
    Button3.color("#7CFC00");//Button3.print();
    Button4.color("#000000");Button4.print();
    Button5.color("#000000");Button5.print();
    if(isStudy==1)
    {Button3.print("正在学习:模式-制冷");}
     else if(isStudy==0)
     {Button3.print("制冷模式:开启");
    // SendIr();
irsendmeidi.setModes(1);  //设置为制冷模式

     
     
     }}
}



void button4_callback(const String & state) {
  BLINKER_LOG("制热模式按钮:", state);
  if(state=="tap" ){
    address=1330;
    Button3.color("#000000");Button3.print();
    Button4.color("#7CFC00");//Button4.print();
    Button5.color("#000000");Button5.print();
    if(isStudy==1)
    {Button4.print("正在学习:模式-制热");}
     else if(isStudy==0)
     {Button4.print("制热模式:开启");
    // SendIr();
    
    
    }}
}


void button5_callback(const String & state) {
  BLINKER_LOG("送风模式按钮:", state);
  if(state=="tap" ){
    address=1340;
    Button3.color("#000000");Button3.print();
    Button4.color("#000000");Button4.print();
    Button5.color("#7CFC00");//Button5.print();
    if(isStudy==1)
    {Button5.print("正在学习:模式-送风");}
     else if(isStudy==0)
     {Button5.print("送风模式:开启");
    // SendIr();
     
     
     }}
}




void button6_callback(const String & state) {
  BLINKER_LOG("17摄氏度按钮:", state);
  if(state=="tap" ){
  
   
    Button6.color("#7CFC00");//Button5.print();
    irsendmeidi.setTemps(17); 
     Button6.print("17摄氏度模式:开启");
     
     
     }}




void button7_callback(const String & state) {
  BLINKER_LOG("23摄氏度按钮:", state);
  if(state=="tap" ){
  
   
    Button6.color("#7CFC00");//Button5.print();
    irsendmeidi.setTemps(23); 
     Button6.print("17摄氏度模式:开启");
     
     
     }}




void dataRead(const String & data){BLINKER_LOG("Blinker readString: ", data);}

 

void setup() {
 
  Serial.begin(115200);

    Serial.println("OK!");

  #if defined(BLINKER_PRINT)
    BLINKER_DEBUG.stream(BLINKER_PRINT);
  #endif
    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
    
    Button1.attach(button1_callback);
    Button2.attach(button2_callback);
    Button3.attach(button3_callback);
    Button4.attach(button4_callback);
    Button5.attach(button5_callback);
 Button6.attach(button6_callback);
  Button7.attach(button7_callback);
  //button4_callback("tap");//默认送风模式

irsendmeidi.begin_2();   //初始化
irsendmeidi.setZBPL(40); //设置红外载波频率,单位kHz,不调用此函数则默认38,由于未知原因,我设置为40,示波器测得频率为38左右,当发送信号后没反应时,尝试更改此值。
irsendmeidi.setCodeTime(500,1600,550,4400,4400,5220); //设

  
  Serial.println("All int is OK!");
  delay(1000);
  
}

void loop() {
      Blinker.run();
      if(isIr_r==1)
      {
        }
        delay(100);
}

点灯app的页面配置如下,进入点灯app选择页面配置输入以下代码,则页面组件就自动画好了。

{¨version¨¨2.0.0¨¨config¨{¨headerColor¨¨transparent¨¨headerStyle¨¨dark¨¨background¨{¨img¨¨assets/img/headerbg.jpg¨¨isFull¨«}}¨dashboard¨|{¨type¨¨btn¨¨ico¨¨fal fa-power-off¨¨mode¨É¨t0¨¨开关-Off¨¨t1¨¨文本2¨¨bg¨É¨cols¨Ë¨rows¨Ë¨key¨¨btn-On¨´x´É´y´Ï¨clr¨¨#EA0909¨¨lstyle¨É}{ßC¨deb¨ßGÉßLÉßMÑßNÌßO¨debug¨´x´É´y´Ê}{ßCßDßEßFßGÉßH¨模式-制冷¨ßJßKßLÉßMËßNËßO¨btn-Cool¨´x´É´y´¤AßSÉßQ¨#595959¨}{ßCßDßEßFßGÉßH¨模式-制热¨ßJßKßLÉßMËßNËßO¨btn-Hot¨´x´Ì´y´¤AßSÉßQßX}{ßCßDßEßFßGÉßH¨模式-送风¨ßJßKßLÉßMËßNËßO¨btn-Wind¨´x´Ï´y´¤AßSÉßQßX}{ßC¨ran¨ßH¨滑动条¨ßQ¨#389BEE¨¨max¨¤Q¨min¨¤HßLÉßMÑßNËßO¨ran-cl3¨´x´É´y´¤D¨rt¨»}{ßCßTßGÉßLÉßMÑßNÌßOßU´x´É´y´¤F}{ßC¨tim¨ßLÉßMËßNËßO¨timing¨´x´É´y´Í}{ßCßDßEßFßGÉßH¨17摄氏度¨ßJßKßLÉßMËßNËßO¨btn-17¨´x´Ë´y´Í}{ßCßDßEßFßGÉßH¨26摄氏度¨ßJßKßLÉßMËßNËßO¨btn-26¨´x´Í´y´Í}÷¨actions¨|÷¨triggers¨|÷ßi|ßh÷}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值