首页 > 其他分享 >语音助手-智能家居

语音助手-智能家居

时间:2023-01-17 22:36:05浏览次数:49  
标签:BLINKER digitalWrite CMD 智能家居 state 助手 mode 语音 MIOT

 

 

 

-项目概述-

寝室里,我离门最远,寝室的大学牲小朋友们却总是早早的爬上了床,要我去开门关灯,这很烦!

技术宅需要解放生产力。要不,弄一个语音助手吧!

 目的:

  • 语音控制所有接入接口的开关器件
  • PWM分级控制模拟量器件(如灯的亮度)
  • 多种电平兼容
  • 场景分离控制(如主卧的灯,次卧的灯)
  • 自定义APP(可选择WiFi连接)
  • 屏幕显示接入设备,设备在线显示,离线警告,电压显示,温度显示,时显
  • 可在断网情况下手动控制

-项目预览-

 

-项目框架-

主要思路:小爱同学接入点灯科技,点灯科技留出接口供ESP8266使用,ESP8266与51串口通讯,51控制所有硬件外设。

项目框架如下:

 

 

-项目代码-

主框架代码很简单,如下:

  1 #define BLINKER_WIFI
  2 #define BLINKER_MIOT_LIGHT 
  3 #include <Blinker.h>
  4 
  5 #define LED   2  
  6 char auth[] = "077eb2b1e5a6"; // blinker 秘钥
  7 char ssid[] = "PotatoWorld";  // wifi 名字
  8 char pswd[] = "jrj827508";    // wifi 密码
  9 
 10 bool wsState;
 11 
 12 uint8_t wsMode = BLINKER_CMD_MIOT_DAY;
 13 // 新建组件对象
 14 BlinkerButton Button1("btn-abc");//注意:要和APP组件’数据键名’一致
 15  
 16 // 按下BlinkerAPP按键即会执行该函数
 17 void button1_callback(const String & state) {
 18  BLINKER_LOG("get button state: ", state);
 19  digitalWrite(D3, !digitalRead(D3));
 20  digitalWrite(LED, !digitalRead(LED)); 
 21  Blinker.vibrate();
 22 }
 23  
 24 //小爱电源类操作的回调函数:
 25 //当小爱同学向设备发起控制, 设备端需要有对应控制处理函数 
 26 void miotPowerState(const String & state)
 27 {
 28     BLINKER_LOG("need set power state: ", state);
 29 
 30     if (state == BLINKER_CMD_ON) {
 31         //digitalWrite(LED_BUILTIN, LOW);
 32         digitalWrite(D3, HIGH);
 33         BlinkerMIOT.powerState("on");
 34         BlinkerMIOT.print();
 35     }
 36     else if (state == BLINKER_CMD_OFF) {
 37         //digitalWrite(LED_BUILTIN, HIGH);
 38         digitalWrite(D3, LOW);
 39         BlinkerMIOT.powerState("off");
 40         BlinkerMIOT.print();
 41     }
 42 }
 43 
 44 void miotMode(uint8_t mode)
 45 {
 46     BLINKER_LOG("need set mode: ", mode);
 47 
 48     if (mode == BLINKER_CMD_MIOT_DAY) {
 49         
 50     }
 51     else if (mode == BLINKER_CMD_MIOT_NIGHT) {
 52         
 53     }
 54     else if (mode == BLINKER_CMD_MIOT_COLOR) {
 55        
 56     }
 57     else if (mode == BLINKER_CMD_MIOT_WARMTH) {
 58       
 59     }
 60     else if (mode == BLINKER_CMD_MIOT_TV) {
 61        
 62     }
 63     else if (mode == BLINKER_CMD_MIOT_READING) {
 64         // 床上灯光
 65         digitalWrite(D1, HIGH); 
 66     }
 67     else if (mode == BLINKER_CMD_MIOT_COMPUTER) {
 68         
 69         digitalWrite(D1, LOW);
 70     }
 71 
 72     wsMode = mode;
 73 
 74     BlinkerMIOT.mode(mode);
 75     BlinkerMIOT.print();
 76 }
 77 
 78 void setup() {
 79  // 初始化串口,并开启调试信息,调试用可以删除
 80  Serial.begin(115200); 
 81  pinMode(D1, OUTPUT);
 82  digitalWrite(D1, LOW);
 83  
 84  BLINKER_DEBUG.stream(Serial);
 85  // 初始化IO
 86  pinMode(LED, OUTPUT); 
 87  pinMode(D1, OUTPUT);
 88  pinMode(D3, OUTPUT);
 89  
 90  digitalWrite(LED, HIGH); // 初始化 led 高电平 ,则灯熄灭状态
 91  digitalWrite(D3, LOW);
 92  digitalWrite(D1, LOW);
 93  
 94  
 95  // 初始化blinker
 96  Blinker.begin(auth, ssid, pswd);
 97  Button1.attach(button1_callback);
 98  
 99  //小爱同学务必在回调函数中反馈该控制状态 
100  BlinkerMIOT.attachPowerState(miotPowerState);//注册回调函数
101  BlinkerMIOT.attachMode(miotMode);
102 }
103 
104 
105 void loop() {
106  Blinker.run();
107 }

 

  • 点灯科技的开发文档:https://diandeng.tech/doc
  • 点灯科技接入ESP8266详细教程:https://www.bilibili.com/video/BV1jg4y1q7mQ/
  • 点灯科技接入米家:https://zhuanlan.zhihu.com/p/128643917

 

