ESP8266NodeMCU-手机端远程点灯

2023-05-16

本节通过ESP8266NodeMCU连接到wifi,通过点灯blinker app来开关灯,同时也可以通过小爱同学语音控制开关灯。

准备工作:

1.手机端下载【点灯blinker】软件,应用市场可以下载,并注册账号;

注册完成后,添加设备

【小爱同学语音控制,必须选择阿里云】

【记住密钥,后面程序中会用到】

返回,点进去设备里,添加按键,并将按键名更改为btn-abc

2.在手机上下载米家APP,并注册账号,绑定blinker的账号;

打开米家APP,点击【我的】,点击【其他平台设备】

点击右上角的添加设备,往下翻,找到点灯科技。

绑定完成后,点击同步设备,就可以看到刚刚添加的设备。

3.在手机上下载小爱同学,小米手机自带小爱同学,无需下载,如果是其他品牌手机,需要下载,绑定米家账号;

打开小爱同学,登录米家账号,点击智能家居,就可以看到刚添加的设备,如小灯。

4.Arduino安装了ESP8266库文件;

如果没有安装库文件,参考以下步骤:

打开Arduino软件,在【文件-首选项-附加开发板管理器网址】填入:https://arduino.esp8266.com/stable/package_esp8266com_index.json

在【项目-加载库-管理库】,库管理器中搜索ESP8266,点击安装,默认安装最新版本。

5.安装Blinker库,同样在库管理器中搜索blinker,点击安装即可。

上面的步骤完成后,将以下代码上传到ESP8266NodeMCU开发板中。就可以用小爱同学语音控制开发板上的LED灯了。点灯blinker APP中,也可以通过按键来开关小灯。

代码:

#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT//支持小爱同学
#define BLINKER_WITHOUT_SSL      //非SSL加密通信接入,省堆栈  
#include <Blinker.h>

#define LED   2  // 板子上的灯

//下面3项需要根据实际填写
char auth[] = "xxx"; // blinker app提供的秘钥
char ssid[] = "xxx";// wifi 名字
char pswd[] = "xxx";// wifi 密码


bool wsState;
uint8_t wsMode = BLINKER_CMD_MIOT_DAY;
// 新建组件对象
BlinkerButton Button1("btn-abc");//注意:要和APP组件’数据键名’一致
 
// 按下BlinkerAPP按键即会执行该函数
void button1_callback(const String & state) 
{
    BLINKER_LOG("get button state: ", state);
    digitalWrite(LED, !digitalRead(LED)); 
    Blinker.vibrate();
}
 
//小爱电源类操作的回调函数:
//当小爱同学向设备发起控制, 设备端需要有对应控制处理函数 
void miotPowerState(const String & state)
{
    BLINKER_LOG("need set power state: ", state);
    if (state == BLINKER_CMD_ON) 
    {
        digitalWrite(LED, LOW);  //低电平点灯
        BlinkerMIOT.powerState("on");
        BlinkerMIOT.print();
        wsState=true;
    }
    else if (state == BLINKER_CMD_OFF) 
    {
        digitalWrite(LED, HIGH); //高电平开灯
        BlinkerMIOT.powerState("off");
        BlinkerMIOT.print();
        wsState=false;
    }
}
//小爱同学 的回调查询函数,照抄即可。主要是查询 当前灯的状态
void miotQuery(int32_t queryCode)
{
    BLINKER_LOG("MIOT Query codes: ", queryCode);
    switch (queryCode)
    {
        case BLINKER_CMD_QUERY_ALL_NUMBER :
            BLINKER_LOG("MIOT Query All");
            BlinkerMIOT.powerState(wsState ? "on" : "off");
            BlinkerMIOT.color(0);
            BlinkerMIOT.mode(0);
            BlinkerMIOT.colorTemp(1000);
            BlinkerMIOT.brightness(1);
            BlinkerMIOT.print();
            break;
        case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :
            BLINKER_LOG("MIOT Query Power State");
            BlinkerMIOT.powerState(wsState ? "on" : "off");
            BlinkerMIOT.print();
            break;   
        default :
            BlinkerMIOT.powerState(wsState ? "on" : "off");
            BlinkerMIOT.color(0);
            BlinkerMIOT.mode(0);
            BlinkerMIOT.colorTemp(1000);
            BlinkerMIOT.brightness(1);
            BlinkerMIOT.print();
            break;
    }
}

