欧美一级A做爰片成电影网站,建设银行公积金预约网站,用自己电脑建网站,sqlite 网站开发参考#xff1a;U如何用树莓派连接语音模块#xff0c;红外模块来控制红外设备详解 作者#xff1a;一只青木呀 发布时间#xff1a;2020-08-12 17:14:10 网址#xff1a;https://blog.csdn.net/weixin_45309916/article/details/107960066 目录硬件软件红外解码步骤1.连接… 参考U如何用树莓派连接语音模块红外模块来控制红外设备详解 作者一只青木呀 发布时间2020-08-12 17:14:10 网址https://blog.csdn.net/weixin_45309916/article/details/107960066 目录硬件软件红外解码步骤1.连接红外设备与TTL串口相连2.获取开关红外电器的码树莓派和Wemos通信硬件
1.USB转TTL串口
2.WomosD1开发板
3.树莓派开发板
4.红外模块
5.红外设备如红外灯
软件
1 . arduino开发环境
2 .树莓派系统
3 .串口调试小助手
红外解码步骤 思路利用红外码控制红外家电 1.连接红外设备与TTL串口相连 把TTL插入到电脑USB接口打开串口调试小助手波特率等信息都要设置好USB驱动装好。 2.获取开关红外电器的码
用遥控器对着红外工具按键会返回相对应的码一般商家都会有详细的资料可以翻阅。
有些红外设备还需要特定的格式这里参考自己买的红外设备的资料为准。
然后按照特定的格式发回去一定要按照16进制发送红外设备对准红外电器看是否有反应。
树莓派和Wemos通信
这里我们通信使用TCP通讯方式在Wemos开启TCP的服务端树莓派写一个TCP的客户端。
Wemos TCP服务端 #include ESP8266WiFi.h //WIFI头文件
char ssid[] muqiao; //自己家的WIFI账号
char passwd[] 987654321; //WIFI密码const byte data_off[]
{0xA1,0xF1,0x80,0x7F,0x01 //灯的开关码 一般开和关的码一致};
const byte data_on[]
{0xA1,0xF1,0x80,0x7F,0x01};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();/* while(!Serial) //串口未成功则循环等待{ delay(1000); // 延迟1秒}Serial.println(串口启动成功); //通知串口*/
}
void loop() {/*if(Serial.available()) //是否有数据传入 (数据只会一个一个读取){ Serial.write(Serial.read()); //串口接收后再串口发送/输出数据 // ESP.restart(); // 重启设备 }*/WiFiClient client server.available(); //设置为服务端server.begin();//服务初始化 Serial.println(WiFi.localIP()); //打印IPwhile (client.connected()) //等待客户端的连接{while (client.available() 0) { char cmd client.read(); //从客户端读取数据Serial.println(cmd); //打印读取的数据if(cmd1) {// Serial.println(recv 1);Serial.write(data_on,(sizeof(data_on) / sizeof(data_on[0]))); //给红外设备发送开灯码}else if(cmd2){// Serial.println(close light\r\n);Serial.write(data_off,(sizeof(data_off) / sizeof(data_off[0])));//给红外设备发送关灯码 其实是一样的 嘻嘻嘻}}}}树莓派TCP客户端
#includenetinet/in.h
#include arpa/inet.h
#includestdio.h
#includestdlib.h
#includestring.h
#includeunistd.h
int main(int argc,char **argv){char readbuf[2];char ch[128];if (argc!3){printf(input not good\n);exit(-1);}int fd_a;int s_fdsocket(AF_INET, SOCK_STREAM,0);//配置通信模式if (s_fd-1){perror(socket);exit(-1);}struct sockaddr_in addr;struct sockaddr_in addr1;memset(addr,0,sizeof(struct sockaddr_in));addr.sin_familyAF_INET;addr.sin_porthtons(atoi(argv[2]));inet_aton(argv[1],addr.sin_addr);if(connect(s_fd,(struct sockaddr *)addr,sizeof(struct sockaddr))-1)//连接wemos版{ perror(connect);exit(-1);}else{printf(connect success\n);}while(1){printf(请输入发送的指令\n); //发送的数据和wemos判断相结合哦gets(readbuf);puts(readbuf);write(s_fd,readbuf,strlen(readbuf));//向wemos版发送信息}return 0;
}走到这里已经差不多了通信就解决了。语音模块的话根据自己的语音模块代码进行修改。