report pm25 data in one payload
add new json for pm2d5
This commit is contained in:
@@ -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 "oled.h"
|
||||||
#include "math.h"
|
#include "math.h"
|
||||||
|
|
||||||
#define WIFI_SSID "CMCC-Quq4"
|
#define WIFI_SSID "MYMi11"
|
||||||
#define WIFI_PASSWD "c66trb8d"
|
#define WIFI_PASSWD "13975428888"
|
||||||
#define PRODUCT_ID "7WLPW5Z48Q"
|
#define PRODUCT_ID "XOEHGW66ZD"
|
||||||
#define DEVICE_NAME "dev001"
|
#define DEVICE_NAME "pm2d5001"
|
||||||
#define DEVICE_KEY "5SEZMc2+Ts1FMCwoU6hV6Q=="
|
#define DEVICE_KEY "ucAiCMvMdafJ4xgdFLdhiw=="
|
||||||
|
|
||||||
#define REPORT_DATA_TEMPLATE1 "{\"method\":\"report\",\"clientToken\":\"%s\"," \
|
//#define REPORT_DATA_TEMPLATE1 "{\"method\":\"report\",\"clientToken\":\"%s\"," \
|
||||||
"\"params\":{\"PM1_CF1\":%d," \
|
// "\"params\":{\"PM1_CF1\":%d," \
|
||||||
"\"PM2d5_CF1\":%d," \
|
// "\"PM2d5_CF1\":%d," \
|
||||||
"\"PM10_CF1\":%d," \
|
// "\"PM10_CF1\":%d," \
|
||||||
"\"PM1\":%d," \
|
// "\"PM1\":%d," \
|
||||||
"\"PM2d5\":%d," \
|
// "\"PM2d5\":%d," \
|
||||||
"\"PM10\":%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\"," \
|
#define REPORT_DATA_TEMPLATE "{\"method\":\"report\",\"clientToken\":\"%s\"," \
|
||||||
"\"params\":{" \
|
"\"params\":{\"a\":%d," \
|
||||||
"\"particles_0d3\":%d," \
|
"\"b\":%d," \
|
||||||
"\"particles_0d5\":%d," \
|
"\"c\":%d," \
|
||||||
"\"particles_1\":%d," \
|
"\"d\":%d," \
|
||||||
"\"particles_2d5\":%d," \
|
"\"e\":%d," \
|
||||||
"\"particles_5\":%d," \
|
"\"f\":%d," \
|
||||||
"\"particles_10\":%d," \
|
"\"g\":%d," \
|
||||||
"\"version\":%d," \
|
"\"h\":%d," \
|
||||||
"\"Error\":%d" \
|
"\"i\":%d," \
|
||||||
|
"\"j\":%d," \
|
||||||
|
"\"k\":%d," \
|
||||||
|
"\"l\":%d," \
|
||||||
|
"\"m\":%d," \
|
||||||
|
"\"n\":%d" \
|
||||||
"}}"
|
"}}"
|
||||||
|
|
||||||
void default_message_handler(mqtt_message_t* msg)
|
void default_message_handler(mqtt_message_t* msg)
|
||||||
@@ -156,39 +169,16 @@ void mqtt_demo_task(void)
|
|||||||
|
|
||||||
/* 显示PM2.5的值 */
|
/* 显示PM2.5的值 */
|
||||||
OLED_Clear();
|
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);
|
OLED_ShowString(0,0,(uint8_t*)str,16);
|
||||||
|
|
||||||
/* 上报值 */
|
/* 上报值 */
|
||||||
generate_client_token(client_token, sizeof(client_token));
|
generate_client_token(client_token, sizeof(client_token));
|
||||||
memset(payload, 0, sizeof(payload));
|
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.data1, pm2d5_value.pm2d5_data.data2,
|
||||||
pm2d5_value.pm2d5_data.data3, pm2d5_value.pm2d5_data.data4,
|
pm2d5_value.pm2d5_data.data3, pm2d5_value.pm2d5_data.data4,
|
||||||
pm2d5_value.pm2d5_data.data5, pm2d5_value.pm2d5_data.data6);
|
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.data7, pm2d5_value.pm2d5_data.data8,
|
pm2d5_value.pm2d5_data.data7, pm2d5_value.pm2d5_data.data8,
|
||||||
pm2d5_value.pm2d5_data.data9, pm2d5_value.pm2d5_data.data10,
|
pm2d5_value.pm2d5_data.data9, pm2d5_value.pm2d5_data.data10,
|
||||||
pm2d5_value.pm2d5_data.data11, pm2d5_value.pm2d5_data.data12,
|
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) {
|
if (tos_tf_module_mqtt_publ(report_topic_name, QOS0, payload) != 0) {
|
||||||
report_error_count++;
|
report_error_count++;
|
||||||
printf("module mqtt publ fail, count: %d\n", 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);
|
OLED_ShowString(0,2,(uint8_t*)str,16);
|
||||||
} else {
|
} else {
|
||||||
report_error_count = 0;
|
report_error_count = 0;
|
||||||
printf("module mqtt publ success\n");
|
printf("module mqtt publ success\n");
|
||||||
sprintf(str, "2# report ok");
|
sprintf(str, "# report ok");
|
||||||
OLED_ShowString(0,2,(uint8_t*)str,16);
|
OLED_ShowString(0,2,(uint8_t*)str,16);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (report_error_count >= 6) {
|
|
||||||
HAL_NVIC_SystemReset();
|
|
||||||
}
|
|
||||||
|
|
||||||
tos_sleep_ms(5000);
|
tos_sleep_ms(5000);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void application_entry(void *arg)
|
void application_entry(void *arg)
|
||||||
{
|
{
|
||||||
char *str = "TencentOS-tiny";
|
char *str = "TencentOS-Tiny";
|
||||||
|
|
||||||
/* 初始化OLED */
|
/* 初始化OLED */
|
||||||
OLED_Init();
|
OLED_Init();
|
||||||
|
Reference in New Issue
Block a user