在mqtt后台显示车辆mqtt没在线,但是初始化成功

现象:

在mqtt后台查看车辆的mqtt处于离线状态,但是线程打印已经连接成功。

分析:

mqtt的设备名称和密码是否正确

结果:

mqtt的设备名称是正式版本,拉下来的mqtt初始化信息是正式版本的,但是星宇那边的版本是测试版本的,所以查看不到,

测试版和正式版相对于我这边是mqtt初始化信息的不同,测试板的设备名称:带有test 正式版的带有vehicle例如:

{DeviceName":"NeolixVehicle_C30","DeviceSecret":"B9WJpogY0q6JIvTP4oLD8pVxwsI4Wswh","product_key":"a1kYolDPGoj","product_secret":"m6qS9W5zaF62c851}

 

ESP32是一款基于Espressif Systems ESP8266平台的增强型Wi-Fi/蓝牙SoC芯片,它支持MQTT(Message Queuing Telemetry Transport)协议,这是一种轻量级的发布/订阅消息协议,常用于物联网(IoT)应用中。 在ESP32上初始化MQTT通常需要以下几个步骤: 1. **库导入**: 首先,你需要包含`esp_mqtt.h`头文件,这是ESP32提供的mqtt SDK的一部分。 ```c #include <esp_mqtt.h> ``` 2. **网络配置**: 确保已经连接到WiFi网络,并配置好必要的网络参数,如服务器地址(`server_ip`)、端口(`port`)等。 ```c const char* ssid = "your_wifi_ssid"; const char* password = "your_wifi_password"; const char* server_ip = "your_mqtt_server_address"; const int port = MQTT_DEFAULT_PORT; ``` 3. **MQTT初始化**: 创建一个`esp_mqtt_client_config_t`结构体并设置相关参数,然后创建`esp_mqtt_client_t`实例。 ```c esp_mqtt_client_config_t mqtt_cfg = { .uri = "tcp://" server_ip, .username = "your_username", .password = "your_password", .keepalive = 60, .event_handler = &mqtt_event_handler // 自定义事件处理器 }; esp_err_t err = esp_mqtt_init(&mqtt_cfg); if (err != ESP_OK) { // 处理错误 } esp_mqtt_client_t* client = esp_mqtt_new_default(); ``` 4. **连接和认证**: 使用`esp_mqtt_connect()`函数尝试连接到MQTT服务器并进行身份验证。 ```c esp_err_t conn_ret = esp_mqtt_connect(client); if (conn_ret == ESP_OK) { // 连接成功,开始监听消息 } else { // 处理连接失败 } ``` 5. **订阅主题**(如果需要): 使用`esp_mqtt_subscribe()`订阅感兴趣的主题。 ```c esp_err_t sub_ret = esp_mqtt_subscribe(client, topic, 1, NULL); // 第二个参数是QoS等级 ``` 6. **断开连接**(程序结束前记得关闭连接): 当不再需要MQTT服务时,调用`esp_mqtt_destroy()`释放资源。 ```c esp_err_t disconnect_ret = esp_mqtt_disconnect(client); esp_mqtt_destroy(client); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值