ESP8266用点灯app接入小爱同学

ESP8266接入小爱同学—智能LED台灯或风扇

首先用的是arduino IDE对esp8266进行的编译,arduino对8266编译环境的具体配置可参考

1.利用WiFiManager库实现自动配网,亦能够满足在不同WiFi下可以不用更改程序即可链接不同的WiFi

2.利用esp8266 OTA功能实现应用程序在局域网内升级,解除数据线限制

3.通过MQTT协议实现摆脱局域网限制的远程控制,实现远程控制灯的亮和灭

4.接入自己小米手机的米家软件,实现小爱同学语音控制

5.利用另一个机械开关实现网络和机械双控制,以应对网络不稳定情况的发生

6.利用继电器进行控制,实际上可以不用,但因为自己没用过,所以借此机会应用一下,了解一下

另外还想利用一下esp8266多任务处理的Ticker库,因为感觉只用几个引脚控制一个灯有点大材小用,比如可以再连接温湿度传感器或者0.96寸oled屏幕之类的

其他说明


1.如果绑定blinker账号后,点灯科技列表中没有设备,可能是您设备中没有烧写小爱支持程序,或者设备没有成功上线。

2.绑定blinker账号后,通过手机上的小爱同学也可以控制设备

3.blinker App中对设备进行修改或新增后,可在米家App中,通过 我的>其他平台设备>点灯科技>同步设备 更新设备信息

但是后面实际做的时候由于时间不充足,所以砍掉了几项功能

完成的有:

基本电路连接、点灯、手机app控制、小爱同学语音控制、单独机械开关控制 (台灯在app和小爱语音端处于开状态时,便可单独用机械开关控制,)

硬件准备:

ESP8266-2102开发板一块

5V继电器一个

控制设备一个

母对母杜邦线三根

数据线(micro usb接口)一根

首先我们要用到继电器(可淘宝购买),先说一下继电器的原理及用法:

电磁继电器的作用:使用来用弱电控制强电,保证人们不会在高压电路中因为某种因为发生危险

先看右端三个脚的作用:(右端三个脚接8266开发板(我们直接采用8266的引脚供电)):

VCC就是电源正极,GND就是电源负极,IN是通断信号的输入引脚。

再看左端三个脚的作用:

NC即常闭端(normal close),COM即公共端,NO即常开端(即断路状态),也就是说,在没有任何上电之类的动作时,NC和COM端相当于已经连通,而NO和COM是断开的。

当8266引脚向右面三个脚中的IN端输入控制信号时,NC和COM断开,而COM和NO连接,IN失电时,恢复为NC和COM连通,NO和COM断开。

我们将利用继电器的上述特性来控制灯的亮灭:

当8266引脚向右面三个脚中的IN端输入信号时,NC和COM将断开,而NO和COM将连接。

8266和继电器具体接法看下图(用D4引脚控制):

继电器和灯的供电线的连接见下图:

即灯(或风扇)的两条电路中的一条穿过NO、COM端,然后正常连接电源。

剩下的就是程序了,我们需要用到点灯科技平台,直接百度搜索就可以了。然后点击进入官网.具体操作即步骤顺序见下图:

1.手机端下载blinker app并安装及注册完成。

2.电脑端arduino IDE安装好上图中5号步骤中的库。(安装步骤可参考下图)

然后在弹出页面中选择下载的库文件,不用解压缩,直接选中点击确认即可。

手机APP端设置:

1.打开后点击右上角加号,点击独立设备,点击网络接入,点击阿里云(因为点灯科技云暂时不支持小爱同学)。然后复制KEY备用。(放入电脑端程序用以匹配设备)。

2.返回后点击添加的设备,再点击右上角编辑符号,添加一个按钮,注意数据键名,此名称要与你的电脑端程序中一致(此示例程序中命名为bin)。

确认线路接线无误为ESP8266烧入程序:

usb数据线连接esp8266开发板到电脑,打开arduino IDE写入以下程序,然后上传到开发板。

