新闻资讯
如何使用TIGLIC嵌入式控制器对接MQTT实现IoT数据上报
MQTT协议简介
MQTT(消息队列遥测传输)是IoT领域最广泛使用的轻量级发布-订阅消息协议,特别适合带宽受限、网络不稳定的嵌入式环境。本教程将使用TIGLIC TG-MCU系列控制器,通过MQTT协议将传感器数据上报至阿里云IoT平台。
开发环境准备
- TIGLIC TG-MCU100控制器(Cortex-M4内核)
- 阿里云IoT平台账号(免费额度支持1百万消息/月)
- Keil MDK 5或IAR EWARM开发环境
- TIGLIC提供的MQTT客户端库(TG_MQTT_v2.1.zip)
核心代码示例
#include "tg_mqtt.h"
#include "tg_wifi.h"
// 阿里云IoT三元组
#define PRODUCT_KEY "a1xxxxxxxx"
#define DEVICE_NAME "tiglic_sensor_001"
#define DEVICE_SECRET "xxxxxxxxxxxxxxxx"
void mqtt_publish_sensor_data(float temperature, float humidity) {
char payload[128];
snprintf(payload, sizeof(payload),
"{"temperature":%.2f,"humidity":%.2f,"timestamp":%lu}",
temperature, humidity, TG_GetTimestamp());
TG_MQTT_Publish(
"/sys/" PRODUCT_KEY "/" DEVICE_NAME "/thing/event/property/post",
payload,
strlen(payload),
QOS_1
);
}
int main(void) {
TG_System_Init();
TG_WiFi_Connect("YourSSID", "YourPassword");
TG_MQTT_Connect(PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET);
while (1) {
float temp = TG_Sensor_ReadTemperature();
float humi = TG_Sensor_ReadHumidity();
mqtt_publish_sensor_data(temp, humi);
TG_Delay_ms(30000); // 每30秒上报一次
}
}
调试技巧
使用MQTT.fx桌面工具模拟订阅同一主题,可以实时查看设备上报的数据是否符合预期格式,无需等待云平台处理。
TIGLIC TG-MCU系列SDK已内置TLS加密支持,生产环境建议启用TLS防止数据被中间人截取。详细安全配置指南请参考TIGLIC开发者文档第7章。