ESP-8266接入阿里云开关LED

ESP-8266接入阿里云开关LED

我们通过esp8266连接到阿里云,再通过阿里云绑定修改led属性,esp8266接收到mqtt协议报文处理我们的开关灯函数

阿里云控制台添加设备,esp8266程序环境搭建,esp8266程序烧录

个人开发测试阿里云是免费的


操作步骤

1.阿里云添加设备

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
到这里我们就有了一个设备了。当前现在还没有在线。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
查看复制设备证书!等会要把这些放到代码中
在这里插入图片描述

2.Arduino引入库

Arduino需要安装 ArduinoJson,Crypto,PubSubClient库
Esp8266 需要在Arduino中安装 ESP8266库

① 搜索安装mqtt

在这里插入图片描述

② 搜索安装ArduinoJson

在这里插入图片描述

③ 搜索安装Crypto在这里插入图片描述
④ 搜索安装PubSubClient在这里插入图片描述

3 修改PubSubClient.h两个参数

如果不修改的话,会提示-2的错误
我的文件夹地址 C:\Users\Administrator\Documents\Arduino\libraries\PubSubClient\src
在这里插入图片描述

4 编写点灯代码变更自己的wifi和产品信息
// 引入 wifi 模块,并实例化,不同的芯片这里的依赖可能不同
#include <ESP8266WiFi.h>
static WiFiClient espClient;

// 引入阿里云 IoT SDK
#include <AliyunIoTSDK.h>

// 设置产品和设备的信息,从阿里云设备信息里查看
#define PRODUCT_KEY "a14xxxxxfXtk"
#define DEVICE_NAME "LED_1"
#define DEVICE_SECRET "504a83a60bxxxxxxxxxxxxxxx18ed6"
#define REGION_ID "cn-shanghai"

// 设置 wifi 信息
#define WIFI_SSID "0"
#define WIFI_PASSWD "12345678"

void setup()
{
    // set the digital pin as output:
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, HIGH);
    
    Serial.begin(115200);
    
    // 初始化 wifi
    wifiInit(WIFI_SSID, WIFI_PASSWD);
    
    // 初始化 iot,需传入 wifi 的 client,和设备产品信息
    AliyunIoTSDK::begin(espClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET, REGION_ID);
    
    // 绑定一个设备属性回调,当远程修改此属性,会触发 ledSwitchCallback
    // PowerSwitch 是在设备产品中定义的物联网模型的 id
    AliyunIoTSDK::bindData("LEDSwitch", ledSwitchCallback);
}

void loop()
{
    AliyunIoTSDK::loop();
}

// 初始化 wifi 连接
void wifiInit(const char *ssid, const char *passphrase)
{
    WiFi.mode(WIFI_STA);
    WiFi.begin(ssid, passphrase);
    while (WiFi.status() != WL_CONNECTED)
    {
        delay(1000);
        Serial.println("WiFi not Connect");
    }
    Serial.println("Connected to AP");
}

// LED状态修改的回调函数
void ledSwitchCallback(JsonVariant p)
{
    int LEDSwitch = p["LEDSwitch"];
    // 变更LED状态
    digitalWrite(LED_BUILTIN, LEDSwitch);
}

最后

Arduino烧录到esp8266
在这里插入图片描述
打开串口调试
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值