This shows you the differences between two versions of the page.
— | app-notes:metric-cloudsetup:sdk-adam4015-mqtt-publish [2020/11/12 10:16] (current) – created erdmann | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | <file c sdk-adam4015-mqtt-publish.are> | ||
+ | DEV = " | ||
+ | SLAVEID = 1; | ||
+ | HOST = " | ||
+ | PORT = 1883; | ||
+ | KEEPALIVE = 60; | ||
+ | PROTOCOL = " | ||
+ | USERNAME = " | ||
+ | PASSWORD = " | ||
+ | CLIENT_ID = " | ||
+ | TOPIC = " | ||
+ | QOS = 0; | ||
+ | RETAIN = 0; | ||
+ | MESSAGE = ""; | ||
+ | CLEAN_SESSION = true; | ||
+ | MQTT_HANDLE = 0; | ||
+ | |||
+ | /*create new mqtt instance*/ | ||
+ | MQTT_HANDLE = nb_mqttlib_new(CLIENT_ID, | ||
+ | |||
+ | /* check serial port config */ | ||
+ | st = nb_config_get(" | ||
+ | if (st != " | ||
+ | nb_syslog(" | ||
+ | exit(1); | ||
+ | } | ||
+ | |||
+ | /* set attributes */ | ||
+ | ret = nb_serial_setattr(DEV, | ||
+ | if (ret != 0) { | ||
+ | printf(" | ||
+ | exit(1); | ||
+ | } | ||
+ | |||
+ | /* open serial port */ | ||
+ | fd = nb_serial_open(DEV); | ||
+ | if (fd < 0) { | ||
+ | printf(" | ||
+ | exit(1); | ||
+ | } | ||
+ | |||
+ | /* register fd for modbus functions */ | ||
+ | if (nb_modbus_register(fd, | ||
+ | printf(" | ||
+ | exit(1); | ||
+ | } | ||
+ | |||
+ | /* set slave id */ | ||
+ | if (nb_modbus_set_slave(fd, | ||
+ | printf(" | ||
+ | exit(1); | ||
+ | } | ||
+ | |||
+ | if (nb_mqttlib_set_protocol_version(MQTT_HANDLE, | ||
+ | printf(" | ||
+ | exit(1); | ||
+ | } | ||
+ | |||
+ | if (nb_mqttlib_set_user_pw(MQTT_HANDLE, | ||
+ | printf(" | ||
+ | |||
+ | exit(1); | ||
+ | } | ||
+ | |||
+ | if (nb_mqttlib_connect(MQTT_HANDLE, | ||
+ | printf(" | ||
+ | exit(1); | ||
+ | } | ||
+ | |||
+ | |||
+ | while (1) { | ||
+ | |||
+ | /* read 1 registers from address 0*/ | ||
+ | data = nb_modbus_read_input_regs(fd, | ||
+ | /*write word from array in variable*/ | ||
+ | word=(int) data[0]; | ||
+ | /*convert PT100 data to temperature*/ | ||
+ | temp=(float) word / 65535 * 100; | ||
+ | |||
+ | // | ||
+ | |||
+ | MESSAGE=sprintf(" | ||
+ | |||
+ | ret = nb_mqttlib_publish(MQTT_HANDLE, | ||
+ | |||
+ | if(ret< | ||
+ | nb_syslog(" | ||
+ | } | ||
+ | |||
+ | sleep(60); | ||
+ | } | ||
+ | |||
+ | exit(0); | ||
+ | </ |