ESP8266天猫精灵接入流程

2023-05-16

Blinker天猫精灵接入流程


设备上线

  • 设置接入的设备类型

  • 设置接入设备的auth Key

  • 设置SSID/PSWD 或者选择 ESPTOUCH等配网方式

  • 下载代码等待设备接入上线成功

authKey对应的设备若需要更换接入的设备类型,重新设置设备类型并下载代码。
代码下载后在天猫精灵App中解除blinker账号绑定,重新绑定后即可更新设备类型。

绑定天猫精灵

  • 打开天猫精灵 App。点击右下角“我的”,点击“添加智能设备”

  • 在页面上方搜索栏,搜索blinker,并点击要添加的设备类型

  • 点击绑定账号,使用blinker账户登录,完成绑定

  • 绑定成功后,在blinker App中配网成功的设备就会出现在您的智能家居设备列表中,现在可以使用天猫精灵进行语音控制了

其他说明


1.如果绑定blinker账号后,天猫精灵App中没有出现对应设备,可能是您设备中没有烧写天猫精灵支持程序,或者设备没有成功上线。

教程


示例开发教程

示例程序


Arduino(esp8266/esp32):

GITHUB

NodeJs/TypeScript:

GITHUB

Blinker天猫精灵接口函数


天猫精灵设备配置

根据您定义的设备品类选择不同的参数用于配置Blinker

light:

#define BLINKER_WIFI
#define BLINKER_ALIGENIE_LIGHT

#include <Blinker.h>

outlet:

#define BLINKER_WIFI
#define BLINKER_ALIGENIE_OUTLET

#include <Blinker.h>

sensor:

#define BLINKER_WIFI
#define BLINKER_ALIGENIE_SENSOR

#include <Blinker.h>

multi_outlet:

#define BLINKER_WIFI
#define BLINKER_ALIGENIE_MULTI_OUTLET

#include <Blinker.h>
同步设备后可显示一个插座和四个插孔(名为插孔的插座设备)

fan:

#define BLINKER_WIFI
#define BLINKER_ALIGENIE_FAN

#include <Blinker.h>

aircondition:

#define BLINKER_WIFI
#define BLINKER_ALIGENIE_AIRCONDITION

#include <Blinker.h>

设备设置后即可使用 天猫精灵 BlinkerAliGenie

天猫精灵数据管理

智能音箱接口, 反馈数据到天猫精灵

任何控制务必即时反馈
超时2s以上再反馈,天猫精灵就默认设备不在线,天猫精灵会反馈“智能家居控制出了点问题”

函数 :

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

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

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

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

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

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

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

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

  • level()
    BlinkerAliGenie.level()
    反馈风速/挡位信息

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

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

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

天猫精灵设备支持的控制类型

  • 设备控制

  • 电源类的操作

  • 设备打开

  • 设备关闭

  • 颜色的设置

  • 模式的设置

  • 亮度的控制

  • 亮度设置指定值

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

  • 步长设置亮度(调亮、调暗,默认步长 25)

  • 色温的控制

  • 色温设置指定值

  • 步长设置色温(调冷、调暖,默认步长 15)

  • 温度的控制

  • 温度设置指定值

  • 步长设置温度

  • 摆风的控制

  • 上下/左右摆风

  • 设备查询

  • 所有属性的查询

  • 单个属性的查询

天猫精灵电源类的操作接口

当天猫精灵向设备发起控制, 设备端需要有对应控制处理函数

BlinkerAliGenie.attachPowerState()

用户自定义电源类操作的回调函数:

void aligeniePowerState(const String & state)
{
    BLINKER_LOG("need set power state: ", state);

    if (state == BLINKER_CMD_ON) {
        digitalWrite(LED_BUILTIN, HIGH);

        BlinkerAliGenie.powerState("on");
        BlinkerAliGenie.print();
    }
    else if (state == BLINKER_CMD_OFF) {
        digitalWrite(LED_BUILTIN, LOW);

        BlinkerAliGenie.powerState("off");
        BlinkerAliGenie.print();
    }
}
务必在回调函数中反馈该控制状态

