Esp8266天猫精灵_RGB灯_非点灯平台

2023-05-16

arduino接入阿里云_天猫精灵_云智能APP_RGB灯

鉴于很多平台的物联网设备数量都受到限制,比如说blinker,免费的只有5个,使用了物联网里的老大哥阿里云,性能稳定,生态完善,响应速度快。

首先感谢Esp8266接入阿里云_天猫精灵_云智能APP_控制LED_插座的详细教程以及各位大佬的点评,个人做了整理便于小白多多明白
水平有限,仅供参考

关于平台注意:
阿里云物联网平台
阿里云生活物联网平台
注意:这两个是不同的平台,阿里云物联网平台里面的设备包含了阿里云旗下所有的物联网平台设备,也就是说生活物联网平台是阿里云物联网平台的一个分支。
**注意:**两个平台一定要使用同一个账号(支付宝)

关于产品注册流程:
两个平台同时登陆,且同一账号;

创建项目
在这里插入图片描述
注意名字和类型
在这里插入图片描述

注意莫名字和连网方式
在这里插入图片描述
添加RGB对应的功能
在这里插入图片描述
注意选中公版APP,从现在开始,每完成一步必须保存一下
在这里插入图片描述
自定义面板
在这里插入图片描述
注意:RGB颜色
在这里插入图片描述
在这里插入图片描述
注意保存
在这里插入图片描述
重新选择刚刚的面板,确认
在这里插入图片描述
语言栏切勿存在空白
在这里插入图片描述
此时会自动开启天猫精灵
在这里插入图片描述
注意选择的模块型号
在这里插入图片描述
重新建设备
在这里插入图片描述
去程序里面修改你的密钥
在这里插入图片描述
先发布产品再下载APP进行扫码,
进入APP的更多服务里面绑定天猫精灵
注意:建议都用同一个手机号

在这里插入图片描述
配网,扫码
在这里插入图片描述
此时烧录完程序就可以去阿里云物联网平台 查看设备,不是同一账号不会自动同步的
在这里插入图片描述

完成以上步骤就可以呼叫天猫精灵了,也可以APP上操作

先到我的博客下载并添加库文件
下面代码,大佬请绕路。

// An highlighted block
#include <ESP8266WiFi.h> //安装esp8266arduino开发环境
#include <RGBConverterLib.h>
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <CustomWiFiManager.h>
#include <ArduinoJson.h>

#include <AliyunIoTSDK.h> //引入阿里云 IoT SDK,需要安装crypto库、PubSubClient库
AliyunIoTSDK iot;
static WiFiClient espClient;
static RGBConverter espRGB;

//设置产品和设备的信息,从阿里云设备信息里查看
#define PRODUCT_KEY "xxxxx"                        //替换自己的PRODUCT_KEY
#define DEVICE_NAME "xxxxx"                               //替换自己的DEVICE_NAME
#define DEVICE_SECRET "xxxxx" //替换自己的DEVICE_SECRET
#define REGION_ID "cn-shanghai"                          //默认cn-shanghai

unsigned long lastMsMain = 0; //定时的时基
#define RGB_red 15     //对应引脚
#define RGB_green 12
#define RGB_blue 13
int RGB_bool = 0;  //LED的开关状态
int RGBlan = 80;   //LED的亮度 80%
int led_red = 127; //LED的默认颜色和亮度
int led_green = 255;
int led_blue = 212;

// web配网页面自定义我的图标请随便使用一个图片转base64工具转换https://tool.css-js.com/base64.html, 64*64
const char Icon[] PROGMEM = "data:image/png;base64,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";

// 开关
void powerstate(JsonVariant L) //固定格式,修改参数l
{
  int powerstate = L["powerstate"]; //参数l
  if (powerstate == 1)              //板载led默认高电平,此时灯灭
  {
    //根据输入值调节各LED亮度
    analogWrite(RGB_red, led_red);
    analogWrite(RGB_green, led_green);
    analogWrite(RGB_blue, led_blue);
    RGB_bool = 1;
  }
  else
  {
    digitalWrite(RGB_red, LOW);
    digitalWrite(RGB_green, LOW);
    digitalWrite(RGB_blue, LOW);
    RGB_bool = 0;
  }
  Serial.printf("收到的powerstate是:");
  Serial.println(powerstate);
  AliyunIoTSDK::send("powerstate", RGB_bool);
}
// 亮度
void brightness(JsonVariant L) //固定格式,修改参数2
{
  RGBlan = L["brightness"]; //参数2
  Serial.printf("收到的brightness是:");
  Serial.println(RGBlan);
  analogWrite(RGB_red, map(RGBlan, 0, 100, 0, led_red));
  analogWrite(RGB_green, map(RGBlan, 0, 100, 0, led_green));
  analogWrite(RGB_blue, map(RGBlan, 0, 100, 0, led_blue));
  AliyunIoTSDK::send("brightness", RGBlan);
}
// 修改颜色
void RGBColor(JsonVariant L) //固定格式,修改参数2
{
  led_red = L["RGBColor"]["Red"];     //参数1
  led_blue = L["RGBColor"]["Blue"];   //参数2
  led_green = L["RGBColor"]["Green"]; //参数3
  String led_hex = "";
  int RGB_color = 0;
  char ch[20];
  /*
  Serial.print("Red:");
  Serial.println(led_red);
  Serial.print("Blue:");
  Serial.println(led_blue);
  Serial.print("Green:");
  Serial.println(led_green);
  */
  //根据输入值调节各LED亮度
  analogWrite(RGB_red, led_red);
  analogWrite(RGB_green, led_green);
  analogWrite(RGB_blue, led_blue);
  RGB_bool = 1;
  //RGB的三值得十六进制的值,再转十进制进行上报颜色
  espRGB.RgbToHex(led_red, led_green, led_blue, led_hex);
  strcpy(ch, led_hex.c_str());
  sscanf(ch, "%x", &RGB_color);
  Serial.println(RGB_color);
  AliyunIoTSDK::send("color", RGB_color); //上报数据
}