void setup() 
{
    // 初始化串口,并开启调试信息,调试用可以删除
    Serial.begin(115200); 
    BLINKER_DEBUG.stream(Serial);
    // 初始化IO
    pinMode(LED, OUTPUT); 
    digitalWrite(LED, HIGH); // 初始化 led 高电平 ,则灯熄灭状态
    
    // 初始化blinker
    Blinker.begin(auth, ssid, pswd);
    Button1.attach(button1_callback);
 
    //小爱同学务必在回调函数中反馈该控制状态 
    BlinkerMIOT.attachPowerState(miotPowerState);//注册回调函数
    BlinkerMIOT.attachQuery(miotQuery);
}

void loop() 
{
    Blinker.run();
}

以上是本次开发的全部记录,方便以后自己查阅,同时也希望能给他人一点借鉴。详细介绍,请参见点灯科技网址:https://www.diandeng.tech

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESP8266NodeMCU-手机端远程点灯 的相关文章

  • Pygame简介

    第一课Pygame简介 Pygame 是一个游戏库 xff0c 通常用于在 Python 中创建 2 D 游戏 它具有许多重要功能 xff0c 例如碰撞检测 声音和音乐 图形 事件系统等等 Pygame安装 在我们向您介绍任何 Pygame
  • Vue2---生命周期钩子

    生命周期钩子 所有生命周期钩子的 this 上下文将自动绑定至实例中 xff0c 因此你可以访问 data computed 和 methods 这意味着你不应该使用箭头函数来定义一个生命周期方法 会使this指向window 1 befo
  • MySQL--复合查询--内外链接--0422

    注 xff1a 为了方便查看 mysql语句会有突然的换行 xff0c 书写时请勿模仿 目录 1 单表查询回顾 显示工资最高的员工的名字和工作岗位 显示工资高于平均工资的员工信息 2 多表查询 比如需要查询雇员名字和所在部门编号及部门名字
  • 以符合人类阅读的方式打印php数组

    在程序开发过程中 xff1b 打印数据进行查看调试是非常频繁的 xff1b 如果没有一种易于阅读的样式那是相当痛苦的 xff1b 先定义一个数组 xff1b array 61 array 39 t0 39 61 gt 39 test0 39
  • 12.【openCV常用函数模板】

    opency常用关键字 1 头文件的引用2 命名空间的引用3 读入文件的引用4 处理图像的数据结构5 定义窗口的引用6 自定义窗口长宽度的引用7 展示窗口的引用8 窗口展示时间的引用9 清除窗口的引用10 举列子10 1代码展示 10 2效
  • 利用novnc登录绕过WFA

    0x00 简介 前端时间看了一个新闻说是一个安全人员研究使用webVNC来钓鱼绕过MFA多因子验证 xff0c 因为现在很多环境钓鱼抓到的账号密码 xff0c 在登录时候可能会要求输入安全码或者PIN马之类的东西 xff0c 学名叫做MFA
  • 图像分割损失函数OhemCELoss

    OhemCELoss函数简介 OhemCELoss函数 xff08 Online hard example mining cross entropy loss 的缩写 xff09 分割任务中的OhemCELoss函数 xff1a 其实就是分
  • 02_FreeRTOS内核实现---任务的定义与任务切换

    一 什么是任务 在多任务系统中 xff0c 我们根据功能的不同 xff0c 把整个系统分割成多个独立且无法返回的函数 xff0c 这种函数称之为任务 二 创建任务 1 定义任务栈 在多任务系统中 xff0c 每个任务都是独立的 xff0c
  • ROS学习笔记1:Ubuntu20.04系统安装图文讲解(双系统,机械硬盘)

    系列前言 xff1a 本人BIT机械专业大三学生 xff0c 可以说是计算机小白 近年来学校以咱们 智能制造与智能车辆班 为试验班对机械专业进行探索性课改 xff0c 加入了大量控制类课程 xff08 数据结构 xff0c ROS xff0
  • ROS学习笔记3:ROS架构(了解)

    笔记3不涉及实际操作 xff0c 主要是用自己的语言和思路简略整理了 ROS机器人开发实践 一书第2章内容 第一次看这一章的内容会有不知道在讲什么的感觉 xff0c 但这一章的内容确实对后续实践操作章节的理解有非常大的帮助 一 ROS架构
  • SLAM学习笔记2:SLAM的数学表述

    1 SLAM问题 xff1a 在了解了SLAM中各个模块的组成和主要功能后 xff0c 我们将上升到理性层次 xff0c 用数学语言来描述SLAM过程 现在假设由无人车搭载传感器 对于传感器来说 xff0c 虽然它的运动是时间连续的 xff
  • ROS学习笔记10:TF坐标变换(ROS常用组件)

    前言 xff1a 机器人本体和机器人的工作环境中往往存在大量的组件元素 xff0c 在机器人设计和应用中会涉及不同组件的位置和姿态 xff0c 这就需要引入坐标系和坐标变换的概念 一 机器人中空间描述和变换 xff1a 1 位置描述 xff
  • ROS学习笔记11:launch启动文件(ROS常用组件)

    一 launch启动文件介绍 xff1a 上节的海龟跟随实验 xff0c 输入的指令比较繁杂 xff0c 很容易输错命令 对于这种多节点任务 xff0c 可以使用启动文件 启动文件是ROS中一种可以通过xml文件 xff0c 同时启动多个节
  • 学习ARM架构,系统移植和驱动开发总结

    本次结束了对ARM架构 xff0c 系统移植和驱动开发的学习 xff0c 它们都是属于底层 xff0c 难度想对都比较的难一点 xff0c 但先学习arm架构之后去学习系统移植和驱动开发 xff0c 会使自己对系统移植和驱动开发容易理解点
  • Robocup2D环境搭配以及安装(Ubuntu18.04)

    个人是看过很多安装教程并且在一次次实验成 xfeff 功后得出的成果 xff1a 首先 xff0c 在gitee网站下载安装所需的文件夹 xfeff gitee网站下载zip压缩包 其次 xff0c 进行依赖库的安装 终端输入 sudo a
  • 树莓派配置网络实现ssh登录

    上面一篇文章我实现了串口方式访问树莓派 xff0c 可以实现树莓派开发 xff0c 但每次都需要接线 xff0c 比较麻烦所以我们可以对树莓派进行配置让他可以用IP地址登录 1 配置树莓派接入网络 sudo nano etc wpa sup
  • 字符串查找函数strstr

    前言 xff1a 本章我们将学习如何用strstr函数在字符串中查找是否存在指定的字符串 strstr 功能 xff1a 在一个字符串中查找是否存在指定的字符串 xff08 定位子字符串 xff09 cplusplus介绍如下 xff1a
  • Module not found: Error: Can‘t resolve ‘querystring‘ in ‘xxxxxxxxx‘

    解决办法 request js里面 import qs from 34 querystring 34 改为import qs from 34 qs 34

随机推荐

  • 【C语言】初学者写基础代码的基本步骤

    一 写代码 xff08 底阿妈 xff09 步骤 xff1a 1 创建一个项目 2 创建一个源文件 什么是源文件 xff1a xxxx c c开头的叫源文件 xxxx h h开头的叫头文件 3 写代码 xff08 底阿妈 xff09 one
  • ROS新手学习路线

    希望这些信息能够帮助你学习ROS 如果你有任何其他问题 xff0c 请随时告诉我 安装ROS 首先 xff0c 你需要在你的计算机上安装ROS 请参阅官方文档中的 安装 章节 xff0c 了解如何在你的系统上安装ROS xff1a http
  • JAVA学习心得体会

    这周是考试结束第一周 xff0c 刚开始继续学习JAVA时 xff0c 短时间不学习就感觉遗忘了许多有关JAVA的知识 xff0c 所以及时的复习所学内容是真的很重要 通过学长学姐的介绍 xff0c 我发现Typora记笔记是真的很方便 x
  • Ubuntu18.04在ROS下利用realsenseD435i相机实时运行ORB-SLAM2

    1 安装realsenseD435i的SDK Librealsense 可以参照这位博主 6条消息 Ubuntu18 04 43 ROS melodic 安装使用 InterRealSenseD435i SDK2和RealSense ROS
  • opencv-python识别魔方特定颜色方块,并输出各方块中心坐标

    先叠个甲 xff08 作者寒假才开始自学opencv xff0c 做题练手 xff0c 还不是很熟练 xff0c 如果有不正确或者有更好的方法 xff0c 欢迎在评论区指出 xff09 题目 xff1a 从网上寻找任一魔方图片 xff0c
  • Git教程学习笔记及VScode中Git使用

    文章目录 前言1 配置git2 创建版本库3 版本回退4 工作区和暂存区5 添加远程仓库6 分支管理处理bug分支多人协作 7 标签管理8 自定义git9 VScode中的Git使用 前言 欢迎通过我的个人博客看本篇文章https sunm
  • Qt的基本数据类型

    1 1 基本数据类型 qint8 signed charqint16 signed shortqint32 signed intqint64 long long int int64 on Windows qreal doublequint8
  • Qt——Javascript/Qt交互、脚本化

    Qt提供了对Javascript的良好支持 如果查阅过文档你就知道Qt有两个不同的Js封装引擎 xff1a QScriptEngine QJSEngine QScriptEngine出现的比较早 xff08 自Qt4 3始 xff09 xf
  • QT自绘标题和边框

    在QT中如果想要自绘标题和边框 xff0c 一般步骤是 xff1a 1 xff09 在创建窗口前设置Qt FramelessWindowHint标志 xff0c 设置该标志后会创建一个无标题 无边框的窗口 2 xff09 在客户区域的顶部创
  • Qt:QSqlQuery

    0 说明 QSqlQuery提供了执行SQL代码的方法 QSqlQuery封装了在QSqlDatabase中查询 检索数据的相关函数 它可以用来执行如SELECT INSERT UPDATE DELETE等方法 xff0c 也可以执行如CR
  • Qt - 读取GPS数据

    1 GPS型号为ublox xff08 EVK M8L xff09 xff0c 配有USB接口 xff0c Qt版本5 7 2 实现步骤 xff1a 1 实现串口通信 采用Qt5 7 内置的串口操作类QSerialPort和QSerialP
  • QT打包的两种方式

    QT打包的两种方式 xff1a 一个是QT5自带的windeployqt xff08 不需要下载安装 xff09 xff0c 它可以找到程序 xff08 exe xff09 用到的所有库文件 xff0c 并且都拷贝到exe程序的当前文件 此
  • Qt使用FFmpeg播放视频

    一 使用场景 因为项目中需要加载MP4播放开机视频 xff0c 而我们的设备所使用的架构为arm架构 xff0c 其中缺乏一些多媒体库 安装这些插件库比较麻烦 xff0c 所以最终决定使用FFmpeg播放视频 二 下载编译ffmpeg库 2
  • Qt 性能优化:CPU占有率高的现象和解决办法

    一 前言 在最近的项目中 xff0c 发现执行 Qt 程序时 xff0c 有些情况下的 CPU 占用率奇高 xff0c 最高高达 100 项目跑在嵌入式板子上 xff0c 最开始使用 EGLFS 插件 xff0c 但是由于板子没有单独的鼠标
  • Qt - 获取系统当前时间

    简介 Qt获取系统当前时间的四种方法 xff08 一般使用第一种或者第二种 xff09 方法一 xff1a 获取带日期的时间 xff0c 使用QDateTime类 QDateTime current date time 61 QDateTi
  • Git 常用基本命令使用详细大全

    在进行项目开发时 xff0c 都会用到版本控制工具 xff0c 如svn Git等 xff0c 随着Git的发展 xff0c 渐渐的被越来越多的人使用 xff0c 甚至慢慢在取代svn的地位 下面将从Git仓库的创建 Git常用的基本命令
  • ROS-Melodic下 Gazebo+Turtlebot安装

    上一篇教程 xff1a Win10 43 Ubuntu18 04双系统安装 amp ROS Melodic安装 一 Gazebo安装 在终端运行 sudo apt get install ros melodic gazebo ros pkg
  • git修改commit的内容

    在使用git提交代码的时 xff0c git commit m 34 内容 34 如果内容编写错误 xff1a 使用git commit amend 对上次提交的内容进行修改 然后git push 即可
  • OFFICE开发技术讲座:边框,是四边各一个,还是只一个

    有一段时间专门研究了一下边框 xff08 文字 xff0c 段落 xff0c 页面 xff09 xff0c 看到边框的代码觉得非常啰嗦 而啰嗦代码是吾坚决反对的 啰嗦在哪里 xff1f 比如说给段落设置上下左右边框 xff0c 结果是一个边
  • ESP8266NodeMCU-手机端远程点灯

    本节通过ESP8266NodeMCU连接到wifi xff0c 通过点灯blinker app来开关灯 xff0c 同时也可以通过小爱同学语音控制开关灯 准备工作 xff1a 1 手机端下载 点灯blinker 软件 xff0c 应用市场可