用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了,至此调试完成。
最后,请多多支持,谢谢大家!
文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树云原生环境小结云原生的分层8582 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!