void setup()
{

  Serial.begin(115200);
  pinMode(RGB_red, OUTPUT);
  digitalWrite(RGB_red, LOW);
  pinMode(RGB_green, OUTPUT);
  digitalWrite(RGB_green, LOW);
  pinMode(RGB_blue, OUTPUT);
  digitalWrite(RGB_blue, LOW);

  //开始连接WiFi
  WiFiManager wifiManager;                                  //实例化WiFiManager
  wifiManager.setHeadImgBase64(FPSTR(Icon));                //设置图标
  wifiManager.setPageTitle("欢迎来到冷月满天的WiFi配置页"); //设置页标题
  wifiManager.autoConnect("TP561-IoT-ESP");                 // AP模式,可以修改成你的ESP8266WiFi热点名称
  Serial.println("connected...恭喜!一切就绪。");

  //初始化 iot,需传入 wifi 的 client,和设备产品信息
  AliyunIoTSDK::begin(espClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET, REGION_ID);

  //绑定一个设备属性回调,当远程修改此属性,会触发powerstate函数;天猫精灵控制的就是powerstate的高低电平(高 = 1,低 = 0)
  AliyunIoTSDK::bindData("powerstate", powerstate);
  AliyunIoTSDK::bindData("brightness", brightness);
  AliyunIoTSDK::bindData("RGBColor", RGBColor);
  delay(100);
  //初始化开关和亮度
  AliyunIoTSDK::send("powerstate", 0);
  AliyunIoTSDK::send("brightness", RGBlan);
}