#define BLINKER_PRINT Serial
#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT
#include <Blinker.h>int LIGHT = D4;
char auth[] = "你复制的KEY";
char ssid[] = "你的无线网(或热点)名称";
char pswd[] = "无线网密码";// 新建组件对象
BlinkerButton Button1("bin");//你的按钮名称
BlinkerNumber Number1("num-abc");int counter = 0;void miotPowerState(const String & state)//用户自定义电源类操作的回调函数
{BLINKER_LOG("need set power state: ", state);if (state == BLINKER_CMD_ON) {digitalWrite(LIGHT, LOW);BlinkerMIOT.powerState("on");BlinkerMIOT.print();}else if (state == BLINKER_CMD_OFF) {digitalWrite(LIGHT, HIGH);BlinkerMIOT.powerState("off");BlinkerMIOT.print();}
}
// 按下按键即会执行该函数
void button1_callback(const String & state) {BLINKER_LOG("get button state: ", state);digitalWrite(LIGHT, !digitalRead(LIGHT));
}// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{BLINKER_LOG("Blinker readString: ", data);counter++;Number1.print(counter);
}void setup() {// 初始化串口Serial.begin(115200);#if defined(BLINKER_PRINT)//这里不一样BLINKER_DEBUG.stream(BLINKER_PRINT);#endif// 初始化有LED的IOpinMode(LIGHT, OUTPUT);digitalWrite(LIGHT, HIGH);// 初始化blinkerBlinker.begin(auth, ssid, pswd);Blinker.attachData(dataRead);Button1.attach(button1_callback);BlinkerMIOT.attachPowerState(miotPowerState);//小爱用户自定义电源类操作的回调函数:
}void loop() {Blinker.run();
}

然后便可使用blinker app控制灯或风扇的开关了。

接入小爱同学:

下载米家app并打开点击我的,点击其他平台设备,找到点灯科技,输入点灯科技注册账号。然后试一试语音叫小爱同学开关灯试试。有时一次可能添加不成功,多试几次看看是不是哪里出了问题。

(还有一个问题就是你的设备名称,这个可以在blinker app中点击你的设备,但后点击右上角的三个点图标,修改设备名就可以了,还可以设置定时任务等)

对于blinker平台更丰富一点功能的使用方法清参考ESP8266+DHT11温湿度传感器+小爱同学语音智能LED灯(状态可视化)

Blinker小爱同学接口函数


light:

#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT#include <Blinker.h>

outlet:

#define BLINKER_WIFI
#define BLINKER_MIOT_OUTLET#include <Blinker.h>

sensor:

#define BLINKER_WIFI
#define BLINKER_MIOT_SENSOR#include <Blinker.h>

multi_outlet:

#define BLINKER_WIFI
#define BLINKER_MIOT_MULTI_OUTLET#include <Blinker.h>

同步设备后可显示一个插座和四个插孔(名为插孔的插座设备)

风扇fan:

#define BLINKER_WIFI
#define BLINKER_MIOT_FAN#include <Blinker.h>

aircondition:

#define BLINKER_WIFI
#define BLINKER_MIOT_AIR_CONDITION#include <Blinker.h>

设备设置后即可使用 小爱同学 BlinkerMIOT

小爱数据管理

智能音箱接口, 反馈数据到小爱同学

==任何控制务必即时反馈==

==超时2s以上再反馈,小爱同学就默认设备不在线,小爱同学会反馈“智能家居控制出了点问题”==

函数 :

  • powerState()
    BlinkerMIOT.powerState()
    反馈电源状态

  • mode()
    BlinkerMIOT.mode()
    反馈运行模式

  • color()
    BlinkerMIOT.color()
    反馈颜色属性

  • colorTemp()
    BlinkerMIOT.colorTemp()
    反馈色温属性

  • brightness()
    BlinkerMIOT.brightness()
    反馈亮度属性

  • temp()
    BlinkerMIOT.temp()
    反馈温度属性

  • humi()
    BlinkerMIOT.humi()
    反馈湿度属性

  • pm25()
    BlinkerMIOT.pm25()
    反馈PM2.5属性

  • level()
    BlinkerMIOT.level()
    反馈风速/挡位属性

  • hswing()
    BlinkerMIOT.hswing()
    反馈左右摆风状态

  • vswing()
    BlinkerMIOT.vswing()
    反馈上下摆风状态

  • eco()
    BlinkerMIOT.eco()
    反馈ECO节能模式状态

  • anion()
    BlinkerMIOT.anion()
    反馈负离子模式状态

  • heater()
    BlinkerMIOT.heater()
    反馈辅热功能状态

  • dryer()
    BlinkerMIOT.dryer()
    反馈干燥功能状态

  • sleep()
    BlinkerMIOT.sleep()
    反馈睡眠模式状态

  • soft()
    BlinkerMIOT.soft()
    反馈柔风功能状态

  • uv()
    BlinkerMIOT.uv()
    反馈UV杀菌功能状态

  • unStraightBlow()
    BlinkerMIOT.unStraightBlow()
    反馈防直吹功能状态

  • print()
    BlinkerMIOT.print()
    将以上属性发送出去, 务必最后调用该函数

小爱设备支持的控制类型

  • 设备控制

  • 电源类的操作

  • 设备打开

  • 设备关闭

  • 颜色的设置

  • 模式的设置

  • 亮度的控制

  • 亮度设置指定值

  • 亮度调成最值(最大、最小)

  • 步长设置亮度(调亮、调暗)

  • 色温的控制

  • 色温设置指定值

  • 步长设置色温(调冷、调暖)

  • 温度的控制

  • 温度设置指定值

  • 步长设置温度

  • 摆风的控制

  • 上下/左右摆风

  • 设备查询

  • 单个属性的查询

