ESP8266移植阿里LinkSDK
2025/10/12大约 2 分钟
ESP8266移植阿里LinkSDK
https://help.aliyun.com/zh/iot/developer-reference/port-the-sdk-to-esp8266
更正内容
- 用户需要下载附件posix_port.c(适配了esp8266),用它将LinkSDK中portfiles/aiot_port/freertos_port.c替换掉。
移植demo程序
我们通过修改
examples/wifi/getting_started/station/下的example来完成mqtt上云的演示。原生的例程主要演示使用wifi station模式接入特定的wifi热点, 用户可下载附件源文件覆盖原有的
station_example_main.c修改Kconfig.projbuild
menu "Example Configuration"
config ESP_WIFI_SSID
string "WiFi SSID"
default "myssid"
help
SSID (network name) for the example to connect to.
config ESP_WIFI_PASSWORD
string "WiFi Password"
default "mypassword"
help
WiFi password (WPA or WPA2) for the example to use.
config MAX_STA_CONN
int "Maximum retry"
default 5
help
Set the Maximum retry to avoid station reconnecting to the AP unlimited when the AP is really inexistent.
config ESP_WIFI_MODE_AP
int "STA 0, AP 1"
default 0
help
Set the Maximum retry to avoid station reconnecting to the AP unlimited when the AP is really inexistent.
endmenuprintf("xTaskCreate demo_mqtt_process_task failed: %ld\n", ret);改为 printf("xTaskCreate demo_mqtt_process_task failed: %d\n", ret);
E:\ESP8266\ESP8266_RTOS_SDK\components\LinkSDK\components\dynreg\dynreg_private.h中修改宏定义
#defineDYNREG_PATH "/auth/register/device"
改为
#defineDYNREG_PATH "/admin-api/iot/device-info/auth/register/device"
使用mqtts tls连接平台
配置主任务栈大小
# Component config → ESP8266-specific →
# Main task stack size (4096)配置
memset(&cred, 0, sizeof(aiot_sysdep_network_cred_t));
cred.option = AIOT_SYSDEP_NETWORK_CRED_SVRCERT_CA; /* 使用RSA证书校验MQTT服务端 */
cred.max_tls_fragment = 16384; /* 最大的分片长度为16K, 其它可选值还有4K, 2K, 1K, 0.5K */
cred.sni_enabled = 1; /* TLS建连时, 支持Server Name Indicator */
cred.x509_server_cert = ali_ca_cert; /* 用来验证MQTT服务端的RSA根证书 */
cred.x509_server_cert_len = strlen(ali_ca_cert); /* 用来验证MQTT服务端的RSA根证书长度 */配置ali_ca_cert
#ifndef GLOBAL_SIGN_R1#define GLOBAL_SIGN_R1
"-----BEGIN CERTIFICATE-----\r\n" \
"MIIFATCCA+mgAwIBAgISBn7GrKhPA8iC6CrT5i8x1O3UMA0GCSqGSIb3DQEBCwUA\r\n" \
"MDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQD\r\n" \
"EwNSMTEwHhcNMjUwNzA4MTE0OTEzWhcNMjUxMDA2MTE0OTEyWjAeMRwwGgYDVQQD\r\n" \
"ExNtcXR0cy54aWFvbGl6aS50ZWNoMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\r\n" \
"CgKCAQEAsOcUZAvkCep9hQS4DvIVOrJb8Khvb+6O3kfFdyjsl7N7XciKSCNVO7j6\r\n" \
"TffUqRlNmOVfDJ3vGf/XaYRmCAfSEzYYpaPyricLXfRctIpGaQCL7APw81I2LX25\r\n" \
"3Ae6lhInZ9wDwxVsBxjqow5Kp+AhbTwpeVzxJxFBqPshzInDzFsnHtVJB0L1NhQi\r\n" \
"9anAhtIOWyLh/ApI6LfA0liDYBBzUW4P+MhRCTCEzumyvAHM49S4oL+lMq8ACiRn\r\n" \
"jpNwojFZ9H5Bkbx4HyvHN9ON4n/qxQIDAQABo4ICIjCCAh4wDgYDVR0PAQH/BAQD\r\n" \
"AgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAA\r\n" \
"MB0GA1UdDgQWBBRsAHSdcTTi/nNIunsRgQDFBIl9YDAfBgNVHSMEGDAWgBTFz0ak\r\n" \
"6vTDwHpslcQtsF6SLybjuTAzBggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAKGF2h0\r\n" \
"dHA6Ly9yMTEuaS5sZW5jci5vcmcvMB4GA1UdEQQXMBWCE21xdHRzLnhpYW9saXpp\r\n" \
"LnRlY2gwEwYDVR0gBAwwCjAIBgZngQwBAgEwLgYDVR0fBCcwJTAjoCGgH4YdaHR0\r\n" \
"cDovL3IxMS5jLmxlbmNyLm9yZy84NS5jcmwwggEDBgorBgEEAdZ5AgQCBIH0BIHx\r\n" \
"AO8AdQB9WR4S4XgqexxhZ3xe/fjQh1wUoE6VnrkDL9kOjC55uAAAAZfqE+uNAAAE\r\n" \
"AwBGMEQCIDlpnCwP/4FsrPHdCuSNSzPU35Z5t+rqVCazZz4119YlAiAYCBlWfY58\r\n" \
"gXefW9MJWSWMcOAcu5sQxzEolbSiLZAVkgB2ABLxTjS9U3JMhAYZw48/ehP457Vi\r\n" \
"h4icbTAFhOvlhiY6AAABl+oT81IAAAQDAEcwRQIhAP31Wm3XN/Ch/nWOxe1+qvG7\r\n" \
"AY6ZiXfjFX0/ymFKGUocAiB7TWODy8J+wytcUR1fq/PMM8DCWBC4S/2GaA9jrm5C\r\n" \
"nTANBgkqhkiG9w0BAQsFAAOCAQEAhCmpn3QXajrOaf8V+E+yZ/U1eDqNC4Eyra+A\r\n" \
"3I6/K40av/2S4KPZUV5RC+qWchysXme6Fd2zjEg/q1zrmM/mrwA6+SN+wDyStacv\r\n" \
"iFMsy+FTapOEqR+dwUIARC0HfTd/TaA5xb4a9Y3nBFOpk7n7fODO33y8ilTiXtME\r\n" \
"zZnSXOagjDpuZG4O2oWm3vbC0IGafYHnT9xZy07zcFVhLsUCGpmfmHUD8OLf55jn\r\n" \
"zKV59i7H9eJF118ouO6W66ucS+M9nF1yEafLQQ+JgrvNYSi5myX+G1eReNDYlAlp\r\n" \
"qh70Tj79YRqaxTqWq6aPrW8OxcvukDeHgbSeDyqC4WME/Ia3CA==\r\n" \
"-----END CERTIFICATE-----\r\n"
#endif
#ifndef GLOBAL_SIGN_R6
#define GLOBAL_SIGN_R6 \
"-----BEGIN CERTIFICATE-----\r\n" \
"MIIFBjCCAu6gAwIBAgIRAIp9PhPWLzDvI4a9KQdrNPgwDQYJKoZIhvcNAQELBQAw\r\n" \
"TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh\r\n" \
"cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjQwMzEzMDAwMDAw\r\n" \
"WhcNMjcwMzEyMjM1OTU5WjAzMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg\r\n" \
"RW5jcnlwdDEMMAoGA1UEAxMDUjExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\r\n" \
"CgKCAQEAuoe8XBsAOcvKCs3UZxD5ATylTqVhyybKUvsVAbe5KPUoHu0nsyQYOWcJ\r\n" \
"DAjs4DqwO3cOvfPlOVRBDE6uQdaZdN5R2+97/1i9qLcT9t4x1fJyyXJqC4N0lZxG\r\n" \
"AGQUmfOx2SLZzaiSqhwmej/+71gFewiVgdtxD4774zEJuwm+UE1fj5F2PVqdnoPy\r\n" \
"6cRms+EGZkNIGIBloDcYmpuEMpexsr3E+BUAnSeI++JjF5ZsmydnS8TbKF5pwnnw\r\n" \
"SVzgJFDhxLyhBax7QG0AtMJBP6dYuC/FXJuluwme8f7rsIU5/agK70XEeOtlKsLP\r\n" \
"Xzze41xNG/cLJyuqC0J3U095ah2H2QIDAQABo4H4MIH1MA4GA1UdDwEB/wQEAwIB\r\n" \
"hjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwEgYDVR0TAQH/BAgwBgEB\r\n" \
"/wIBADAdBgNVHQ4EFgQUxc9GpOr0w8B6bJXELbBeki8m47kwHwYDVR0jBBgwFoAU\r\n" \
"ebRZ5nu25eQBc4AIiMgaWPbpm24wMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzAC\r\n" \
"A1UdHwQgMB4wHKAaoBiGFmh0dHA6Ly94MS5jLmxlbmNyLm9yZy8wDQYJKoZIhvcN\r\n" \
"AQELBQADggIBAE7iiV0KAxyQOND1H/lxXPjDj7I3iHpvsCUf7b632IYGjukJhM1y\r\n" \
"v4Hz/MrPU0jtvfZpQtSlET41yBOykh0FX+ou1Nj4ScOt9ZmWnO8m2OG0JAtIIE38\r\n" \
"01S0qcYhyOE2G/93ZCkXufBL713qzXnQv5C/viOykNpKqUgxdKlEC+Hi9i2DcaR1\r\n" \
"e9KUwQUZRhy5j/PEdEglKg3l9dtD4tuTm7kZtB8v32oOjzHTYw+7KdzdZiw/sBtn\r\n" \
"UfhBPORNuay4pJxmY/WrhSMdzFO2q3Gu3MUBcdo27goYKjL9CTF8j/Zz55yctUoV\r\n" \
"aneCWs/ajUX+HypkBTA+c8LGDLnWO2NKq0YD/pnARkAnYGPfUDoHR9gVSp/qRx+Z\r\n" \
"WghiDLZsMwhN1zjtSC0uBWiugF3vTNzYIEFfaPG7Ws3jDrAMMYebQ95JQ+HIBD/R\r\n" \
"PBuHRTBpqKlyDnkSHDHYPiNX3adPoPAcgdF3H2/W0rmoswMWgTlLn1Wu0mrks7/q\r\n" \
"pdWfS6PJ1jty80r2VKsM/Dj3YIDfbjXKdaFU5C+8bhfJGqU3taKauuz0wHVGT3eo\r\n" \
"6FlWkWYtbt4pgdamlwVeZEW+LM7qZEJEsMNPrfC03APKmZsJgpWCDWOKZvkZcvjV\r\n" \
"uYkQ4omYCTX5ohy+knMjdOmdH9c7SpqEWBDC86fiNex+O0XOMEZSa8DA\r\n" \
"-----END CERTIFICATE-----\r\n"
#endif
const char *ali_ca_cert = \
GLOBAL_SIGN_R1 \
GLOBAL_SIGN_R6 \
;