void loop()
{
  //发送数据的间隔,2秒发送一次,“云智能APP”上电源按钮的UI实时显示会有2秒延时。
  if (millis() - lastMsMain >= 2000)
  {
    AliyunIoTSDK::loop(); //心跳机制
    lastMsMain = millis();
    //发送电源状态到云平台(高电平:1;低电平:0)
    AliyunIoTSDK::send("powerstate", RGB_bool);
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Esp8266天猫精灵_RGB灯_非点灯平台 的相关文章

随机推荐

  • ubuntu18.04安装WINEHQ时出现的问题:E: 文件 list 第 x 行的记录格式有误 /etc/apt/sources.list (Component) E: 无法读取源列表。

    ubuntu18 04安装WINEHQ时出现的问题 xff1a E 文件 list 第 x 行的记录格式有误 etc apt sources list Component E 无法读取源列表 详细安装过程可以参考 xff08 官网 xff0
  • Hexo系列——(一) Hexo的安装与使用

    目录 前言一 安装Node js和Git1 安装node js和npm xff0c npm是node js的包管理工具2 更新npm的镜像源 3 全局安装n管理器 用于管理node js 4 安装最新的node js xff08 stabl
  • 协方差和协方差矩阵的定义和理解

    先复习一下这个 xff1a 均值 标准差 方差 为什么需要协方差 xff1f 上面几个统计量看似已经描述的差不多了 xff0c 但我们应该注意到 xff0c 标准差和方差一般是用来描述一维数据的 xff0c 但现实生活我们常常遇到含有多维数
  • dockerfile 中运行 apt-get update 报错 returned a non-zero code: 100

    在 docker 中运行 apt get update 报错 returned a non zero code 100 出现问题 xff1a 在构建 docker 执行 Dockerfile 中的 RUN apt get update 时报
  • Opencv 实现简单UDP局域网实时摄像头传输 (一)

    做项目需要用到网络编程及摄像头捕捉 xff0c 经过简单学习完成一个简单的视频发送 发送端 sender cpp include 34 stdafx h 34 include 34 WinSock2 h 34 include lt open
  • 使用3D地面站(AcmeGCS)的编队飞行

    使用3D地面站 xff08 AcmeGCS xff09 的编队飞行 无人机编队飞行的方法有很多种 xff0c 本文演示一种使用PX4 43 3D地面站 AcmeGCS 43 ROS的多机控制方法 PX4提供了非常好的软件仿真环境 xff0c
  • PX4-1-开源飞控项目

    分享完工具系列 xff0c 我们开始PX4飞控技术的分享 xff0c 写分享相对于自己写笔记要难很多 xff0c 在整理自己笔记的过程中也重新思考很多问题 飞控技术的分享系列更多分享的是思路和框架 对于PX4这种大型开源项目 xff0c 源
  • PX4-3-uORB

    uORB Micro Object Request Broker 微对象请求代理器 是PX4中非常重要且关键的一个模块 xff0c 用于各个模块之间的数据交互 实际上uORB是一套跨 进程 的IPC通讯模块 在PX4中 xff0c 所有的功
  • PX4-5-SPI-IIC设备驱动

    在之前的分享中 xff0c 我们聊了PX4的通信框架和任务调度框架 xff0c 现在我们讲一下PX4的设备驱动 PX4支持很多种设备 xff0c 根据通信方式的不同大致分为 xff1a SPI IIC设备 串口设备 IO设备 CAN设备 这
  • PX4-6-串口设备驱动

    上一篇我们讲了PX4的SPI IIC设备驱动 xff0c 现在讲一下PX4的串口设备 PX4的串口设备驱动框架比SPI IIC设备简单不少 xff0c 使用了两种底层实现方式 xff1a 一种是系统自带的标准字符设备接口 xff0c 一种是
  • Uav开发杂记-4-无人机开发的C-C++

    无人机的软件开发主要使用C C 43 43 开发 xff0c APM和PX4的应用层开发更多的使用C 43 43 开发 作为叠代完善了非常多年的比较大型的开源飞控项目 xff0c 其代码框架对于刚开始接触的新手而言是比较复杂的 一些同学私信
  • AcmeIot-3-在嵌入式设备中运行ROS2

    ROS2是作为第二代ROS xff0c 对ROS1进行了重大的优化 xff0c 主要的特点有 xff1a 实现跨平台运行 xff0c 可以运行在Linux windows Mac RTOS xff0c 甚至没有操作系统的裸机 实现真正的分布
  • PX4-12-飞行任务框架

    飞行任务指的是PX4的modules flight mode manager组件 xff0c 用于控制指令平滑 PX4的FlightTask框架设计还是比较有趣的 xff0c 不论从软件架构还是控制算法方面 xff0c 都是值得好好学习的代
  • AcmeROS-2-ROS2架构

    在前面的分享中 xff0c 我们讲了 在嵌入式设备中运行ROS2 AcmeIot 3 在嵌入式设备中运行ROS2 PX4中的ROS2桥接应用 PX4 16 ROS2Bridge 在AcmeGCS中支持ROS2 AcmeGCS 18 支持RO
  • 自动驾驶控制算法-模型预测MPC

    本文记录一下MPC控制算法的学习过程和自己的理解 xff0c 初步接触控制算法 xff0c 理解肯定不是很完善 xff0c 重在记录思考的过程 背景 随着自动驾驶技术以及机器人控制技术的不断发展及逐渐火热 xff0c 模型预测控制 MPC
  • MySQL保留2位小数

    1 round x d xff0c 四舍五入 round x 其实就是round x 0 也就是默认d为0 select round 109 456 2 109 46 2 TRUNCATE x d xff0c 直接截取需要保留的小数位 se
  • PCB原理图绘制(种草立创eda)

    首先 xff0c 相对于我们平时所用的ad 这个就很适合我们英文不好的中国人了 然后这个一站式搞定 xff0c 画完商城下单就可以做我们的板子了 整个设计界面也很友好 xff0c 封装库也不需要我们自己封装 很多商城里面都有 xff0c 可
  • 操作系统学习-练习题个人总结(三)

    操作系统学习 练习题个人总结 xff08 三 xff09 第二章 操作系统硬件基础 一 第二章 中断和特权级 课前测试 1 错题解析 从用户态到内核态的转换是由 xff08 中断硬件 xff09 完成的 解析 xff1a 扩展资料 xff1
  • c++转换python返回的字符串

    PyArg Parse可以将python返回参数转换为c 43 43 类型 对于字符串转换用 xff0c 如下方法 xff1a xff08 格式必须这样 xff0c 其他方式都转换不了 xff09 char p 61 NULL PyArg
  • Esp8266天猫精灵_RGB灯_非点灯平台

    arduino接入阿里云 天猫精灵 云智能APP RGB灯 鉴于很多平台的物联网设备数量都受到限制 xff0c 比如说blinker xff0c 免费的只有5个 xff0c 使用了物联网里的老大哥阿里云 xff0c 性能稳定 xff0c 生