注册回调函数:

BlinkerAliGenie.attachPowerState(aligeniePowerState);

天猫精灵颜色的设置接口

当天猫精灵向设备发起控制, 设备端需要有对应控制处理函数

BlinkerAliGenie.attachColor()

用户自定义颜色设置的回调函数:

void aligenieColor(const String & color)
{
    BLINKER_LOG("need set color: ", color);

    if (color == "Red") {
        colorR = 255; colorG = 0; colorB = 0;
    }
    else if (color == "Yellow") {
        colorR = 255; colorG = 255; colorB = 0;
    }
    else if (color == "Blue") {
        colorR = 0; colorG = 0; colorB = 255;
    }
    else if (color == "Green") {
        colorR = 0; colorG = 255; colorB = 0;
    }
    else if (color == "White") {
        colorR = 255; colorG = 255; colorB = 255;
    }
    else if (color == "Black") {
        colorR = 0; colorG = 0; colorB = 0;
    }
    else if (color == "Cyan") {
        colorR = 0; colorG = 255; colorB = 255;
    }
    else if (color == "Purple") {
        colorR = 128; colorG = 0; colorB = 128;
    }
    else if (color == "Orange") {
        colorR = 255; colorG = 165; colorB = 0;
    }

    BlinkerAliGenie.color(color);
    BlinkerAliGenie.print();
}
务必在回调函数中反馈该控制状态
详见文档末尾 天猫精灵支持控制的颜色表 详见文档末尾 天猫精灵支持查询的颜色表

注册回调函数:

BlinkerAliGenie.attachColor(aligenieColor);

天猫精灵模式的设置接口

当天猫精灵向设备发起控制, 设备端需要有对应控制处理函数

BlinkerAliGenie.attachMode()

用户自定义模式设置的回调函数:

void aligenieMode(const String & mode)
{
    BLINKER_LOG("need set mode: ", mode);

    if (mode == BLINKER_CMD_READING) {
        // Your mode function
    }
    else if (mode == BLINKER_CMD_MOVIE) {
        // Your mode function
    }
    else if (mode == BLINKER_CMD_SLEEP) {
        // Your mode function
    }
    else if (mode == BLINKER_CMD_HOLIDAY) {
        // Your mode function
    }
    else if (mode == BLINKER_CMD_MUSIC) {
        // Your mode function
    }
    else if (mode == BLINKER_CMD_COMMON) {
        // Your mode function
    }

    wsMode = mode;

    BlinkerAliGenie.mode(mode);
    BlinkerAliGenie.print();
}
务必在回调函数中反馈该控制状态
详见文档末尾 天猫精灵支持控制的模式表

注册回调函数:

BlinkerAliGenie.attachMode(aligenieMode);

BlinkerAliGenie.attachCancelMode()

用户自定义取消模式设置的回调函数:

void aligeniecMode(const String & cmode)
{
    BLINKER_LOG("need cancel mode: ", cmode);

    if (cmode == BLINKER_CMD_READING) {
        // Your mode function
    }
    else if (cmode == BLINKER_CMD_MOVIE) {
        // Your mode function
    }
    else if (cmode == BLINKER_CMD_SLEEP) {
        // Your mode function
    }
    else if (cmode == BLINKER_CMD_HOLIDAY) {
        // Your mode function
    }
    else if (cmode == BLINKER_CMD_MUSIC) {
        // Your mode function
    }
    else if (cmode == BLINKER_CMD_COMMON) {
        // Your mode function
    }

    wsMode = BLINKER_CMD_COMMON; // new mode

    BlinkerAliGenie.mode(wsMode); // must response
    BlinkerAliGenie.print();
}
务必在回调函数中反馈该控制状态
详见文档末尾 天猫精灵支持控制的模式表

