esp8266 阿里云 加湿器 天猫精灵

#include <ESP8266WiFi.h>   //安装esp8266arduino开发环境
static WiFiClient espClient;
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <CustomWiFiManager.h>
#include <ArduinoJson.h>
//引入 DHT 库
#include <DHT.h>
#include <AliyunIoTSDK.h>  //引入阿里云 IoT SDK,需要安装crypto库、PubSubClient库
AliyunIoTSDK iot;

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

unsigned long lastMsMain = 0;
int powerPin = 2; 
#define DHTPIN 3 //GPIO3 RXD
#define DHTTYPE DHT11   // DHT 11

DHT dht(DHTPIN, DHTTYPE);

bool waterShortage;//缺水状态
float targetHumidity;//目标湿度
enum FOGLEVEL{yidang = 1,erdang,sandang,sidang,wudang};//雾量档位
enum FOGLEVEL fogLevel;
enum MODE{zidong = 2,chushi = 13,shuimian = 14,zhienng = 32,putong = 39,biaozhun = 48};//模式
enum MODE mode;
int fog;//雾量
bool powerstate;//开关
float temperature;//温度

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


void setup() {

  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  //digitalWrite(LED_BUILTIN, LOW);

  //开始连接WiFi
  WiFiManager wifiManager;//实例化WiFiManager
  wifiManager.setHeadImgBase64(FPSTR(Icon)); //设置图标
  wifiManager.setPageTitle("ESP8266物联网设备WiFi配置页");  //设置页标题
  wifiManager.autoConnect("ESP8266-IoT");// AP模式,可以修改成你的ESP8266WiFi热点名称
  Serial.println("connected...恭喜!一切就绪。");
  
  //初始化 iot,需传入 wifi 的 client,和设备产品信息
  AliyunIoTSDK::begin(espClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET, REGION_ID);

  dht.begin();
  
  //绑定一个设备属性回调,当远程修改此属性,会触发函数
  AliyunIoTSDK::bindData("powerstate", powerstate1);
  AliyunIoTSDK::bindData("targetHumidity", targetHumidity1);
  AliyunIoTSDK::bindData("waterShortage", waterShortage1);
  AliyunIoTSDK::bindData("fog", fog1);
  AliyunIoTSDK::bindData("fogLevel", fogLevel1);
  AliyunIoTSDK::bindData("mode", mode1);

}
int test=0;
void loop() {
  powerstate  = !digitalRead(LED_BUILTIN);
  AliyunIoTSDK::loop(); //必要函数
  //发送数据的间隔,2秒发送一次,“云智能APP”上电源按钮的UI实时显示会有2秒延时。
  if (millis() - lastMsMain >= 2000)
  {
    lastMsMain = millis();
    //humidity = dht.readHumidity();
    //temperature = dht.readTemperature();
    AliyunIoTSDK::send("powerstate", powerstate);
    //AliyunIoTSDK::send("temperature", temperature);
    //AliyunIoTSDK::send("humidity", humidity);
    //Serial.println(humidity);
    //Serial.println(temperature);
    test = test + 2;
  }
  delay(1000);
  
  // 发送事件到阿里云平台
  if (test > 180){
    AliyunIoTSDK::sendEvent("filterExpired"); //滤芯寿命到期
    Serial.println("滤芯寿命到期");
    }
  if (test == 360){
    test = 0;
    
    Serial.println("已更换滤芯");
    }
  
  // AliyunIoTSDK::sendEvent("filterExpired"); //滤芯寿命到期

}
//电源的属性修改的回调函数1
void powerstate1(JsonVariant L)//固定格式,修改参数l
{
  bool i = (L["powerstate"]);//参数l
  powerstate = not i;
  Serial.printf("powerstate:"); Serial.println(powerstate);
  digitalWrite(LED_BUILTIN, powerstate);
  AliyunIoTSDK::send("powerstate", !digitalRead(LED_BUILTIN));
}
void targetHumidity1(JsonVariant L)//固定格式,修改参数l
{
  targetHumidity = L["targetHumidity"];//参数l
  Serial.printf("targetHumidity:"); Serial.println(targetHumidity);
  AliyunIoTSDK::send("targetHumidity", targetHumidity);
}
void waterShortage1(JsonVariant L)//固定格式,修改参数l
{
  waterShortage = L["waterShortage"];//参数l
  Serial.printf("waterShortage:"); Serial.println(waterShortage);
  AliyunIoTSDK::send("waterShortage", waterShortage);
}
void fog1(JsonVariant L)//固定格式,修改参数l
{
  fog = L["fog"];//参数l
  Serial.printf("fog:"); Serial.println(fog);
  AliyunIoTSDK::send("fog", fog);
}
void fogLevel1(JsonVariant L)//固定格式,修改参数l
{
  fogLevel = L["fogLevel"];//参数l
  Serial.printf("fogLevel:"); Serial.println(fogLevel);
  AliyunIoTSDK::send("fogLevel", fogLevel);
}
void mode1(JsonVariant L)//固定格式,修改参数l
{
  mode = L["mode"];//参数l
  Serial.printf("mode:"); Serial.println(mode);
  AliyunIoTSDK::send("mode", mode);
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现esp8266阿里云接入天猫精灵,你可以按照以下步骤进行操作: 1. 首先,你需要搭建esp8266的开发环境。你可以参考\[1\]中提供的链接,了解如何在Arduino IDE环境下搭建esp8266的开发环境。 2. 接下来,你需要创建阿里云物联网设备并获取设备的MQTT连接三元素。你可以参考\[1\]中的链接,了解如何在阿里云物联网平台上创建设备并获取MQTT连接三元素。 3. 然后,你需要设置天猫精灵的技能。你可以参考\[1\]中提供的链接,了解如何设置天猫精灵的技能。 4. 在天猫精灵发送指令后,你需要在服务器端进行处理并执行相应的控制操作。你可以使用服务器端开发语言PHP,并使用阿里云PHP IoT SDK来实现与阿里云物联网esp8266的交互。 综上所述,要实现esp8266阿里云接入天猫精灵,你需要搭建esp8266的开发环境,创建阿里云物联网设备并获取设备的MQTT连接三元素,设置天猫精灵的技能,以及在服务器端进行处理和执行控制操作。你可以参考\[1\]和\[2\]中提供的链接,了解更多详细的操作步骤和代码示例。 #### 引用[.reference_title] - *1* *3* [ESP8266开发、ESP8266连接阿里云物联网天猫精灵控制esp8266esp8266一键配网、智能家居](https://blog.csdn.net/jiangfeng6533/article/details/111667649)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【阿里云生活物联网架构师专题 ③】esp32 sdk 直连接入天猫精灵IOT开放平台,实现天猫精灵找队友零配网功能...](https://blog.csdn.net/xh870189248/article/details/102482053)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值