zl程序教程

您现在的位置是:首页 >  IT要闻

当前栏目

ESP8266连接阿里云通过MQTT上报状态属性

2023-04-18 16:53:24 时间

1、新建一个产品

2、添加物模型,物模型用于显示上报的消息的

编辑草稿,也就是添加属性

 可以选择标准的和自定义的,我这里选择自定义的

设置物模型功能

我这里添加了两个,完成后发布上线

3、到设备中添加设备,用于ESP8266连接

 添加成功后,可以看到

 我这里多添加一个topoic用来控制LED亮灭,然后上传到云端。

 4、修改ESP8266代码 

连接设备的密码、用户名、uri参考:MQTT连接阿里云物联网平台步骤_qingeratech的博客-CSDN博客

通讯数据格式参考:数据格式 - 阿里云物联网平台 - 阿里云


	#define PRODUCT_KEY		"gu7ilTJSCqY"
	#define DEVICE_NAME		"ESP8266-Status"
	#define DEVICE_SECRET	"7192748eea14bb1daf55dc0540c9ef25"

	#define DEVICE_ID		"ESP8256"
	#define REGION_ID       "cn-shanghai"                       //注册阿里云服务器对应的地区
	 
	/* 线上环境域名和端口号,不需要改 */
	#define MQTT_URI	      "mqtt://" PRODUCT_KEY ".iot-as-mqtt." REGION_ID ".aliyuncs.com"
	#define MQTT_PORT         1883
	#define MQTT_USERNAME     DEVICE_NAME "&" PRODUCT_KEY
	 
	#define CLIENT_ID         DEVICE_ID "|securemode=3,signmethod=hmacsha1,timestamp=789|"
	 //使用阿里云平台中的密码解析网址进行破解,https://help.aliyun.com/document_detail/86706.html
	#define MQTT_PASSWD       "31026abf078a85f4791eb727f3f631eb6cb09795"   
	 
	#define ALINK_BODY_FORMAT         "{"params":%s}"
	#define ALINK_TOPIC_PROP_POST     "/sys/" PRODUCT_KEY "/" DEVICE_NAME "/thing/event/property/post"
 
	#define ALINK_TOPIC				"/" PRODUCT_KEY "/" DEVICE_NAME "/user/LED_SW"

    esp_mqtt_client_config_t mqtt_cfg = {
        .uri = "mqtt://gu7iajfhl7g.iot-as-mqtt.cn-shanghai.aliyuncs.com",
		.username = "FH_ESP_Test&gu7iajfhl7g",
		.password = "7e659c8603463c1d9acfb388b74d45cb76903741",
		.client_id = "FESA234FBDS99|securemode=3,signmethod=hmacsha1,timestamp=789|",
		.port = 1883,
		//.transport = MQTT_TRANSPORT_OVER_TCP,//设置连接协议
    };


		sprintf(param, "{"LED_STA":%d,"KEY_STA":%d}", s_led_sta & 0x01, (s_led_sta >> 1) & 0x01);
		sprintf(jsonBuf, ALINK_BODY_FORMAT, param);
		printf("
%s
", jsonBuf);
		printf("
%s
", ALINK_TOPIC_PROP_POST);
        //if (xQueueReceive(gpio_evt_queue, &io_num, portMAX_DELAY)) {
            //ESP_LOGI(TAG, "GPIO[%d] intr, val: %d
", io_num, gpio_get_level(io_num));
		if (s_mqtt_c) {
			esp_mqtt_client_publish(client, ALINK_TOPIC_PROP_POST, jsonBuf, 0, 1, 0);
		}

esp_mqtt_client_subscribe(client, ALINK_TOPIC, 1);

5、下载程序后,打开设备物模型查看,记得右上角的实时刷新打开

默认按键松开,led灭

 按下按键

 控制灯亮:

控制灯灭: