树莓派作为客户端,wemos作为服务端,红外控制电视和空调

  • Post author:
  • Post category:其他


参考博文: https://blog.csdn.net/zhuguanlin121/article/details/118862684

https://blog.csdn.net/chinesekobe/article/details/108089201?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%A0%91%E8%8E%93%E6%B4%BE%E7%9A%84%E6%99%BA%E8%83%BD%E5%AE%B6%E5%B1%85wemos&utm_medium=distribute.pc_search_result.none-task-blog-2

all

sobaiduweb~default-3-108089201.pc_search_result_control_group&spm=1018.2226.3001.4187



wemos服务端代码



#include <ESP8266WiFi.h>  //WIFI头文件
char ssid[] = "youbao";   //自己家的WIFI账号
char passwd[] = "12345678"; //WIFI密码

const byte open_data_tv[] = 
{
    0xB3,0x4C,0xDC  //电视的打开码    开和关的码一致
       
};
const byte close_data_tv[] = 
{
    0xB3,0x4C,0xDC  //电视的关闭码    开和关的码一致
       
};
const byte open_data_airc[] = //空调的打开码
{
    0x40,0xDB,0x04
       
};
const byte close_data_airc[] = //空调的关闭码
{
    0x01,0xFA,0xDE
       
};
 
void initWifiSta()
{
  WiFi.mode(WIFI_STA);         // 设置STA模式
  WiFi.begin(ssid, passwd);   //连接网络
  while (WiFi.status() != WL_CONNECTED) {  
         Serial.print(".");
         delay(500);
   }
   Serial.println(WiFi.localIP());  //打印IP地址
    
   delay(500);
  
}
int port = 8888;  //端口号
WiFiServer server(port); // 设置服务器端口号
void setup() 
{
  Serial.begin(9600);   //设置波特率(和红外设相连接的波特率)
  initWifiSta();
}
void loop() {

    WiFiClient client = server.available();   //设置为服务端
    server.begin();//服务初始化 
    Serial.println(WiFi.localIP());   //打印IP
   while (client.connected())    //等待客户端的连接
   {
         while (client.available() > 0) { 
         char cmd = client.read();  //从客户端读取数据
         Serial.println(cmd);  //打印读取的数据
         if(cmd=='1')  
         {
            Serial.write(open_data_tv,(sizeof(open_data_tv) / sizeof(open_data_tv[0]))); //给红外设备发送开电视码
          }
          else if(cmd=='2')
          {
              Serial.write(close_data_tv,(sizeof(close_data_tv) / sizeof(close_data_tv[0])));//给红外设备发送关电视码   
          }
          if(cmd=='3')  
         {
            Serial.write(open_data_airc,(sizeof(open_data_airc) / sizeof(open_data_airc[0]))); //给红外设备发送开空调码
          }
          else if(cmd=='4')
          {
              Serial.write(close_data_airc,(sizeof(close_data_airc) / sizeof(close_data_airc[0])));//给红外设备发送关空调码   
          }
          
         }
   }
  
 
}



版权声明:本文为mantouyouyou原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。