注册回调函数:

BlinkerAliGenie.attachCancelMode(aligeniecMode);

天猫精灵亮度的控制接口

当天猫精灵向设备发起控制, 设备端需要有对应控制处理函数

BlinkerAliGenie.attachBrightness()

用户自定义亮度控制的回调函数:

void aligenieBright(const String & bright)
{
    BLINKER_LOG("need set brightness: ", bright);

    if (bright == BLINKER_CMD_MAX) {
        colorW = 255;
    }
    else if (bright == BLINKER_CMD_MIN) {
        colorW = 0;
    }
    else {
        colorW = bright.toInt();
    }

    BLINKER_LOG("now set brightness: ", colorW);
    
    BlinkerAliGenie.brightness(colorW);
    BlinkerAliGenie.print();
}
务必在回调函数中反馈该控制状态

注册回调函数:

BlinkerAliGenie.attachBrightness(aligenieBright);

BlinkerAliGenie.attachRelativeBrightness()

用户步长设置亮度的回调函数:

void aligenieRelativeBright(int32_t bright)
{
    BLINKER_LOG("need set relative brightness: ", bright);

    colorW += bright;

    BlinkerAliGenie.brightness(bright);
    BlinkerAliGenie.print();
}
务必在回调函数中反馈该控制状态

注册回调函数:

BlinkerAliGenie.attachRelativeBrightness(aligenieRelativeBright);

天猫精灵色温的控制接口

当天猫精灵向设备发起控制, 设备端需要有对应控制处理函数

BlinkerAliGenie.attachColorTemperature()

用户自定义色温控制的回调函数:

void aligenieColoTemp(int32_t colorTemp)
{
    BLINKER_LOG("need set colorTemperature: ", colorTemp);

    colorT = colorTemp;

    BlinkerAliGenie.colorTemp(colorTemp);
    BlinkerAliGenie.print();
}
务必在回调函数中反馈该控制状态

注册回调函数:

BlinkerAliGenie.attachColorTemperature(aligenieColoTemp);

BlinkerAliGenie.attachRelativeColorTemperature()

用户步长设置亮度的回调函数:

void aligenieRelativeColoTemp(int32_t colorTemp)
{
    BLINKER_LOG("need set relative colorTemperature: ", colorTemp);

    colorT += colorTemp;

    BlinkerAliGenie.colorTemp(colorTemp);
    BlinkerAliGenie.print();
}
务必在回调函数中反馈该控制状态

注册回调函数:

BlinkerAliGenie.attachRelativeColorTemperature(aligenieRelativeColoTemp);

天猫精灵风速/挡位的控制接口

当天猫精灵向设备发起控制, 设备端需要有对应控制处理函数

BlinkerAliGenie.attachLevel()

用户设置风速/挡位控制的回调函数: 风扇/空调:

void aligenieLevel(uint8_t level)
{
    BLINKER_LOG("need set level: ", level);
    // 0:AUTO MODE, 1-3 LEVEL

    setLevel = level;

    BlinkerAliGenie.level(level);
    BlinkerAliGenie.print();
}

空调:

void aligenieLevel(const String & level)
{
    BLINKER_LOG("need set level: ", level);
    // auto    自动风
    // low    低风
    // medium    中风
    // high    高风

    setLevel = level;

    BlinkerAliGenie.level(level);
    BlinkerAliGenie.print();
}
务必在回调函数中反馈该控制状态

注册回调函数:

BlinkerAliGenie.attachLevel(aligenieLevel);

BlinkerAliGenie.attachRelativeLevel()

用户步长设置风速/挡位控制的回调函数: 风扇:

void aligenieRelativeLevel(int32_t level)
{
    BLINKER_LOG("need set relative level: ", level);

    setLevel += level;

    BlinkerAliGenie.level(setLevel);
    BlinkerAliGenie.print();
}
务必在回调函数中反馈该控制状态

注册回调函数:

