我是靠谱客的博主 眼睛大板栗,最近开发中收集的这篇文章主要介绍Esp8266(NodeMCU)连接阿里云服务器创建阿里云产品添加设备Esp8266代码MQTT_PASSWD密码生成工具修改PubSubClient.h文件(不修改无法连接Mqtt服务器)设备测试,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
Esp8266【NodeMCU】连接阿里云服务器
- 创建阿里云产品
- 添加设备
- Esp8266代码
- MQTT_PASSWD密码生成工具
- 修改PubSubClient.h文件(不修改无法连接Mqtt服务器)
- 设备测试
使用EsP8266(NodeMCU)连接阿里云服务器,并在服务器控制台点亮板载LED灯,进行数据上传和下传的测试。关于Esp8266引脚介绍 https://blog.csdn.net/weixin_45488643/article/details/105974842自行查看。
创建阿里云产品
功能定义:
先选择编辑草稿,才可以看到最下面的布尔值那个。
添加设备
Esp8266代码
需要使用的库文件ESP8266WiFi、PubSubClient、ArduinoJson可以直接在Arduino 编译器里面下载。
#include <ESP8266WiFi.h>
/* 依赖 PubSubClient 2.4.0 */
#include <PubSubClient.h>
/* 依赖 ArduinoJson 5.13.4 */
#include <ArduinoJson.h>
#define SENSOR_PIN
LED_BUILTIN
//定义的板载LED灯
/* 修改1 ------------------------------------------ */
/* 连接您的WIFI SSID和密码 */
#define WIFI_SSID
"tsy_B5AC58"
//自己wifi名称
#define WIFI_PASSWD
"19980208"
//自己wifi密码
/* 修改1 end--------------------------------------- */
/* 修改2 ------------------------------------------ */
/* 设备证书信息*/
#define PRODUCT_KEY
"aXXXXXXXXX" //在自己阿里云里面查看
#define DEVICE_NAME
"Light"
//创建设备名称,修改成自己的
#define DEVICE_SECRET
"snXXXXXXXXXXXXXXXXXXXXXXXwhc" //ProductSecret 修改成自己的
#define REGION_ID
"cn-shanghai"
//如果使用的是华东2(上海)服务器,不需要修改
/* 修改2 end--------------------------------------- */
/* 线上环境域名和端口号,不需要改 */
#define MQTT_SERVER
PRODUCT_KEY ".iot-as-mqtt." REGION_ID ".aliyuncs.com"
#define MQTT_PORT
1883
#define MQTT_USRNAME
DEVICE_NAME "&" PRODUCT_KEY
/* 修改3 ------------------------------------------ */
#define CLIENT_ID
"esp8266|securemode=3,signmethod=hmacsha1,timestamp=1234567890|"//可以不用修改使用,也可以修改成自己想要的
// 请使用以上说明中的加密工具或参见MQTT-TCP连接通信文档加密生成password。
// 加密明文是参数和对应的值(clientIdesp8266deviceName${deviceName}productKey${productKey}timestamp1234567890)按字典顺序拼接
// 密钥是设备的DeviceSecret
#define MQTT_PASSWD
"7A23C1CXXXXXXXXXXXXXXXXXXXXXXXXXXDCEDD54"
//修改成自己的,生成方式后面简介。
/* 修改3 end--------------------------------------- */
#define ALINK_BODY_FORMAT
"{"id":"QingYeMuRong","version":"1.0","method":"thing.event.property.post","params":%s}"
#define ALINK_TOPIC_PROP_POST
"/sys/" PRODUCT_KEY "/" DEVICE_NAME "/user/update/"
unsigned long lastMs = 0;
WiFiClient espClient;
PubSubClient
client(espClient);
void callback(char *topic, byte *payload, unsigned int length)
//接收数据
{
Serial.print("Message arrived [");
Serial.print(topic);
Serial.print("] ");
payload[length] = '