小爱支持的语音指令


  • 打开/关闭{门口}的{灯}

  • 把{卧室}的{灯}调为{红色}
    颜色范围为0-16777215(0xFFFFFF)

  • 把{卧室}的{灯}的{亮度调高一点}
    亮度范围为1-100

  • 把{门口}的{灯}的{色温}调到{1400}
    色温范围为1000-10000

  • 把{卧室}的{灯}调为{月光模式}

  • 查询{卧室}的{灯}的状态

  • 插座

  • 打开/关闭{厨房}的{插座}

  • {客厅}的{插座}是否打开

  • 传感器

  • {设备名}室内{温度}/{湿度}/{PM2.5}/{空气质量}/{二氧化碳含量}

  • 风扇

  • 打开/关闭{客厅}的{风扇}

  • 打开{客厅}{风扇}的{上下扫风}

  • 把{客厅}的{风扇}调到{一档}

  • 空调

  • 打开/关闭{客厅}的{空调}

  • 打开{客厅}{空调}的{上下扫风}

  • 把{客厅}的{风扇}调到{一档}

  • 把{客厅}的{空调}调为{自动模式}

  • 把{客厅}的{空调}调到{25摄氏度}

  • 把{客厅}的{空调}温度调{高一点}

  • 查询{客厅}的{空调}的{温度}/{湿度}

小爱支持控制的模式表


模式

中文描述

DAY

日光

NIGHT

月光

COLOR

彩光

WARMTH

温馨

TV

电视模式

READING

阅读模式

COMPUTER

电脑模式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/62877.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年,TO B投资巨轮驶向何处?

冰点市场中&#xff0c;危与机也往往同在&#xff0c;能够在这次疫情长跑竞赛中抓得住火花的企业&#xff0c;也一定将会在接下来的2023年走出庭院、走向更多产业场景&#xff0c;和更大的世界。 作者|斗斗 编辑|皮爷 出品|产业家 融资事件减少58%、融资金额减少37%、平…

使用CSS提高网站性能的30种方法

根据httparchive.org的页面重量报告&#xff0c;CSS在平均70个请求和2MB的网页上占7个HTTP请求和70Kb的代码。这并不是网站性能糟糕的最坏原因&#xff08;我正看着你呢&#xff0c;JavaScript&#xff09;&#xff0c;但CSS面临着特定的挑战&#xff1a; CSS会阻止渲染&#x…

都抢发AI大模型,谁关注模型安全?

如果要给4月定一个主题&#xff0c;“大模型”应该当仁不让。 从4月7日阿里突然放出“通义千问”内测开始&#xff1b;8日&#xff0c;华为放出盘古大模型&#xff1b;10日&#xff0c;商汤推出类ChatGPT产品“商量SenseChat”&#xff1b;之后&#xff0c;11日的阿里云峰会&am…

刘慈欣谈AI:人类若生活在科技的安乐窝里,终将会被“消灭”

“如果人类把社会运作的权力交给人工智能&#xff0c;选择生活在科技的安乐窝里&#xff0c;丧失活力和开拓性。那么&#xff0c;人类最终会被人工智能消灭。”面对突飞猛进的人工智能&#xff0c;中国科幻作家刘慈欣这样说道。 以ChatGPT为代表的生成式人工智能&#xff0c;凭…

Python电影推荐系统

Python实现基于皮尔森系数的协同过滤电影推荐。 爬虫获取用户数据 # -*- coding: utf-8 -*- """ 爬取豆瓣某影视的评分前100个用户&#xff0c;将他们的影评信息抓取下来作为movie.json 为了保证数据的可靠性&#xff0c;选择豆瓣电影top250 No.1的【肖申克的…

基于python的电影推荐系统

摘 要 本论文主要论述了如何使用Django框架开发一个电影推荐系统 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述电影推荐系统的当前背景以及系统开发的目的&a…

chatgpt赋能python:让Python帮你推荐电影:使用Python电影推荐算法

让Python帮你推荐电影&#xff1a;使用Python电影推荐算法 在当今互联网日益发展的世界里&#xff0c;我们的生活变得越来越数字化&#xff0c;并且受到大数据的驱动。而在这样的时代&#xff0c;我们每天都被不同数量和类型的内容包围着&#xff0c;包括电影和电视节目等。如…

生活小剧场30天吸粉44w,小红书最受欢迎的笔记长这样

前有劳动节等宣传节点&#xff0c;后有618大促&#xff0c;承上启下的5月里&#xff0c;小红书上的达人和品牌都是如何实现内容种草的呢&#xff1f; 为洞察平台的品牌营销策略及内容趋势&#xff0c;新红推出5月月度榜单&#xff0c;从品牌投放、内容创作等方面入手&#xff0…