BlinkerAliGenie.attachRelativeLevel(aligenieRelativeLevel);

天猫精灵上下/左右摆风的控制接口

当天猫精灵向设备发起控制, 设备端需要有对应控制处理函数

BlinkerAliGenie.attachHSwing()

用户设置风扇/空调左右摆风的回调函数:

void aligenieHSwingState(const String & state)
{
    BLINKER_LOG("need set HSwing state: ", state);
    // horizontal-swing

    if (state == BLINKER_CMD_ON) {
        digitalWrite(LED_BUILTIN, HIGH);

        BlinkerAliGenie.hswing("on");
        BlinkerAliGenie.print();

        hsState = true;
    }
    else if (state == BLINKER_CMD_OFF) {
        digitalWrite(LED_BUILTIN, LOW);

        BlinkerAliGenie.hswing("off");
        BlinkerAliGenie.print();

        hsState = false;
    }
务必在回调函数中反馈该控制状态

注册回调函数:

BlinkerAliGenie.attachHSwing(aligenieHSwingState);

BlinkerAliGenie.attachVSwing()

用户设置风扇/空调上下摆风的回调函数:

void aligenieVSwingState(const String & state)
{
    BLINKER_LOG("need set VSwing state: ", state);
    // vertical-swing

    if (state == BLINKER_CMD_ON) {
        digitalWrite(LED_BUILTIN, HIGH);

        BlinkerAliGenie.vswing("on");
        BlinkerAliGenie.print();

        vsState = true;
    }
    else if (state == BLINKER_CMD_OFF) {
        digitalWrite(LED_BUILTIN, LOW);

        BlinkerAliGenie.vswing("off");
        BlinkerAliGenie.print();

        vsState = false;
    }
}
务必在回调函数中反馈该控制状态

注册回调函数:

BlinkerAliGenie.attachVSwing(aligenieVSwingState);

天猫精灵温度的控制接口

当天猫精灵向设备发起控制, 设备端需要有对应控制处理函数

BlinkerAliGenie.attachTemp()

用户设置空调温度控制的回调函数:

voidaligenieTemp(uint8_t temp){BLINKER_LOG("need set temp: ", temp);

    setTemp = temp;

    BlinkerAliGenie.temp(temp);
    BlinkerAliGenie.print();}
务必在回调函数中反馈该控制状态

注册回调函数:

BlinkerAliGenie.attachTemp(aligenieTemp);

BlinkerAliGenie.attachRelativeTemp()

用户步长设置空调温度控制的回调函数:

void aligenieRelativeTemp(int32_t relTemp)
{
    BLINKER_LOG("need set temp: ", relTemp);

    setTemp = setTemp + relTemp;

    BlinkerAliGenie.temp(setTemp);
    BlinkerAliGenie.print();
}

务必在回调函数中反馈该控制状态

注册回调函数:

BlinkerAliGenie.attachRelativeTemp(aligenieRelativeTemp);

天猫精灵设备查询接口

当天猫精灵向设备发起控制, 设备端需要有对应控制处理函数

BlinkerAliGenie.attachQuery()

用户自定义设备查询的回调函数:

void aligenieQuery(int32_t queryCode)
{
    BLINKER_LOG("AliGenie Query codes: ", queryCode);

    switch (queryCode)
    {
        case BLINKER_CMD_QUERY_ALL_NUMBER :
            BLINKER_LOG("AliGenie Query All");
            BlinkerAliGenie.powerState(wsState ? "on" : "off");
            BlinkerAliGenie.color(getColor());
            BlinkerAliGenie.colorTemp(colorT);
            BlinkerAliGenie.brightness(colorW);
            BlinkerAliGenie.print();
            break;
        case BLINKER_CMD_POWERSTATE_NUMBER :
            BLINKER_LOG("AliGenie Query Power State");
            BlinkerAliGenie.powerState(wsState ? "on" : "off");
            BlinkerAliGenie.print();
            break;
        case BLINKER_CMD_COLOR_NUMBER :
            BLINKER_LOG("AliGenie Query Color");
            BlinkerAliGenie.color(getColor());
            BlinkerAliGenie.print();
            break;
        case BLINKER_CMD_QUERY_MODE_NUMBER :
            BLINKER_LOG("AliGenie Query Mode");
            BlinkerAliGenie.mode(wsMode);
            BlinkerAliGenie.print();
            break;
        case BLINKER_CMD_COLORTEMP_NUMBER :
            BLINKER_LOG("AliGenie Query ColorTemperature");
            BlinkerAliGenie.colorTemp(colorT);
            BlinkerAliGenie.print();
            break;
        case BLINKER_CMD_BRIGHTNESS_NUMBER :
            BLINKER_LOG("AliGenie Query Brightness");
            BlinkerAliGenie.brightness(colorW);
            BlinkerAliGenie.print();
            break;
        default :
            break;
    }
}

支持查询的状态码:

  • 所有属性查询 BLINKER_CMD_QUERY_ALL_NUMBER

  • 查询电源状态 BLINKER_CMD_QUERY_POWERSTATE_NUMBER

  • 查询颜色属性 BLINKER_CMD_QUERY_COLOR_NUMBER

  • 查询模式属性 BLINKER_CMD_QUERY_MODE_NUMBER

  • 查询色温属性 BLINKER_CMD_QUERY_COLORTEMP_NUMBER

  • 查询亮度属性 BLINKER_CMD_QUERY_BRIGHTNESS_NUMBER

  • 查询温度属性 BLINKER_CMD_QUERY_TEMP_NUMBER

  • 查询湿度属性 BLINKER_CMD_QUERY_HUMI_NUMBER

  • 查询PM2.5属性 BLINKER_CMD_QUERY_PM25_NUMBER

务必在回调函数中反馈该控制状态

注册回调函数:

BlinkerAliGenie.attachQuery(aligenieQuery);

天猫精灵支持的语音指令


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

  • 把{卧室}的{灯}调为{红色}

  • 把{卧室}的{灯}的{亮度调高一点}

  • 把{卧室}的{灯}调为{影院模式}

  • 把{门口}的{灯}的{色温}调到{1400}

  • 把{卧室}的{灯}的{色温调暖一点}

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

  • 插座

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

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

  • 传感器

  • 查询{客厅}的{传感器}的{温度}/{湿度}/{PM2.5}

  • 风扇

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

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

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

  • 把{客厅}的{风扇}的风速调{高一点}

  • 把{客厅}的{风扇}调为{自然风模式}

  • 空调

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

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

  • 把{客厅}的{空调}调到{低风}

  • 把{客厅}的{空调}的风速调{高一点}

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

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

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

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

天猫精灵支持控制的颜色表


颜色

中文描述

Red

红色

Yellow

黄色

Blue

蓝色

Green

绿色

White

白色

Black

黑色

Cyan

青色

Purple

紫色

Orange

橙色

天猫精灵支持查询的颜色表


(支持控制的颜色也可以查询)

颜色

中文描述

Pink

粉红

Violet

紫罗兰

Magenta

洋红

Indigo

靛青

SlateBlue

蓝灰色

DarkBlue

深蓝色

SkyBlue

天蓝色

DarkCyan

深青色

Beige

浅褐色

Brown

棕色

天猫精灵支持控制的模式表


模式

中文描述

reading

阅读

movie

影院

sleep

睡眠

holiday

假日

music

音乐

common

普通

auto

自动

cold

制冷

heat

制热

ventilate

通风

airsupply

送风

dehumidification

除湿

normalWind

正常风模式

natureWind

自然风模式

sleepWind

睡眠风模式

quietWind

静音风模式

comfortableWind

舒适风模式

babyWind

宝宝风模式

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

ESP8266天猫精灵接入流程 的相关文章

  • BoW(词袋)模型详细介绍

    最近学习BoW模型 xff0c 将自己网上看到的资料及对论文的理解 xff0c 将BoW模型总结如下 xff01 BoW模型 Bag of words model BoW model 最早出现在自然语言处理 xff08 Natural La
  • Win10 VS Code + CMake STM32开发环境

    Win10 VS Code 43 CMake STM32开发环境 软件 软件安装与环境变量的配置不多讲 xff0c 这步都搞不定还是老老实实用MDK把 VS Codecmake 插件 c c 43 43 插件mingwgcc arm non
  • makefile 转 cmake STM32工程

    makefile 转 cmake STM32工程 STM32开发由MDK转到 vscode好久了 每次新建工程 xff0c stm32cubemx生成代码都要手动把makefile转到cmake xff0c 好烦 xff0c 特别一下小的频
  • STM32使用FreeRtos + C++

    编译环境 MDK5 25 gcc arm7 2 C文件不可包含CPP的头文件 C调用C 43 43 函数 在CPP文件内编写C函数 xff0c 头文件声明 头文件不可出现C 43 43 关键字 在main中调用此函数作为程序入口即可 voi
  • FreeRTOS系列|时间管理

    FreeRTOS时间管理 1 FreeRTOS延时函数 在使用FreeRTOS的过程中经常会在一个任务中使用延时函数对该任务延时 xff0c 当执行延时函数的时候就会进行任务切换 xff0c 并且此任务就会进入阻塞态 xff0c 直到延时完
  • 【Linux C与C++一线开发实践】之一 Linux概述与Linux C++开发

    Linux系统启动的基本过程 对于一台Linux系统来说 xff0c 用户按下开机按钮后 xff0c 一共要经历如下几个过程
  • 【Linux C与C++一线开发实践】之三 Linux多进程

    进程是操作系统结构的基础 进程是一个具有独立功能的程序对某个数据集在处理机上的执行过程 xff0c 进程也是作为资源分配的一个基本单位 Linux作为一个多用户 多任务的操作系统 xff0c 必定支持多进程 多进程是现代操作系统的基本特征
  • C++--结构体和类

    结构体和类只有一个区别就是前者访问控制默认为public xff0c 而类的默认访问控制是private 而对于public private protected的访问控制都是在编译期间由编译器检查的 xff0c 编译通过后 xff0c 程序
  • 嵌入式开发工程师面试题 – C语言部分

    嵌入式开发工程师面试题 C语言部分 申明 xff1a 来源于嵌入式开发工程师面试题 C语言部分 和 网摘 xff09 xff01 1 内核的裁剪怎么裁剪 解析 xff1a 在linux 下的ubuntu 上面做内核的 裁剪 xff0c 主要
  • 协方差与自相关

    协方差矩阵是一个矩阵 xff0c 其每个元素是各个向量元素之间的协方差 这是从标量随机变量 到高维度随机向量 的自然推广 假设是以个标量随机变量组成的列向量 xff0c 并且是其第i个元素的期望值 xff0c 即 协方差矩阵被定义的第i x
  • 基础解系

    基础解系首先是线性无关的 xff0c 简单的理解就是能够用它的线性组合表示出该 方程组的任意一组解 xff0c 基础解系是针对有无数多组解的方程而言 xff0c 若是齐次线性方程组则应是有效方程组的个数少于未知数的个数 xff0c 若非齐次
  • 机器学习实践指南:案例应用解析(第二版)

    试读及购买链接 机器学习实践指南2版代码及资源 原书中的360网盘链接因为360关闭网盘的原因已经失效 1 https pan baidu com s 1nw37A5N 2 http www hzbook com Books 9324 ht
  • 数学之路-python计算实战(7)-机器视觉-图像产生加性零均值高斯噪声

    图像产生加性零均值高斯噪声 xff0c 在灰度图上加上噪声 xff0c 加上噪声的方式是每个点的灰度值加上一个噪声值 xff0c 噪声值的产生方式为Box Muller算法 生成高斯噪声 在计算机模拟中 xff0c 经常需要生成正态分布的数
  • 数学之路-python计算实战(16)-机器视觉-滤波去噪(邻域平均法滤波)

    coding utf 8 code myhaspl 64 myhaspl com 邻域平均法滤波 半径为2 import cv2 import numpy as np fn 61 34 test3 jpg 34 myimg 61 cv2 i
  • R语言与数据模型(1)-平均,方差,中位数,分位数,极差

    1 求平均数 gt x lt c 1 10 20 30 40 50 NA 60 gt xm lt mean x gt xm 1 NA na rm表示允许缺失数据NA gt xm lt mean x na rm 61 TRUE gt xm 1
  • FreeRTOS系列|中断管理和临界段

    FreeRTOS中断管理和临界段 1 中断管理 1 1 中断管理简介 中断是微控制器的一个常见特性 xff0c 中断由硬件产生 xff0c 当中断产生后CPU就会中断当前的流程转而去处理中断服务 xff0c Cortex M内核的MCU提供
  • AI理论随笔-对称矩阵、正交矩阵与特征向量,特征值(2)

    一 如果 xff1a A A T 61 E AA T 61 E A A T 61 E
  • 英文过滤停用词

    span class token triple quoted string string 34 34 34 Created on Sun Nov 13 09 14 13 2016 64 author daxiong 34 34 34 spa
  • C语言随笔-去掉仅有\n的行

    include lt stdio h gt int main int argc const char argv char str 128 char linep strcpy str 34 12 35 56 n12 33 87 n n n n
  • python3.6-深入浅出视频

    课程收益 适合人群 python小白 xff0c 大数据和机器学习编程程序员 上机实践为主线 以最快的速度上手 快速入门 xff0c 还学到了python3的核心知识 https edu csdn net course detail 989

随机推荐

  • 数学之路(3)-机器学习(3)-机器学习算法-神经网络[11]

    多层感知器的代码 xff0c 需要一个比较复杂的调试过程 xff0c 不过也有一些方法来加快这一速度 xff0c 其中有几个地方要注意 xff1a 1 输入层 输出层 中间层的学习率和动量参数不能一样 xff0c 2 3个层的权值策略不能一
  • opencv中ArUco识别

    姿态估计 xff08 Pose estimation xff09 在 计算机视觉领域扮演着十分重要的角色 xff1a 机器人导航 增强现实以及其它 这一过程的基础是找到现实世界和图像投影之间的对应点 这通常是很困难的一步 xff0c 因此我
  • PID算法的EXCEL模拟实现

    增量式PID算法公式 xff1a 在表格里可以看见PID算法在目标值和实际值差异较大时 xff0c 控制量也很大 xff0c 主要是比例环节起到主要的调节作用 xff0c 在目标值和实际值相等时 xff0c 主要的控制量是积分环节 xff0
  • 三极管基本知识

    导通条件 NPN型三极管的导通条件是C点电位 gt B点电位 gt E点电位 xff0c 三极管饱和导通的条件是Ub gt Ue Ub gt Uc PNP型三极管的导通条件是E点电位 gt B点电位 gt C点电位 xff0c 三极管饱和导
  • 5.FreeRTOS学习笔记- 互斥量

    基本概念 互斥量又称互斥信号量 本质是信号量 是一种特殊的二值信号量 互斥量 支持互斥量所有权 递归访问以及防止优先级翻转的特性 用于实现对临界资源 如显示器 打印机 的独占式访问 任意时刻互斥量的状态只有两种 开锁或闭锁 持有该互斥量的任
  • could not stop cortex-m device 问题

    出现问题原因 xff1a 调试程序过程中mdk突然奔溃 xff0c 之后就再也下载程序失败 xff0c 但是读取swd IDCODE OK 下载程序就报错 个人觉得应该是单片机内部保护了 问题图 问题处理办法 先检查3 3v和GND是否短路
  • FreeRTOS系列|任务堆栈

    任务堆栈 运行freertos系统的大部分都是资源有限的MCU xff0c 所以对于RAM我们都要考虑尽量的节省 xff0c 避免资源浪费 下面将会基于Cortex M3内核的STM32F103型MCU来介绍FreeRTOS任务栈大小的确定
  • 9. GD32F103C8T6 定时器2的更新中断触发定时器0开始计时

    1 初始化定时器TIM0 span class token comment 定时器的基本初始化和打开更新中断 enable 是否使能定时器 span span class token keyword static span span cla
  • 4.GD32F103C8T6 串口中断方式接收数据和输出重定向

    1 串口基本初始化 span class token comment 基本初始化函数 span span class token keyword void span span class token function usart base
  • 5.GD32F103C8T6 串口DMA+IDLE方式接收数据

    1 串口的基本初始化 span class token keyword void span span class token function usart base init span span class token punctuatio
  • 26. GD32F103C8T6入门教程-CAN外设回环测试

    1 基础知识 相关stm32CAN外设 外设特征 3个发送邮箱 2个深度为3个邮箱的接收FIFO 自动重传 自动唤醒 发送 接收时间戳 最大速率1Mbps 3种工作模式 睡眠模式 可以检车总线状态自动唤醒 初始化工作模式 如果需要对 CAN
  • stm32 操作W25Q256 W25Q16 spi flash

    硬件连接 本函数库来自正点原子官方 xff0c 本人稍作修改和添加注释 W25Q16 2M Byte W25Q256 32M Byte spi 配置 2022 7 27 经过测试 华邦的 W25Q256JV 32M 字节 容量的spi fl
  • ESP32学习笔记20-dac

    20 DAC 20 1概述 ESP32 有两个 8 位数模转换器 DAC 通道 分别连接到 GPIO25 通道 1 和 GPIO26 通道 2 每个 DAC 通道可以将数字值 0 255 转换成模拟电压 0 Vref out voltage
  • ESP32学习笔记21-esp32启动流程

    24 esp32启动流程 第一 xff0c 第二阶段启动流程 第三阶段的详细流程
  • ESP32学习笔记22-TWAI-CAN

    22 TWAI CAN 22 1概述 22 1 1参考博客 ESP32 基于自带控制器实现CAN总线通信 上 知乎 zhihu com ESP32 基于自带控制器实现CAN总线通信 下 知乎 zhihu com 22 1 2 ESP32 T
  • Python str和bytes的相互转换

    str0 61 39 abc 39 a 61 bytes str0 39 utf 8 39 print type str0 str0 print type a a print 39 39 c 61 bytes 97 98 99 100 pr
  • wxpython 基本的控件 (按钮)

    在wxPython 中有很多不同类型的按钮 这一节 xff0c 我们将讨论文本按钮 位图按钮 开关按钮 xff08 toggle buttons xff09 和通用 xff08 generic xff09 按钮 如何生成一个按钮 xff1f
  • FreeRTOS系列|处理器利用率

    处理器利用率 1 处理器利用率统计的作用 处理器利用率其实就是系统运行的程序占用的CPU资源 xff0c 表示机器在某段时间程序运行的情况 xff0c 如果这段时间中 xff0c 程序一直在占用CPU的使用权 xff0c 那么可以认为CPU
  • QT 多线程使用QTcpSocket

    本人亲测使用moveToThread xff08 xff09 的方式可以 xff1b 不存在报错 xff0c 警告 include 34 widget h 34 include 34 ui widget h 34 Widget Widget
  • ESP8266天猫精灵接入流程

    Blinker天猫精灵接入流程 设备上线 设置接入的设备类型 设置接入设备的auth Key 设置SSID PSWD 或者选择 ESPTOUCH等配网方式 下载代码等待设备接入上线成功 authKey对应的设备若需要更换接入的设备类型 xf