使用esp8266使用小爱同学实现开灯与关灯操作

简介: 使用esp8266使用小爱同学实现开灯与关灯操作

材料部分:

基于esp8266的继电器模块

esp8266——01s模块一个

ch340烧录模块一个

杜邦线若干

软件部分:

arduino ide编辑器下载器地址:https://www.arduino.cc/en/Main/Software 下载Arduino

IDE软件后,解压缩该文件夹。在文件夹中找到exe的文件打开即可

然后是ide(编辑器)的配置:打开软件一次打开文件——》首选项,然后在附加开发板管理网址里面添加

http://arduino.esp8266.com/stable/package_esp8266com_index.json

最后依次点开工具——》开发板,开发板管理器然后搜索8266第一个就是然后下载安装即可;

手机软件:米家APP、点灯.Blinker APP

打开app点击上面的加号然后添加arduino——》wifi接入然后记录上面的key数值后面代码会用到

然后打开米家app一次点击我的——》其他平台接入——》点灯科技待搜索完成过后就会找到你的设备然后同步即可 代码部分:

首先安装运行库到ardnio安装目录(最后会附上链接)

/*Flash Size至少1M起
2019年10月14日
参考文档https://diandeng.tech/doc/xiaoai
#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT//支持小爱同学
#include <Blinker.h>

char auth[] = “8*****4”;//app中获取到的Secret Key(密钥)
char ssid[] = “MERCURY_****”;//自己家里的WiFi名字不可以有中文识别不出来
char pswd[] = “*******”;//家里的WiFi密码
int GPIO = 0; //定义继电器输入引脚为GPIO/0

// 新建组件对象
BlinkerButton Button1(“btn_led”);//注意:要和APP组件’数据键名’一致

// 按下BlinkerAPP按键即会执行该函数
void button1_callback(const String & state) {
BLINKER_LOG(“get button state: “,state);
digitalWrite(GPIO, !digitalRead(GPIO));
Blinker.vibrate();
}
//小爱电源类操作的回调函数:
//当小爱同学向设备发起控制, 设备端需要有对应控制处理函数
void miotPowerState(const String & state)
{
BLINKER_LOG(“need set power state: “, state);
if (state == BLINKER_CMD_ON) {
digitalWrite(GPIO, HIGH);
BlinkerMIOT.powerState(“on”);
BlinkerMIOT.print();
}
else if (state == BLINKER_CMD_OFF) {
digitalWrite(GPIO, LOW);
BlinkerMIOT.powerState(“off”);
BlinkerMIOT.print();
}
}
void setup() {
// 初始化串口,并开启调试信息,调试用可以删除
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
// 初始化IO
pinMode(GPIO, OUTPUT);
digitalWrite(GPIO, HIGH);
// 初始化blinker
Blinker.begin(auth, ssid, pswd);
Button1.attach(button1_callback);
//小爱同学务必在回调函数中反馈该控制状态
BlinkerMIOT.attachPowerState(miotPowerState);//注册回调函数
}
void loop() {
Blinker.run();
}

硬件连接部分:

1、烧录模块:

2、继电器硬件模块

问题总结:

1、开发板扩展缓慢一直下载不下来,但是通过几次尝试最后换成移动网络下载解决

2、代码一直编译不通过出现exit status 1错误,通过强大的搜索引擎才知道编译器上面出现看不到的错误“/302 inprogram”

最后我把代码放在notepad++上面发现有很多的?在语句的前面最后删除上传解决了问题

3、下载问题第一次使用这个软件我以为出现那个问题以为是烧录成功了,最后测试失败再从代码上面找问题

A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header

提示头文件等待超时,原因是esp8266在下载的过程中需要把GPIO0这个端口接地进入下载模式最后烧录成功

4、因为家中网络原因有时候小爱同学发送指令会等待1秒钟才会有反应,就连我跟小爱同学对话都会出现等待(暂时无法解决只能充钱)

附件地址:

链接:https://pan.baidu.com/s/17ZVTWxaVYReWKxbxo1kgbw

提取码:9qqa


相关文章
|
传感器 人工智能 物联网
带你了解热门IoT开源项目:home assistant
home assistant是一个基于python的家庭智能化平台,可运行于本地服务器,或者树莓派上。利用该平台,可以统一控制家庭中所有的智能设备。
带你了解热门IoT开源项目:home assistant
|
弹性计算 容灾 关系型数据库
阿里云服务器ECS中扩容云盘后磁盘容量没有增加的解决方法
ECS控制台操作扩容只是扩大云盘的存储容量,不会扩容ECS实例的文件系统。还需要登录实例,然后进行扩容文件系统的操作。
2820 0
阿里云服务器ECS中扩容云盘后磁盘容量没有增加的解决方法
|
6月前
|
弹性计算 小程序 关系型数据库
使用阿里云服务器ECS快速【搭建微信小程序】图文教程,小白0基础轻松上手
本文介绍如何利用阿里云ECS、RDS、DNS及SSL证书,快速部署博客网站并接入微信小程序。通过Terraform模板实现资源自动化创建,结合WordPress与JWT鉴权,10分钟内完成小程序后端搭建与前端开发,支持内容浏览与创作,助力开发者高效上线微信小程序。
|
数据可视化 算法 数据挖掘
用傅里叶变换解码时间序列:从频域视角解析季节性模式
本文介绍了如何使用傅里叶变换和周期图分析来识别时间序列中的季节性模式,特别是在能源消耗数据中。通过Python实现傅里叶变换和周期图,可以有效提取并量化时间序列中的主要和次要频率成分,克服传统可视化分析的局限性。这对于准确捕捉时间序列中的季节性变化具有重要意义。文章以AEP能源消耗数据为例,展示了如何应用这些方法识别日、周、半年等周期模式。
766 3
用傅里叶变换解码时间序列:从频域视角解析季节性模式
|
存储 移动开发 程序员
alist对接钉钉sso登录
本文介绍了如何将Alist与钉钉SSO登录对接。Alist是一个基于Go语言开发的文件管理程序,支持多平台和多种存储方式。通过设置自定义头部、配置钉钉开放平台应用及回调参数,并获取Client ID和Client Secret,可实现钉钉SSO登录功能。最后根据需求配置用户权限,默认权限值可通过相加不同权限数字获得。成品展示了一个美观且实用的文件管理系统。
1025 9
alist对接钉钉sso登录
|
内存技术
esp8266-01s烧录AT固件方法以及遇到的问题总结
esp8266-01s烧录AT固件方法以及遇到的问题总结
2499 0
|
传感器 搜索推荐 数据处理
智能织物:纺织品中的科技革新
【10月更文挑战第13天】智能织物通过融合传感器、微处理器和无线通信技术,赋予传统纺织品更多功能性和智能化属性,正从科幻走向现实。本文探讨其原理、类型及应用,如健康监测、运动辅助和环境适应等,并展望其未来发展趋势,包括多功能集成、可穿戴设备融合、环保可持续及个性化定制,引领纺织品领域的深刻变革。
|
数据采集 算法 搜索推荐
Python基于RFM模型和K-Means聚类算法进行航空公司客户价值分析
Python基于RFM模型和K-Means聚类算法进行航空公司客户价值分析
|
弹性计算 缓存 测试技术
云服务器2核4G能支持多少人同时访问?2核4G5M并发量评测!
阿里云2核4g服务器能支持多少人访问?2核4G服务器并发数性能测试,阿小云账号下的2核4G服务器支持20人同时在线访问,然而应用不同、类型不同、程序效率不同实际并发数也不同,2核4G服务器的在线访问人数取决于多个变量