pgAdmin怎么转换成中文界面

点击File下拉选项&#xff0c;点击Preferences选项&#xff0c;打开Preferences对话框。点击对话框中Miscellaneous下拉选项&#xff0c;点击User language。在右侧的User language下拉选择框中选择Chinese(Simplicied)中文简体&#xff0c;点击Save即可。若没有变换成中文建议…

只需几步打造属于自己的私有聊天系统

为什么选择私有化产品 在微信、QQ等聊天工具统治的时代&#xff0c;即时通讯工具早已成为人们沟通的一大重要途径&#xff0c;每个人对自己的隐私问题越来越关注&#xff0c;不只是个人&#xff0c;企业也不例外。 聊天过程中产生的聊天记录、传送的文件存在一定的泄露风险。 …

私聊模式的设计与实现

文章目录 1 私聊模式的设计与实现1.1 设计分析1.2 代码实现 1 私聊模式的设计与实现 1.1 设计分析 私聊模式&#xff1a; 用户在聊天时能够指定消息的接收者。 对聊天界面进行如下改动&#xff1a; 简单的看一下Qt中的列表类QListWidget&#xff1a; 我们需要增加USER消息…

web聊天室实现

后端&#xff1a; package com.jsx.chat;import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.concurrent.CopyOnWriteArraySet;import javax.websocket.OnClose; imp…

网上聊天室开发思路

网上聊天室设计思路 平时经常性的使用聊天软件如QQ&#xff0c;微信&#xff0c;或是游戏里各个区的公共频道&#xff0c;于是突发奇想&#xff0c;想要自己搞一个简易版聊天项目&#xff0c;所以现在开搞起来。 需求分析 1.想要进行聊天&#xff0c;势必需要有人才能聊起来&…

教你从零开始用WebSocket打造一个IM聊天室

之前我们在 IM即时聊天室&#xff08;一&#xff09;&#xff1a;WebSocket 和 IM即时聊天室&#xff08;二&#xff09;: Socket.io Node.js 两篇文章中介绍了搭建一个IM的所需的技术栈和通信原理。那在这篇文章里我们就来详细说一下具体的应用并提供完整源码。 个人Blog地址…

Thinkphp 使用Workerman 聊天室

1、下载Workerman插件 composer require topthink/think-worker 2、示例代码 后端 2.1 下载之后会得到这俩个文件 2.2 这个文件对应上面的worker_class 的地址 2.3.worker.php示例代码 <?php namespace app\http; use think\facade\Db; use think\worker\Server; use Wo…

仿微信的网络聊天室项目开发【完整源码讲解】

目录 总体开发思路 服务器端 服务器界面设计 建立TCP服务器端通信 建立服务器消息发送输出流 建立服务器消息接收输入流 建立服务器实时消息通信线程 设置服务器通信自由断开 客户端 客户端界面设计 建立TCP客户端通信 建立客户端消息发出输出流 建立客户端消息接…

手把手教你React Native接入聊天IM即时通讯功能-源码分享

本文介绍如何基于React Native使用 IM即时通讯SDK- ZIM SDK 快速实现同腾讯微信消息收发聊天交友功能。实现React Native混合移动框架开发多端应用&#xff0c;节省开发成本。 1 IM即时通讯SDK接入方案介绍 ZIM SDK IM即时通讯SDK提供了如下接入方案&#xff1a; 在此方案中…

(附源码)vue3.0+.NET6实现聊天室(实时聊天SignalR)

参考文章 搭建文章 gitte源码 在线体验 可以注册两个号来测试 演示图&#xff1a; 一. 整体介绍 介绍SignalR一种通讯模型Hub(中心模型&#xff0c;或者叫集线器模型)&#xff0c;调用这个模型写好的方法&#xff0c;去发送消息。 内容有&#xff1a; ①&#xff1a;Hub模型…

A股全市场股票历史行情Level2快照高频数据

A股全市场股票Level2快照高频数据(2010年开始) 快照行情又称切片(snapshot)行情&#xff0c;如其名&#xff0c;是对tick行情数据的某一个时刻的切片数据。例如现在常见的期货500ms一笔的行情&#xff0c;就是每500ms&#xff0c;在这时间段内的最高价、最低价、成交量等汇总成…

数据分析之数据可视化

数据可视化主要借助于图形化手段&#xff0c;清晰有效地传达与沟通信息。通过图表使冗长的数据表达更加形象化&#xff0c;可以把问题的重点有效传递给观者。 一 看懂不同类型的图表 在实现数据可视化之前&#xff0c;我们首先要了解有哪些图表类型&#xff0c;常见的图表可参…