@@ -0,0 +1 @@
|
||||
{"version":"1.0","profile":{"ProductId":"XOEHGW66ZD","CategoryId":"22"},"properties":[{"id":"a","name":"PM1浓度_CF1","desc":"","mode":"r","define":{"type":"int","min":"0","max":"65535","start":"0","step":"1","unit":"μ g/m3"},"required":false},{"id":"b","name":"PM2d5浓度_CF1","desc":"","mode":"r","define":{"type":"int","min":"0","max":"65535","start":"0","step":"1","unit":"μ g/m3"},"required":false},{"id":"c","name":"PM10浓度_CF1","desc":"","mode":"r","define":{"type":"int","min":"0","max":"65535","start":"0","step":"1","unit":"μ g/m3"},"required":false},{"id":"d","name":"PM1浓度","desc":"","mode":"r","define":{"type":"int","min":"0","max":"65535","start":"0","step":"1","unit":"μ g/m3"},"required":false},{"id":"e","name":"PM2d5浓度","desc":"","mode":"r","define":{"type":"int","min":"0","max":"65535","start":"0","step":"1","unit":"μ g/m3"},"required":false},{"id":"f","name":"PM10浓度","desc":"","mode":"r","define":{"type":"int","min":"0","max":"65535","start":"0","step":"1","unit":"μ g/m3"},"required":false},{"id":"g","name":"颗粒物个数_0d3","desc":"","mode":"r","define":{"type":"int","min":"0","max":"65535","start":"0","step":"1","unit":"个"},"required":false},{"id":"h","name":"颗粒物个数_0d5","desc":"","mode":"r","define":{"type":"int","min":"0","max":"65535","start":"0","step":"1","unit":"个"},"required":false},{"id":"i","name":"颗粒物个数_1","desc":"","mode":"r","define":{"type":"int","min":"0","max":"65535","start":"0","step":"1","unit":"个"},"required":false},{"id":"j","name":"颗粒物个数_2d5","desc":"","mode":"rw","define":{"type":"int","min":"0","max":"65535","start":"0","step":"1","unit":"个"},"required":false},{"id":"k","name":"颗粒物个数_5","desc":"","mode":"r","define":{"type":"int","min":"0","max":"65535","start":"0","step":"1","unit":"个"},"required":false},{"id":"l","name":"颗粒物个数_10","desc":"","mode":"r","define":{"type":"int","min":"0","max":"65535","start":"0","step":"1","unit":"个"},"required":false},{"id":"m","name":"版本号","desc":"","mode":"r","define":{"type":"int","min":"0","max":"255","start":"0","step":"1","unit":""},"required":false},{"id":"n","name":"错误代码","desc":"","mode":"r","define":{"type":"int","min":"0","max":"255","start":"0","step":"1","unit":""},"required":false}],"events":[],"actions":[]}
|
@@ -5,31 +5,44 @@
|
||||
#include "oled.h"
|
||||
#include "math.h"
|
||||
|
||||
#define WIFI_SSID "CMCC-Quq4"
|
||||
#define WIFI_PASSWD "c66trb8d"
|
||||
#define PRODUCT_ID "7WLPW5Z48Q"
|
||||
#define DEVICE_NAME "dev001"
|
||||
#define DEVICE_KEY "5SEZMc2+Ts1FMCwoU6hV6Q=="
|
||||
#define WIFI_SSID "MYMi11"
|
||||
#define WIFI_PASSWD "13975428888"
|
||||
#define PRODUCT_ID "XOEHGW66ZD"
|
||||
#define DEVICE_NAME "pm2d5001"
|
||||
#define DEVICE_KEY "ucAiCMvMdafJ4xgdFLdhiw=="
|
||||
|
||||
#define REPORT_DATA_TEMPLATE1 "{\"method\":\"report\",\"clientToken\":\"%s\"," \
|
||||
"\"params\":{\"PM1_CF1\":%d," \
|
||||
"\"PM2d5_CF1\":%d," \
|
||||
"\"PM10_CF1\":%d," \
|
||||
"\"PM1\":%d," \
|
||||
"\"PM2d5\":%d," \
|
||||
"\"PM10\":%d" \
|
||||
"}}"
|
||||
//#define REPORT_DATA_TEMPLATE1 "{\"method\":\"report\",\"clientToken\":\"%s\"," \
|
||||
// "\"params\":{\"PM1_CF1\":%d," \
|
||||
// "\"PM2d5_CF1\":%d," \
|
||||
// "\"PM10_CF1\":%d," \
|
||||
// "\"PM1\":%d," \
|
||||
// "\"PM2d5\":%d," \
|
||||
// "\"PM10\":%d," \
|
||||
// "\"particles_0d3\":%d," \
|
||||
// "\"particles_0d5\":%d," \
|
||||
// "\"particles_1\":%d," \
|
||||
// "\"particles_2d5\":%d," \
|
||||
// "\"particles_5\":%d," \
|
||||
// "\"particles_10\":%d," \
|
||||
// "\"version\":%d," \
|
||||
// "\"Error\":%d" \
|
||||
// "}}"
|
||||
|
||||
#define REPORT_DATA_TEMPLATE2 "{\"method\":\"report\",\"clientToken\":\"%s\"," \
|
||||
"\"params\":{" \
|
||||
"\"particles_0d3\":%d," \
|
||||
"\"particles_0d5\":%d," \
|
||||
"\"particles_1\":%d," \
|
||||
"\"particles_2d5\":%d," \
|
||||
"\"particles_5\":%d," \
|
||||
"\"particles_10\":%d," \
|
||||
"\"version\":%d," \
|
||||
"\"Error\":%d" \
|
||||
#define REPORT_DATA_TEMPLATE "{\"method\":\"report\",\"clientToken\":\"%s\"," \
|
||||
"\"params\":{\"a\":%d," \
|
||||
"\"b\":%d," \
|
||||
"\"c\":%d," \
|
||||
"\"d\":%d," \
|
||||
"\"e\":%d," \
|
||||
"\"f\":%d," \
|
||||
"\"g\":%d," \
|
||||
"\"h\":%d," \
|
||||
"\"i\":%d," \
|
||||
"\"j\":%d," \
|
||||
"\"k\":%d," \
|
||||
"\"l\":%d," \
|
||||
"\"m\":%d," \
|
||||
"\"n\":%d" \
|
||||
"}}"
|
||||
|
||||
void default_message_handler(mqtt_message_t* msg)
|
||||
@@ -156,39 +169,16 @@ void mqtt_demo_task(void)
|
||||
|
||||
/* 显示PM2.5的值 */
|
||||
OLED_Clear();
|
||||
sprintf(str, "PM1.0:%4d ug/m3", pm2d5_value.pm2d5_data.data4);
|
||||
sprintf(str, "PM2.5:%4d ug/m3", pm2d5_value.pm2d5_data.data2);
|
||||
OLED_ShowString(0,0,(uint8_t*)str,16);
|
||||
|
||||
/* 上报值 */
|
||||
generate_client_token(client_token, sizeof(client_token));
|
||||
memset(payload, 0, sizeof(payload));
|
||||
snprintf(payload, sizeof(payload), REPORT_DATA_TEMPLATE1, client_token,
|
||||
snprintf(payload, sizeof(payload), REPORT_DATA_TEMPLATE, client_token,
|
||||
pm2d5_value.pm2d5_data.data1, pm2d5_value.pm2d5_data.data2,
|
||||
pm2d5_value.pm2d5_data.data3, pm2d5_value.pm2d5_data.data4,
|
||||
pm2d5_value.pm2d5_data.data5, pm2d5_value.pm2d5_data.data6);
|
||||
|
||||
if (tos_tf_module_mqtt_publ(report_topic_name, QOS0, payload) != 0) {
|
||||
report_error_count++;
|
||||
printf("module mqtt publ fail, count: %d\n", report_error_count);
|
||||
sprintf(str, "1# report fail");
|
||||
OLED_ShowString(0,2,(uint8_t*)str,16);
|
||||
} else {
|
||||
report_error_count = 0;
|
||||
printf("module mqtt publ success\n");
|
||||
sprintf(str, "1# report ok");
|
||||
OLED_ShowString(0,2,(uint8_t*)str,16);
|
||||
}
|
||||
|
||||
tos_sleep_ms(5000);
|
||||
|
||||
OLED_Clear();
|
||||
sprintf(str, "PM2.5:%4d ug/m3", pm2d5_value.pm2d5_data.data5);
|
||||
OLED_ShowString(0,0,(uint8_t*)str,16);
|
||||
|
||||
/* 上报值 */
|
||||
generate_client_token(client_token, sizeof(client_token));
|
||||
memset(payload, 0, sizeof(payload));
|
||||
snprintf(payload, sizeof(payload), REPORT_DATA_TEMPLATE2, client_token,
|
||||
pm2d5_value.pm2d5_data.data5, pm2d5_value.pm2d5_data.data6,
|
||||
pm2d5_value.pm2d5_data.data7, pm2d5_value.pm2d5_data.data8,
|
||||
pm2d5_value.pm2d5_data.data9, pm2d5_value.pm2d5_data.data10,
|
||||
pm2d5_value.pm2d5_data.data11, pm2d5_value.pm2d5_data.data12,
|
||||
@@ -197,26 +187,23 @@ void mqtt_demo_task(void)
|
||||
if (tos_tf_module_mqtt_publ(report_topic_name, QOS0, payload) != 0) {
|
||||
report_error_count++;
|
||||
printf("module mqtt publ fail, count: %d\n", report_error_count);
|
||||
sprintf(str, "2# report fail");
|
||||
sprintf(str, "# report fail");
|
||||
OLED_ShowString(0,2,(uint8_t*)str,16);
|
||||
} else {
|
||||
report_error_count = 0;
|
||||
printf("module mqtt publ success\n");
|
||||
sprintf(str, "2# report ok");
|
||||
sprintf(str, "# report ok");
|
||||
OLED_ShowString(0,2,(uint8_t*)str,16);
|
||||
}
|
||||
|
||||
if (report_error_count >= 6) {
|
||||
HAL_NVIC_SystemReset();
|
||||
}
|
||||
|
||||
tos_sleep_ms(5000);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void application_entry(void *arg)
|
||||
{
|
||||
char *str = "TencentOS-tiny";
|
||||
char *str = "TencentOS-Tiny";
|
||||
|
||||
/* 初始化OLED */
|
||||
OLED_Init();
|
||||
|
Reference in New Issue
Block a user