-项目槽点-

 

标签:BLINKER,digitalWrite,CMD,智能家居,state,助手,mode,语音,MIOT
From: https://www.cnblogs.com/polaris07/p/17058823.html

相关文章

  • 闻其声而知雅意,基于Pytorch(mps/cpu/cuda)的人工智能AI本地语音识别库Whisper(Python
    前文回溯,之前一篇:含辞未吐,声若幽兰,史上最强免费人工智能AI语音合成TTS服务微软Azure(Python3.10接入),利用AI技术将文本合成语音,现在反过来,利用开源库Whisper再将语音转回......
  • 在私人电脑卸载公司的安全助手
    私人电脑因为有时候需要连接公司的VPN,需要安装公司的安全助手才能正常使用,但是因为是私人电脑,为了保留隐私,不希望公司的安全助手安装在笔记电脑上,但是一般公司的安全助手没......
  • C++文学研究助手[2023-01-16]
    C++文学研究助手[2023-01-16]综合实验18文学研究助手一、实验目的(1)熟练掌握串的基本操作及应用。(2)熟练掌握串的匹配操作算法。(3)基于串的存储和操作,实现对英文......
  • 语音通知插件
    SoundNotify组件简介消息通知组件。支持文字转语音、音频播报、桌面通知。下载GitHubGitee效果在线体验地址:GitHub示例<!doctypehtml><htmllang="zh">......
  • 人工智能之语音识别技术的重要性
    语言是人与人之间沟通的桥梁,语音识别技术涵盖多种学科,包括语音学、计算机学、心理学、声学等。作为人工智能领域最成熟、落地最快的技术,语音识别技术改变了互联网交互方式,......
  • 外业利器|外业模板化数据采集助手
    你是不是在外业调查时要背着一堆图纸是不是一不小心图纸污损或丢失,工作又得重做是不是经常会出现图纸标注的空间不足是不是外业采集中要携带一大堆繁琐的仪器是不是每......
  • javascript将文本转语音功能
    通过jiavascript将文本内容转化为语音播放,代码如下:<body><buttononclick="start()">点击</button><script>vartext='语音输入开始'var......
  • ubuntu安装串口助手
    1kxb@kxb:~$sudoapt-getinstallminicom2[sudo]kxb的密码:3正在读取软件包列表...完成4正在分析软件包的依赖关系树5正在读取状态信息...完......
  • 亲测有效! Bypass V1.15.5 12306分流抢票助手 for Windows
    亲测有效!BypassV1.15.512306分流抢票助手forWindows12306Bypass也就是12306分流抢票软件,是一款全程自动抢票,自动识别验证码,多线程秒单、稳定捡漏,支持多天、多车次......
  • TweenLite中文帮助手册
    TweenLite中文帮助手册TweenLite下载官方网站:​​​http://www.greensock.com/​​​为什么要用TWEENLITE而不用ADOBE官方的TWEEN?效率(这也是作者所标榜的TWEENLITE2......