ESP8266连接阿里云控制LED灯
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
用arduino软件让ESP8266连接到阿里云进而和云进行通信。
效果图:
首先要用Arduino的SDK需要下载库文件 AliyunIoTSDK、ArduinoJson、 PubSubClient、Crypto、AWS-SDK-ESP8266库。
AliyunIoTSDK包含连接阿里云功能的SDK。
PubSubClient包含阿里云发布/订阅功能的SDK。
Crypto有加密功能的sdk。
ArduinoJson解析Json数据格式的SDK。
库文件准备好配置阿里云的环境。
- 创建阿里云账号进入阿里云物联网平台新人免费
- 创建产品产品名输入其余默认选择。
- 添加设备名称输入会有ProductKey、DeviceSecret、DEVICE_NAME、REGION_ID等信息。
- 进入产品界面功能定义添加功能比如我是灯的开关添加的就是灯开关标识符可以自定义数据类型自定义确定会提示你查看你定义的是否准确然后确认点击发布就可以了。
Arduino编程
1、写入你自己的产品名称
#define PRODUCT_KEY "PRODUCT_KEY"
#define DEVICE_NAME "DEVICE_NAME"
#define DEVICE_SECRET "DEVICE_SECRET"
#define REGION_ID "REGION_ID"
- ESP8266连接wifi
- 连接阿里云
AliyunIoTSDK::begin(espClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET, REGION_ID);
- 发送接收数据
接收
AliyunIoTSDK::bindData("LightSwitch你自己设置的标识符", lightCallback回调函数);
发送
AliyunIoTSDK::send("LightLuminance标识符", 100数据);
- 下面是我的回调函数
void lightCallback(JsonVariant data1)
{
int LightSwitch = data1["LightSwitch"];
if (LightSwitch == 1)
{
Serial.println("kaideng");
digitalWrite(LED, HIGH); // 启动设备
}
else {
Serial.println("guandeng");
digitalWrite(LED, LOW);
}
}
6、编译如果串口返回MQTT Connect err : 2说明MQTT没有连接
此时更改PubSubClient.h文件中的两个宏MQTT_MAX_PACKET_SIZE和MQTT_KEEPALIVE将其改大点改成1024和60。
7、现在可以开始调试了如图登陆成功就会显示在线或离线以及最后一次连接时间
调试点击设备在线调试如果想发什么数据发送数据点击设置就是发送读取数据点击获取就ok了至此调试完成。
源码公众号可留言邮箱。
最后请多多支持谢谢大家