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); | ||
| + | </ | ||